論文解析:Neural Graph Collaborative Filtering

論文解析:Neural Graph Collaborative Filtering

  • 作者:Xiang Wang, Xiangnan He, Meng Wang, Fuli Feng, Tat-Seng Chua(新加坡國立大學)
  • 會議:SIGIR 2019

方法

Graph Convolutional Matrix Completion一樣,Neural Graph Collaborative Filtering (NGCF)也是把推薦中的user-item交互關係建模爲一個二分圖。

信息傳播

在信息傳播的過程中,NGCF把item embedding和user-item交互embedding的權重做了區分,權重矩陣分別爲W1W_1W2W_2
mui=1(NuNi)(W1ei+W2(eieu)) m_{u\leftarrow i} = \frac{1}{\sqrt(|N_u||N_i|)} (W_1e_i + W_2(e_i \cdot e_u))

信息聚合

簡單相加然後過激活層的方式做信息聚合,同時也把user embedding自身的更新做了單獨處理
eu(l)=LeakyReLU(muu(l)+iNumui(l)) e_u^{(l)} = LeakyReLU(m_{u\leftarrow u}^{(l)} + \sum\limits_{i\in N_u} m_{u\leftarrow i}^{(l)})
其中,
muu(l)=W1(l)eu(l1) m_{u\leftarrow u}^{(l)} = W_1^{(l)} e_u^{(l-1)}

矩陣形式

將上述離散形式經過推導可得下列矩陣形式
E(l)=LeakyReLU((L+I)E(l1)W1(l)+LE(l1)E(l1)W2(l)) E^{(l)} = LeakyReLU((L+I) E^{(l-1)} W_1^{(l)} + L E^{(l-1)}\cdot E^{(l-1)} W_2^{(l)})

Jumping Knowledge

最後用於做user-item特徵交叉的user embedding和item embedding均經過jumping knowledge處理,即將各層的user embedding和item embedding拼接。拼接後的user/item embedding通過傳統的點積做預測

Loss

由於處理的是隱式反饋問題,只有0/1 label表示user/item之間是否存在交互而沒有等級評分,因此採用BPR loss,是一種pairwise loss,計算隱式反饋中有交互的u/i對的預測得分與無交互的u/i對的預測得分的距離,並用sigmoid函數進行[0,1]區間歸一化:
Loss=(u,i,j)Olnσ(yuiyuj)+λΘ22,O={(u,i,j)(u,i)R+,(u,j)R} Loss = \sum\limits_{(u,i,j) \in O} -ln\sigma(y_{ui} - y_{uj}) + \lambda||\Theta||_2^2, O=\{(u,i,j)|(u,i)\in R^+, (u,j)\in R^-\}

實驗

  • 數據集:Gowalla, Yelp2018, Amazon-book
  • 切分:80% train, 20% test,train當中10% validation
  • 預處理:只保留數據集中超過10個連接的user和item
  • 評價指標:搜索/推薦領域常用的recall和ndcg
  • 實驗結果
    在這裏插入圖片描述
    除了與其他方法的對比實驗,NGCF還做了超參數實驗以及embedding可視化實驗。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章