Socially-Aware Self-Supervised Tri-Training for Recommendation


SEPT

Socially-Aware Self-Supervised Tri-Training for Recommendation

ABSTRACT

自監督學習(Self-supervised learning, SSL)可以從原始數據中自動生成真實樣本。

現有的大多數基於SSL方法的做法是:丟棄原本的節點\邊對原始數據圖進行干擾,生成新的數據視圖,然后對不同的視圖進行基於自判別的對比學習,學習泛化表示;

這個方案下,兩個不同視圖的節點之間只建立了一個雙射映射,這意味着忽略了來自其他節點的自監督信號;

由於在推薦系統中廣泛觀察到的同源性,文章認為來自其他節點的監督信號也極有可能利於推薦系統的學習;

文章提出了一種綜合了tri-training的通用社會性感知SSL框架。該框架首先使用用戶社交信息來增強用戶數據視圖

在多視圖編碼的tri-training下,該框架在擴展視圖的基礎上構建了三圖編碼器,並利用其他兩個編碼器產生的來自其他用戶的自監督信號來改進每個編碼器;

INTRODUCTION

文章使用user-user和user-item交互中的三元結構來擴充兩個補充數據視圖,並將它們分別解釋為描述用戶在擴大社交圈和將所需項目分享給朋友方面的興趣。

技術上,首先在三個視圖上構建三個非對稱圖形編碼器,其中兩個僅用於學習用戶表示並給出偽標簽,而另一個處理用戶-項目視圖的編碼器,還承擔生成推薦的任務。對社交網絡和用戶-項目交互圖進行動態擾動,以此創建一個未標記的樣本集。遵循tri-training的機制,在每個十七,在其他兩個視圖上的編碼器為當前視圖的每個用戶預測未標記示例集中最可能的語義正示例。該框架通過提出的基於鄰域區分的對比學習,最大化當前視圖中標記用戶的表示與示例集之間的一致性,從而精化用戶表示。

隨着所有編碼器在此過程中迭代改進,生成的偽標簽也變得更具有信息性,反過來又遞歸地是編碼器受益。因此,與只使用自區分SSL機制增強的推薦編碼器相比,用戶項目視圖上的推薦編碼器變得更強。

由於tri-training基於相同數據源的互補視圖來學習自監督信號,因此將其命令為自監督tri-training。

2.1 Graph Neural Recommendation Models

2.2 Self-Supervised Learning in RS

3 PROPOSED FRAMEWORK

SEPT, SElf-suPervised Tri-training framework

3.1 Preliminaries

3.1.1 Notations

使用兩個圖,分別為:用戶-項目交互圖\(\mathcal{G}_r\),用戶社交網絡\(\mathcal{G}_s\)
\(\mathcal{U}=\{u_1,u_2,\ldots,u_m\}(|\mathcal{U}|=m)\)表示\(\mathcal{G}_r\)\(\mathcal{G}_s\)中的用戶節點
\(\mathcal{I}=\{i_1,i_2,\ldots,i_n\}(|\mathcal{I}|=n)\)表示\(\mathcal{G}_r\)中的項目節點
\(R\in \mathbb{R}^{m\times n}\)\(\mathcal{G}_r\)的二進制矩陣
\(S\in \mathbb{R}^{m\times m}\)表示社交鄰接矩陣,這個矩陣是二進制和對稱的
\(P\in \mathbb{R}^{m\times d}\)\(Q\in \mathbb{R}^{n\times d}\)分別表示用戶和項目的embeddings

3.1.2 Tri-Training

3.2 Data Augmentation

3.2.1 View Augmentation

推薦系統中廣發觀察到的同質性,即,用戶和項目有許多相似的對應物。為了捕獲同質性以進行自監督,文章利用用戶社交關系來進行數據擴充,因為社交網絡通常被認為是同質性的反映(具有相似偏好的用戶更有可能在社交網絡中建立連接,反之亦然)

下圖是SEPT的示意圖:
image.png

在社交推薦系統中,通過對齊用戶-項目交互圖\(\mathcal{G}_r\)和社交網絡\(\mathcal{G}_s\),可以獲得兩種類型的三角形:

  • 三個相互社交連接的用戶(例如,上圖中的\(u_1,u_2,u_4\)
  • 具有相同購買物品的兩個社交連接用戶(例如,上圖中的\(u_1,u_2,i_1\)

前者在社會上被解釋為通過擴大社交圈來描述用戶的興趣,后者則是描述用戶在與朋友分享所需物品方面的興趣。

可以把這兩種三角形視為加強的紐帶,因為如果兩個人在現實生活中有共同的朋友或共同的興趣,他們更有可能有密切的關系

上述兩種類型的三角形可以用矩陣乘法的形式有效地提取出來。讓\(A_f\in \mathbb{R}^{m\times m}\)\(A_s\in \mathbb{R}^{m\times m}\)表示結合了兩種類型三角關系的鄰接矩陣,計算公式如下:

\[A_f=(SS)\odot S,\quad A_s=(RR^\top)\odot S.\qquad(1) \]

乘法\(SS(RR^\top)\)通過共享好友(項目),累計連接兩個用戶的路徑數。哈達瑪積\(\odot S\)使得這些paths變成三角形形式。\(\odot S\)保證\(A_f,A_s\)是關系S的子集。因為\(A_f,A_s\)不是二進制矩陣,公式(1)可以看成一種特殊的情況:在有R的補充信息的S上進行bootstrap采樣。

  • bootstrap sampling:是生成一系列bootstrap偽樣本,每個樣本是初始數據有放回抽樣

給定\(A_f,A_s\)作為S和R的擴展,就有了三個視圖從不同的角度描述了用戶的偏好,並提供了一個融合tri-training和SSL的場景。將三個視圖命名為:

  • preference view(用戶-項目交互圖),用R表示
  • friend view(三角形社交關系),用\(A_f\)表示
  • sharing view(三角形用戶項目關系),用\(A_s\)表示

3.2.2 Unlabeled Example Set

為了進行tri-training,需要一個位標記的樣本集,遵循已有的工作,以一定概率\(\rho\)丟棄邊,來擾動原始圖,從而創建一個損壞圖,從中學習到的用戶描述被用作未標記的樣例。公式如下:

\[\tilde{\mathcal{G}}=(\mathcal{N}_r\cup \mathcal{N}_s,m\odot(\varepsilon_r\cup \varepsilon_s)),\qquad (2) \]

其中\(\mathcal{N}_r,\mathcal{N}_s\)是節點,\(\varepsilon_r,\varepsilon_s\)\(\mathcal{G}_r,\mathcal{G}_s\)的邊,\(m\in \{0,1\}^{|\varepsilon_r\cup \varepsilon_s|}\)是mask向量來去除邊。

  • \(\mathcal{G}=(\mathcal{W},\mathcal{\varepsilon},\mathcal{R})\)是圖的表示形式,\(\mathcal{W}\)是節點,\(\varepsilon\)是邊,\(\mathcal{R}\)是關系

在這里對\(\mathcal{G}_r,\mathcal{G}_s\)都進行擾動,因為在前面提到的兩個增強視圖都包含了社交信息。

3.3 SEPT:Self-Supervised Tri-Training

3.3.1 Architecture

利用增強的視圖和未標記的樣本集,按照tri-training的設置構建了三個encoder。在體系結構上,提出的自監督訓練框架可以是模型無關的,從而可以推廣到其他的圖神經推薦模型。文章使用了LightGCN作為編碼器的基本結構,編碼器的定義如下:

\[Z=H(E,\mathcal{V}) \]

其中,H是encoder,\(Z\in \mathbb{R}^{m\times d}\) or \(\mathbb{R}^{(m+n)\times d}\)表示節點的最終表示。E具有相同的size,表示最底層的初始節點embeddings,\(\mathcal{V}\in \{R,A_s,A_f\}\)是三個視圖中任一個。

SEPT是非對稱的,\(H_f,H_s\)分別工作在friend view和sharing view,有兩個作用:

  • 學習用戶表示
  • 給出偽標簽

\(H_r\)工作在preference view,承擔推薦的任務,從而學習用戶和項目表示

\(H_r\)是主要編碼器,\(H_f,H_s\)是輔助編碼器。這三個編碼器都使用LightGCN。此外,為了從擾動圖\(\tilde{\mathcal{G}}\)中學習未標記示例的表示,需要另外一個encoder,但它僅用於圖卷積。

3.3.2 Constructing Self-Supervision Signals

通過對三個視圖執行圖卷積,encoder學習三組用戶表示。由於每個視圖反映了用戶偏好的不同方面,自然會從其他兩個視圖中尋找監督信息,以改進當前視圖的encoder。給定一個用戶,文章使用來自其他兩個視圖的用戶表示來預測其在未標記示例集中的語義正示例,以偏好視圖中的用戶u為例,標簽表示為:

\[y_{u+}^s=Softmax(\phi(\tilde{Z},z_u^s)),\quad y_{u+}^f=Softmax(\phi(\tilde{Z},z_u^f)),\qquad (4) \]

其中\(\phi\)是cosine操作,\(z_u^s,z_u^f\)\(H_s,H_f\)學習的用戶u表示,\(\tilde{Z}\)是圖卷積獲得的無標簽示例集中的用戶表示,$$表示在相應視圖中每個用戶在語義上是正例的預測概率。

tri-training機制下,只有\(H_s,H_f\)都同意將用戶標記為正樣本時,才標記,於是公式如下:

\[y_{u+}^r=\frac{1}{2}(y_{u+}^s+y_{u+}^f),\qquad (5) \]

有了這些概率,可以選擇置信度最高的K個陽性樣本,公式如下:

\[\mathcal{P}_{u+}^r=\{\tilde{Z}_k|k\in Top-K(y_{u+}^r),\tilde{Z}\sim \tilde{\mathcal{G}} \},\qquad (6) \]

在每次迭代中,對於不用的用戶表示,使用隨機邊丟棄來重建\(\tilde{\mathcal{G}}\)。SEPT為每個視圖中的每個用戶動態地在該數據擴充上生成正的偽標簽。然后,將這些標簽用作監督信號,以此精化底層的embeddings

3.3.3 Contrastive Learning

有了生成的偽標簽,在SEPT中開發了鄰居區分對比學習方法來實現自監督。

在給定某個用戶的情況下,要求他的節點表示與\(\mathcal{P}_{u+}\)中已標記的用戶表示保持一致,並最小化其節點表示與未標記的用戶表示之間的一致性。用戶判別的思想是:給出當前視圖的一個用戶u,正向偽標簽是這個用戶u在另外兩個視圖的鄰居或者潛在鄰居,那么應該在當前的視圖中把這些積極的配對,因為不同的觀點之間存在同質性。這可以通過鄰居-分歧對比學習來完成。具體實現采用以前的研究成果,InfoNCE,公式如下:

\[\mathcal{L}_{ssl}=-\mathbb{E}\sum_{v\in \{r,s,f\}}[log\frac{\sum_{p\in \mathcal{P}_{u+}^v}\psi(z_u^v,\tilde{z}_p)}{\sum_{p\in \mathcal{P}_{u+}^v}\psi(z_u^v,\tilde{z}_p)+\sum_{j\in U/\mathcal{P}_{u+}^{v}}\psi(z_u^v,\tilde{z}_j)}],\qquad (7) \]

其中\(\psi(z_u^v,\tilde{z}_p)=exp(\phi(z_u^v\cdot \tilde{z}_p)/\tau),\phi(\cdot):\mathbb{R}^d\times \mathbb{R}^d\longmapsto \mathbb{R}\)是判別函數,\(\tau\)是方法判別效果的參數(\(\tau=0.1\)時效果最好)。相比自判別,使用鄰居判別能夠使用來自其他用戶的監督信號。

當只使用一個正向示例,並且如果\(\tilde\)中用戶在\(y_{u+}\)對自己有最高置信度時,鄰居判別退化成自我判別。但是當正例的數量足夠時,這兩種方法可以一起使用。

實驗訓練過程中,沒有將偽標簽添加到鄰接矩陣中用於后續的圖卷積。相反,采用軟而靈活的方式通過互信息最大化來指導用戶表示。有兩個好處:

  • 重建鄰接矩陣耗時長
  • 早期的偽標簽不會提供信息,重復使用會誤導模型

3.4 Optimization

SEPT包含兩個任務:

  • recommendation
  • neighbor-discrimination based on contrastive learning
    BPR損失函數如下:

\[\mathcal{L}_r=\sum_{i\in \mathcal{I}(u),i\notin \mathcal{I}(u)}-log\sigma(\hat{r}_{ui}-\hat{r}_{uj})+\lambda \|E\|_2^2,\qquad (8) \]

其中\(\mathcal{I}(u)\)是與u有交互的項目,\(\hat{r}_{ui}=P^\top_uQ_i\),P和Q從\(Z^r\)中獲得,\(\lambda\)控制\(L_2\)正則化的系數。

SEPT的訓練過程有兩個階段:

  • 初始化
  • 聯合學習
    首先通過優化\(\mathcal{L}_r\),使用推薦任務來預熱模型,獲得較好的embeddings后,自監督tri-training訓練開始進行,作為輔助任務統一為聯合學習目標,提高推薦任務的效果,聯合學習的總體目標如下:

\[\mathcal{L}=\mathcal{L}_r+\beta \mathcal{L}_{ssl} \]

3.4 Discussion

4 EXPERIMENTAL RESULTS

4.1 Experimental Settings

使用的數據集如下:
image.png

Baselines

  • LightGCN
  • DiffNet++
  • MHCN

Metrics

  • Precision@10
  • Recall@10
  • NDCG@10

Settings

4.2 Overall Performance Comparison

表2展示了不同層數的實驗效果,如下:
image.png

表3中所有方法都采用了兩層設置,如下:
image.png

4.3 Self-Discrimination v.s. Neighbor-Discrimination

SEPT中,產生的正向示例會包括:

  • 用戶自身
  • 未標記的樣本集

此部分探究用戶的自判別和沒有用戶自身的鄰居判別。SEPT-SD表示自判別,SEPT-ND表示沒有用戶自身的鄰居判別。實驗結果如下圖:
image.png

4.4 View Study

此部分研究兩個增強視圖的貢獻,"Friend" or "Sharing"表示對應的視圖被分離,實驗結果如下圖:
image.png

4.5 Parameter Sensitivity Analysis

實驗中使用到的超參數有三個:

  • \(\beta\)來控制自監督tri-training的貢獻
  • K,是正向示例的數量
  • \(\rho\)來控制邊丟棄率

關於參數的影響如下圖:

image.png

image.png

image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM