1.研究背景:

1.1近年来,考虑到图卷积网络(GCNs)能够有效在user-item二分图中捕获高阶邻居,其在推荐领域的表示学习中得到了广泛的应用,并实现了最先进的推荐性能。尽管如此,当前基于GCN的推荐模型仍存在一些局限性:

1.1.1稀疏的监督信号。监督信号来自观察到的用户-项目交互。但是,与整个交互空间相比,观察到的交互非常稀疏,这使得其不足以学习到高质量的表示。

1.1.2倾斜的数据分配。

观察到的相互作用通常呈现幂律分布,其中长尾由缺乏监督信号的低阶项组成。

(low-degree节点(不活跃的用户和不受欢迎的项目))

相比之下,在邻域聚合和监督损失中,高阶项出现的频率更高,从而对表征学习产生更大的影响。

因此,GCN很容易偏向于高阶项,从而牺牲了低阶(长尾)项的性能。(GCN忽略了低阶项)

1.1.3交互中的噪音。用户提供的大多数反馈是隐式的(如点击次数、观看次数),而不是显式的(如评分、喜欢/不喜欢)。因此,观察到的交互通常包含噪音,例如用户被误导以点击项目,并在消费了该项目后发现它不再有趣。 GCN中的邻域聚集方案扩大了交互对表示学习的影响,使学习更容易受到交互噪声的影响。

若要在推荐中利用SSL,大致想法应是要设置一个从输入数据本身中提取额外信号的辅助任务,特别是通过利用未标记的数据空间。与监督学习相比,SSL允许我们通过对输入数据进行更改来利用未标记的数据空间,从而显著改善了下游任务。

1.2为了解决基于GCN的推荐模型的上述局限性,作者将辅助任务构造为区分节点本身的表示(即辅助任务是区分同一节点的不同视图,即区分节点本身)。具体来说,它由两个关键组件组成:1)数据增强(见本文3.1),为每个节点生成多个视图;2)对比学习(见本文3.2),使同一节点的不同视图之间的一致性最大化。

对于用户-项目图上的GCNs,图结构作为输入数据,在表示学习中起着至关重要的作用。从这个角度来看,通过改变图的邻接矩阵来构造“无标记”数据空间是很自然的,为此作者开发了三个算子:node dropout、edge dropout和 random walk,其中每个算子都有不同的合理性(这三个算子用于改变图结构(即图的邻接矩阵)以增强节点特征学习)。然后,作者在改变后的结构上进行基于GCNs的对比学习。最终,SGL通过探索节点之间的内部关系来增强节点表示学习(特征学习)。

1.3从概念上讲,本文SGL在以下方面对现有的基于GCN推荐模型进行了补充:

1.3.1节点自我判别提供辅助监督信号(也就是说通过三种数据增强/扩充方法,生成节点的多个视图,然后再对比同一节点的不同视图(它就是辅助任务),即节点自我判别。详见本文1.2),这是对仅观察到的交互的经典监督的补充;

1.3.2增强算子,尤其是edge dropout,通过有意地减少high-degree(高阶)节点的影响,有助于减轻degree偏差;

1.3.3节点的多视图(不同的局部结构和邻域)增强了模型对交互噪声的鲁棒性。

1.4最后,作者对对比学习范式进行了理论分析,发现它在挖掘hard negative samples方面具有副作用,这不仅提高了性能,而且加快了训练过程。

负样本: 与真值不对应的其他所有目标类别来说该样本为负样本。

困难样本:预测值与真实值标签误差较大的样本。

1.5值得一提的是,本文中的SGL与模型无关,它可以应用于包含用户和/或项目嵌入的任何基于图的模型。在这里,作者在简单但有效的模型LightGCN上实现它。在三个基准数据集上的实验研究表明,该方法显著提高了推荐精度,特别是对长尾项目的推荐精度,增强了对交互噪声的鲁棒性。

1.6最后,本文贡献总结如下:

1.6.1设计了一种新的学习范式SGL,它将节点自我辨别作为自监督任务,为表征学习提供辅助信号。

1.6.2除了减轻degree偏差和增强对交互噪声的鲁棒性外,作者在理论上证明了SGL天生支持从hard negative samples中学习,这主要通过动态控制softmax损失函数中的超参数实现。

1.6.3在三个基准数据集上进行了广泛的实验,以证明SGL的优越性。

2.基本定义

基于GCN协同过滤模型的通用范式

协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息 ,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的,进而帮助别人筛选信息。回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤式一种推荐机制。

2.1GCN:核心是应用领域聚合方案,即通过聚合邻居节点表示来更新自我节点表示。即为了更新自我结点u在l层的表示zu(l),它首先在l-1层聚合其邻居Nu的表示,然后与它自己的表示zu(l-1)组合。(其中Zu(l)表示节点u在l层的表示,u表示用户,i表示项目。)

这里可以看看公式。

2.2监督学习损失:预测层建立在最终表示的基础上,以预测u采用i的可能性(即用户u采用项目i的可能性)。

一个经典的解决方案是内积(即u的表示和i的表示做内积),它支持快速检索。为了优化模型参数,现有的工作通常将该任务(即做内积)作为监督学习任务之一,监督信号来自观察到的交互作用(也就是图G中的边)(就是说通过看u和i之间有没有边,来决定它俩是否做内积)。

另一个常见的选择是成对贝叶斯个性化排序**(BPR)损失**,它强制预测观察到的交互比未观察到的交互得分更高。(作者用的是这个)

3.模型方法

我们提出了一种自监督图学习(SGL)范式,它通过自监督学习来增强主要的监督任务。(SGL一共有两个任务,一个是Lmain,一个是Lssl,这种主监督任务和自监督任务的联合优化是有效的。联合训练的较好表现也说明了主任务和辅助任务的表征是相互增强的)。

自监督任务(也称为借口任务或辅助任务)是根据输入数据内部的相关性构造监督信号。(作者首先对自我监督任务进行预训练,获取模型参数,用这些参数初始化LightGCN,然后通过优化主要任务对模型进行微调。将此变体称为SGL-pre。尽管SGL-pre在两个数据集上的表现都不如SGL-ED,但SGL-pre的结果仍然好于LightGCN 。说明自监督任务能够为LightGCN提供更好的初始化。)(对自监督任务进行预训练也是有效的

具体来说,我们将介绍如何进行数据扩充,生成多个表示视图,然后基于生成的表示进行对比学习,以构建借口任务。SSL以多任务学习方式与经典GCN相结合。

3.1图结构上的数据扩充

第一跳邻近节点直接描述了自我用户和项目节点,即用户的历史项目可以被视为用户的预先存在特征(或项目的交互用户可以被视为项目的预先存在特征)。用户的第二跳邻近节点表示类似用户(或项目的第二跳邻近节点表示类似项目)。此外,从用户到商品的higher-order路径反映了用户对商品的潜在兴趣。毫无疑问,挖掘图结构中的固有模式有助于表示学习。因此,作者在图结构上设计了三个算子:node dropout, edge dropout 和 random walk,以创建不同的节点视图。

3.1.1Node Dropout (ND):以概率ρ从图中丢弃每个节点及其连接边。这种增强可以从不同的增强视图中识别出有影响的节点,使表示学习对结构变化不那么敏感

3.1.2Edge Dropout (ED):以概率ρ从图中丢弃边。只有邻域内的部分连接对节点表示有贡献。因此,耦合这两个子图(也就是耦合分别都丢弃了一些边的两个子图)的目的是捕获节点局部结构的有用模式,并进一步赋予表示(特征)对噪声交互的更强的鲁棒性

3.1.3Random Walk (RW):上面的两个算子生成一个跨所有图卷积层共享的子图。为了探索更高的性能,作者考虑为不同的层分配不同的子图。这可以看作是使用随机游走为每个节点构造单独的子图。假设在每一层(有不同的比例或随机种子)选择edge dropout(左图),则可以通过利用边掩蔽向量对层敏感来制定RW(右图):

这是一个三层的GCN模型,在右图的Random Walk中,节点u1和i1之间存在一条三阶路径(因为不同的层有不同的子图),但是在左图的Edge Dropout中,节点u1和i1之间不存在路径。

为了简单起见,作者在图结构的每个epoch上应用这些增强,也就是说,在一个新的训练epoch开始时,对每个节点生成两个不同的视图(对于RW,每层生成两个不同的视图)。请注意,对于两个独立进程(即s1和s2这两个视图), dropout和masking比率是相同的。

3.2对比学习

将来自同一节点的增强视图视为正例,来自不同节点间的增强视图视为负例。正例辅助监督促进了同一节点的不同视图之间的预测一致性,而负例监督则强化了不同节点之间的分歧。

形式上,遵循SimCLR[6],并采用对比损失InfoNCE[14]来最大化正例的一致性,最小化负例的一致性。

user(用户)的损失如下图所示:

item(项目)的损失和user类似,最终的自监督损失为:

3.3多任务学习

为了改进SSL任务的推荐,作者利用多任务训练策略联合优化经典推荐任务和自我监督学习任务:

3.4SGL理论分析

3.4.1推荐模型如何从 SSL 任务中受益?作者探究了式Lssl_user中的自监督损失,发现原因之一:它具有执行hard negative mining的内在能力,为优化和指导节点表示学习贡献了较大且有意义的梯度。

3.4.2负节点大致分为两种(正节点用u表示,负节点用v表示):

(1)硬负节点(hard neggtive nodes),其表示与正节点u的表示相似,因此难以在潜在空间中区分u和v。(注意,这个定义和其他论文中的定义[24]存在重大差异( °ー°〃))。

(2)易负节点(easy neggtive nodes),于正节点u不同,易于区分。

3.4.3分析公式得:硬负节点提供了更大的梯度来指导优化,从而使节点表示更具辨别力并加速了训练过程。

3.4.4随着 τ 的减少,最有影响力的负节点变得更接近正节点(即 x∗ 接近 0.9),而且它们的贡献被超指数放大(即 g∗ 接近 e^8)。因此,正确设置 τ 使 SGL 能够自动执行硬负挖掘。

3.5 SGL复杂度分析

复杂性主要来自两个部分:

1.邻接矩阵的归一化。每个 epoch 生成两个独立的子图,考虑完整训练图和两个子图的邻接矩阵中非零元素的数量。

2.评估自我监督损失。我们在分析中只考虑内积。我们在计算用户侧的InfoNCE损失时将所有其他用户节点视为负样本。降低时间复杂度的另一种方法是仅将批次中的用户(或项目)视为负样本。

4.实验

low-degree节点(不活跃的用户和不受欢迎的项目)。

4.1性能对比

在LightGCN上,作者实现了三个版本的SGL- ND、SGL- ED和SGL-RW,分别配置了Node Dropout、Edge Dropout和Random Walk。在大多数情况下,三种SGL实现的性能都大大优于LightGCN。

将模型深度从1级增加到3级,可以提高SGL的性能。这说明利用SSL可以增强基于GCN的推荐模型的泛化能力,即不同节点之间的对比学习有望解决节点表示的过平滑问题,进一步避免过拟合问题。

(在使用多层GCN之后,节点的区分性越来越差,节点的表示向量趋于一致,这就使得以GCN为基础的后续学习任务难以进行。这个现象称为多层GCN的过平滑问题。

4.2 SGL的益处

为了验证SGL是否有解决长尾问题的能力,作者根据受欢迎程度将项目分成10组,同时保持每组的互动总数相同。GroupID越大,item的度越大。也就是说第几组中的数字,数字越大,项目的度就越大,也就代表这个组的项目越受欢迎(所以应该是第10组的项目最受欢迎,第一组的项目最不受欢迎)。

然后将整个数据集的Recall@20度量分解为单个组的贡献(这个Recall衡量的是1到10组的推荐性能(相加)),有如下结论:

(1)LightGCN倾向于推荐high-degree物品,而长尾物品则较少暴露。 具体来说,尽管第10组仅包含0.83%、0.83%和0.22%的项目空间,但在三个数据集中分别占总Recall得分的39.72%,39.92%和51.92%。(也就是说第10组贡献的推荐性能比较大,而第10组是受欢迎的项目,说明LightGAN学习的都是受欢迎项目的表示,而忽略了长尾项目,即忽略了不受欢迎的项目的表示学习) 这说明由于交互信号稀疏,LightGCN几乎不学习长尾物品的高质量表示。而SGL具有缓解此问题的潜力:10个组的贡献在三个数据集中分别降至36.27%,29.15%和35.07%。

(2)联合分析表3和图1,发现SGL的性能改进主要来自准确推荐交互稀疏的项目(长尾项目)。

4.3训练效率

SGL收敛速度快归因于两个因素:

(1)SGL采用InfoNCE损失作为SSL目标,这使模型能够从多个负样本中学习表示,而LightGCN中的BPR损失仅使用一个负样本限制了模型的感知范围;

(2)如方法所述,在具有适当的 τ 的情况下,SGL受益于动态hard negative mining,其中hard negative samples提供有意义且更大的梯度以指导优化。

5.总结

除了图形结构上的随机选择(也就是那三种数据扩充方式,通过它们可以实现图形结构的随机选择),作者计划探索新的视角,如反事实学习来识别有影响的数据点,以创建更强大的数据扩充。此外,将重点关注推荐中的预训练和微调,即对一个能够捕获跨多个领域或数据集的通用和可转移用户模式的模型进行预训练,并在即将到来的领域或数据集上对其进行微调。另一个有希望的方向是实现SSL解决长尾问题的潜力。作者希望SGL的发展有助于提高推荐模型的泛化和可移植性。

参考链接:论文推荐:SIGIR'21 | 用于推荐的自监督图学习SGL - 简书

SIGIR 2021 Self-supervised Graph Learning for Recommendation文献笔记相关推荐

  1. 【GCN-RS】对比学习SGL:Self-supervised Graph Learning for Recommendation (SIGIR‘21)

    Self-supervised Graph Learning for Recommendation (SIGIR'21) 还是何向南组提出的图自监督学习框架,对用户-物品的二部图上的节点.边做drop ...

  2. Unifying Task-oriented Knowledge Graph Learning and Recommendation

    Unifying Task-oriented Knowledge Graph Learning and Recommendation ABSTRACT 背景 将知识图纳入推荐系统(知识感知推荐),以辅 ...

  3. 【论文阅读】Unifying Knowledge Graph Learning and Recommendation

    Unifying Knowledge Graph Learning and Recommendation: Towards a Better Understanding of User Prefere ...

  4. SGL:Self-supervised Graph Learning for Recommendation论文

    一.前言 1.背景 探索了在用户-商品图上的自监督学习,以提高GCNs推荐的准确性和鲁棒性.该思想是用一个辅助的自监督任务来补充经典的推荐监督任务,通过自鉴别器来强化节点表示学习.具体来说,我们生成一 ...

  5. Self-supervised Graph Learning for Recommendation

    对于推荐来说,用户-商品图的表示学习已经从使用单个ID或交互历史发展到利用高阶邻居,这导致了图卷积网络(GCNs)的成功推荐,如PinSage和LightGCN.尽管有效,但我们认为它们存在两个局限性 ...

  6. Supervised Contrastive Learning For Recommendation

    摘要: 我们的目的是充分考虑对比学习在推荐系统场景中的应用,使其更适合于推荐任务.我们提出了一个监督对比学习框架来预训练用户-项目二部图,然后对图卷积神经网络进行微调.具体来说,我们将在数据预处理过程 ...

  7. SIGIR 2021 | 推荐系统中的自监督图表征学习

    ©PaperWeekly 原创 · 作者 | 吴剑灿 学校 | 中国科学技术大学博士生 研究方向 | 信息检索 摘要 推荐系统中用户-物品交互图上的表征学习(Representation Learni ...

  8. SIGIR 2021 | 推荐系统相关论文分类整理

    © 作者|范欣妍 机构|中国人民大学高瓴人工智能学院 导师|赵鑫教授 研究方向 | 推荐系统 导读 ACM SIGIR 2021是CCF A类会议,人工智能领域智能信息检索( Information ...

  9. 《Learning to Denoise Unreliable Intercations for Graph Collaborative Filtering》个人笔记

    原文: https://dl.acm.org/doi/10.1145/3477495.3531889 摘要 ​ 现已存在的基于GNN协同过滤模型面临着一些用户-项目噪音数据,这个严重影响系统的有效性和 ...

最新文章

  1. RxJava 在Android中的应用(一)
  2. 计算机缺乏内存将无法运行,电脑增加内存为什么无法启动
  3. Android USB 开发详解
  4. jQuery Mobile开发的新闻阅读器,适应iphone和android手机
  5. Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理
  6. python操作office word模板
  7. YYKit框架使用学习之整理
  8. java 合并两个有序数组
  9. Keil5下载芯片包并导入教程
  10. word 格式的试题 转 问卷星excel格式
  11. mysql 获取月初_mysql中,如何写语句来查询本月从月初到现在,经过了几个礼拜二?...
  12. SQLiteSpy介绍和使用
  13. 远程桌面TeamViewer, 向日葵, NoMachine 和 远程控制MobaXterm软件
  14. 给网页设计师和前端开发者看的前端性能优化
  15. 基于互质阵的DOA估计
  16. dmp标签_[重磅推荐]你必须知道的京准通DMP知识!
  17. e-Learning E-Learning应用四人谈
  18. oralc 日期操作
  19. 100以内加减法C语言编程,C语言编程100题(其三)来啦!
  20. 软件开发技术,自学靠谱吗?

热门文章

  1. 在快手,玩转世界杯的100种方法
  2. NOI OJ 1.5 16:买房子 C语言
  3. 跑马灯抽奖js php,文字跑马灯效果的完成
  4. dem数据下载后怎么使用?查看等高线、地形渲染、地形裁剪教程
  5. 解决Oracle存储生僻字、oracle生僻字,oracle偏僻字、数据库生僻字,数据库偏僻字
  6. 基于stm32通过HC_05(ZS-040)蓝牙模块用手机控制stm32开发板上led灯的亮灭
  7. Stan:一种统计学建模语言
  8. 详解ARP协议(简介、主要功能、通信原理、ARP欺骗)
  9. 【编译原理】中间代码优化(二) 局部优化
  10. 特洛伊木马服务器源代码