1. 程式人生 > 其它 >Socially-Aware Self-Supervised Tri-Training for Recommendation

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的示意圖:

在社交推薦系統中,通過對齊使用者-專案互動圖\(\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