Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation

  • Junliang Yu, Hongzhi Yin, Xin Xia, et al. Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation[C]. In SIGIR 2022.
  • 澳大利亚昆士兰大学 截稿日期2022-01-28 录用通知2022-04-15 会议日期2022-07-11

    摘要(Abstract)

    1. 对比学习(CL)最近在推荐领域引发了一系列卓有成效的研究,因为它从原始数据中提取自监督信号的能力与推荐系统解决数据稀疏问题的需求很好地结合在一起。基于CL的推荐模型的典型流水线是首先用结构扰动(例如随机边/节点丢失)来增强用户-项目二部图,然后最大化不同图增强之间的节点表示一致性。尽管这种模式被证明是有效的,但性能提高的原因仍然是一个谜。在本文中,我们首先通过实验揭示,在基于CL的推荐模型中,CL是通过学习更一致的用户/项目表示来发挥作用,这可以隐含地缓解流行度偏差。与此同时,被认为必要的图增强只起到了微不足道的作用。基于这一发现,我们提出了一种简单的CL方法,该方法丢弃了图的增强,只需在嵌入空间中添加均匀的噪声来创建对比视图,从而自由地调整学习表示的一致性。虽然它看起来非常简单,但在三个基准数据集上的综合实验研究表明,该方法在推荐准确率和模型训练效率方面都明显优于基于图增强的方法。该代码发布在[https://github.com/Coder-Yu/QRec](https://github.com/Coder-Yu/QRec)

    关键词(Keywords)

    自监督学习、推荐、对比学习、数据增强、图学习

    1 引言(Introduction)

    1. 最近,对比学习(CL)[121317]在深度表征学习中再次兴起。由于CL能够从大量的未标记数据中提取一般特征,并以自监督的方式对表示进行正则化,因此它在多个研究领域取得了重大进展[572936]。由于CL中不需要数据标注,因此它是推荐系统中数据稀疏问题的自然解决方案[923]。越来越多的最新研究[293339414546]试图利用CL来提高推荐性能,并显示出显著的收益。将CL应用于推荐的典型方法[29]是首先用结构扰动(例如,以特定比率的随机边/节点丢弃)来增强用户-项目二部图,然后通过图编码器最大化不同视图下表示的一致性。在这种设置中,CL任务充当辅助任务,并与推荐任务联合优化(图1)。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906509283-b0b1ebfb-2b26-4ace-9099-85889d54dc52.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=426&id=u99cb0e51&margin=%5Bobject%20Object%5D&name=image.png&originHeight=639&originWidth=1048&originalType=binary&ratio=1&rotation=0&showTitle=false&size=144955&status=done&style=none&taskId=ud893776f-d7db-4283-8c45-9baae0ed41d&title=&width=698.6666666666666)<br />**图1 面向推荐的边缘丢失的图对比学习**<br /> 尽管CL取得了令人鼓舞的结果,但性能提高的原因仍不清楚。直观地认为,我们假设对比不同的图增强可以通过随机去除边/节点丢弃的冗余和杂质来捕获原始用户-项目交互中存在的基本信息。出乎意料的是,一些最新的工作[15,39,47]已经报道,在CL中,即使是极度稀疏的图增强(边丢失率为0.9)也可以带来期望的性能改善。这种现象是非常难以捉摸的,也是违反直觉的,因为较大的丢失率将导致原始信息的巨大损失和高度扭曲的图结构。这自然提出了一个有意义的问题:当集成CL和推荐时,我们真的需要图增强吗?<br /> 为了回答这个问题,我们首先分别在使用和不使用图增强的情况下进行实验进行性能比较。结果表明,在没有图增强的情况下,算法的性能与有图增强时的性能相当。然后,我们研究了非CL和基于CL的推荐方法所学习的嵌入空间。通过可视化表示的分布并将它们与它们的性能相关联,我们发现对推荐性能真正重要的是CL损失,而不是图增强。优化对比损失InfoNCE[19]学习更统一的用户/项目表示,无论是否应用图增强,这隐含地起到了缓解流行度偏差的作用[4]。同时,尽管不像预期的那样有效,但图增强并不是完全无用的,因为适当扰动的原始图的版本有助于学习对扰动因素不变的表示[1,5]。然而,生成手工绘制的图增强需要在训练过程中不断重构图的邻接矩阵,这是相当耗时的。此外,丢弃关键边/节点(例如,切割边)可能会将连通图分割成几个不连通的分量,这可能会使增强图和原始图几乎没有可学习的不变性。鉴于这些缺陷,随之而来的问题是:是否有更有效和更高校的增强办法?<br /> 在本文中,我们给出了一个肯定的答案。在我们发现表示分布的均匀性是关键的基础上,我们发展了一种简单的无图增强的CL方法,其中的均匀性更可控。从技术上讲,我们遵循图1中提出的图对比学习框架,但我们放弃了基于dropout的图增强,而是将随机均匀噪声添加到原始表示中,用于表示级数据增强。施加不同的随机噪声会在对比视图之间产生差异,但由于易处理的噪声幅度,仍保留了可学习的不变性。然后,我们通过图卷积网络放大方差,并将增强的视图进行对比,以正则化表示进行推荐。与图增强相比,噪声版本直接在嵌入空间中操作,易于实现且效率要高得多。<br /> 本文的主要贡献概括如下:
  • 我们通过实验揭示了CL为什么能够提高推荐性能,并说明了InfoNCE的损失(而不是图增强)是决定因素。

  • 我们提出了一种简单而有效的无图增强CL推荐方法,它能以更直接和更简单的方式调节均匀性。它可以成为繁琐的基于图增强的CL方法的理想替代方案。
  • 我们在三个基准数据集上进行了全面的实验研究,结果表明,与基于图增强的方法相比,该方法在推荐准确度和模型训练效率方面具有明显的优势。

    2 图对比学习在推荐中的应用研究(Investigation of Graph Contrastive Learning in Recommendation)

    2.1 基于图对比学习的推荐(Graph CL for Recommendation)

    1. CL通常应用于具有一组对数据增强的假定表征不变性的推荐[29344146]。在本文中,我们重新考察了图[2936]上最常用的基于dropout的增强算法,该算法假定表示对于部分结构扰动是不变的。对最新的基于CL的推荐模型SGL[29]进行了研究,该模型通过节点和边的丢弃来增强原始图,并采用InfoNCE[19]用于CL。在形式上,SGL中的联合学习方案被定义为:<br />![](https://cdn.nlark.com/yuque/__latex/c0be47cb72932a6f23a99a7c15817c1f.svg#card=math&code=%5Cmathcal%7BL%7D_%7B%5Ctext%20%7Bjoint%20%7D%7D%3D%5Cmathcal%7BL%7D_%7Br%20e%20c%7D%2B%5Clambda%20%5Cmathcal%7BL%7D_%7Bc%20l%7D&id=P2yHW) (1)<br />它包括两个损失:推荐损失![](https://cdn.nlark.com/yuque/__latex/a5cc8bbf269a9ec9d1ca689d3ee8dcd5.svg#card=math&code=%5Cmathcal%7BL%7D_%7Br%20e%20c%7D&id=pwn28)和CL损失![](https://cdn.nlark.com/yuque/__latex/c6bb4f835d23f299210f7035f51fdc44.svg#card=math&code=%5Cmathcal%7BL%7D_%7Bc%20l%7D&id=lPaXR)。SGL中的InfoNCE的表述为:<br />![](https://cdn.nlark.com/yuque/__latex/2a13520106d2dff0e9116bbe66d6ee8f.svg#card=math&code=%5Cmathcal%7BL%7D_%7Bc%20l%7D%3D%5Csum_%7Bi%20%5Cin%20%5Cmathcal%7BB%7D%7D-%5Clog%20%5Cfrac%7B%5Cexp%20%5Cleft%28%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%20%5Ctop%7D%20%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D%20%2F%20%5Ctau%5Cright%29%7D%7B%5Csum_%7Bj%20%5Cin%20%5Cmathcal%7BB%7D%7D%20%5Cexp%20%5Cleft%28%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%20%5Ctop%7D%20%5Cmathbf%7Bz%7D_%7Bj%7D%5E%7B%5Cprime%20%5Cprime%7D%20%2F%20%5Ctau%5Cright%29%7D&id=nW0mE) (2)<br />其中![](https://cdn.nlark.com/yuque/__latex/a1170a444f2006784f140aea7fd6baa4.svg#card=math&code=i%2Cj&id=kKJBa)是采样batch![](https://cdn.nlark.com/yuque/__latex/8b5bc9380e2191fd9b9b2ae052c2a7d5.svg#card=math&code=%5Cmathcal%7BB%7D&id=njiMp)中的users/items,![](https://cdn.nlark.com/yuque/__latex/b333513428be2ab48b055861b282e877.svg#card=math&code=%5Cmathbf%7Bz%7D%5E%7B%5Cprime%7D%5Cleft%28%5Cmathrm%7Bz%7D%5E%7B%5Cprime%20%5Cprime%7D%5Cright%29&id=IU0GT)是从两个不同的基于dropout的图增强学习的![](https://cdn.nlark.com/yuque/__latex/12ea5d8dd1e9b2b63ca602dd183dde08.svg#card=math&code=L_2&id=g8LMD)归一化![](https://cdn.nlark.com/yuque/__latex/56c1b0cb7a48ccf9520b0adb3c8cb2e8.svg#card=math&code=d&id=OLCgU)维节点表示,并且![](https://cdn.nlark.com/yuque/__latex/09080ab2186412ecb1edd11c364291bf.svg#card=math&code=%5Ctau%20%3E0&id=sucXZ)(例如,0.2)是温度。CL损失鼓励了![](https://cdn.nlark.com/yuque/__latex/e7a4d26dce69b08d2c7b5d389fa2d941.svg#card=math&code=%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%7D&id=HvcGg)和![](https://cdn.nlark.com/yuque/__latex/9d88be23c980005777e66340a2b5b876.svg#card=math&code=%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D&id=nll8E)之间的一致性,它们是同一节点![](https://cdn.nlark.com/yuque/__latex/2443fbcfeb7e85e1d62b6f5e4f27207e.svg#card=math&code=i&id=Q9D4D)的增强表示,并且是彼此的正样本,同时最小化了![](https://cdn.nlark.com/yuque/__latex/e7a4d26dce69b08d2c7b5d389fa2d941.svg#card=math&code=%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%7D&id=zhkYG)和![](https://cdn.nlark.com/yuque/__latex/7fc3fdf34f3227de5e404542cee5066e.svg#card=math&code=%5Cmathbf%7Bz%7D_%7Bj%7D%5E%7B%5Cprime%20%5Cprime%7D&id=Lri8O)之间的一致性,它们是彼此的负样本。为了从用户-项目图中学习表示,SGL使用流行而有效的图编码器LightGCN[10]作为其主干,其消息传递过程定义为:<br />![](https://cdn.nlark.com/yuque/__latex/e66ccbc2228ce25fcd9ca6ad052df363.svg#card=math&code=%5Cmathbf%7BE%7D%3D%5Cfrac%7B1%7D%7B1%2BL%7D%5Cleft%28%5Cmathrm%7BE%7D%5E%7B%280%29%7D%2B%5Ctilde%7B%5Cmathrm%7BA%7D%7D%20%5Cmathrm%7BE%7D%5E%7B%280%29%7D%2B%5Cldots%2B%5Ctilde%7B%5Cmathrm%7BA%7D%7D%5E%7BL%7D%20%5Cmathrm%7BE%7D%5E%7B%280%29%7D%5Cright%29&id=u7Kfn) (3)<br />其中![](https://cdn.nlark.com/yuque/__latex/95af154fd6cfb33edf9c98715b271e1b.svg#card=math&code=%5Cmathrm%7BE%7D%5E%7B%280%29%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7B%7CN%7C%20%5Ctimes%20d%7D&id=NWZbs)是随机初始化的节点嵌入,![](https://cdn.nlark.com/yuque/__latex/d5bce1efd2607349a41c0a0f5e83214a.svg#card=math&code=%7CN%7C&id=t2UAf)是节点数,![](https://cdn.nlark.com/yuque/__latex/c895173d3be4872abf206be4268a58cb.svg#card=math&code=L&id=KWa2i)是层数,![](https://cdn.nlark.com/yuque/__latex/73425280e8d043677afac4654bcec71a.svg#card=math&code=%5Ctilde%7B%5Cmathrm%7BA%7D%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7B%7CN%7C%20%5Ctimes%7CN%7C%7D&id=L35pp)是归一化的无向邻接矩阵。通过用损坏的图增强的邻接矩阵替换![](https://cdn.nlark.com/yuque/__latex/6f5202dd118d18e4fc8f97b7a8568d22.svg#card=math&code=%5Ctilde%7B%5Cmathrm%7BA%7D%7D&id=HMs9F),![](https://cdn.nlark.com/yuque/__latex/79094d2f395213348dccd2be7c0038cd.svg#card=math&code=%5Cmathbf%7Bz%7D%5E%7B%5Cprime%7D%5Cleft%28%5Cmathbf%7Bz%7D%5E%7B%5Cprime%20%5Cprime%7D%5Cright%29&id=svOTB)可以通过等式(3)学习。请注意,![](https://cdn.nlark.com/yuque/__latex/23d14ec76f1eeb059b91467e65023016.svg#card=math&code=%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%7D%3D%5Cfrac%7B%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%7D%7D%7B%5Cleft%5C%7C%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%7D%5Cright%5C%7C_%7B2%7D%7D&id=aRJgy)和![](https://cdn.nlark.com/yuque/__latex/1aa66b78d1161b42821d7533a65a96df.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%7D&id=iNiJs)是![](https://cdn.nlark.com/yuque/__latex/ee67e536ccec11ef7d76c13c2314994f.svg#card=math&code=%5Cmathbf%7BE%7D&id=wlCjJ)中![](https://cdn.nlark.com/yuque/__latex/4aaa2c022e6053f8927d7b2ef42450c1.svg#card=math&code=%5Cmathbf%7Be%7D_i&id=bqpI7)的损坏版本。为简洁起见,这里我们只抽象SGL和LightGCN的核心成分。更多技术细节可以在原始论文中找到[10,29]。

    2.2 图增强的必要性(Necessity of Graph Augmentation)

    1. 为了解释基于CL的推荐方法是如何工作的,我们首先研究了SGL中图增强的必要性。我们构造了一种新的SGL变体,称为SGL-WA(WA代表“无增强”),其中CL损失为:<br />![](https://cdn.nlark.com/yuque/__latex/ed65c4fd67ac6af01681482488ea2938.svg#card=math&code=%5Cmathcal%7BL%7D_%7Bc%20l%7D%3D%5Csum_%7Bi%20%5Cin%20%5Cmathcal%7BB%7D%7D-%5Clog%20%5Cfrac%7B%5Cexp%20%281%20%2F%20%5Ctau%29%7D%7B%5Csum_%7Bj%20%5Cin%20%5Cmathcal%7BB%7D%7D%20%5Cexp%20%5Cleft%28%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Bz%7D_%7Bj%7D%20%2F%20%5Ctau%5Cright%29%7D&id=q7jLT) (4)<br /> 因为我们只学习原始用户-项目图的表示,所以我们有![](https://cdn.nlark.com/yuque/__latex/eb44a921141c24dee759ca5f64be4a4f.svg#card=math&code=%5Cmathrm%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%7D%3D%5Cmathrm%7Bz%7D_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D%3D%5Cmathrm%7Bz%7D_%7Bi%7D&id=s5XcB)。性能比较的实验在两个基准数据集上进行:Yelp2018和Amazon-Book[10,26]。采用三层设置,并根据SGL的原始论文(更多实验细节见4.1节)调整超参数。结果如表1所示。对本文提出的SGL三种变体(丢失率为0.1)进行了评估(-ND表示节点丢弃,-ED表示边缘丢弃,-RW表示随机游动(即多层边缘丢弃))。CL Only意味着只有SGL中的CL损失最小)。<br />**表1 不同SGL变体的性能比较**<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906628115-53323237-da19-4dcf-b672-9cc2ab758d3a.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=315&id=u9797b0fb&margin=%5Bobject%20Object%5D&name=image.png&originHeight=473&originWidth=1213&originalType=binary&ratio=1&rotation=0&showTitle=false&size=196511&status=done&style=none&taskId=u6d25c2d8-b13d-4d1c-a70a-f863995abac&title=&width=808.6666666666666)<br /> 可以看出,SGL的所有变体都比LightGCN有很大的优势,这表明CL在提高推荐性能方面是有效的。令我们惊讶的是,当图增强分离时,性能提升仍然是如此显著,以至于SGL-WA甚至表现出了比SGL-ND和SGL-RW更优越的性能。我们推测,节点丢弃和随机游走(特别是前者)很可能会丢弃关键节点和相关边,从而将关联子图分解为不连通的片段,从而严重扭曲原始图。这种图增强几乎没有可学习的不变性,鼓励它们之间的一致性可能会产生负面影响。相比之下,一次性边丢失在很大程度上扰乱原始图的语义的风险较低,因此SGL-ED可以保持比SGL-WA更小的优势,这表明了适当的图增强的潜力。然而,考虑到每个时期重建邻接矩阵的耗时,我们应该重新考虑图增强的必要性,并寻找更好的替代方案。此外,我们想知道是什么导致了SGL-WA的出色表现,因为它的CL部分没有提供差异。

    2.3 InfoNCE损失影响更大(InfoNCE Loss Influences More)

    1. WangIsola[25]发现,优化对比损失增强了视觉表示学习中的两个特性:正对特征的对齐和单位超球面上归一化特征分布的一致性。目前尚不清楚基于CL的推荐方法是否表现出类似的模式,可以解释第2.2节中的结果。由于Top-N推荐是一个单类问题,我们只遵循文[25]中的可视化方法来研究一致性。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906708192-99e51e92-5424-4b3e-87f4-1ff887239e72.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=683&id=ueaf5c2a6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1025&originWidth=1548&originalType=binary&ratio=1&rotation=0&showTitle=false&size=428251&status=done&style=none&taskId=udcb8b7a4-b968-4de0-a04e-db9f9296080&title=&width=1032)<br />**图2** 我们在![](https://cdn.nlark.com/yuque/__latex/b6cd3c2611c7ab68be4ad47c34034991.svg#card=math&code=%5Cmathbb%7BR%7D%5E%7B2%7D&id=PhZXh)用高斯核密度估计(KDE)绘制特征分布(颜色越深,落在该区域的点越多)和角度上的KDE(即每个点![](https://cdn.nlark.com/yuque/__latex/7f6b225eb0c12bc254ec7fbf70023493.svg#card=math&code=%28%5Cmathbf%7Bx%7D%2C%20%5Cmathbf%7By%7D%29%20%5Cin%20%5Cmathcal%7BS%7D%5E%7B1%7D&id=la3Lq)的反正切2(y,x)。<br /> 我们首先使用t-SNE[24]将学习到的表示(每个数据集随机抽样2,000个用户)映射到单位超球S1(即半径为1的圆)上的二维归一化向量。当方法达到最佳性能时,获得所有的表示。然后我们在R2中用非参数高斯核密度估计[3]绘制特征分布(如图2所示)。为了更清楚地呈现,还可视化了S1上每个点的角度上的密度估计。根据图2,我们可以观察到显著不同的特征/密度分布。在最左侧的列中,LightGCN显示了高度聚集的特征,这些特征主要位于一些狭窄的弧线上。而在第二和第三列中,无论是否应用图增强,分布都变得更加均匀,密度估计曲线不那么尖锐。在第四列中,我们画出了仅通过等式(2)中的对比损失学习到的特征,分布几乎是完全均匀的。<br /> 我们认为有两个原因可以解释高度聚集的特征分布。第一个是LightGCN中的消息传递机制。随着层数的增加,节点嵌入变得局部相似。第二是推荐数据中的流行度偏差[4]。回想一下LightGCN中使用的BPR损失[22]:<br />![](https://cdn.nlark.com/yuque/__latex/4276a9e1a73c013f818ed623ff437f60.svg#card=math&code=%5Cmathcal%7BL%7D_%7Br%20e%20c%7D%3D-%5Clog%20%5Cleft%28%5Csigma%5Cleft%28%5Cmathbf%7Be%7D_%7Bu%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Be%7D_%7Bi%7D-%5Cmathbf%7Be%7D_%7Bu%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Be%7D_%7Bj%7D%5Cright%29%5Cright%29&id=bDUUf) (5)<br />这是一个三元组输入![](https://cdn.nlark.com/yuque/__latex/324d0b142bc31f55bcc646757252383a.svg#card=math&code=%28u%2Ci%2Cj%29&id=QSeYp)。为了优化BPR损失,我们得到梯度![](https://cdn.nlark.com/yuque/__latex/4304ee339b97b41bdc7f6544e2dda7fb.svg#card=math&code=%5Ctext%20%7B%20w.r.t%20%7D%20%5Cmathbf%7Be%7D_%7Bu%7D%3A%20%5Cnabla_%7B%5Cmathbf%7Be%7D_%7Bu%7D%7D%3D-%5Ceta%281-s%29%5Cleft%28%5Cmathbf%7Be%7D_%7Bi%7D-%5Cmathbf%7Be%7D_%7Bj%7D%5Cright%29&id=w1ZW6),其中![](https://cdn.nlark.com/yuque/__latex/7483c6745bb07f292eba02b3a9b55c26.svg#card=math&code=%5Ceta&id=DciAY)是学习率,![](https://cdn.nlark.com/yuque/__latex/788df1ba344b3092def7590d1be6b4d4.svg#card=math&code=%5Csigma&id=h3g6G)是Sigmoid函数,![](https://cdn.nlark.com/yuque/__latex/7f0fda138b8519fec4258ffc404aac0e.svg#card=math&code=s%3D%5Csigma%5Cleft%28%5Cmathbf%7Be%7D_%7Bu%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Be%7D_%7Bi%7D-%5Cmathbf%7Be%7D_%7Bu%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Be%7D_%7Bj%7D%5Cright%29&id=KGYIN),![](https://cdn.nlark.com/yuque/__latex/f8871f27f0e775a127cecdd6d9d374ec.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bu%7D&id=LCxAl)是用户嵌入,![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=qLV5q)和![](https://cdn.nlark.com/yuque/__latex/80a75547a0cebe305c2dbd5b817ad0c3.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bj%7D&id=IrQvd)分别表示正项嵌入和负项嵌入。由于推荐数据通常遵循长尾分布,当![](https://cdn.nlark.com/yuque/__latex/2443fbcfeb7e85e1d62b6f5e4f27207e.svg#card=math&code=i&id=z6SQL)是具有大量交互的热门项目时,用户嵌入会不断朝着![](https://cdn.nlark.com/yuque/__latex/2443fbcfeb7e85e1d62b6f5e4f27207e.svg#card=math&code=i&id=fqEtH)的方向更新(即![](https://cdn.nlark.com/yuque/__latex/f72f98dab7c2a58a79cff56e6481864d.svg#card=math&code=-%5Cnabla_%7B%5Cmathbf%7Be%7D_%7Bu%7D%7D&id=BdbCx))。消息传递机制进一步加剧了聚类问题(即,![](https://cdn.nlark.com/yuque/__latex/f8871f27f0e775a127cecdd6d9d374ec.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bu%7D&id=rHtl1)和![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=F2gFf)在图卷积中聚合彼此信息),并导致表示退化[21]。<br /> 对于其他列中的分布,改写为等式(4),我们可以推导出<br />![](https://cdn.nlark.com/yuque/__latex/e5086512b357a38bf928e2c67f4082fd.svg#card=math&code=%5Cmathcal%7BL%7D_%7Bc%20l%7D%3D%5Csum_%7Bi%20%5Cin%20%5Cmathcal%7BB%7D%7D-1%20%2F%20%5Ctau%2B%5Clog%20%5Cleft%28%5Cexp%20%281%20%2F%20%5Ctau%29%2B%5Csum_%7Bj%20%5Cin%20%5Cmathcal%7BB%7D%20%2F%5C%7Bi%5C%7D%7D%20%5Cexp%20%5Cleft%28%5Cmathbf%7Bz%7D_%7Bi%7D%5E%7B%5Ctop%7D%20%5Cmathbf%7Bz%7D_%7Bj%7D%20%2F%20%5Ctau%5Cright%29%5Cright%29&id=HuHem) (6)<br />由于![](https://cdn.nlark.com/yuque/__latex/af3d8731eb124bb2751222a7e12ed327.svg#card=math&code=1%20%2F%20%5Ctau&id=JlPqo)是一个常数,优化CL损失实际上是最小化不同节点嵌入![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=eH6Je)和![](https://cdn.nlark.com/yuque/__latex/80a75547a0cebe305c2dbd5b817ad0c3.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bj%7D&id=OIyWF)之间的余弦相似度,这会把连接的节点从表示空间中的高度中心推开,即使在推荐损失的影响下也会导致更均匀的分布。<br /> 通过将表1中的结果与图2中的分布相关联,我们可以很容易地得出结论:在SGL中,分布的均匀性是对推荐性能具有决定性影响的潜在因素,而不是基于丢弃的图增强。优化CL损失可以被视为是一种隐含的去偏方法(在第4.2节中讨论),因为更均匀的表示分布可以保留节点的内在特征并提高泛化能力。这可以是一个令人信服的解释SGL-WA的出乎意料的性能。还应该注意的是,通过仅最小化等式(2)中的CL损失将达到差的性能,这意味着均匀性和性能之间的正相关性仅在有限的范围内成立。对均匀性的过度追求会忽略交互对和相似用户/项目的接近程度,降低推荐性能。

    3 SimGCL: Simple Graph Contrastive Learning for Recommendation

    1. 根据第二节的研究结果,我们推测,通过在一定范围内调整学习表征的均匀性,可以达到最优的性能。在这一部分中,我们的目标是开发一种简单的图对比学习方法(SimGCL),它可以自由地调节均匀性并提供信息性方差,从而最大化地从图对比学习方法中获益。

    3.1 动机和表述(Motivation and Formulation)

    1. 由于为均匀表示分布操作图结构是困难和耗时的,因此我们将注意力转移到嵌入空间。受通过向输入图像添加难以察觉的微小扰动而构造的对抗性示例[8]的启发,我们直接在表示中添加随机噪声,以实现高效和有效的增强。<br /> 形式上,给定节点![](https://cdn.nlark.com/yuque/__latex/2443fbcfeb7e85e1d62b6f5e4f27207e.svg#card=math&code=i&id=SrkCj)及其在![](https://cdn.nlark.com/yuque/__latex/56c1b0cb7a48ccf9520b0adb3c8cb2e8.svg#card=math&code=d&id=lJoBJ)维嵌入空间中的表示![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=fiXDG),我们可以实现以下表示级增强:<br />![](https://cdn.nlark.com/yuque/__latex/fef24418fc1d05d9a2cce90b9015a720.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%7D%3D%5Cmathbf%7Be%7D_%7Bi%7D%2B%5CDelta_%7Bi%7D%5E%7B%5Cprime%7D%2C%20%5Cquad%20%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D%3D%5Cmathbf%7Be%7D_%7Bi%7D%2B%5CDelta_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D&id=NO793) (7)<br />其中,添加的噪声向量![](https://cdn.nlark.com/yuque/__latex/25f289f3c6f86de96046f5a245ffd740.svg#card=math&code=%5CDelta_%7Bi%7D%5E%7B%5Cprime%7D&id=hS4ke)和![](https://cdn.nlark.com/yuque/__latex/8ad9b0e961238a23fb254dd7aaf05deb.svg#card=math&code=%5CDelta_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D&id=bl0jD)服从![](https://cdn.nlark.com/yuque/__latex/da58a9781146b1b54174fad581c528aa.svg#card=math&code=%5C%7C%5CDelta%5C%7C_%7B2%7D%3D%5Cepsilon&id=x1Biq)和![](https://cdn.nlark.com/yuque/__latex/924ac320bb1343a2997e5d15419e8a68.svg#card=math&code=%5CDelta%3D%5Cbar%7B%5CDelta%7D%20%5Codot%20%5Coperatorname%7Bsign%7D%5Cleft%28%5Cmathbf%7Be%7D_%7Bi%7D%5Cright%29&id=mX4B4),![](https://cdn.nlark.com/yuque/__latex/d906c5dcece60058e58b64b5b28b53ee.svg#card=math&code=%5Cbar%7B%5CDelta%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bd%7D%20%5Csim%20U%280%2C1%29&id=LNX3N)。第一个约束控制![](https://cdn.nlark.com/yuque/__latex/6cbe179fa77b5a6af5c84309f72dd808.svg#card=math&code=%5CDelta&id=nU9kO)的大小,![](https://cdn.nlark.com/yuque/__latex/6cbe179fa77b5a6af5c84309f72dd808.svg#card=math&code=%5CDelta&id=aUzaZ)在数值上等价于半径为![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=WfgBt)的超球面上的点。第二个约束要求![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=YsViQ),![](https://cdn.nlark.com/yuque/__latex/f4644d6aedaa0c61695a40c4c6658f94.svg#card=math&code=%5CDelta%5E%7B%5Cprime%20%7D&id=Fr0Q6)和![](https://cdn.nlark.com/yuque/__latex/d35ae9b73aa4082eb9a7f28cbf108238.svg#card=math&code=%5CDelta%5E%7B%5Cprime%20%5Cprime%7D&id=Cu9Fd)应该在同一个超面中,这样增加噪声就不会导致![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=Vbc34)的较大偏差,从而使得有效的正样本较少。在图3中,我们说明了等式(7)在![](https://cdn.nlark.com/yuque/__latex/b6cd3c2611c7ab68be4ad47c34034991.svg#card=math&code=%5Cmathbb%7BR%7D%5E%7B2%7D&id=i2zGv)中,通过将缩放的噪声向量添加到原始表示中,我们将![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=Pmr3A)旋转两个小角度(![](https://cdn.nlark.com/yuque/__latex/eb7067f9f4058416e3b3c03c1ee86b78.svg#card=math&code=%5Ctheta_%7B1%7D&id=nQCEZ)和![](https://cdn.nlark.com/yuque/__latex/da08976cba05dc05bce300430f559d69.svg#card=math&code=%5Ctheta_%7B2%7D&id=U4vj7))。每一次旋转对应于![](https://cdn.nlark.com/yuque/__latex/4b9255c0e5f9d054c619155309ae385e.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D&id=nhrT8)的偏差,并导致一个增强表示(![](https://cdn.nlark.com/yuque/__latex/1aa66b78d1161b42821d7533a65a96df.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%7D&id=WS6SN)和![](https://cdn.nlark.com/yuque/__latex/25e7ccc32dde5e270cc1c15ad8903d30.svg#card=math&code=%5Cmathbf%7Be%7D_%7Bi%7D%5E%7B%5Cprime%20%5Cprime%7D&id=sAezB))。由于旋转足够小,增强表示保留了原始表示的大部分信息,同时也保留了一些方差。注意,对于每个节点表示,添加的随机噪声是不同的。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906753865-31b0538d-2a70-4be6-b912-0b59c56163f4.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=323&id=ua5c5723f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=485&originWidth=690&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65180&status=done&style=none&taskId=u992d1ffd-7462-4d07-9bdf-9b6bd184de5&title=&width=460)<br />**图3 **![](https://cdn.nlark.com/yuque/__latex/b6cd3c2611c7ab68be4ad47c34034991.svg#card=math&code=%5Cmathbb%7BR%7D%5E%7B2%7D&id=xkTjG)**提出的基于随机噪声的数据增强的例证**<br /> 遵循SGL,我们采用LightGCN作为图编码器来传播节点信息并放大方差的影响,因为它的结构简单且有效。在每一层,不同尺度的随机噪声被施加到当前节点嵌入。最终扰动的节点表示通过以下方式学习:<br />![](https://cdn.nlark.com/yuque/__latex/139d1a56e8f66ece210b6db480e6c97d.svg#card=math&code=%5Cbegin%7Barray%7D%7Br%7D%0A%5Cmathbf%7BE%7D%5E%7B%5Cprime%7D%3D%5Cfrac%7B1%7D%7BL%7D%5Cleft%28%5Cleft%28%5Ctilde%7B%5Cmathrm%7BA%7D%7D%20%5Cmathbf%7BE%7D%5E%7B%280%29%7D%2B%5CDelta%5E%7B%281%29%7D%5Cright%29%2B%5Cleft%28%5Ctilde%7B%5Cmathbf%7BA%7D%7D%5Cleft%28%5Ctilde%7B%5Cmathrm%7BA%7D%7D%20%5Cmathbf%7BE%7D%5E%7B%280%29%7D%2B%5CDelta%5E%7B%281%29%7D%5Cright%29%2B%5CDelta%5E%7B%282%29%7D%5Cright%29%5Cright%29%2B%5Cldots%20%5C%5C%0A%5Cleft.%2B%5Cleft%28%5Ctilde%7B%5Cmathrm%7BA%7D%7D%5E%7BL%7D%20%5Cmathbf%7BE%7D%5E%7B%280%29%7D%2B%5Ctilde%7B%5Cmathrm%7BA%7D%7D%5E%7BL-1%7D%20%5CDelta%5E%7B%281%29%7D%2B%5Cldots%2B%5Ctilde%7B%5Cmathrm%7BA%7D%7D%20%5CDelta%5E%7B%28L-1%29%7D%2B%5CDelta%5E%7B%28L%29%7D%5Cright%29%5Cright%29%0A%5Cend%7Barray%7D&id=A3ftl) (8)<br /> 需要指出的是,在计算最终表示时,我们跳过所有三个编码器中嵌入![](https://cdn.nlark.com/yuque/__latex/b782ab3a4458f5e6f01d1176fbd8b344.svg#card=math&code=%5Cmathbf%7BE%7D%5E%7B%280%29%7D&id=Ys0FS)的输入,因为我们在实验中发现,跳过它可以在我们的设置中带来轻微的性能改进。但是,如果没有CL任务,此操作将导致LightGCN的性能下降。最后,我们还统一了BPR损失(等式(5))和CL损失(等式(2)),然后使用Adam优化等式(1)中给出的联合损失。

    3.2 调节均匀性(Regulating Uniformity)

    1. SimGCL中,两个超参数![](https://cdn.nlark.com/yuque/__latex/e520c061a407db472027709bf3f73290.svg#card=math&code=%5Clambda&id=gjmld)和![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=gxo9l)会影响对性能至关重要的表示的均匀性。但![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=lgUaR)仅通过调整![](https://cdn.nlark.com/yuque/__latex/e520c061a407db472027709bf3f73290.svg#card=math&code=%5Clambda&id=Hhu7O)就可以明确而自由地调节均匀性。通过调整![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=QaC3O)的值,我们可以直接控制增强表示与偏离原始表示的程度。直观地说,较大的![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=OIb52)将导致学习的表示更加大致均匀的分布,因为当增强表示足够远离原始表示时,其表示中的信息也会受到噪声的相当大的影响。当从均匀分布中采样噪声时,通过对比增强表示,原始表示被正则化为更高的均匀性。为了证明这一点,我们给出了以下实验分析。<br /> 在[25]中,提出了一个度量来测量表示的均匀性,该度量是平均成对高斯势的对数(也称为径向基函数(RBF)核):<br />![](https://cdn.nlark.com/yuque/__latex/f2db715bbc8e9cf47ee274d2eb8f99ca.svg#card=math&code=%5Cmathcal%7BL%7D_%7B%5Ctext%20%7Buniform%20%7D%7D%28f%29%3D%5Clog%20%5Cunderset%7B%5Csubstack%7Bi%20.%20i%20.%20d%20%5C%5C%20u%2C%20v%20%5Csim%20p_%7B%5Ctext%20%7Bnode%20%7D%7D%7D%7D%7B%5Cmathbb%7BE%7D%7D%20e%5E%7B-2%5C%7Cf%28u%29-f%28v%29%5C%7C_%7B2%7D%5E%7B2%7D%7D&id=XST6x) (9)<br />其中,![](https://cdn.nlark.com/yuque/__latex/81aa8a3c2035dbb2d0bd184c6258602a.svg#card=math&code=f%28u%29&id=ZKrUE)输出的是![](https://cdn.nlark.com/yuque/__latex/77c3adce895348f6083c425fe1ba2624.svg#card=math&code=u&id=KDoJk)的![](https://cdn.nlark.com/yuque/__latex/12ea5d8dd1e9b2b63ca602dd183dde08.svg#card=math&code=L_2&id=PpNkn)归一化嵌入。我们选择流行度的项目(超过200次交互),并在Yelp2018的数据集中随机抽取5000名用户组成用户-项目对,然后用等式(9)计算它们在SGL变体和SimGCL中表示的一致性。为了公平比较,将![](https://cdn.nlark.com/yuque/__latex/28060750e36b32211f283b4db88da780.svg#card=math&code=%5Clambda%20%3D%200.1&id=C4BwF)的三层设置应用于所有比较的方法。然后,我们调整![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=PyPfF)以观察均匀性是如何变化的。我们在每个epochs后检查均匀性,并记录前30个epochs的值,在此期间所比较的方法都收敛到它们的最优解。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906803585-1671255a-f11d-48e5-9e14-9d839e850bbe.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=425&id=u3310306a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=638&originWidth=1229&originalType=binary&ratio=1&rotation=0&showTitle=false&size=180859&status=done&style=none&taskId=u014684ac-8f59-4e53-b323-a64c21effb4&title=&width=819.3333333333334)<br />**图4 均匀性趋势**。星号表示达到最佳推荐性能的epoch。![](https://cdn.nlark.com/yuque/__latex/c36c8ebedb3b37fee282e1c125c6a249.svg#card=math&code=%5Cmathcal%7BL%7D_%7B%5Ctext%20%7Buniform%20%7D%7D&id=t1ew3)的值越低越好。<br /> 如图4所示,在所有曲线上都观察到了类似的趋势。在初始阶段,所有方法都具有高度均匀分布的表示,这是因为我们使用了Xavier初始化,这是一种特殊的均匀分布。随着训练的进行,均匀度逐渐下降(![](https://cdn.nlark.com/yuque/__latex/c36c8ebedb3b37fee282e1c125c6a249.svg#card=math&code=%5Cmathcal%7BL%7D_%7B%5Ctext%20%7Buniform%20%7D%7D&id=bmRK2)变高),达到峰值后,均匀度逐渐提高直至收敛并保持这一趋势。对于SimGCL,随着![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=Rg1X6)的增加,它倾向于学习更均匀的表示,即使很小的![](https://cdn.nlark.com/yuque/__latex/9c8b845a76e095072e5a70c84427e31f.svg#card=math&code=%5Cepsilon%20%3D0.01&id=oy1gd)也会导致比SGL变体更高的均匀性。因此,用户(特别是长尾用户)较少受到热门项目影响。在图2最右侧的一列中,我们还绘制了![](https://cdn.nlark.com/yuque/__latex/928484fb79042ca52af197e7cb4c9f50.svg#card=math&code=%5Cepsilon%20%3D0.1&id=BYu9b)时的SimGCL的表示分布。我们可以清楚地看到,这些分布明显比SGL变体和LightGCN了解的分布更均匀。所有这些结果都支持我们的观点,即通过用基于噪声的增强代替图增强,SimGCL能够更好地控制学习表示的均匀性,从而消除偏差。

    3.3 复杂度(Complexity)

    1. 在这一节中,我们分析了SimGCL的时间复杂度,并将其与LightGCN及其基于图增强的SGL-ED进行了比较。我们在此讨论批处理时间复杂性,因为批内负采样是CL[5]中广泛使用的技巧。设![](https://cdn.nlark.com/yuque/__latex/ca02fd6d72e6de7136f851d0be3a405c.svg#card=math&code=%7CE%7C&id=ORVmj)是图中的边数,![](https://cdn.nlark.com/yuque/__latex/56c1b0cb7a48ccf9520b0adb3c8cb2e8.svg#card=math&code=d&id=F2tBM)是嵌入大小,![](https://cdn.nlark.com/yuque/__latex/54f5fb1b07a88521e7b036e3bc7a5e33.svg#card=math&code=B&id=lNXCe)表示批量大小,![](https://cdn.nlark.com/yuque/__latex/6f5dde593f0bc27956e14b5eaec2ed17.svg#card=math&code=M&id=BdHPx)表示批次中的节点数,![](https://cdn.nlark.com/yuque/__latex/d7dccfe80f15d1d2e2f37d8d47a9378b.svg#card=math&code=%5Crho&id=hnFKJ)表示SGL-ED中的边保持率。我们可以推导出:<br />**表2 时间复杂度的比较**![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906862734-4104503f-8381-48e8-a1ca-b52ac83c99d3.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=221&id=u0d84108e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=331&originWidth=1084&originalType=binary&ratio=1&rotation=0&showTitle=false&size=126520&status=done&style=none&taskId=u99e2e18f-0cc5-42ce-84f5-274c97b3fc4&title=&width=722.6666666666666)
  • 对于LightGCN和SimGCL,不需要图增强,只需对含有基于简单图对比学习的推荐SimGCL-2022 - 图7非零元素的原始邻接矩阵进行归一化。对于DGL-ED,使用了两个图增强,并且每个图都具有基于简单图对比学习的推荐SimGCL-2022 - 图8非零元素。

  • 在图卷积阶段,在SGL-ED和SimGCL中都采用了三编码器体系结构(见图1)来学习增强节点表示。因此,SGL-ED和SimGCL的时间成本几乎是LightGCN的三倍。
  • 对于推荐损失,三种方法都使用BPR损失,并且每批都包含基于简单图对比学习的推荐SimGCL-2022 - 图9交互,因此它们在这一部分具有相同的时间成本。
  • 在计算CL损失时,正/负样本之间的计算代价分别为基于简单图对比学习的推荐SimGCL-2022 - 图10基于简单图对比学习的推荐SimGCL-2022 - 图11,因为每个节点只认为自己是正的,而其他节点都是负的。

    1. 比较SimGCLSGL-ED,我们可以清楚地看到SGL-ED花在图卷积上的时间更少,这一优点可能会抵消SimGCL在邻接矩阵构造上的优势。然而,当我们将它们付诸实践时,我们实际上观察到SimGCL的时间效率更高。这是因为,图卷积的计算大多在GPU上完成,而图扰动则在CPU上执行。此外,在每个epoch中,SGL-ED中的图增强的邻接矩阵都需要重构。而在SimGCL算法中,只需要在训练前生成一次原图的邻接矩阵。简而言之,SimGCL远比SGL更有效,这超出了我们从理论分析中所能观察到的。

    4 试验结果(Experimental Results)

    4.1 实验设置(Experimental Settings)

    4.1.1 数据集(Datasets)

    1. 三个公共基准数据集:**Douban-Book**[39](#user 13024, #item 22347, #interaction 792062),**Yelp2018**[10](#user 31668 #item 38048, #interaction 1561406), **Amazon-Book**[29](#user 52463, #item 91599, #interaction 2984108)用于评估SimGCL。因为我们关注Top-N推荐,遵循先前研究[41,41]中的惯例,我们丢弃Douban-Book中低于4的评分,该评分具有1-5的评分等级,并将其余评分重置为1。我们将数据集按7:1:2的比例分为三部分(训练集、验证集和测试集)。使用两个常见的指标:![](https://cdn.nlark.com/yuque/__latex/0073b9c47b50788a9c41a0a7a916be41.svg#card=math&code=Recall%40K&id=O9hxd)和![](https://cdn.nlark.com/yuque/__latex/d0bb2a790ad5312c85fde5b2e6930bd6.svg#card=math&code=NDCG%40K&id=USjpS),我们设置K=20。为了进行严格和公正的评估,本节中的每个实验都进行5次,对所有项目进行排序,然后报告平均结果。

    4.1.2 基线(Baselines)

    除了LightGCN和SGL变体之外,还比较了以下基于数据增强的最新方法。

  • Mult-VAE[16]是一种基于变分自编码器的推荐模型。由于它具有重建目标,因此可以看作是一种特殊的自监督推荐模型。

  • DNN+SSL[35]是最近提出的一种基于DNN的推荐方法,它采用了类似于图1中的体系结构,并对CL进行了特征掩蔽。
  • BUIR[15]具有目标网络和在线网络组成的两分支结构,并且只使用正例进行自监督学习。
  • MixGCL[11]设计了一种跳跃混合技术,通过嵌入插值来合成用于图协同过滤的困难负样本(hard negatives)。

    4.1.3 超参数(Hyperparameters)

    1. 为了进行公平比较,我们参考基线原始论文中报告的最佳超参数设置,然后使用网格搜索微调基线的所有超参数。对于所有基线的一般设置,在所有嵌入上都使用了Xavier初始化。嵌入大小为64,![](https://cdn.nlark.com/yuque/__latex/12ea5d8dd1e9b2b63ca602dd183dde08.svg#card=math&code=L_2&id=TWwnA)正则化参数为![](https://cdn.nlark.com/yuque/__latex/0862c3e735b7923c475f6e3c30ff4961.svg#card=math&code=10%5E%7B-4%7D&id=yL3Xx),批量大小为2048。我们使用学习率为0.001的Adam来优化所有模型。在SimGCL和SGL中,我们经验地假设温度![](https://cdn.nlark.com/yuque/__latex/e7ccb9bf589e539415d2ed8b202fb932.svg#card=math&code=%5Ctau&id=MWqE0)=0.2,这个值在SGL的原始论文中也被报道为最好的。

    4.2 SGL vs. SimGCL:综合视角

    1. 由于本文的核心主张之一是图增强在基于CL的推荐中并不是必不可少的和低效的,在这一部分中,我们从推荐性能、收敛速度、运行时间和去偏能力等方面对SGLSimGCL进行了全面的比较。

    4.2.1 性能比较(Performance Comparison)

    1. 我们首先在三个具有不同图层设置的不同数据集上进一步比较了SGLSimGCL。我们没有报道更深层的结果,因为SGLSimGCL都在浅层结构下达到了最佳性能。所使用的超参数在第4.3节中报告。我们将代表最佳性能的数字加粗,并在第二好的下面划线。通过使用LightGCN作为基线来计算改进。根据表3,我们可以得出以下观察和结论:<br />**表3 不同CL方法在三个基准上的性能比较**<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655906899807-fb9195a5-7b2b-4841-8408-eb97f3d98a50.png#clientId=u22c7a219-7ed4-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=541&id=ubd491904&margin=%5Bobject%20Object%5D&name=image.png&originHeight=812&originWidth=1568&originalType=binary&ratio=1&rotation=0&showTitle=false&size=620850&status=done&style=none&taskId=u1d4628a9-7ce8-406e-965a-f9ecdeb7f9f&title=&width=1045.3333333333333)
  • 所有的SGL变体和SimGCL在不同的设置下都有效地改善了LightGCN。在Douban-Book上观察到最大的改进。当层数为1时,SimGCL在召回率显著提高LightGCN 33.5%,在NDCG上显著提高40.5%。

  • SGL-ED是SGL最有效的变体,SGL-ND是最无效的。当使用2层或3层设置时,SGL-WA在大多数情况下优于SGL-ND,在少数情况下优于SGL-RW。这些结果表明,CL损失是性能改进的主要驱动力,而直观的图增强可能并不像预期的那样有效,其中一些甚至可能会降低性能。
  • SimGCL在所有情况下都表现出最好的性能,这证明了基于随机噪声的数据增强的有效性。特别是,在两个较大的数据集上:Yelp2018和Amazon-Book,SimGCL明显优于SGL变体。

    4.2.2 收敛速度比较(Convergence Speed Comparison)

    image.png
    图5 前50个epochs的性能曲线
    image.png
    图6 前50个epochs的损失曲线
    在这一部分中,我们证明了SimGCL的收敛速度比SGL快得多。此部分使用2层设置,其他参数保持不变。
    根据图5和图6,我们可以观察到,SimGCL在Douban-Book、Yelp2018和Amazon-Book上分别在第25、11和第10个epochs达到了测试集的最佳性能。相比之下,SGL-ED分别在第38、17和14个epochs达到峰值。SimGCL只花费SGL变体所需的2/3个epochs。此外,SGL-WA的曲线几乎与Yelp2018和Amazon-Book上的SGL-ED曲线重叠,并呈现出相同的收敛趋势。基于丢弃的图增强似乎不能加速模型的更快收敛。尽管如此,所有基于CL的方法在收敛速度上的表现都优于LightGCN。当其他三种方法开始过拟合时,LightGCN距离收敛还有数百个epochs。
    在SGL的论文中,作者推测CL损失中的多重负值可能有助于快速收敛。然而,由于dropout产生了几乎无限的负样本,SGL-ED在训练速度方面与SGL-WA基本持平,尽管后者只有一定数量的负样本。对于SimGCL,我们认为显著的收敛速度源于噪声。通过分析CL损失的梯度,我们发现噪声平均提供一个恒定的增量,就像动量一样工作。除了图5和图6中的结果外,我们还发现,随着基于简单图对比学习的推荐SimGCL-2022 - 图14的增大,训练速度加快。但是当它过大(例如大于1)时,尽管BPR损失迅速减少,但SimGCL需要更多的时间来收敛。一个大的基于简单图对比学习的推荐SimGCL-2022 - 图15就像一个大的学习率,导致渐进的基于简单图对比学习的推荐SimGCL-2022 - 图16优化将超过最小值。

    4.2.3 运行时间比较(Running Time Comparison)

    1. 在这一部分中,我们报告了比较方法在一个epochs内所花费的实际运行时间。表4中的结果是在Inter(R)Xeon(R)Gold 5122 CPUGeForce RTX 2080Ti GPU上收集的。<br />**表4 每个epoch的运行时间(括号中的x代表时间)**<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655983522425-102f4b4e-4edf-41cb-b0c6-0aab0225c218.png#clientId=u943129d2-6a4f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=261&id=u6e26f070&margin=%5Bobject%20Object%5D&name=image.png&originHeight=391&originWidth=1190&originalType=binary&ratio=1&rotation=0&showTitle=false&size=148994&status=done&style=none&taskId=u3c0088d3-9b05-4e2a-a714-59a35ee0445&title=&width=793.3333333333334)<br /> 如表4所示,我们计算了与LightGCN相比,其他方法的速度慢了多少倍。由于SGL-WA没有图增强,因此运行速度与LightGCN非常接近。对于SGL-ED,需要两次图增强,这部分的计算大部分在CPU上完成,因此它甚至比Amazon-Book上的LightGCN慢5.7倍。运行时间随着数据集的数量增加而增加。相比之下,SimGCL虽然没有SGL-WA快,但在Amazon-Book上只比LightGCN慢2.4倍,增长趋势远低于SGL-ED。考虑到SimGCL只需要SGL-ED花费的2/3的时间,它在![](https://cdn.nlark.com/yuque/__latex/fe3b5334e00533c9ed3980e77dcd2847.svg#card=math&code=w.r.t.&id=Wrq2W)效率的所有方面都优于SGL。

    4.2.4 去偏能力(Ability to Debias)

    1. InfoNCE损失被发现能够通过学习更一致的表示来隐含地缓解流行度偏差的能力。为了验证SimGCL使用基于噪声的表示增强来提升了这一能力,我们按照项目的流行程度将测试集分为三个子集。点击/购买次数最少的项目有80%被标记为“不受欢迎”,点击/购买次数最多的项目有5%被标记为“受欢迎”,其余的项目被标记为“正常”。然后我们进行实验来检查每个组贡献的Recall@20值(总体Recall@20值是三个组的值的总和)。结果如图7所示。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/12451788/1655983752780-e90a72ad-df50-4ee5-8ecf-d81613eb9a28.png#clientId=u943129d2-6a4f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=426&id=uf973b86e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=639&originWidth=1230&originalType=binary&ratio=1&rotation=0&showTitle=false&size=119077&status=done&style=none&taskId=ub8273b15-2116-4b78-96bb-953b74878f5&title=&width=820)<br />**图7 不同项目组的性能比较**<br /> 我们可以清楚地看到,SimGCL的改进都来自于流行程度较低的项目。它在推荐长尾商品方面的显著优势在很大程度上弥补了它在“流行”群体上的损失。相比之下,LightGCN倾向于推荐热门商品,并在最后两个数据集上实现了最高的召回值。SGL变体在探索长尾项目方面介于LightGCN和SimGCL之间,并表现出类似的推荐偏好。结合图2和图7,我们可以很容易地发现,表示的一致性和去偏能力之间存在正相关。由于受欢迎的物品可能已经从其他来源曝光给用户,推荐它们可能不是一个好的选择。在这一点上,SimGCL的表现明显优于SGL,它在发现长尾项目方面的非凡表现符合用户的真实需求。

    4.3 参数敏感性分析(Parameter Sensitivity Analysis)

    1. 在这一部分中,我们研究了SimGCL中两个重要的超参数的影响。这里我们采用第4.2.2节中使用的实验设置。

    4.3.1 基于简单图对比学习的推荐SimGCL-2022 - 图17的影响(Impact of 基于简单图对比学习的推荐SimGCL-2022 - 图18)

    image.png
    图8 CL中基于简单图对比学习的推荐SimGCL-2022 - 图20大小的影响
    通过将基于简单图对比学习的推荐SimGCL-2022 - 图21固定为0.1,我们将基于简单图对比学习的推荐SimGCL-2022 - 图22改变为图8中所示的一组预定的代表值。可以观察到,随着基于简单图对比学习的推荐SimGCL-2022 - 图23的增加,SimGCL的性能从一开始就开始增加,并在Douban_Book上的基于简单图对比学习的推荐SimGCL-2022 - 图24为0.2时逐渐达到峰值,在Yelp2018为0.5时,在Amazon-Book为2时逐渐达到峰值。之后,它开始下降。此外,与图9相比,在图8中观察到更显著的变化,尽管基于简单图对比学习的推荐SimGCL-2022 - 图25基于简单图对比学习的推荐SimGCL-2022 - 图26在相同的范围内进行了调整,这表明基于简单图对比学习的推荐SimGCL-2022 - 图27可以提供比仅通过调整基于简单图对比学习的推荐SimGCL-2022 - 图28所提供的更细粒度的调节。

    4.3.2 基于简单图对比学习的推荐SimGCL-2022 - 图29的影响(Impact of 基于简单图对比学习的推荐SimGCL-2022 - 图30)

    1. 我们认为,更大的![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=zteip)会导致更均匀的分布,这有助于去偏。然而,当它太大时,推荐任务将受到阻碍,因为连接节点之间的高相似性不能通过过度均匀的分布来反映。我们将![](https://cdn.nlark.com/yuque/__latex/e520c061a407db472027709bf3f73290.svg#card=math&code=%5Clambda&id=oXiEy)固定在图8所示的三个数据集的最佳值,然后调整![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=Q98fB)以查看性能变化。如图9所示,曲线的形状与预期一致。在所有数据集上,当![](https://cdn.nlark.com/yuque/__latex/7c102e7a7d231bf935f9bc23417779a8.svg#card=math&code=%5Cepsilon&id=XaToN)接近0.1时,SimGCL的性能最好。我们还发现,与高斯初始化相比,用均匀分布初始化嵌入(包括Xavier初始化)会有3%-4%的性能改进。

image.png
图9 噪声幅度基于简单图对比学习的推荐SimGCL-2022 - 图32的影响

4.4 与其他方法的性能比较(Performance Comparison with Other Methods)

表5 与其他SOTA模型的性能比较
image.png
为了进一步证实SimGCL的突出能力,我们将其与最近提出的其他四种基于数据增强的方法进行了比较。根据表5,SimGCL的表现优于所有基线,MixGCF位居亚军。与此同时,我们发现一些基于数据增强的推荐方法并不像预期的那样强大,在许多情况下甚至被LightGCN超越。我们将他们的失败归因于:(1)LightGCN、MixGCF和SimGCL都是基于图卷积机制的,与MULT-VAE相比,它们更能对图数据进行建模。(2)当用户/项目特征可用时,DNNs被证明是有效的。在我们的数据集中,没有提供任何特征,并且我们屏蔽了DNN学习到的嵌入进行自监督学习,所以它在这种情况下不能自我实现。(3)在BUIR算法中,为了达到较好的性能,去掉了长尾节点,但是我们使用了所有的用户和项目。此外,它的孪生网络在一些长尾节点上也可能崩溃为平凡的解决方案,因为它没有使用反例,这可能是其无能为力的原因。

4.5 不同类型噪声下的性能比较(Performance Comparison with Different Types of Noises)

表6 不同SimGCL变体之间的性能比较
image.png
在SimGCL中,我们使用从均匀分布中采样的随机噪声来实现数据增强。然而,还有其他类型的噪声,包括高斯噪声和对抗噪声。这里我们还测试了不同的噪声,并在表6中报告了它们的最佳结果(基于简单图对比学习的推荐SimGCL-2022 - 图35表示从基于简单图对比学习的推荐SimGCL-2022 - 图36采样的均匀噪声,基于简单图对比学习的推荐SimGCL-2022 - 图37表示正均匀噪声,它不同于基于简单图对比学习的推荐SimGCL-2022 - 图38,不满足3.1节中的第二约束的,基于简单图对比学习的推荐SimGCL-2022 - 图39表示由标准高斯分布产生的高斯噪声,以及基于简单图对比学习的推荐SimGCL-2022 - 图40表示由FGSM[8]产生的对抗噪声)。根据表6,基于简单图对比学习的推荐SimGCL-2022 - 图41显示出可比的性能,而基于简单图对比学习的推荐SimGCL-2022 - 图42的效率较低。可能的原因是我们对噪声进行了基于简单图对比学习的推荐SimGCL-2022 - 图43正则化。由标准高斯分布产生的正则化噪声可以拟合更平坦的高斯分布(可以很容易地证明),该高斯分布近似于均匀分布。因此,观察到了可比较的结果。对于基于简单图对比学习的推荐SimGCL-2022 - 图44,只有在目标最大化CL损失的情况下才会产生对抗噪声,而推荐损失在优化过程中占主导地位,对性能的影响更大。对于基于简单图对比学习的推荐SimGCL-2022 - 图45,我们注意到,在大多数情况下,与基于简单图对比学习的推荐SimGCL-2022 - 图46相比,性能略有下降,这表明有必要使用方向约束来创建更多信息量的增强。

5 相关工作(Related Work)

5.1 图神经推荐模型(Graph Neural Recommendation Models)

  1. 图神经网络(GNN)[631]现在已经成为公认的用于建模推荐数据的强大架构。这种新的神经网络范式结束了学术界基于MLP的推荐模式,将神经推荐系统提升到了一个新的水平。大量采用GNN作为基础的推荐模型声称,它们在不同的子领域取得了最先进的性能[104041]。特别是,GCN[14]作为GNN最流行的变体,进一步推动了图神经推荐模型的发展,如GCMC[2]、NGCF[26]、LightGCN[10]和LCF[43]。尽管实现细节不同,但这些GCN驱动的模型都有一个共同的思想,即逐层从用户-项目图中的邻居那里获取信息,以细化目标节点的嵌入并完成图推理[30]。在这些方法中,LightGCN因其结构简单、性能良好而最受欢迎。在[28]之后,它去掉了包括矩阵变换和非线性激活函数在内的冗余运算。这样的设计被证明是高效和有效的,并启发了许多后续的基于CL的推荐模型,如SGL[29]和MHCN[39]。

5.2 基于对比学习的推荐(Contrastive Learning in Recommendation)

  1. 由于CL以自监督的方式工作[42],因此它本身就是推荐系统中数据稀疏问题的一种可能的解决方案[3738]。受到CL在其他领域的成就的启发,出现了一波将CL与推荐[18202933394146]相结合的新研究浪潮。周等人[46]对属性和项目进行随机掩蔽,生成序列增强,用于序列模型的互信息最大化预训练。Wei et al.[27]从信息论的角度对冷启动项目表征学习进行了重新定义,最大化了项目内容与协同信号之间的相互依赖关系,缓解了数据稀疏问题。在[35]中也发现了类似的想法,其中开发了用于推荐的两塔DNN体系结构,其中项目塔也被共享以对比增强的项目特征。SEPT[39]和COTREC[32]进一步提出在扰动图上利用半监督学习挖掘多个正面样本,用于基于社交/会话的推荐。除了dropoutCL4Rec[34]提出重新排序和裁剪项目段,以进行顺序数据增强。Yu等人[41]、Zhang等人[44]和Xia等人[33]利用超图对推荐数据进行建模,并提出对比不同的超图结构进行表示正则化。除了数据稀疏性问题,周等人[45]从理论上证明了CL可以缓解推荐中的曝光偏差,并提出了一种CLRec方法来提高深度匹配的公平性和效率。

6 讨论(Conclusion)

  1. 在本文中,我们回顾了基于dropoutCL在推荐中的应用,并研究它是如何提高推荐性能的。我们发现,在基于CL的推荐模型中,CL损失是核心,图增强只起到次要作用。优化CL损失可以得到更均匀的表示分布,这有助于在推荐场景中去偏。然后,我们提出了一种简单的无图增强的CL方法,以更直接的方式来调节表示分布的均匀性。通过在不同的数据增强和对比的表示中加入定向随机噪声,该方法可以显著地提高推荐效果。大量的实验表明,该方法的性能优于基于图增强的同类方法,同时大大减少了训练时间。