NGCF: 神经图协同滤波
作者: 纪厚业 北京邮电大学
知乎专栏对公式支持较好, 见 https://zhuanlan.zhihu.com/c_1158788280744173568
个人公众号 图与推荐
本文发表在信息检索顶会SIGIR2019。本文的slide(http://staff.ustc.edu.cn/~hexn/slides/sigir19-ngcf-slides.pdf)和代码(https://github.com/xiangwang1223/neural_graph_collaborative_filtering )。
1.引言.
协同过滤作为一种经典的推荐算法在推荐领域有举足轻重的地位。协同过滤(collaborative filtering)的基本假设是相似的用户会对物品展现出相似的偏好。总的来说,协同过滤模型主要包含两个关键部分:(1)embedding,即如何将user和item转化为向量表示;(2)interaction modeling,即如何基于user和item的表示来重建它们的历史交互。传统协同过滤算法(如经典的矩阵分解和神经矩阵分解)本质还是给user和item初始化一个embedding,然后利用交互信息来优化模型。它们并没有把交互信息编码进embedding中,所以这些embedding都是次优的。
直观的理解,如果能将user-item的交互信息编码进embedding中,将提升embedding的表示能力进而提升模型的预测能力。本文的主要创新点在于利用二部图神经网络将User-Item的历史交互信息编码进Embedding进而提升推荐效果。更重要的是,本文显式的考虑User-Item之间的高阶连接性来进一步提升embedding的表示能力。
图1展示了一个user-item的二部图及u1的高阶连接性。u1的高阶连接性表示u1通过长度大于1的路径连接到的节点。例如,u1通过长度l=2的路径连接到u2和u3,这代表u1的2阶连接性;u1通过长度l=3的路径连接到i4,i5,这代表u1的3阶连接性。需要注意的是,虽然i4和i5都是u1的3阶邻居,但是i4可以通过更多的路径连接到u1,所以i4与u1的相似度更高。
2.模型
模型主要分为3个部分:(1)Embedding Layer:将user和item的ID映射为向量表示;(2)Embedding Propagation Layers:将初始的user和item表示基于图神经网络来更新;(3)Prediction: 基于更新后的user和item表示来进行预测。模型架构图见Figure 2.
2.1Embedding Layer
这里对User和Item分别初始化相应的Embedding Matrix,然后通过User或者Item的ID进行Embedding Lookup将它们映射到一个向量表示。
注意,这里初始化的Embedding可以认为是0阶表示,即
2.2Embedding Propagation Layers
受GNN的message-passing架构的启发,NGCF针对User-Item二部交互图设计了Embedding Propagation来学习User和Item的表示。这里作者首先详细的描述了一阶传播,然后泛化到高阶传播。
一阶传播主要包含:消息构建和消息聚合。给定(u,i),从i传播到u的消息可以定义为:
其中,都是可学习的参数矩阵,和分别代表u和i的度。这里可以理解为归一化系数。
基于上面构建的消息,下一步就是聚合消息来更新节点表示:
其中,代表经过1次聚合之后的节点表示。因为单层的消息聚合只能聚合1阶邻居的信息,所以这里实际代表了u的一阶表示。需要注意的是,这里除了聚合邻居的信息,更重要的是考虑节点自身的信息。
高阶传播实际就是将上述的一阶传播堆叠多层。这样经过l次聚合,每个节点都会融合其l阶邻居的信息,也就得到了节点的l阶表示。
Figure 3 清晰的展示了如何在高阶传播中融合高阶邻居的信息。
上面的传播过程也可以写成矩阵的形式,这样在代码实现的时候可以高效的对节点Embedding进行更新。
其中,是l阶的user和item的表示,是user-item交互矩阵,是对角度矩阵。
2.3Model Prediction
模型的预测非常简单,将L阶的节点表示分别拼接起来作为最终的节点表示,然后通过内积进行预测。
实际这里采用了类似 18ICML Representation Learning on Graphs with Jumping Knowledge Networks的做法来防止GNN中的过平滑问题。GNN的过平滑问题是指,随着GNN层数增加,GNN所学习的Embedding变得没有区分度。过平滑问题与本文要捕获的高阶连接性有一定的冲突,所以这里需要在克服过平滑问题。
最终的损失函数就是经典的BPR损失函数:
3.实验
本文在Gowalla、Yelp2018和Amazon-Book上进行了大量实验来回答以下3个问题:
1.和state-of-the-art的方法相比,NGCF的效果如何?
2.模型对于超参数(如模型层数,dropout)的敏感性。
3.高阶连接性对于模型的影响。
本文的baseline主要可以分为两大类:非图神经网络的推荐算法(如MF和CMN)和基于图神经网络的推荐算法(PinSage和GC-MC)。实验效果如Table 2所示:
可以看出,本文所提出的NGCF优势很明显,尤其是在recall上的提升均超过10%。同时,作者还对数据进行了稀疏化并进一步验证来说明NGCF来稀疏数据上的优势。
从Figure 4可以看出,NGCF在数据稀疏度较高的时候有明显优势,随着稀疏度的下降,NGCF的优势越来越小甚至被baseline超过了。
另外,作者验证了模型层数、卷积形式和dropout对NGCF的影响,具体见Table 3、Table 4 和 Figure 5。
最后,作者研究了高阶连接性对NGCF的影响,如Figure 6所示。
注意这里MF可以看做是NGCF-0。可以看出,随着阶数的增加,相同颜色的节点更好的聚集在一起。也就是说,高阶连接性确实有助于学习User和Item的Embedding。
4.结论
本文提出了基于图神经网络的协同过滤算法NGCF,它可以显式的将User-Item的高阶交互编码进Embedding中来提升Embedding的表示能力进而提升整个推荐效果。NGCF的关键就在于Embedding Propagation Layer来学习User和Item的Embedding,后面的预测部分只是简单的内积。可以说,NGCF较好的解决了协同过滤算法的第一个核心问题。另外,本文的Embedding Propagation实际上没有考虑邻居的重要性,如果可以像Graph Attention Network在传播聚合过程中考虑邻居重要性的差异,NGCF的效果应该可以进一步提升。
作者介绍:
纪厚业,北京邮电大学计算机科学与技术专业博士研究生。主要研究方向是异质图神经网络,异质图表示学习和推荐系统。