Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

在这里插入图片描述

摘要

近年来,图协同过滤方法被提出作为一种有效的推荐方法,它可以通过建模用户-项目交互图来捕获用户对项目的偏好。尽管这些方法有效,但在实际场景中存在数据稀疏性。为了减少数据稀疏性的影响,在图协同过滤中采用了对比学习的方法来提高性能。然而,这些方法通常采用随机采样的方式构建对比对,忽略了用户(或项目)之间的相邻关系,不能充分利用推荐中对比学习的潜力。

为了解决上述问题,我们提出了一种新的对比学习方法,即邻居丰富对比学习,即NCL,它明确地将潜在的邻居合并到对比对中。具体来说,我们分别从图结构和语义空间中引入一个用户(或一个项目)的邻居。对于交互图上的结构邻居,我们开发了一个新的结构对比目标,它将用户(或项目)和它们的结构邻居视为正对比对。在实现中,用户(或项目)和邻居的表示对应于不同GNN层的输出。此外,为了挖掘语义空间中的潜在的邻居关系,我们假设具有相似表示的用户存在语义邻居关系,并将这些语义邻居合并到原型-对比目标中。 所提出的NCL可以用EM算法进行优化,并将其推广应用于图协同过滤方法。在5个公共数据集上进行的大量实验证明了所提出的NCL的有效性,特别是在Yelp和Amazon-book数据集上,性能分别提高了26%和17%。我们的实现代码:https://github.com/RUCAIBox/NCL.

1 介绍

在信息爆炸时代,推荐系统在发现用户偏好和高效提供在线服务方面占据重要地位。作为一种经典的方法,协作过滤(CF)[10,24]是一种基本技术,它可以从隐式反馈(表达式、点击、事务等)中产生有效的推荐。最近,强大的图神经网络(GNN)[9,31]进一步增强了CF,它将交互数据建模为图(如用户-项目交互图),然后应用GNN学习有效的节点表示[9,31]进行推荐,称为图协同过滤。

尽管取得了显著的成功,但现有的神经图协同过滤方法仍然存在两大问题。

  • (1)用户-项目交互数据通常是稀疏的或有噪声的,它可能无法学习可靠的表示,因为基于图的方法可能更容易受到数据稀疏性[33]的影响。
  • (2)现有的基于GNN的CF方法依赖于显式的交互连接来学习节点表示,而高阶关系或约束(例如,用户或项目相似性)不能显式地用于丰富图信息,然而这些在推荐任务[24,27,35]中已经被证明是非常有用的。虽然最近的一些研究利用对比学习来缓解交互数据[33,39]的稀疏性,但他们通过随机采样节点或破坏子图来构造对比对。它缺乏思考如何为推荐任务[24,27,35]构建更有意义的对比学习任务

除了直接的用户-项目交互外,还存在多种对推荐任务有用的潜在关系(例如,用户相似性),我们的目标是设计更有效的对比学习方法,在图神经协同过滤中利用这些有用的关系。特别地,我们考虑关于用户(或项目)的节点级关系,它比图级关系更有效。我们将这些附加关系描述为增强的节点邻居,这可以从两个方面来定义:
(1)结构邻居是指通过高阶路径进行的结构上连接的节点
(2)语义邻居是指语义上相似的邻居,在图上可能不直接相邻。
我们的目标是利用这些增强的节点关系来提高节点表示的学习(即,编码用户偏好或项目特征)。

为了对增强的邻居进行整合和建模,我们提出了丰富邻居的对比学习(简称NCL),这是一个与推荐模型无关的对比学习框架。如前所述,NCL基于两种扩展邻居构建节点级对比目标。
在这里插入图片描述

我们在图1中对NCL和现有的对比学习方法进行了比较。然而,节点级的对比目标通常需要对每个节点对进行两两学习,这对于大量的邻居来说是很耗时的。考虑到效率问题,我们学习了每种邻居的单一代表性嵌入,这样一个节点的对比学习就可以通过两个代表性嵌入(结构或语义)来完成。

具体来说,对于结构邻居,我们注意到GNN的第𝑘层的输出包含了𝑘-hop邻居的聚合信息。因此,我们利用GNN的第𝑘层输出作为一个节点的𝑘-hop邻居的表示。我们设计了一个结构感知的对比学习目标,它提取一个节点(用户或项目)的表示和其结构邻居的代表性嵌入。对于语义邻居,我们设计了一个经典的对比学习目标来捕获节点(用户或项目)与其原型之间的相关性。粗略地说,原型可以看作是表示空间中语义相似的相邻集群的质心。由于原型是潜在的,我们进一步提出使用期望最大化(EM)算法[19]来推断原型。通过结合这些附加的关系,我们的实验表明,它可以在很大程度上改进原始的基于GNN的方法(也优于现有的对比学习方法)的隐式反馈推荐。我们的贡献可以总结为三点:

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

2 准备工作

协同过滤(CF)作为基本的推荐系统,旨在根据观察到的隐式反馈(如表达、点击和交易)推荐用户可能感兴趣的相关项目。具体来说,给定用户集 U = {𝑢}和项目集 I = {𝑖},观察到的隐式反馈矩阵表示为R∈ ( 0 , 1 ) ∣ U ∣ × ∣ I ∣ { (0,1)}^{|U|×|I|} (0,1)U×I,如果用户𝑢和项目𝑖 有交互,则 R u , i R_{u,i} Ru,i = 1,否则 R u , i R_{u,i} Ru,i = 0。基于交互数据R,学习到的推荐系统可以预测潜在的交互。此外,基于(GNN)的协同过滤方法的图神经网络方法将交互数据R作为一个交互图G={V,E},其中V={U∪I}表示节点集,E={(𝑢,𝑖)|𝑢∈U,𝑖∈I, R u , i R_{u,i} Ru,i}表示边集。

一般来说,基于GNN的协同过滤方法[9,31,32]采用聚合方案为用户和项目生成信息表示,可分为两个阶段:
在这里插入图片描述
其中, N u N_u Nu为交互图G中用户𝑢的邻域集,𝐿为GNN层数。其中, z u ( 0 ) z_u^{(0)} zu(0)由可学习的嵌入向量 e u e_u eu初始化。对于用户𝑢,传播函数 f p r o p a g a t e f_{propagate} fpropagate(·)聚合(𝑙-1)层的邻居表示,以生成第𝑙层的表示 z u ( l ) z^{(l)}_u zu(l)。经过 𝑙 次迭代传播后,𝑙-hop邻居的信息被编码在 z u ( l ) z^{(l)}_u zu(l)中。读出函数 f r e a d o u t f_{readout} freadout(·)进一步聚合了所有表示[ z u ( 0 ) z^{(0)}_u zu(0) z u ( 1 ) z^{(1)}_u zu(1),…, z u ( L ) z^{(L)}_u zu(L)],获得用于推荐的用户𝑢的最终表示。项目的信息表示也可以类似地得到。

3 方法

在本节中,我们将从三部分中介绍所提出的丰富邻居对比学习方法。我们首先在第3.1节中介绍了基于图的协同过滤方法,它输出推荐的最终表示以及结构邻居的整体表示。然后,我们分别在3.2节和3.3节中引入了结构对比策略和原型对比策略,它们将邻居的关系整合到对比学习中,与协同过滤进行适当的调节。最后,我们在第3.4节中提出了一个多任务学习策略,并在第3.5节中进一步介绍了理论分析和讨论。NCL的总体框架如图2所示。
在这里插入图片描述
3.1 图协同过滤核心

如第2节所述,基于GNN的方法通过在交互图G上应用传播和预测函数生成用户和项目表示。在NCL中,我们利用GNN对观察到的用户和项目之间的交互进行建模。具体遵循LightGCN[9],在传播中我们丢弃了非线性激活和特征变换:

在这里插入图片描述
在进行𝐿层传播后,我们采用加权和函数作为输出函数,将所有层的表示组合起来,得到最终的表示如下:
在这里插入图片描述
其中, z u z_u zu z i z_i zi表示用户𝑢和项目𝑖的最终表示。在最终的表示中,我们采用内积来预测用户𝑢与项目𝑖交互的可能性:
在这里插入图片描述
其中, ˆ y u , i ˆy_{u,i} ˆyu,i为用户𝑢和项目𝑖的预测得分。

为了直接从交互中获取信息,我们采用了贝叶斯个性化排序(BPR)损失[22],这是一个设计良好的推荐排序目标函数。具体来说,BPR损失强制执行了观察到的交互作用的预测得分,高于未观察到的交互得分。在形式上,BPR损失的目标函数如下:
在这里插入图片描述
其中𝜎(·)为sigmoid函数,O={(𝑢,𝑖,𝑗)| R u , i R_{u,i} Ru,i=1, R u , i R_{u,i} Ru,i=0}表示成对训练数据,𝑗 表示用户𝑢未交互过的采样项目。

通过优化BPR损失 L B P R L_{BPR} LBPR,我们提出的NCL可以建模用户和项目之间的交互。然而,用户内部(或项目内部)的高阶邻居关系对于推荐也很有价值。例如,用户更有可能与他们的邻居购买相同的产品。接下来,我们将提出两个对比的学习目标来捕获用户和项目的潜在邻居关系。

3.2 结构邻居的对比学习

现有的图协同过滤模型主要是通过观察到的交互作用(例如,用户-项目对)进行训练,而用户或项目之间的潜在关系不能通过从观察到的数据中学习来明显的捕获。为了充分利用对比学习的优势,我们提出将每个用户(或项目)与他/她的结构邻居进行对比,这些邻居的表示通过GNN的层传播进行聚合。形式上,用户/项目的初始特征或可学习的嵌入在图协同过滤模型[9]中由 z ( 0 ) z^{(0)} z(0)表示。 最后的输出可以被看作是一个子图的嵌入组合,该子图包含不同跳的多个邻居。具体来说,基于GNN模型的第𝑙层的输出 z ( l ) z^{(l)} z(l)是每个节点的𝑙跳结构邻居的加权和,因为在传播[9]时没有转换和自循环。

由于交互图G是一个二部图,基于GNN模型的信息在图上的偶数次传播自然的聚集了同质结构邻居信息,便于提取用户或项目内部的潜在邻居。这样,我们就可以从GNN模型的偶数层(如2,4,6)输出中得到同类邻居的表示。有了这些表示,我们可以有效地建模用户/项目和他们的同质结构邻居之间的关系。具体来说,我们将用户自身的嵌入和偶数层GNN的相应输出的嵌入视为正对。基于InfoNCE[20],我们提出了结构对比学习目标来最小化它们之间的距离:
在这里插入图片描述
其中 z u k z_u^{k} zuk为GNN中𝑘层的归一化输出,𝑘为偶数。𝜏是softmax的温度超参数。同样,项目 L s t r u c i t e m L^{item}_{struc} Lstrucitem的结构对比损失可以得到:
在这里插入图片描述
而完整的结构对比目标函数是上述两个损失的加权之和:
在这里插入图片描述
其中𝛼是一个超参数,以平衡结构对比学习中两个损失的权重。

3.3 语义邻居的对比学习

结构对比损失显式地挖掘了由交互图定义的邻居。然而,结构-对比损失对用户/物品的同质邻居一视同仁,这不可避免地给对比对引入了噪声。为了减少结构邻居噪声的影响,我们考虑通过结合语义邻居来扩展对比对,它指的是图上不可到达的节点,但具有相似的特征(项目节点)偏好(用户节点)。

受之前[16]工作的启发,我们可以通过学习每个用户和项目的潜在原型来识别语义邻居。基于这个想法,我们进一步提出了原型-对比目标来探索潜在的语义邻居,并将其纳入对比学习,以更好地在协同过滤中捕获用户和项目的语义特征。特别是,相似的用户/项目倾向于落在邻近的嵌入空间中,而原型是代表一组语义邻居的集群的中心。因此,我们对用户和项目的嵌入应用聚类算法来获得用户或项目的原型。由于这个过程不能端到端优化,我们用EM算法学习提出的原型对比目标。形式上,GNN模型的目标是最大化对数似然函数:
在这里插入图片描述
其中,Θ是一组模型参数,R是交互矩阵。而 c i c_i ci是用户𝑢的潜在原型。类似地,我们也可以定义项目的优化目标。

然后,提出的原型对比学习目标基于InfoNCE[20]来最小化以下函数:
在这里插入图片描述
其中 c i c_i ci是用户𝑢的原型,它是通过使用𝐾-means算法对所有用户嵌入进行聚类得到的,𝑘簇覆盖所有用户。(补充:𝐾-means算法:对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大)。项目方面的目标是完全一样的:
在这里插入图片描述
其中, c j c_j cj是项目𝑖的原型。最终的原型对比目标是用户目标和项目目标的加权和:
在这里插入图片描述
通过这种方式,我们明确地将用户/项目的语义邻居合并到对比学习中,以缓解数据的稀疏性。

3.4 优化

在本节中,我们介绍了总体损失和所提出的原型-对比目标的优化。

整体训练目标
由于协同过滤器的主要目标是对用户与项目之间的交互进行建模,我们将提出的两种对比学习损失作为补充,并利用多任务学习策略联合训练传统的排名损失和提出的对比损失。
在这里插入图片描述
其中,𝜆1、𝜆2和𝜆3分别是控制上述两个所提出的对比目标的权值和正则化项的超参数,Θ为GNN模型参数集。

用EM算法优化 L p L_p Lp
“等式”(9)难以优化,通过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的嵌入进行估计。如果用户𝑢属于集群 𝑖 ,那么集群中心 c i c_i ci就是用户的原型。该分布由一个硬指标进行估计,对于 c i c_i ci,ˆ𝑄( c i c_i ci| e u e_u eu)=1、对于其他原型 c j c_j cj,ˆ𝑄( c j c_j cj| e u e_u eu)=0。

在M步骤中,目标函数可以用ˆ Q ( c i ∣ e u ) Q(c_i|e_u) Q(cieu)重写为:
在这里插入图片描述
我们可以假设用户在所有簇上的分布是各向同性的高斯分布(球形高斯分布:指的是各个方向方差都一样的多维高斯分布)。因此函数可以写成:
在这里插入图片描述
由于 x u x_u xu c i c_i ci预先被归一化,然后( e u e_u eu · c i c_i ci)=2 - 2 e u e_u eu · c i c_i ci。这里我们假设每个高斯分布都有相同的推导,并写成温度超参数𝜏。因此,该函数可以简化为等式 (10)。

3.5 讨论

新颖性和差异
对于图协同过滤,邻域的构造比其他协同过滤方法[36]更重要,因为它基于图结构。据我们所知,这是第一次尝试利用结构和语义邻居进行图协同过滤。虽然[14,16,21]的一些工作将结构邻居或符号邻居视为正对比对,但我们的工作在几个方面与它们不同。对于结构邻域,现有的图对比学习方法[8,17,33,34,44]主要以增强表示作为正样本,然而我们以局部聚合表示作为正样本。此外,我们没有引入额外的图构造或邻域迭代,使NCL比以前的工作(例如,SGL[33])更有效。此外,一些工作[21,34,44]将学习到的节点表示与输入节点特征进行对比,而我们将同构邻居的表示进行对比,这样更适合于推荐任务。

此外,在GNN中很少探索语义邻居进行推荐,而由于交互图稀疏、有噪声,在图的协同过滤考虑语义邻居是有必要的。在本工作中,我们应用原型学习技术来捕获语义信息,这与以往的计算机视觉[14]和图挖掘[11,16,38]的工作不同。首先,它们的目标是学习样本之间固有的层次结构,而我们的目标是通过捕获底层关联来识别具有相似偏好/特征的节点。其次,他们将原型建模为集群独立的实例,而我们将原型建模为具有相似交互行为的高度相关的用户(或项目)的集群

时间和空间的复杂性
在提出的两个对比学习目标中,假设我们抽样𝑆用户或项目作为负样本。然后,该方法的时间复杂度可以大致估计为O(𝑁·(𝑆+𝐾)·𝑑),其中𝑁为用户和项目总数,𝐾为我们定义的原型数,𝑑为维数嵌入向量。当我们设置𝑆≪𝑁和𝐾≪𝑁时,总的时间复杂度与用户和项目的数量近似呈线性关系。在空间复杂度方面,该方法除了GNN外,没有引入其他参数。特别是,与其他自监督方法(例如,SGL[33])相比,我们的NCL节省了近一半的空间,因为我们显式地利用了用户和项目的关系,而不是显式的数据增强。总之,所提出的NCL是一种针对协同过滤任务的高效、有效的对比学习范式。

4 实验

为了验证所提出的NCL的有效性,我们进行了广泛的实验,并报告了详细的分析结果。

4.1 实验设置

4.1.1数据集
为了评估所提出的NCL的性能,我们使用5个公共数据集进行实验:MovieLens-1M(ML-1M)[7],Yelp,Amazon Books[18],Gowalla[4]和Alibaba-iFashion[3]。这些数据集在领域、规模和密度上都有所不同。对于Yelp和Amazon Books数据集,我们会过滤掉交互作用少于15次的用户和项目,以确保数据质量。数据集的统计数据汇总见表1。对于每个数据集,我们随机选择80%的交互作为训练数据,10%的交互作用作为验证数据。其余10%的交互作用用于性能比较。我们为每个正样本均匀地抽取一个负样本来形成训练集。

在这里插入图片描述
4.1.2 基线
我们将所提出的方法与以下的基线方法进行了比较。

  • BPRMF[22]通过矩阵分解(MF)框架优化BPR损失,以学习用户和项目的潜在表示。
  • NeuMF[10]用多层感知机代替MF模型中的点积,以学习用户和项目的匹配函数。-
  • FISM[12]是一个基于项目的CF模型,它将历史交互的表示聚合为用户的兴趣。
  • NGCF[31]采用用户-项目二部图来合并高阶关系,并利用GNN来增强CF方法。
  • Multi-GCCF[27]除了在用户-项目二部图外,还在高阶相关用户(和项目)之间传播信息。
  • DGCF[32]为用户和项目生成解纠缠表示,以提高推荐的性能。
  • LightGCN[9]简化了GCN的设计,使其更加简洁和适合推荐。
  • SGL[33]引入了自监督学习来增强推荐。我们采用SGL-ED作为SGL的实例化。

4.1.3 评估指标

为了评估top-𝑁推荐的性能,我们采用了两个广泛使用的指标Recall@𝑁和NDCG@𝑁,其中为了保持一致性,𝑁被设置为10、20和50。在[9,33]之后,我们采用了全排序策略[42],它对用户没有与之交互的所有候选项目进行排序。

4.1.4 实现细节

我们使用RecBole[43]实现了所提出的模型和所有的基线,这是一个
统一的开源框架来开发和重现推荐算法
。为了确保一个公平的比较,我们在所有的方法上使用Adam优化器优化,并仔细搜索了所有基线的超参数。批处理大小设置为4,096,所有参数都由默认的Xavier分布初始化。嵌入大小设置为64。我们采用10轮的早期停止策略,以防止过拟合,以NDCG@10为指标。我们调整了[1e-10,1e-6]中的超参数𝜆1和𝜆2,[0.01,1]中的𝜏和[5,10000]中的𝑘。

4.2 总体性能

表2显示了所提出的NCL和其他基线方法在5个数据集上的性能比较。从表格中,我们发现了几个观察结果:
在这里插入图片描述

  • (1) 与传统的方法(如BPRMF)相比,基于GNN的方法将二部图的高阶信息编码进表示内,具有更好的性能。在所有的图协同过滤基线模型中,LightGCN在大多数数据集上表现最好,这表明了简化架构的有效性和鲁棒性。令人惊讶的是,Multi-GCCF在ML-1M上的表现比NGCF差,这可能是因为直接从用户-项目图构建的投影图非常密集,以至于投影图上不同用户或项目的邻域重叠且难以区分。此外,解耦表示学习方法DGCF比LightGCN更差,特别是在稀疏数据集上。我们推测,解耦表示的维度可能太低,由于我们对整体维度的限制,无法携带足够的特征。此外,FISM在三个数据集(ML-1M、Yelp和amazonbooks)上的性能优于NGCF,这表明一个庞大的GNN体系结构很可能会过度拟合稀疏的用户项目交互数据。

  • (2)对于自监督方法,SGL[33]在5个数据集上的性能始终优于其他监督方法,表明了对比学习对提高推荐性能的有效性。然而,SGL将来自原始图的表示与增强图进行对比,这忽略了推荐系统中其他潜在的关系(例如,用户相似度)

  • (3)最后,我们可以看到提出的NCL始终比基线表现得更好。这种优势是由丰富邻居的对比学习目标带来的。此外,在较小的排序(如前10位)的提升要大于较大的排序(如前50位),说明NCL倾向于将相关项目排得更高,这在现实世界的推荐场景中具有重要意义。此外,我们的方法对小型数据集,如ML-1M和Yelp数据集有更大的改进。我们推测一个可能的原因是这些数据集的交互数据比较稀疏,没有足够的邻居来构建对比对。

4.3 对NCL的进一步分析

在本节中,我们进一步对提出的NCL进行一系列详细的分析,以确认其有效性。由于篇幅有限,我们只报告了ML-1M和Yelp数据集上的结果,其他数据集上的观察结果类似。

4.3.1 NCL的消融研究

我们提出的NCL方法在两个方面利用了潜在的邻居。为了验证每一种邻居的有效性,我们进行了消融研究来分析它们的贡献。图3报告了结果,其中“w/o s-n”和“w/o p-n”分别通过删除结构邻居和语义邻居来表示变体。从这个图中,我们可以看到,删除每一个关系都会导致性能下降,而这两个变体的性能都比基线的LightGCN更好。表明对这两种关系进行显式建模有利于图协同过滤的性能。此外,这两种关系相辅相成,在不同方面提高了性能。
在这里插入图片描述

4.3.2 数据稀疏性级别的影响

为了进一步验证所提出的NCL可以缓解交互数据的稀疏性,我们在这一部分评估了NCL对不同稀疏性级别用户的性能。具体来说,我们根据用户的交互次数将所有用户分成5个组,同时保持每个组的总交互次数不变。然后,我们比较NCL和LightGCN在这五组用户上的性能,并在图4中报告结果。从这个图中我们可以发现,NCL的性能始终优于LightGCN。同时,随着交互次数的减少,NCL带来的性能增益增加。这意味着NCL可以在稀疏的交互数据下执行高质量的推荐,这得益于所提出的邻域建模技术。
在这里插入图片描述
4.3.3 结构邻居的影响

在NCL中,结构邻居对应于不同的GNN层。为了研究不同结构邻居的影响,我们选择了一、二、三跳的节点作为结构邻居,测试了将它们与对比学习相结合时的有效性。
在这里插入图片描述
结果如表3所示。我们可以发现,NCL的三种变体的性能都与LightGCN相似或更好,这进一步说明了所提出的跳-对比策略的有效性。其中,第一偶层的结果最好。这与直觉一致,即用户或物品应该更接近其直接邻居,而不是间接邻居。此外,在我们的实验中,一跳的邻居似乎足以让NCL性能又好而效率又高。
在这里插入图片描述

4.3.4 系数𝛼的影响

在等式(8)中定义的结构-对比损失中,系数𝛼可以平衡结构邻域建模中的两个损失。为了分析𝛼的影响,我们将𝛼的变化范围设在0.1到2之间,并将结果报告在图5a中。结果表明,一个适当的𝛼可以有效地提高NCL的性能。具体来说,当超参数𝛼设置为1左右时,在两个数据集上的性能都更好,说明用户和项目的高阶相似性都是有价值的。此外,对于不同的𝛼,NCL的性能始终优于LightGCN,说明NCL对参数𝛼具有鲁棒性。

4.3.5 温度参数𝜏的影响

正如在之前的工作中提到的[2,41],在等式(6)和等式(10)中定义的温度𝜏在对比学习中起着重要的作用。为了分析温度对NCL的影响,我们将𝜏变化在0.05~0.15范围内,结果如图5(b)所示。我们可以观察到,𝜏值过大会导致性能较差,这与[41]中报道的实验结果一致。此外,Yelp数据集对应的最适合的温度较小,说明在更稀疏的数据集上,NCL的温度应该更小。一般来说,温度在[0.05,0.1]范围内可以导致好的推荐性能。

4.3.6 原型数量k的影响

为了研究原型-对比目标的影响,我们将原型𝑘的数量从数百设置到数千,或通过将𝑘设置为零从而移除它。结果如图5©所示,具有不同𝑘的NCL始终优于基线,当𝑘在1000左右时,效果最好。这表明,大量的原型可以更好地减轻结构邻居引入的噪声。当我们将𝑘设置为零时,性能显著下降,这表明语义邻居对提高推荐性能非常有用。

4.3.7 在其他GNN结构上应用NCL

由于所提出的NCL体系结构是与模型无关的,我们进一步测试了它与其他GNN体系结构的性能。结果见表4。
在这里插入图片描述
从表中可以看出,所提方法可以持续提高NGCF、DGCF和LightGCN的性能,进一步验证了该方法的有效性。此外,NGCF和DGCF的改进不如LightGCN的改进显著。一个可能的原因是,LightGCN删除了层传播中的参数和非线性激活,这确保了在结构邻域建模的同一表示空间中不同层的输出。

4.3.8 可视化表示的分布

该NCL算法的一个重要贡献是在图协同过滤的对比任务中整合了两种邻居关系。为了更好地理解NCL带来的好处,我们在图6中将学习到的嵌入进行可视化,以显示所提出的方法如何影响表示学习。我们用高斯核密度估计(KDE)在二维空间中绘制项目嵌入分布。我们可以看到,LightGCN学习到的嵌入可以分成几个相关的簇,而NCL学习到的表示则清晰地呈现出更均匀的分布。我们推测,更均匀的嵌入分布赋予了更好的能力来建模不同的用户偏好或项目特征。如之前的研究[30]所示,对比学习与所学习表示的均匀性之间存在很强的相关性,它更能保留表示最多信息的特征分布。
在这里插入图片描述

5 相关工作

在本节中,我们将简要回顾两个方面的相关工作,即基于图的协同过滤和对比学习。

基于图的协同过滤

与传统的CF方法不同,如基于矩阵分解的方法[13,22]和基于自动编码器的方法[15,25],基于图的协同过滤将交互数据构建成一个交互图,并从图的结构信息中从图的结构信息中学习有意义的节点表示。早期的研究中[1,6]通过图中的随机游动来提取结构信息。接下来,协同过滤被用于[9,31,32,40]图神经网络(Graph Neural Networks, GNN)中。例如,NGCF[31]和LightGCN[9]利用交互图上的高阶关系来提高推荐性能。此外,有研究[27]进一步提出构建更多的交互图,以捕捉更丰富的用户与项目之间的关联关系。尽管这些方法很有效,但它们并没有明确地解决数据稀疏性问题。最近,自监督学习被引入到图协同过滤中,以提高推荐的泛化。例如,SGL[33]提出随机数据增强操作,构造对比目标,以提高GCNs推荐的准确性和鲁棒性。然而,大多数基于图的方法只关注交互记录,而忽略了用户或项目之间潜在的邻居关系。

对比学习

自从对比学习在CV[2]中取得成功后,对比学习在NLP[5]、图数据挖掘[17,34]和推荐系统[28,37]中得到了广泛的应用。对于图的对比学习,现有的研究可以分为节点级对比学习[29,45]和图级对比学习[26,41]。例如,GRACE[44]提出了一个节点级图对比学习框架,并通过删除边缘和屏蔽节点特征来执行扰动。MVGRL[8]通过图扩散对图进行变换,在图的增强时同时考虑了图的特征空间和结构空间。此外,受计算机视觉的先驱研究[14]的启发,提出了几种采用原型对比学习的方法来捕获图中的语义信息[11,16,38]。与我们的工作相关的一些研究也将对比学习应用于推荐,如SGL[33]。然而,现有的方法是通过随机抽样构造对比对,没有充分考虑推荐场景中用户(或项目)之间的关系。在本文中,我们提出通过对比学习来显式建模这些潜在的邻居关系。

6 结论和未来工作

在本研究中,我们提出了一种新的对比学习范式,命名为丰富邻居的对比学习(NCL),以显式地捕获潜在的节点相关性到对比学习中,用于图协同过滤。我们分别从图的结构和语义空间两个方面考虑用户(或项目)的相邻关系。

  • (1)为了利用交互图上的结构邻居,我们开发了一种新的结构对比目标,该目标可以与基于GNN的协同过滤方法相结合
  • (2)为了使用语义邻居,我们将嵌入聚类得到用户/项目的原型,并将语义邻居整合到原型-对比目标中。

在5个公共数据集上的大量实验证明了该算法的有效性。

作为未来的工作,我们将把我们的框架扩展到其他推荐任务,如顺序推荐。此外,我们还将考虑制定一个更统一的公式,以发挥和利用不同类型的邻居。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值