【论文笔记】Neural Graph Collaborative Filtering

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

 

摘要

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

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

关键词

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

1 简介

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

CF两个关键的部分:

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

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

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

例子:

【论文笔记】Neural Graph Collaborative Filtering

揭示了u1可能和u3类似,同时u1可能对i4更感兴趣(对比i5)

当前工作:

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

本文主要贡献:

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

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

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

 

2 方法论

模型由三部分组成:

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

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

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

模型结构如下:

【论文笔记】Neural Graph Collaborative Filtering

2.1 嵌入层

把用户和物品表示成【论文笔记】Neural Graph Collaborative Filtering(【论文笔记】Neural Graph Collaborative Filtering),d是嵌入大小。矩阵形式如下:

【论文笔记】Neural Graph Collaborative Filtering

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

 

2.2 嵌入传播层

2.2.1一阶传播

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

消息构建:

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

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering【论文笔记】Neural Graph Collaborative Filtering是输入,【论文笔记】Neural Graph Collaborative Filtering是系统用于控制每次传播的衰变

本文中,完整方程为:

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering 是可训练的权重用于提取有效信息。【论文笔记】Neural Graph Collaborative Filtering是转换后的大小。与GCN网络只考虑【论文笔记】Neural Graph Collaborative Filtering不同,这里还要考虑【论文笔记】Neural Graph Collaborative Filtering【论文笔记】Neural Graph Collaborative Filtering,这使得消息要考虑i和u之间的密切关系,可以增强模型的表现能力,还可以增强推荐系统的能力。

和GCN一样,设置【论文笔记】Neural Graph Collaborative Filtering【论文笔记】Neural Graph Collaborative Filtering【论文笔记】Neural Graph Collaborative Filtering【论文笔记】Neural Graph Collaborative Filtering分别表示i和u的一跳邻居。【论文笔记】Neural Graph Collaborative Filtering表示历史物品对用户喜好贡献的大小,同时表示消息随着路径的衰减。

消息聚合:

定义聚合操作为:

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering表示用户u在第一层嵌入传播层之后的表示

同时考虑自连接:

【论文笔记】Neural Graph Collaborative Filtering

这样可以保留初始特征的信息

2.2.2高阶传播

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

堆叠【论文笔记】Neural Graph Collaborative Filtering个嵌入传播层和可以从他的【论文笔记】Neural Graph Collaborative Filtering跳邻居中获得消息。在第【论文笔记】Neural Graph Collaborative Filtering层,用户【论文笔记】Neural Graph Collaborative Filtering可以的表示为:

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering

 

如下图所示,协同信号【论文笔记】Neural Graph Collaborative Filtering可以在此过程中被捕获,从【论文笔记】Neural Graph Collaborative Filtering传播的信号最终被【论文笔记】Neural Graph Collaborative Filtering所编码:

【论文笔记】Neural Graph Collaborative Filtering

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

矩阵形式的传播规则

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering

2.3模型预测

在传递了【论文笔记】Neural Graph Collaborative Filtering层之后,最中用户【论文笔记】Neural Graph Collaborative Filtering的表示为【论文笔记】Neural Graph Collaborative Filtering,最终的用户和物品表示为:

【论文笔记】Neural Graph Collaborative Filtering

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

【论文笔记】Neural Graph Collaborative Filtering

 

2.4优化

loss函数选择pairwise BPR loss

【论文笔记】Neural Graph Collaborative Filtering

【论文笔记】Neural Graph Collaborative Filtering,【论文笔记】Neural Graph Collaborative Filtering表示观测到了交互,【论文笔记】Neural Graph Collaborative Filtering表示没有观测到交互,【论文笔记】Neural Graph Collaborative Filtering为sigmoid函数,【论文笔记】Neural Graph Collaborative Filtering是所有的可训练参数,【论文笔记】Neural Graph Collaborative Filtering控制L2正则化

2.4.1 模型大小

参数为【论文笔记】Neural Graph Collaborative Filtering,模型参数的额外成本可以忽略不记。

2.4.2消息和节点丢失

防止过拟合,采用了两个dropout:消息丢失和节点丢失

1.消息丢失随机丢弃输出消息,概率为【论文笔记】Neural Graph Collaborative Filtering

2.随机去掉节点还有它的所有消息传递,对于第l传递层,随机丢弃【论文笔记】Neural Graph Collaborative Filtering,p2为drop概率

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

2.5讨论

2.5.1

2.5.2时间复杂度分析

总的时间复杂度为:

【论文笔记】Neural Graph Collaborative Filtering

3相关工作

4实验

所用数据集:

【论文笔记】Neural Graph Collaborative Filtering

 

模型对比:

【论文笔记】Neural Graph Collaborative Filtering

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

【论文笔记】Neural Graph Collaborative Filtering

 

embedding传播层对结果的影响:

 

【论文笔记】Neural Graph Collaborative Filtering

NGCF变种对模型影响:

【论文笔记】Neural Graph Collaborative Filtering

dropout对模型的影响:

【论文笔记】Neural Graph Collaborative Filtering

epoch对性能影响:

【论文笔记】Neural Graph Collaborative Filtering

 

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

【论文笔记】Neural Graph Collaborative Filtering

 

5 结论和未来工作

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

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