Neural Graph Collaborative Filtering学习笔记

论文地址:https://arxiv.org/abs/1905.08108
论文代码:https://github.com/xiangwang1223/neural_graph_collaborative_filtering

目录

1.研究背景

2.相关知识

3.与其它模型的比较

4.实验采用的数据集

5.实验结果


1.研究背景

这篇论文的研究背景是在现代推荐系统中,学习用户和物品的向量表示(也称为嵌入)是核心问题。现有的方法通常通过将用户(或物品)的嵌入映射到描述用户(或物品)的预先存在的特征,如ID和属性,来获得用户(或物品)的嵌入。然而,这种方法的固有缺点是没有将用户-物品交互中潜在的协同信号(相似性的评分)编码到嵌入过程中。因此,所得到的嵌入可能不足以捕捉协同过滤效应。为了解决这个问题,论文提出了一种新的推荐框架Neural Graph Collaborative Filtering (NGCF),它将用户-物品交互的双分图结构整合到嵌入过程中,通过在图上传播嵌入来有效地建模用户-物品图中的高阶连接性,从而明确地将协同信号注入到嵌入过程中。论文通过在三个公共数据集上进行广泛实验,证明了NGCF相对于HOP-RecCollaborative Memory Network等几种最先进的模型的显著改进。进一步的分析验证了嵌入传播对于学习更好的用户和物品表示的重要性,证明了NGCF的合理性和有效性。

2.相关知识

CF 建模两个关键:

1.embedding 嵌入:它将用户和项目转换为矢量化表示

2.interaction modeling 交互建模:它基于嵌入重建历史交互

矩阵分解 ( MF) 协同深度学习,神经协同过滤模型( NCF ), translation-based CF
这些方法都不足以为 CF 产生令人满意的嵌入,关键原因是嵌入功能缺乏对关键协作信号的明确编码,这种编码隐藏在用户 - 项目交互中,以揭示用户 ( 或项目 ) 之间的行为相似性。

高连通性:

       给u1推荐项目,上图左边为用户项目交互图,右边为根据u1展开的树结构。高阶连通性是到u1长度大于1的节点路径(节点包括项目和用户两种)。这种高阶连接包含了丰富的语义,承载着协同信号。例如,路径u1←i2←u2表示u1u2之间的行为相似性,因为两个用户都与i2交互过;较长的路径u1←i2←u2←i4表明u1很可能会采用i4,因为她相似的用户u2之前已经消费过i4。此外,从l= 3的整体来看,项目i4比项目i5更可能引起u1的兴趣,因为i4有两条路径连接,而i5只有一条路径连接。

        本文作者不是将交互图扩展成一棵树,因为树实现起来是比较复杂的,他是设计了一个分层传播层,通过聚合交互项目(或用户)的嵌入来细化用户(或项目)的嵌入。通过堆叠多个嵌入传播层,可以强制嵌入以捕获高阶连接中的协作信号。

作者总结以下三点主要贡献:

1强调了在基于模型的CF方法的嵌入功能中明确利用协作信号的至关重要性。

2提出了一种新的基于图神经网络的推荐框架NGCF,它通过执行嵌入传播以高阶连接的形式显式编码协作信号

3300万个数据集上进行了实证研究。大量的结果证明了NGCF的先进的性能和它在提高神经嵌入传播嵌入质量的有效性。

NGCF模型架构图:

用户u1()和项目i4()的表示通过多个嵌入传播层来细化(箭头线表示信息流)

框架组成:

(1)嵌入层提供用户嵌入和项目嵌入并对其进行初始化;

(2)多个嵌入传播层通过注入高阶连接关系来细化嵌入;

(3)预测层该层聚合来自不同传播层的精细化嵌入,并输出用户-项目对相似的分数。

嵌入传播层的更多形式(刚刚只讲了一层):

1高阶传播:堆叠更多的嵌入传播层来探索高阶连通性信息。(递归地公式化)

2矩阵形式的传播规则

图拉普拉斯矩阵

优化成对的BPR损失:

其中O={(uIj)|(ui)∈ R+(uj)∈R- }表示成对训练数据,R+表示观察到的相互作用,R-为未观察到的相互作用;

σ()sigmoid函数θ= { E{W(l) 1W(l) 2}L l=1}表示所有可训练的模型参数,

λ控制L2正则化强度以防止过拟合。

采用小批量Adam 来优化预测模型和更新模型参数。

特别地,对于一批随机采样的三元组(uIj)∈ O,我们在L步传播后建立它们的表示[e(0),,e(L)],然后利用损失函数的梯度更新模型参数。

消息和节点丢失

尽管深度学习模型具有很强的表示能力,但它们通常存在过度拟合的问题。为了解决这种问题,dropout是一种有效的解决办法。以防止神经网络过拟合。NGCF采用两种丢弃技术:消息丢弃和节点丢弃。消息丢弃:具体来说,我们以概率p1丢弃等式(6)中传播的消息。因此,在第l传播层中,只有部分消息有助于细化表示。节点丢弃:随机阻塞一个特定的节点并丢弃它所有的输出消息。对于第l传播层,我们随机丢弃拉普拉斯矩阵的(M+N)p2节点,其中p2是丢弃率。注意:dropout只适用于训练,在测试期间不可使用。作用:消息丢失使表示在用户和项目之间存在或不存在单个连接时更加稳健,节点丢失侧重于减少特定用户或项目的影响。

3.与其它模型的比较

NGCF相比于其他模型具有以下优势:

1. 相比于传统的协同过滤方法(如 MF NeuMF CMN ), NGCF 能够更好地捕捉用户和物品之间的复杂和非线性关系,从而提供更准确的推荐结果。
2. 相比于基于图卷积网络的模型(如 GC-MC PinSage ), NGCF 通过在嵌入过程中显式编码协同信号,能够更好地捕捉用户 - 物品图中的高阶连接性,从而提供更全面的表示来推断用户的偏好。
3. 相比于基于注意力机制的模型(如 HOP-Rec ), NGCF 通过堆叠多个嵌入传播层,能够探索显式的高阶连接性,提供多粒度的表示来推断用户的偏好。
4. 相比于传统的线性内积方法(如 MF ), NGCF 能够更准确地预测用户和物品之间的交互,通过在嵌入过程中显式编码协同信号。

4.实验采用的数据集

在三个基准数据集上进行了实验:Gowallayelp 2018 * 2Amazon-book,这些数据集是公共可访问的,并且在域、大小和稀疏性方面各不相同。

Gowalla:这是从Gowalla获得的签到数据集,用户通过签到共享他们的位置。为了确保数据集的质量,我们使用10核心设置,即保留至少有十次交互的用户和项目。

Yelp2018:该数据集采用了Yelp挑战赛2018版的数据。其中,像餐馆和酒吧这样的地方企业被视为项目。为了确保数据质量,我们使用相同的10核设置。

Amazon-book: Amazon-review是一个广泛用于产品推荐的数据集[9]。我们从收藏品中挑选亚马逊书籍。同样,我们使用十核设置来确保每个用户和项目至少有十次交互。

对于每个数据集,我们随机选择每个用户80%的历史交互构成训练集剩余的作为测试集。从训练集中,我们随机选择10%的交互作为验证集来调整超参数。

5.实验结果

使用NGCD分别和MFNeuMFCMNHOP-RecPinSageGC-MC进行比较,以验证作者猜想。

       NGCF始终在所有数据集上产生最佳性能。通过堆叠多个嵌入传播层,NGCF能够以显式方式探索高阶连通性,而CMNGC-MC仅利用一阶邻居来指导表示学习。这验证了在嵌入函数中捕获协作信号的重要性。此外,与PinSage相比,NGCF考虑多粒度表示来推断用户偏好,而PinSage仅使用最后一层的输出。这表明不同的传播层在表示中编码不同的信息。对HOP-Rec的改进表明嵌入函数中的显式编码CF可以获得更好的表示。

      不同数据集上用户组稀疏性分布的性能比较。其中,背景直方图表示每个组中涉及的用户数量,线条表示w.r.t. ndcg@20的性能。

      NGCFHOP-Rec在所有用户组上的表现始终优于所有其他基准。它表明,利用高阶连通性极大地促进了非活跃用户的表示学习,因为协作信号可以被有效地捕获。因此,解决推荐系统中的稀疏性问题是有希望的。

NGCF不同层的结果,在三四层时,表现出较好的结果

node dropout提供了更好的性能。一个原因可能是,丢弃来自特定用户和项目的所有传出消息使得表示不仅不受特定边缘的影响,而且不受节点的影响。因此,节点丢失比消息丢失更有效。意味着node dropout可以成为解决图神经网络过拟合的有效策略。

每轮迭代,NGCF表现出比MF更快的收敛,因为当在小批量中优化交互对时,涉及间接连接的用户和项目。这样的观察证明了NGCF更好的模型容量和在嵌入空间中执行嵌入传播的有效性。

MFNGCF-3导出的经验t-SNE变换表示的可视化。选取了6个用户,每个星星代表一个来自Gowalla数据集的用户,而具有相同颜色的点表示相关项目。(观察蓝色和黄色的聚合程度)

补充:

t-SNEt-Distributed Stochastic Neighbor Embedding)是一种用于降维和可视化高维数据的机器学习算法。它是一种非线性降维技术,通常用于将高维数据映射到低维空间,以便进行可视化或特征提取。t-SNE的主要目标是保留数据点之间的相似性关系,尤其是在高维空间中难以捕捉到的相对距离信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingjing~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值