MENU

Neural Graph Collaborative Filtering

February 21, 2022 • Read: 692 • GNN阅读设置

论文链接:https://arxiv.org/abs/1905.08108

代码链接:https://github.com/xiangwang1223/neural_graph_collaborative_filtering

Abstract

现代推荐系统的核心是学习user、item向量的embeddings,从早期的矩阵分解到现在的深度学习都是利用user或item已有的特征来获取embeddings。但是,隐藏在user-item间的信息无法在embedding中体现。因此本文提出NGCF,可以学习user-item的高维表示,显式的将协同信号注入到嵌入过程中。

NGCF

整体模型架构包含三部分

  • an embedding layer:提供初始的user、item的embeddings
  • multiple embedding propagation layers:注入高阶连通性来细化嵌入
  • the predict layer:聚合不同传播层的embedding信息,输出user-item pair score

Embedding Layer

image-20220212194227063

其中$e_u\in R^d,e_i\in R^d,d$表示嵌入维度。传统的推荐系统如矩阵分解或者神经协同过滤,会直接将embedding送入交互层得到评分,但是在NGCF中,这只是为细化嵌入,为multiple embedding propagation layers做准备,这将得到更好的推荐嵌入。

Embedding Propagation Layers

首先考虑单层Embedding Propagation Layer

First-order Propagation

关联的items也表现了users的偏好,因此消费一件物品的user也可以作为item的特征,并用于计算两个items间的协同相似度。基于此,在相互连接的users和items之间可以执行embedding propagation,该流程主要包含两个主要操作,message construction和messgae aggregation。

Message Construction

$$ m_{u\leftarrow i}=f(e_i,e_u,p_{ui}) $$

对于相互连接的user-item对(u,i),i到u的message定义如上,f是编码函数,其输入为 user embedding、item embedding以及边(u,i)的衰减因子$p_{ui}$。

当前论文定义f如下

image-20220212200643475

$W_1,W_2$是可训练的权重矩阵,维度是$d'\times d$,其中$d'$是变换大小。区别图卷积神经网络只考虑$e_i$的贡献,在此我们将ei和eu的信息交互编码,因此得到的信息会依赖于ei和eu之间的关系,例如从相似的items中会传递更多信息,这样不仅能提供模型的表示能力,还能提高推荐性能。$\frac{1}{\sqrt{|N_u||N_i|}}$就是衰减因子$p_{ui}$。其中$N_u,N_i$表示u,i第一跳邻居。$p_ui$传播的信息会随着路径长度增加而衰减。

Message Aggregation

image-20220212201632585

user节点聚合了所有相邻item节点的message以及其自身的message,经过LeakyRelu得到user节点的第一层embedding。

High-order Propagation

通过扩充一阶传播,可以叠加更多的embedding propagation层得到高阶信息。高阶连通性对于编码协同信号来估计user,item间的关联评分至关重要。

image-20220212202046859

l表示l层,层数增加后,传播的消息定义如下

image-20220212202136680

Propagation Rule in Matrix Form

上述分析了单个节点的单阶和高阶传播,而一个graph的embedding就是所有节点的embedding组合的矩阵,表示如下

image-20220212202735460

其中的归一化拉普拉斯矩阵表示如下,A为邻接矩阵

image-20220212202857115

Predict Layer

通过L层的传播后,我们得到了L个关于user的向量表示,由于在不同层中的表示是通过不同连接传递的信息,其在反映用户偏好方面有不同的共享,因此将其连接,得到user的最终embedding。item也一样。

image-20220212203319129

其中$||$是concatenation操作,除此之外,也可以采用其它的aggregators,如加权平均、LSTM。使用concatenation比较简单,且不需要额外训练参数。

最后,通过内积来估计user对目标item的偏好

image-20220212203746431

Optimization

Model Size:模型需要训练的参数只有$2Ld_ld_{l-1}$个,相比MF方法少很多,一般L小于5,$d_l$是模型的embedding size,测试过程中设64。

Message and Node Dropout:为了防止过拟合,存在message dropout和node dropout。message dropout为p1概率drop$m_{u\leftarrow i}$传播的message。node dropout为在第i个propagation layer,随机drop拉普拉斯矩阵中$(M+N)p_2$个节点

Discussions

NGCF应用于SVD++:SVD++可以视为高阶传播层的NGCF的一个特例,即只有一层propagation layer,不用转换矩阵和激活函数后公式如下:

image-20220213085514520

其中$p_{ui'}=\frac{1}{\sqrt{|N_u|}},p_{iu'}=0$

Experiments

DataSet

Gowalla,Yelp2018,Amazon-book,均采用10-core setting,即user、item间至少存在10次交互。80%作为训练集,其余测试集,并从训练集中选择10%作为验证集来调整超参。

BaseLines

MF、NeuMF、CMN、HOP-Rec、PinSage、GC-MC

Performance Comparison (RQ1)

image-20220213093405458

  • MF在三个数据集上效果较差,这表明普通矩阵相乘难以捕获更复杂的关系,NeuMF在所有情况下都优于MF,这表明了非线性建模的重要性。但是这两者都没有对嵌入学习过程中的连通性建模,这容易导致次优表示。
  • 对比MF、NeuMF和GC-MC,证明了引入一阶邻居可以提高表示能力,但是在Yelp2018上GC-MC性能不如NeuMF,可能是GC-MC未能充分挖掘user、item间的非线性交互特征。
  • 在大多数情况下,CMN的性能通常优于GC-MC。这可能与神经网络的注意力机制有关,它可以为每个相邻用户分配不同的权重,而不像GC-MC使用相同权重。
  • 对比PinSage、CMN、HOP-Rec得到结论,对高阶连通性或者领域进行建模有积极作用。
  • 在所有数据集上,NGCF都最好的效果,因为CMN和GC-MC是利用一阶领域来指导学习,而通过叠加embedding propagation layer,NGCF则能探索高阶连通性。

Study of NGCF (RQ2)

Layer层数的影响:

image-20220213094037030

  • 增加NGCF深度利于推荐性能。
  • NGCF-4咋Yelp2018上过拟合。这可能是因为过深的网络会给表示学习带来噪声。同时说明3层足以捕获CF信号。
  • 改变层数时NGCF性能始终好于其它方法,表明显式建模高阶连通性可以极大提供推荐性能。

Embedding Propagation Layer and Layer Aggregation Mechanism的影响:

image-20220213094149188

dropout的影响:

image-20220213094225982

Effect of High-order Connectivity (RQ3)

image-20220213094608041

从gowalla数据集中选取了6个user,观察其表现如何影响NGCF深度,对比MF和NGCF-3,可以发现

  • NGCF-3存在明显聚类
  • 分析相同user,当叠加三个embedding propagation layer时,历史项的嵌入更加接近,这验证了NGCF的有效性。

总结

  • 关于predict层采用concatenation操作,或者可以尝试其它操作。
  • 关于predict层中,由于当前论文主要强调embedding函数的学习,因此只使用了简单的内积函数,可以考虑使用基于神经网络的交互函数。