论文地址:https://arxiv.org/abs/1905.08108
论文代码:https://github.com/xiangwang1223/neural_graph_collaborative_filtering
目录
1.研究背景
这篇论文的研究背景是在现代推荐系统中,学习用户和物品的向量表示(也称为嵌入)是核心问题。现有的方法通常通过将用户(或物品)的嵌入映射到描述用户(或物品)的预先存在的特征,如ID和属性,来获得用户(或物品)的嵌入。然而,这种方法的固有缺点是没有将用户-物品交互中潜在的协同信号(相似性的评分)编码到嵌入过程中。因此,所得到的嵌入可能不足以捕捉协同过滤效应。为了解决这个问题,论文提出了一种新的推荐框架Neural Graph Collaborative Filtering (NGCF),它将用户-物品交互的双分图结构整合到嵌入过程中,通过在图上传播嵌入来有效地建模用户-物品图中的高阶连接性,从而明确地将协同信号注入到嵌入过程中。论文通过在三个公共数据集上进行广泛实验,证明了NGCF相对于HOP-Rec和Collaborative Memory Network等几种最先进的模型的显著改进。进一步的分析验证了嵌入传播对于学习更好的用户和物品表示的重要性,证明了NGCF的合理性和有效性。
2.相关知识
1.embedding 嵌入:它将用户和项目转换为矢量化表示
2.interaction modeling 交互建模:它基于嵌入重建历史交互
高连通性:
给u1推荐项目,上图左边为用户项目交互图,右边为根据u1展开的树结构。高阶连通性是到u1长度大于1的节点路径(节点包括项目和用户两种)。这种高阶连接包含了丰富的语义,承载着协同信号。例如,路径u1←i2←u2表示u1和u2之间的行为相似性,因为两个用户都与i2交互过;较长的路径u1←i2←u2←i4表明u1很可能会采用i4,因为她相似的用户u2之前已经消费过i4。此外,从l= 3的整体来看,项目i4比项目i5更可能引起u1的兴趣,因为i4有两条路径连接,而i5只有一条路径连接。
本文作者不是将交互图扩展成一棵树,因为树实现起来是比较复杂的,他是设计了一个分层传播层,通过聚合交互项目(或用户)的嵌入来细化用户(或项目)的嵌入。通过堆叠多个嵌入传播层,可以强制嵌入以捕获高阶连接中的协作信号。
作者总结以下三点主要贡献:
1、强调了在基于模型的CF方法的嵌入功能中明确利用协作信号的至关重要性。
2、提出了一种新的基于图神经网络的推荐框架NGCF,它通过执行嵌入传播以高阶连接的形式显式编码协作信号
3、在300万个数据集上进行了实证研究。大量的结果证明了NGCF的先进的性能和它在提高神经嵌入传播嵌入质量的有效性。
NGCF模型架构图:
用户u1(左)和项目i4(右)的表示通过多个嵌入传播层来细化(箭头线表示信息流)
框架组成:
(1)嵌入层:提供用户嵌入和项目嵌入并对其进行初始化;
(2)多个嵌入传播层:通过注入高阶连接关系来细化嵌入;
(3)预测层:该层聚合来自不同传播层的精细化嵌入,并输出用户-项目对相似的分数。
嵌入传播层的更多形式(刚刚只讲了一层):
1、高阶传播:堆叠更多的嵌入传播层来探索高阶连通性信息。(递归地公式化)
2、矩阵形式的传播规则:
图拉普拉斯矩阵
优化成对的BPR损失:
其中O={(u,I,j)|(u,i)∈ R+,(u,j)∈R- }表示成对训练数据,R+表示观察到的相互作用,R-为未观察到的相互作用;
σ()是sigmoid函数θ= { E,{W(l) 1,W(l) 2}L l=1}表示所有可训练的模型参数,
λ控制L2正则化强度以防止过拟合。
采用小批量Adam 来优化预测模型和更新模型参数。
特别地,对于一批随机采样的三元组(u,I,j)∈ O,我们在L步传播后建立它们的表示[e(0),,e(L)],然后利用损失函数的梯度更新模型参数。
消息和节点丢失:
尽管深度学习模型具有很强的表示能力,但它们通常存在过度拟合的问题。为了解决这种问题,dropout是一种有效的解决办法。以防止神经网络过拟合。NGCF采用两种丢弃技术:消息丢弃和节点丢弃。消息丢弃:具体来说,我们以概率p1丢弃等式(6)中传播的消息。因此,在第l传播层中,只有部分消息有助于细化表示。节点丢弃:随机阻塞一个特定的节点并丢弃它所有的输出消息。对于第l传播层,我们随机丢弃拉普拉斯矩阵的(M+N)个p2节点,其中p2是丢弃率。注意:dropout只适用于训练,在测试期间不可使用。作用:消息丢失使表示在用户和项目之间存在或不存在单个连接时更加稳健,节点丢失侧重于减少特定用户或项目的影响。
3.与其它模型的比较
NGCF相比于其他模型具有以下优势:
4.实验采用的数据集
在三个基准数据集上进行了实验:Gowalla、yelp 2018 * 2和Amazon-book,这些数据集是公共可访问的,并且在域、大小和稀疏性方面各不相同。
Gowalla:这是从Gowalla获得的签到数据集,用户通过签到共享他们的位置。为了确保数据集的质量,我们使用10核心设置,即保留至少有十次交互的用户和项目。
Yelp2018:该数据集采用了Yelp挑战赛2018版的数据。其中,像餐馆和酒吧这样的地方企业被视为项目。为了确保数据质量,我们使用相同的10核设置。
Amazon-book: Amazon-review是一个广泛用于产品推荐的数据集[9]。我们从收藏品中挑选亚马逊书籍。同样,我们使用十核设置来确保每个用户和项目至少有十次交互。
对于每个数据集,我们随机选择每个用户80%的历史交互构成训练集,剩余的作为测试集。从训练集中,我们随机选择10%的交互作为验证集来调整超参数。
5.实验结果
使用NGCD分别和MF、NeuMF、CMN、HOP-Rec、PinSage和GC-MC进行比较,以验证作者猜想。
NGCF始终在所有数据集上产生最佳性能。通过堆叠多个嵌入传播层,NGCF能够以显式方式探索高阶连通性,而CMN和GC-MC仅利用一阶邻居来指导表示学习。这验证了在嵌入函数中捕获协作信号的重要性。此外,与PinSage相比,NGCF考虑多粒度表示来推断用户偏好,而PinSage仅使用最后一层的输出。这表明不同的传播层在表示中编码不同的信息。对HOP-Rec的改进表明嵌入函数中的显式编码CF可以获得更好的表示。
不同数据集上用户组稀疏性分布的性能比较。其中,背景直方图表示每个组中涉及的用户数量,线条表示w.r.t. ndcg@20的性能。
NGCF和HOP-Rec在所有用户组上的表现始终优于所有其他基准。它表明,利用高阶连通性极大地促进了非活跃用户的表示学习,因为协作信号可以被有效地捕获。因此,解决推荐系统中的稀疏性问题是有希望的。
NGCF不同层的结果,在三四层时,表现出较好的结果
node dropout提供了更好的性能。一个原因可能是,丢弃来自特定用户和项目的所有传出消息使得表示不仅不受特定边缘的影响,而且不受节点的影响。因此,节点丢失比消息丢失更有效。意味着node dropout可以成为解决图神经网络过拟合的有效策略。
每轮迭代,NGCF表现出比MF更快的收敛,因为当在小批量中优化交互对时,涉及间接连接的用户和项目。这样的观察证明了NGCF更好的模型容量和在嵌入空间中执行嵌入传播的有效性。
从MF和NGCF-3导出的经验t-SNE变换表示的可视化。选取了6个用户,每个星星代表一个来自Gowalla数据集的用户,而具有相同颜色的点表示相关项目。(观察蓝色和黄色的聚合程度)
补充:
t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种用于降维和可视化高维数据的机器学习算法。它是一种非线性降维技术,通常用于将高维数据映射到低维空间,以便进行可视化或特征提取。t-SNE的主要目标是保留数据点之间的相似性关系,尤其是在高维空间中难以捕捉到的相对距离信息。