当前位置: 代码迷 >> 综合 >> Neural Graph Collaborative Filtering
  详细解决方案

Neural Graph Collaborative Filtering

热度:9   发布时间:2023-12-06 04:13:05.0

目录

      • 1 INTRODUCTION
      • 2 METHODOLOGY
        • 2.1 Embedding Layer
        • 2.2 Embedding Propagation Layers
          • 2.2.1 一阶传播
          • 2.2 高阶传播
        • 2.3 Model Prediction
        • 2.4 Optimization
          • 2.4.1 模型大小
          • 2.4.2 消息dropout和节点dropout
        • 2.5 Discussions
      • 3 RELATED WORK
        • 3.1 Model-based CF Methods
        • 3.2 Graph-based CF Methods
        • 3.3 Graph Convolutional Networks
      • 4 EXPERIMENTS
        • 4.1 Experimental Settings
        • Q1 模型表现
        • Q2 参数影响
        • Q3 高阶连通性的影响
      • 5 CONCLUSION AND FUTURE WORK

1 INTRODUCTION

CF模型的两个关键组成:

  • 嵌入
  • 交互建模

本文认为这些CF模型不能产生很好的嵌入,因为嵌入函数缺乏对关键的协作信号进行显式的建模。大多数现存的方法只使用描述特征(ID、属性等)来构造嵌入函数,没有考虑用户—物品交互。大多数方法中只将用户—物品交互用于定义目标学习函数,所以这些方法必须依靠交互函数来弥补嵌入的不足。
利用用户—物品交互中的高阶连通性。高阶连通性表示从路径长度l大于1的任何节点到达u1的路径,这种高阶连接包含了丰富的语义,携带着协作信号。
在这里插入图片描述

2 METHODOLOGY

在这里插入图片描述
三部分组成:嵌入层,多个嵌入传播层,预测层

2.1 Embedding Layer

在这里插入图片描述
这个嵌入表是用来初始化用户嵌入和物品嵌入的,会通过端到端的方式学习得到最终的嵌入。

2.2 Embedding Propagation Layers

基于GNN的消息传递机制,捕捉图结构上的CF信号,refine(不知道咋翻译合适)用户和物品的嵌入。

2.2.1 一阶传播

与物品交互过的用户可以被视为物品的特征,并用于度量两个物品的协同相似性。

消息构造

从i到u的消息为:
在这里插入图片描述
f()f()f()是消息编码函数,eie_iei?eue_ueu? 为f的输入,puip_{ui}pui? 是系数,衰减因子。本文中的f是:
在这里插入图片描述
W1,W2W_1,W_2W1?,W2? 提取有用的信息用以传播,与GCN不同的时,传播的时候加了一项 ei,eue_i,e_uei?,eu? 的交互,用对应元素相乘表示(个人认为这是亮点)。这一项使得从相似的物品传播更多的信息(怎么理解呢?)
puip_{ui}pui? 反应了历史物品i对于用户u的偏好贡献了多少,它应该随着路径而衰减。

消息传播

在这里插入图片描述
用用户u自身节点和邻居节点对其的消息来获取用户u一阶的嵌入。其中自身的信息左乘的 W1W_1W1? 与公式3是一样的。
在这里插入图片描述

2.2 高阶传播

堆叠更多的嵌入传播层来探索高阶连通性信息,堆叠 lll 层,每个节点能收到其 lll 跳邻居传播的信息。
在这里插入图片描述
stack多个嵌入传播层,能够无缝地将协作信号注入到表示学习过程中。
在这里插入图片描述
矩阵表示形式为:
在这里插入图片描述
在这里插入图片描述
其中L是拉普拉斯算子,LuiL_{ui}Lui? 就是 puip_{ui}pui?

2.3 Model Prediction

经过l层的嵌入传播层,每个节点有l个表示。在不同层中获得的表示强调通过不同连接传递的消息,它们对于反映用户偏好有不同的贡献,将每一层的表示concat,来获得用户和物品的最终表示:
在这里插入图片描述
除了使用concat,还可以使用加权平均,最大池化,LSTM等。

在这里插入图片描述

2.4 Optimization

BPR loss
在这里插入图片描述
所有的训练参数是:
在这里插入图片描述

2.4.1 模型大小

比起MF,只额外附加了较少的参数。总之,NGCF使用很少的附加模型参数来实现高阶连通性建模。

2.4.2 消息dropout和节点dropout
  • 消息dropout,p1概率随机丢弃公式6中传播的信息。(不知道怎么dropout,按维度?)
    在这里插入图片描述
  • 节点dropout, 随机丢弃拉普拉斯矩阵中 (M+N)p2 的节点

2.5 Discussions

L=1L=1L=1 ,得NGCF-SVD
在这里插入图片描述
pui=1/∣Nu∣p_{ui}=1/|N_u|pui?=1/Nu? piu=0p_{iu}=0piu?=0,就是SVD++模型,只用用户的物品邻居来联合表示用户。

3 RELATED WORK

3.1 Model-based CF Methods

  • MF,为了加强嵌入,很多研究致力于整合side信息,比如物品内容,社交关系,物品关系,用户评论,知识图谱等。
  • 为了解决内积的局限性,很多研究使用DL来增强交互函数。NFM、NCF、CML、CDAE等

这些方法使用嵌入将特征转化成向量,使用交互函数来衡量向量相似度。

3.2 Graph-based CF Methods

Hop-Rec

3.3 Graph Convolutional Networks

  • GC-MC
  • PinSage
  • SpectralCF

4 EXPERIMENTS

4.1 Experimental Settings

  • 10-core setting,每位用户和物品至少有10个交互。
  • 每位用户历史行为的80%作为训练集,20%测试集,10%(包含在train中)作为验证集来调参。
  • 每个方法的输出:每位用户对所有物品的预测得分(除了train中的正样本)
  • 采用recall ndcg评估指标
  • 尝试对比SpectralCF,但是它太费时间了
  • 提前终止策略:当验证集上的recall@20 连续50个epoch不增加,就终止训练

Q1 模型表现

在这里插入图片描述
根据稀疏性划组,比如Gowalla中用户的交互数量24,50,117,1014来划分成4组。模型在交互数量少的用户组中的提升更大,证明了嵌入传播对于相对不活跃的用户更有帮助。
在这里插入图片描述

Q2 参数影响

嵌入传播层的数量

在这里插入图片描述

嵌入传播层的影响

没看懂。。
在这里插入图片描述
dropout的影响

在这里插入图片描述

Q3 高阶连通性的影响

MF、NGCF,挑选测试集上的用户和物品,降维,可视化嵌入。NGCF中用户所交互过的物品的嵌入更加接近。
在这里插入图片描述

5 CONCLUSION AND FUTURE WORK

NGCF的关键是新提出的嵌入传播层。后续引入注意力机制,用于邻居节点权重,各阶表示聚合时的权重。

  相关解决方案