论文解析: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可视化实验。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章