研究目标
学习user和item的向量表示是推荐系统的核心,但在从早期的矩阵分解,到现在的深度学习,都是利用已经存在的特征来进行embedding表示。本文认为,隐藏在user-item之间的编码信息无法在embedding编码的过程中表示出来,因此,由此产生的嵌入可能不足以捕获协作过滤效果。于是,提出了一个新的推荐框架Neural Graph Collaborative Filtering (NGCF) ,它可以在图结构中学习嵌入表示,让模型可以表达高维特征,显示地将协同过滤信号放入到嵌入过程中。
模型简介
假设用户为u,项目为i,我们可以画出user-item的二部图,同时根据二部图可以将u1的高维连接表示出来,如下图所示。
对于整体的模型框架有三个主要的部分:
- embedding layer:提供初始的user embedding 和 item embedding
- multiple embedding propagation layers:通过注入高阶连接关系来细化嵌入
- the prediction layer:通过整合多层嵌入来预测(u,i)
下面我们依次讲解这三个主要部分。
embedding layer
E是user和item的初始embedding状态,维度为d。在传统的推荐系统中,比如矩阵分解,它会直接将embedding输入到交互层,并最终得到用户评分。但是在NCCF框架中,这仅仅是为下面的embedding propagation layer做准备。
embedding propagation layer
我们首先考虑单层的embedding propagation layer
first-order propagation
其中,$m_{u<-i}$表示消息从项目i到用户u,$f$表示编码函数,它的输入为embedding $e_i$和embedding $e_u$,以及边(u,i)的衰减因子$p_{ui}$
其中函数$f$的公式如下:
$W_1$和$W_2$是训练出来的权重矩阵,维度为d*d',$1/sqrt(|N_u||N_i|)$就是衰减因子$p_{ui}$。
通过上面的式子就可以进行消息传递,但是对于一个节点u,它连接着的结点i不仅仅只有一个,其他的节点也要将消息传递给节点u,最后节点u要将所有传递给它的消息进行合并。
其中$N_u$是节点u连接的其他节点。
high-order propagetion
利用一阶连通性可以增强表示,所以作者通过叠加更多的嵌入传播层来探索高阶连通性信息。这种高阶连通性对于协同信号来估计用户和项目之间的关联评分是至关重要的。
当层数增加后,消息传递公式可以如下表示:
消息合并的公式如下表示:
其中右上角的l表示的是第l层。
该图表示的就是3层的embedding propagation layer,我们可以清楚的看到,在嵌入传播过程中可以捕捉到$u1 <- i2 <- u2 <- i4$等协同信号。
以上,我们一直对单个节点的传播嵌入进行分析,一个节点的embedding是一个向量,那么一个图的embedding就是将所有节点的embedding放到一起形成一个矩阵,也是一个图的原始特征,我们用$E$来表示,用矩阵表示传播规则的公式如下所示:
其中,$\cal{L}$是拉普拉斯矩阵,A是这个图的邻接矩阵。
prediction layer
经过L层的传播之后,我们得到了L个关于用户u的向量表达$e_u^{1},...,e_u^{L}$,由于在不同层中获得的向量表示,是通过不同连接传递的消息,所以它们在反映用户偏好方面有不同的贡献,所以我们将这些向量表示串联起来,得到用户u的最终表示.
最后,我们进行内积来估计用户对目标产品的偏好
NGCF框架的整体结构如下所示
NGCF框架应用于SVD++
SVD++可以看作是没有高阶传播层的NGCF的一个特例,也就是说仅有一层propagation layer,在传输层中,我们禁用了转换矩阵和非线性激活函数,公式最终如下所示
其中$p_{ui'}$等于$1/sqrt(|N_{u}|)$以及$p_{iu'}$等于0
实验
作者的实验从以几个方面来展开
- RQ1:与最先进的CF方法相比,NGCF的性能如何?
- RQ2:不同的超参数设置(如层深度、嵌入传播层、层聚合机制、dropout)如何影响NGCF?
- RQ3:表示如何从高阶连接中获益?
数据集
作者采用了Gowalla, Yelp2018, Amazon-book 这三个数据集
baseline
- MF
- MeuMF
- CMN
- HOP-Rec
- PinSage
- GC-MC
性能比较(RQ1)
整体比较
- MF的性能在三个数据集上都很差,这表明普通的矩阵相乘不足以捕获更复杂的关系.而NeuMF在所有的情况下都是优于MF的,这体现了非线性建模的重要性.然而,MF和NeuMF都没有明确地对嵌入学习过程中的连通性建模,这很容易导致次优表示。
- MF,NeuMF与GC-MC相比,证明了引入一阶邻域可以改善表示学习,但在Yelp 2018不如NeuMF,可能是GC-MC未能充分挖掘用户与物品之间的非线性特征交互
- 在大多数情况下,CMN通常比GC-MC具有更好的性能。这种改进可能归功于神经注意机制,它可以为每个相邻用户分配不同的注意力权重,而不是像GC-MC中使用的相同的注意力权重
- PinSage在Gowalla和AmazonBook中表现略逊于CMN,而在Yelp2018中表现要好得多,HOP-Rec通常可以实现显著的改进,因为PinSage在嵌入函数中引入了高阶连通性,HOP-Rec利用高阶邻居来丰富训练数据,而CMN只考虑相似的用户。因此,它表明了建模高阶连通性或邻域的积极作用。
- NGCF在三个数据集上始终保持着最好的性能,这是因为通过叠加embedding propagation layer NGCF能够显示的探索高阶连通性,而CMN和GC-MC只利用一阶邻域来指导表示学习。
不同稀疏性下的性能比较
稀疏性问题通常限制了推荐系统性能,作者为了验证NGCF能否缓解稀疏性问题,选取了4组不同稀疏性的user进行实验,他们的交互数量分别为<24,<50,<117,<1014
- NGCF和HOP-Rec始终高于其他的方法,这表明利用高阶连通性可以有效地捕获协同信号,极大地促进非活动用户的表示学习。
NGCF的性能研究(RQ2)
layer的数量
作者改变了embedding propagation layer的数量
- 增加NGCF的深度可以提高推荐性能
- 在NGCF-3上进一步叠加传播层时,我们发现NGCF-4会导致Yelp2018数据集过度拟合。这可能是由于过深的网络结构可能会给表示学习带来噪音。同时说明三层就足以捕获CF信号
- 即使是最少的层数,也是优于其他方法,表明高阶连通性的显式建模可以极大的提高推荐性能
嵌入传播层和层聚合机制的影响
为了探究图卷积的影响,我们考虑了NGCF-1以及它的变种.如下图所示
- NGCF-1始终优于所有变种。我们将这些改进归功于表示交互,由于所有的变量只考虑线性变换,从而验证了嵌入传播函数的合理性和有效性。
- 在大多数情况下,NGCF-1SVD++表现不如NGCF-1PinSage和NGCF-1GC-MC。它说明了节点本身传递消息和非线性转换的重要性
- 通过对表2和表4的分析,我们发现NGCF-1PinSage和NGCF-1GC-MC在将所有层的输出连接在一起时,其性能分别优于PinSage和GC-MC。
dropout影响
高阶连通性的影响(RQ3)
作者从Gowalla数据集中随机选择了6个用户及其相关条目,观察它们的表现如何影响NGCF的深度。左右两个图分别为MF和NGCF-3
- 我们可以看到NGCF-3表现出了明显的聚类
- 分析相同的用户,比如黄色用户,当叠加三个嵌入传播层时,它们的历史项的嵌入更接近,这定性的验证了NGCF的有效性,