Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第1张图片

1. 摘要

  最近,图协同过滤方法被提出作为一种有效的推荐方法,它可以通过建模用户-项目交互图来捕获用户对项目的偏好。尽管有效,但这些方法在实际场景中存在数据稀疏问题。为了减少数据稀疏性的影响,在图形协同过滤中采用对比学习来提高性能。然而,这些方法通常是通过随机抽样来构建对比对的,忽视了用户(或项目)之间的相邻关系,未能充分挖掘对比学习的潜力来进行推荐。
  为了解决上述问题,我们提出了一种新的对比学习方法,称为邻域丰富的对比学习,称为NCL,它明确地将潜在的邻域合并为对比对。具体来说,我们分别从图结构和语义空间引入用户(或项目)的邻居。对于交互图上的结构邻居,我们开发了一个新的结构对比目标,将用户(或项目)及其结构邻居视为正对比对。在实现中,用户(或项目)和邻居的表示对应于不同GNN层的输出。此外,为了挖掘语义空间中潜在的邻域关系,我们假设具有相似表示的用户位于语义邻域内,并将这些语义邻域合并到原型对比目标中。提出的NCL可以用EM算法进行优化,并推广应用于图形协同过滤方法。在五个公共数据集上进行的大量实验证明了所提出的NCL的有效性,特别是相对于Yelp和Amazon图书数据集上的竞争图形协作过滤基础模型,性能分别提高了26%和17%。

代码:https://github.com/RUCAIBox/NCL

2. 存在的问题以及贡献

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第2张图片

存在的问题

  1. 用户商品交互图存在数据稀疏性和噪声影响,可能无法学习可靠表示;
  2. 现有的基于GNN的CF方法依赖于明确的交互链接来学习节点表示,而高阶关系或约束(例如,用户或商品相似性)不能明确地用于丰富图形信息。

邻域定义

  1. 结构邻居: 指通过高阶路径在结构上连接的节点;
  2. 语义邻居: 指语义相似的邻居,在图上可能无法直接到达。

贡献

  1. 提出了一个名为NCL的模型无关的对比学习框架,该框架结合了结构和语义上的邻居,以改善神经图协作过滤;
  2. 为这两种邻居学习有代表性的嵌入,这样就可以只在一个节点和相应的有代表性的嵌入之间进行约束性学习,这在很大程度上提高了算法效率;
  3. 在五个公共数据集上进行了广泛的实验,证明我们的方法始终优于一些有竞争力的基线,包括GNN和基于对比学习的推荐方法。

3.方法

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第3张图片

3.1 协同过滤骨干

特征传播函数

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第4张图片

最终表示

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第5张图片

  • 这里的 k k k应该是 l l l

采用内积预测得分

在这里插入图片描述

采用BPR损失

在这里插入图片描述

  • σ \sigma σ代表sigmoid函数

3.2 结构邻居的对比学习

  由于商品用户交互图是一个二分图,所以将用户自己的嵌入和偶数层的嵌入视为正对,采用对比损失InfoNCE最小化他们之间的距离:
Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第6张图片

  • k k k为偶数

商品的结构对比损失同理:
Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第7张图片
总损失:
在这里插入图片描述

3.3 语义邻居的对比学习

  结构对比损失平等地对待用户/商品的同质邻居,会将噪声引入对比对,通过合并语义邻居扩展对比对可以减少影响。
  主要思路是通过原型对比目标来探索潜在的语义邻居并将它们纳入对比学习。由于相似的用户/商品倾向于落在相邻的嵌入空间中,并且原型是代表一组语义邻居的集群的中心。因此,将聚类算法应用于用户和商品的嵌入,以获得用户或商品的原型。由于该过程无法进行端到端优化,使用 EM 算法学习提出的原型对比目标。
  形式上,GNN 模型的目标是最大化以下对数似然函数:
Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第8张图片

  • Θ Θ Θ是模型参数, R R R是交互矩阵, e u e_u eu是用户的embedding, c i c_i ci是用户的潜在原型,通过K-means聚类得到

  原型对比学习目标是基于 InfoNCE 最小化以下函数:
Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第9张图片
商品原型对比同理:
Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第10张图片
最终的原型对比目标:
在这里插入图片描述

3.4 优化

总体训练目标

在这里插入图片描述

EM算法优化 L P L_P LP

  首先通过Jensen不等式获得其下界(LB):
在这里插入图片描述
Q ( c i ∣ e u ) Q(c_i|e_u) Q(cieu)表示当观察到 e u e_u eu时潜在变量 c i c_i ci的分布。当估算 Q ( c i ∣ e u ) Q(c_i|e_u) Q(cieu)时,可以重定向目标以最大化 e u e_u eu函数。采用EM算法优化。
  在E步中, e u e_u eu是固定的, Q ( c i ∣ e u ) Q(c_i|e_u) Q(cieu)通过K-means算法对所有用户E的嵌入进行估计。如果用户 u u u属于聚类 i i i,则聚类中心 c i c_i ci是用户原型。分布由硬指标 Q ^ ( c i ∣ e u ) = 1 \hat{Q}(c_i|e_u)=1 Q^(cieu)=1 Q ^ ( c j ∣ e u ) = 0 \hat{Q}(c_j|e_u)=0 Q^(cjeu)=0构成。
  在M步中,目标函数可以用 Q ^ ( c i ∣ e u ) \hat{Q}(c_i|e_u) Q^(cieu)改写:
在这里插入图片描述
假设用户的分布在所有集群上都是各向同性的高斯分布。所以函数可以写成:
在这里插入图片描述

  • 由于 x u x_u xu c i c_i ci是预先标准化的, ( e u − c i ) 2 = 2 − 2 e u ⋅ c i (e_u-c_i)^2=2-2e_u·c_i (euci)2=22euci,假设每个高斯分布都有相同的导数,写入温度超参数 τ \tau τ,函数可以简化为式(10)。

4. 实验结果

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第11张图片

消融实验

Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning_第12张图片

  • w/o s-n代表删除结构邻居,w/o p-n代表删除语义邻居

你可能感兴趣的:(算法,人工智能,机器学习,图神经网络,对比学习)