論文《Graph Neural Networks for Social Recommendation》閱讀
- 論文概況
- Introduction
- GraphRec模型介紹
-
- User Modeling
-
- Item Aggregation
- Social Aggregation
- Item Modeling
- Rating Prediction和Model Training
- 總結一下
- 一點不成熟的評價
論文概況
本文是香港城市大學聯合京東發表在WWW 2019上的一篇論文,CCF A會議,提出了模型GraphRec。這篇文章聚焦于社會化推薦(Social Recommendation),是社會化推薦較早的作品之一。
Introduction
論文解決三個問題:
- user-item的顯式互動包含不同分數(文中稱之為意見,opinion),不同的分數代表不同的喜好,如何處理?
- user和user之間的社交關系也有親疏遠近之分,不應該有連邊就進行平均處理,如何展現?
- user同時包含在use-item的互動和user-user的社交關系中,如何處理?
針對這三個問題,作者進行了GraphRec模型的設計。
GraphRec模型介紹
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3I2EzX4xSZz91ZsAzNfRHLGZkRGZkRfJ3bs92YsAjMfVmepNHLGNUS200RLZTZ5wGWjdFN1M2V0UTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxycykFaKdkYzZUbapXNXlleSdVY2pESa9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL3QGZidjZxYTN3QDZ3YWOiNGZxQTNmN2YyQmY4U2NwUzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
GraphRec可以分為兩部分,User Modeling和Item Modeling,其中User Modeling又分為Item Aggregation和Social Aggregation,下面分别介紹。
User Modeling
Item Aggregation
Item Aggregation 這裡是指通過user-item的互動矩陣進行使用者在item-space的分解。
具體的,如下式所示,這裡我們使用相對容易了解的符号進行重新書寫,對文中一些不太友好的符号表示也進行了重新表示:
h i I = σ ( W ⋅ A g g i t e m s ( { x i a ∣ ∀ a ∈ C i } ) + b ) σ ( W ⋅ { ∑ a ∈ C ( i ) α i a x i a } + b ) h_i^I = \sigma (W \cdot Agg_{items}(\{x_{ia} | \forall a \in C_i \}) +b) \\ \sigma(W\cdot\{\sum_{a\in C(i)}\alpha_{ia} x_{ia}\} + b) hiI=σ(W⋅Aggitems({xia∣∀a∈Ci})+b)σ(W⋅{a∈C(i)∑αiaxia}+b)
這裡, h i I h_i^I hiI就表示item空間使用者 i i i的embedding表示, A g g i t e m s ( ⋅ ) Agg_{items}(\cdot) Aggitems(⋅)表示item-space的聚合函數,可以看到使用權重求和并線性變換的方式進行表示,其中, α i a \alpha_{ia} αia表示權重, x i a x_{ia} xia表示使用者 i i i和與其鄰接的物品 a a a的聚合向量, C i C_i Ci表示使用者 i i i在item-space中與其鄰接的所有物品集合。見下式:
x i a = g v ( [ q a ∣ ∣ e r ] ) x_{ia} = g_v([q_a || e_r]) xia=gv([qa∣∣er])
x i a x_{ia} xia使用物品 a a a和評分等級 r r r的可訓練向量進行表示, g v ( ⋅ ) g_v(\cdot) gv(⋅)表示融合函數,文中這裡沒有交代清楚,聯系後文,應該是一個三層的MLP網絡。
注意力系數 α i a \alpha_{ia} αia如下面兩式所示
α i a ∗ = w 2 T ⋅ σ ( W 1 ⋅ [ x i a ∣ ∣ p i ] + b 1 1 ) + b 2 \alpha_{ia}^* = w_2^T \cdot \sigma(W_1 \cdot [x_{ia} || p_i] + b_11) + b_2 αia∗=w2T⋅σ(W1⋅[xia∣∣pi]+b11)+b2
α i a = exp ( α i a ∗ ) ∑ c ∈ C i α i c ∗ \alpha_{ia} = \frac{\exp(\alpha_{ia}^*)}{ \sum_{c \in C_i} {\alpha_{ic}^*} } αia=∑c∈Ciαic∗exp(αia∗)
可以看到,使用者 i i i和與其鄰接的物品 a a a的之間的注意力系數通過雙層MLP進行計算,輸入包括 x i a x_{ia} xia和 p i p_i pi,是以可以了解為使用者 i i i和與其鄰接的物品 a a a之間的親和力(affinity)指數。
Social Aggregation
後面的部分可以參考前面,我們不進行太詳細的介紹,大緻方式相同。
h i S = σ ( W ⋅ A g g n e i g h b o r s ( { h o I ∣ ∀ o ∈ N i } ) + b ) σ ( W ⋅ { ∑ o ∈ N ( i ) β i o h o I } + b ) h_i^S = \sigma (W \cdot Agg_{neighbors}(\{h_{o}^{I} | \forall o \in N_i \}) +b) \\ \sigma(W\cdot\{\sum_{o\in N(i)}\beta_{io} h_{o}^I\} + b) hiS=σ(W⋅Aggneighbors({hoI∣∀o∈Ni})+b)σ(W⋅{o∈N(i)∑βiohoI}+b)
類似的, h i S h_i^S hiS就表示social空間使用者 i i i的embedding表示, A g g n e i g h b o r s ( ⋅ ) Agg_{neighbors}(\cdot) Aggneighbors(⋅)表示social-space的聚合函數,可以看到使用權重求和并線性變換的方式進行表示,其中, β i o \beta_{io} βio表示權重, h o I h_o^I hoI是item-space完成的使用者 o o o的item-space向量表示, N i N_i Ni表示使用者 i i i在social-space中與其鄰接的所有使用者集合。具體的計算方式和Item Aggregation一樣,篇幅原因,不一而足。
h i h_i hi表示最終的使用者 i i i的向量表示,先通過連接配接 h i S h_i^S hiS與 h i I h_i^I hiI,再通過多層感覺機進行變換得到。
需要指出的是,這裡的權重矩陣和向量如 W W W、 b b b等應該是不同的,在計算過程中應該進行區分,上面為了友善了解,沒有進行更多的區分。
Item Modeling
直接在使用者-物品的互動矩陣中進行提取,使用 z j z_j zj進行表示, A g g u s e r s Agg_{users} Aggusers是其聚合函數, μ j t \mu_{jt} μjt表示注意力系數。
Rating Prediction和Model Training
使用MLP,先通過 h i h_i hi和 z j z_j zj的concatenation,然後通過多層感覺機進行非線性變換得到最終的預測結果。
損失函數使用均方誤差MSE進行表示,針對訓練過程,一個三元組 ( i , j , r ) (i, j, r) (i,j,r)表示使用者 i i i對物品 j j j進行評分,評分為 r r r,其中使用者向量 h i h_i hi、物品向量 z j z_j zj、評分向量 e r e_r er都是随機初始化的可訓練參數,除此以外各種MLP中的 W W W和 b b b也是可訓練參數,共同構成訓練參數。
總結一下
針對開頭提出的三個問題,現總結如下:
- 不同分數代表使用者的不同意見,作者使用意見向量 e r e_r er進行表示,進而可以針對不同評分計算不同的意見注意力分數。
- user和user之間,通過social aggregation時使用不同user之間的注意力分數 β i o \beta_{io} βio進行計算
- user兩方面的屬性,分别通過social space和item space進行計算,具體的,先通過item space的評分矩陣得到每個使用者的item space表示 h o I h_o^I hoI,将上面的item space表示 h o I h_o^I hoI放進social space,完成使用者之間的屬性傳播。
一點不成熟的評價
本文從社交網絡和推薦互動圖兩部分進行學習,完成社會化推薦任務,值得一讀。但是本人認為有以下幾點需要注意一下:
- 文章中的數學符号比較亂,容易混淆
- 論文最後的related work含金量不高,基本沒有GNN based social recommendation的相關論文,列舉的方法都是比較久遠的矩陣分解一類的方法,可以略過。
- 公式中一些不規範表達需要注意一下