【论文笔记】Neural Graph Collaborative Filtering --- SIGIR2019

本文提出了一个基于图结构的新型推荐系统模型NGCF。它通过在用户-物品图中建立高阶连通性表达模型,把协同信号显式的注入了用户(物品)的嵌入过程中。

 

摘要

学习向量表示(embeddings),用户和项目的嵌入性是现代推荐系统的核心。从最初的矩阵分解到最近出现的基于深度学习的方法,都是从先前存在的特征来表示用户(物品)的嵌入。这些方法的一个固有缺点是协同信号(collaborative signal),它在用户和物品的交互中式隐藏的,在嵌入过程中没有被编码。这样,最后的嵌入可能不足够获取协同过滤效果。

本文中,我们提出把用户-物品交互交互作用整合进嵌入过程中。提出了一种新的推荐框架Neural Graph Collaborative Filtering(NGCF),它利用用户-物品的图结构来传播嵌入。这使得在用户项图中建立高阶连通性(high-order connectivity)的表达模型,有效地将协作信号以显式的方式注入到嵌入过程中。

关键词

协同过滤、推荐、高阶连通性、嵌入传播、图神经网络

1 简介

个性化推荐无处不在,已经被应用于很多领域。推荐的核心是根据用户的过去交互行为估计用户对一个物品的可能性。协同过滤解决此问题是假设相似的用户将会对物品产生相同的行为。为了实现假设,一个简单的范式是参数化用户和物品宠儿重建历史交互,并且根据参数预测用户的喜好。

CF两个关键的部分:

1.embedding,它把用户和物品转成向量表示

2.交互模型,它根据embeddings重建用户-物品历史交互矩阵

有很多方法都被用于协同过滤,但是它们都没有令人满意的embeddings。主要原因是embedding方程缺少关键协同信号的显式编码。这个编码隐藏在用户-物品交互关系中,揭示了用户之间的相似性。具体的说,现有的很多方法都是根据特征来建立embeddings方程,而没有考虑用户-物品交互关系。所以我们把用户-物品交互关系整合进了embedding方程。但是,实际生活中用户-物品交互关系是非常大的,很难从中捕获协同信号,所以,我们利用用户-物品交互关系的高阶连通性,一种在交互图结构中编码协同信号的神经网络方式,来解决问题。

例子:

揭示了u_{1}可能和u_{3}类似,同时u_{1}可能对i_{4}更感兴趣,相比于i_{5}

当前工作:

提出了一种嵌入传播层(embedding propagation layer),它能通过交互物品的嵌入来聚合用户的嵌入。通过叠加多个这种层,embeddings可以在高阶联通上捕获协同信号。例如u_{1}u_{2}类似,所以可以把i_{4}也推荐给u_{1}

本文主要贡献:

1.我们强调了在基于模型的CF方法的嵌入函数中显式地利用协同信号的重要性

2.提出了NGCF,一种新的基于图神经网络的推荐框架,它利用高阶连通性传播embedding来把协同信号编码。

3.在三个大数据集上做了实证研究,证明了我们提出的模型是最好的模型,并且它提升了embeddings的质量。

 

2 方法论

模型由三部分组成:

1.嵌入层提供用户和物品的嵌入

2.多个嵌入传播层通过高阶连通性改善嵌入表示

3.预测层聚合精炼后从不同的层传来的embeddings,最后给出得分

模型结构如下:

2.1 嵌入层

把用户和物品表示成e_{u}\in R^{d}(e_{i}\in R^{d}),d是嵌入大小。矩阵形式如下:

传统的MF直接进行点乘,但是我们把我们把嵌入细化从而把协同信号注入到embeddings中。

 

2.2 嵌入传播层

2.2.1一阶传播

简单来说,两个人对同一物品有交互,说明它们有相似性。我们基于此观点建立了embedding传播,这个过程有两个重要步骤:

消息构建:

对于一对用户-物品(u,i),从iu的消息定义为:

e_{i}e_{u}是输入,p_{ui}是系统用于控制每次传播的衰变

本文中,完整方程为:

W_{1},W_{2}\in R^{​{d}'*d} 是可训练的权重用于提取有效信息。{d}'是转换后的大小。与GCN网络只考虑e_{i}不同,这里还要考虑e_{i}e_{u},这使得消息要考虑iu之间的密切关系,可以增强模型的表现能力,还可以增强推荐系统的能力。

和GCN一样,设置p_{ui}为图拉普拉斯范数1/\sqrt{\left | N_{u} \right |\left | N_{i} \right |}N_{i}N_{u}分别表示iu的一跳邻居。从表示学习的角度来看,p_{ui}表示历史物品对用户喜好贡献的大小。从消息传递的角度来看,p_{ui}表示消息随着消息传递路径的衰减程度。

消息聚合:

我们从u的邻居聚合消息来获取u的精炼表示,定义聚合操作为:

e_{u}^{(1)}表示用户u在第一层嵌入传播层之后的表示

同时考虑自连接:

这样可以保留一些原始特征的信息。

类似的,我们同样可以从物品i的邻居和物品i获取物品i的表示e_{i}^{(1)}

总之,嵌入传播层明确的利用了一阶相邻信息。

2.2.2高阶传播

有了一阶传播,我们可以堆叠多层来获得更高层次的传播来发掘高阶连通信息。

堆叠l个嵌入传播层和可以从他的l跳邻居中获得消息。在第l层,用户u可以的表示为:

W_{1}^{(l)}W_{2}^{(l)}\in \mathbb{R}^{d_{l}*d_{l+1}}是可训练变换矩阵。

如下图所示,协同信号u_{1}\leftarrow i_{2}\leftarrow u_{2}\leftarrow i_{4}可以在此过程中被捕获,从i_{4}传播的信号最终被e_{u1}^{(3)}所编码:

所以,堆叠多层的嵌入传播层可以把且同信号注入表示学习过程。

矩阵形式的传播规则

E^{(l)}\in \mathbb{R}^{(N+M)*d_{l}}是k层嵌入传播层之后的用户、物品的表示结果。

\zeta表示用户-物品图的拉普拉斯矩阵:

R\in R^{N*M}表示用户-物品交互矩阵。A表示邻接矩阵D为对角度矩阵。\zeta _{ui}=1/\sqrt{\left | N_{u} \right |\left | N_{i} \right |},它等于等式3中的p_{ui}

通过实现矩阵形式传播规则,我们可以同时更新所有的用户、物品表示。

 

2.3模型预测

在传递了L层之后,最中每一层的用户u表示为\left \{ e_{u}^{(1)},...,e_{u}^{(L)} \right \},最终的用户和物品表示为:

最后的分数预测依旧使用点积:

基于神经网络的交互方程将在未来开发。

2.4优化

loss函数选择pairwise BPR loss

O=\left \{ (u,i,j)|(u,i)\in R^{+},(u,j)\in R^{-} \right \},R^{+}表示观测到了交互,R^{-}表示没有观测到交互,\sigma ()为sigmoid函数,\Theta =\left \{ E,\left \{ W_{1}^{(L)},W_{2}^{(L)} \right \}_{l=1}^{L} \right \}是所有的可训练参数,\lambda控制L2正则化

 

2.4.1 模型大小

参数为2Ld_{l}d_{l-1},模型参数的额外成本可以忽略不记。总之,NGCF使用非常少的传统模型参数来实现高阶连接建模。

 

2.4.2消息和节点丢失

虽然深度学习模型有很强的表示能力,容易过拟合。防止过拟合,采用了两个dropout:消息丢失和节点丢失

1.消息丢失随机丢弃输出消息,概率为p_{1}

2.随机去掉节点还有它的所有消息传递,对于第l传递层,随机丢弃(M+N)p_{2},p2为drop概率

消息丢失使得表示对于用户和项目之间存在或不存在单一连接具有更强的鲁棒性,节点丢失集中于减少特定用户或项目的影响。

2.5讨论

2.5.1NGCF对SVD++的推广

SVD++可以看成NGCF的没有高阶传播层的特殊案例。

2.5.2时间复杂度分析

总的时间复杂度为:

3相关工作

3.1基于模型的CF方法

3.2基于图的CF方法

3.3图卷积网络

 

4实验

所用数据集:

 

模型对比:

稀疏度对模型的影响,每一组有相同的交互数量,每组的单个用户交互数分别少于横轴数量:

 

embedding传播层对结果的影响:

 

NGCF变种对模型影响:

dropout对模型的影响:

epoch对性能影响:

 

模型层数的降维表示对比:

 

5 结论和未来工作

本文中,我们将协同信号显式的注入基于模型的嵌入函数中,我们把它叫做NGCF,它使用用户-物品交互图的高阶连通性来达成目的。NGCF的关键是提出了一种新的层来促使用户和物品的交互来捕获两者之间的协同信号。

在未来,希望把attention机制加入来学习邻居的不同重要程度,这将提高模型的泛化能力和可解释性。

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值