查看原文
其他

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

吴剑灿 PaperWeekly 2022-07-04


©PaperWeekly 原创 · 作者 | 吴剑灿

学校 | 中国科学技术大学博士生

研究方向 | 信息检索





摘要

推荐系统中用户-物品交互图上的表征学习(Representation Learning)已经从使用单个 ID 或历史交互行为发展到利用交互图上的高阶邻域信息,催生了诸如 PinSage 和 LightGCN 等图卷积网络(Graph Neural Networks)。

虽然它们取得了不错的性能提升,但我们认为这些模型存在如下局限性:(1)高度结点对表征学习的影响更大,从而降低了低度(长尾)物品的推荐效果;(2)邻居聚合方案进一步扩大了观测到的连边的影响,使得表征学习容易受到噪声交互的干扰。

在这个工作中,我们探索在用户-物品交互图上的自监督学习以改善基于 GCN 的推荐模型的准确性和鲁棒性。其思想是在经典的有监督推荐任务的基础上增加一个辅助的自监督学习任务,通过自我鉴别的方式来增强结点的表征学习。我们将这种新的学习范式称为自监督图学习(SGL)。

通过理论分析,我们发现 SGL 具有主动挖掘难负样本(Hard Negatives)的能力。在三个基准数据集的测试表明SGL可以提高推荐的准确性,尤其是长尾物品的推荐精度,而且对噪声交互具有更强的鲁棒性。



论文标题:

Self-supervised Graph Learning for Recommendation


论文作者:

吴剑灿(中国科学技术大学),王翔(新加坡国立大学),冯福利(新加坡国立大学),何向南(中国科学技术大学),陈亮(中山大学),练建勋(微软亚洲研究院),谢幸(微软亚洲研究院)


收录会议:

SIGIR 2021


论文链接:

https://arxiv.org/abs/2010.10783


代码链接:

https://github.com/wujcan/SGL

 


研究背景

从交互数据中学习高质量的用户和物品表征是协同过滤的核心。早期的工作如矩阵分解模型(MF)将每个用户(或物品)的 ID 映射为一个 embedding 向量来进行学习。后续的研究则考虑引入历史交互行为来丰富单一的 ID 信息,以便更好地进行表征学习。

最近,受到图卷积网络的启发,推荐系统中的表征学习发展到利用用户-物品交互图中的高阶连通性,将多跳邻居聚合到结点表征学习中,并取得了性能提升。虽然这些方法很有效,但存在着如下的不足:

  • 监督信号稀疏:大部分的推荐系统模型采用有监督学习范式,其监督信号来自观测到的交互数据。然而,与完整的交互空间相比,观测到的交互极其稀疏,使得模型无法学习到高质量的表征;


  • 数据分布偏态:用户-物品交互图上的用户结点和物品结点通常呈现幂律分布(power-law distribution),其中由低度物品构成的长尾部分缺乏监督信号,相反,高度物品则频繁出现在邻居聚合和目标函数中,对表征学习产生更大的影响,使得模型偏向于推荐头部物品,而牺牲了长尾物品的曝光;


  • 交互数据存在噪声:用户提供的反馈信息大部分是隐式的(如点击、浏览等)而非显式的(如评分、喜欢/不喜欢等)。因此观测到的交互数据通常存在噪声,例如,用户被误导而点击了某个物品,然而在消费该物品后发现对其不感兴趣。而 GCN 中的邻居聚合机制扩大了交互行为对表征学习的影响,使得模型更容易受到噪声交互的影响。


在这个工作中,我们重点探讨利用自监督学习(Self-supervised Learning, SSL)来解决上述问题。虽然自监督学习在 CV 和 NLP 领域应用广泛,但它在推荐领域受到的关注还相对较少。其核心思想是设置一个辅助任务,从输入数据本身(特别是未标注的数据空间)提取额外的监督信号。例如,BERT 随机掩码一些词项,然后将辅助任务设置为对这些词项的预测以捕捉词项之间的依赖关系。
 
一般来讲,除了必需的图编码器外,基于GNN的自监督学习还需要额外两个关键模块:(1)数据增强模块,它为每个结点生成多个视图;(2)对比学习模块,它最大化同一结点的不同视图间的一致性表征和不同结点的视图间的差异性表征。与有监督学习相比,SSL 允许我们通过对输入数据进行更改来利用未标注的数据空间,从而在下游任务中获得显著的性能提升。


方法介绍


方法介绍共分为三个部分:图结构上的数据增强、多任务训练框架、SGL 的梯度分析
 
3.1图结构上的数据增强

考虑到二分图是由用户-物品的交互构建的,包含着丰富的协同过滤信号,具体来讲,二分图上的一阶邻居直接描述用户历史交互的物品(或交互过该物品的用户);二阶邻居表示具有相同行为的用户(或有相同受众的物品);用户到物品结点的高阶路径则代表着用户对物品的潜在兴趣。因此,挖掘图结构的内在模式对表征学习具有积极的意义。一个基于图神经网络的推荐模型可以抽象成如下公式:



其中 表示第 l 层结点表征, 表示根据用户历史交互构建的二分图, 表示 ID embedding 矩阵,也即模型的可训练参数。在获得 L 层结点表征后,通常会经过一个 Readout 层生成结点的最终表征。



图结构作为图神经网络的输入,在推荐模型中起到至关重要的作用。因此针对图结构,我们进行数据增强操作来生成结点的不同视图,其正式定义如下:



其中 S 表示所有数据增强操作的集合, 分别是从 S 中随机采样的两个相互独立的数据增强操作,并由此获得两个相关的结点视图 。我们采用的数据增强操作如下:

  • 结点 Dropout:图上的任一结点及其关联的连边以概率 被移除出去,这样可以从不同的增强视图中识别出有影响力的结点,并使表征学习对结构的变化更加鲁棒。



  • 连边 Dropout:图上的任一连边以概率 被移除出去,仅使用部分邻居信息来进行邻居聚合,这样可以捕捉结点局部结构的有效模式,赋予表征学习更强的鲁棒性,对抗噪声交互的干扰。



  • 随机游走:与上述两种各个图卷积层共享增强子图的数据增强操作不同,这种操作对不同卷积层敏感,也即为各个卷积层分别生成不同的增强子图,可以将其视为利用随机游走为各个结点生成各自的子图。以采用连边 Dropout 为例,其定义如下:




3.2 多任务训练框架

在构建了结点的增强视图后,我们下面介绍整个模型的框架,如下图所示。


▲ 图1 SGL模型框架
 
我们采用 LightGCN 作为图编码器来实现 SGL。需要提到的是,我们的 SGL 没有对图编码器进行约束,因此可以适用于任何基于 GNN 的推荐模型。

在这个多任务训练框架中,主任务是有监督推荐任务,将原始用户-物品交互图输入图编码器后得到结点在隐空间中的向量表征,然后采用 BPR Loss 作为目标函数。而在辅助任务中,我们需要为同一个结点生成两个不同的视图,因此需要两路图编码器得到结点的两套表征。

我们将由同一个结点生成的不同表征看作正样本对,而与其他不同结点的表征构成负样本对。正样本对的辅助监督信号可促进同一结点的不同视图之间的一致性表征学习,而负样本对的监督信号则可促进不同结点之间的差异性表征学习。

具体地,我们采用 InfoNCE 作为自监督的目标函数。考虑到用户结点和物品结点是不同类型的结点,在定义目标函数时,我们分别在用户侧和物品侧定义了损失函数,两者的加和作为总的 SSL 损失函数,公式如下:




最终的目标函数由主任务和辅助任务加和得到,公式如下:



需要注意的是,由于 LightGCN 没有特征变换矩阵,其唯一的可训练参数是 0 层的结点 embedding,我们这里采用参数共享的策略,即主任务中的图编码器和自监督任务中的两路图编码器共享 0 层的结点表征,这样,整个模型不会引入新的参数。而且在模型推断阶段,辅助任务部分不参与计算,因此不会提高模型的推断复杂度。
 
3.3 SGL的梯度分析

在这一部分,我们通过分析 SSL 损失函数来试图回答如下问题:推荐模型如何从 SSL 中获益?我们从梯度的角度来分析负样本对目标结点的表征的贡献。经过推导,我们可以得到负样本的梯度的 范式正比于如下式子:



其中 表示负样本与目标结点表征的余弦相似度。根据余弦相似度,我们大致可以将负样本划分为两类:

1. 难负样本,它的表征与目标结点相似(0<x≤1),使得它难以在隐空间中与目标结点进行区分;

2. 简单负样本,它的表征与目标结点差异较大(),因此容易区分开来。下图展示了在 不同取值时 的变换情况。


▲ 图2 函数曲线以及其最大值和极值点随  的变化情况


从图 2(a) 和图 2(b) 可以看到,在 取不同值时,负样本的梯度贡献差异很大。在 时, 的值域是(0,1.5),它对 x 的响应变化不大,说明不管是难负样本还是简单负样本,它的梯度贡献相差不大;而在 时, 的取值可以达到 4000,而简单负样本的贡献几乎可以忽略,说明难负样本提供更大的梯度来指导优化,使得结点表征更具区分性,并加速训练过程。

图 2(c) 和图 2(d) 中,我们发现随着 的减小,最具影响力的负样本与目标结点越来越相似,而且它们的贡献被超指数(super-exponentially)放大。因此,选取合适的 将赋予 SGL 主动挖掘难负样本的能力。
 

实验结果

我们在三个基准数据集上进行测试来验证所提出的 SGL 的有效性。
 
4.1 整体性能

表 1 展示了不同 SGL 变种与 SOTA 模型 LightGCN 的性能比较。可以看到,我们的 SGL 取得了显著的性能提升。

▲ 表1 不同SGL变种与LightGCN的性能比较


4.2 长尾推荐

为了验证 SGL 是否可以缓解长尾问题,我们根据物品的流行度进行分组,每组内的总曝光数保持一致,组的 ID 越大说明该组内的物品越流行。图 3 展示了各组 Recall@20 的分布情况,可以看到,LightGCN 存在着严重的长尾问题,比如在三个数据集上,第 10 组的物品数分别只占了总物品数的 0.83%、0.83% 和 0.22%,但却贡献了 39.72%、39.92% 和 51.92% 的 top 20 推荐列表。

而 SGL 则明显缓解了这个问题,其第 10 组的贡献降到 36.27%、29.15% 和 35.07%。而且综合分析表 1 和图 3,我们可以发现 SGL 的性能提升主要来自于对稀疏物品的准确推荐。


▲ 图3 SGL-ED和LightGCN在不同物品流行度分组下的性能比较

 
4.3 噪声交互的鲁棒性

我们也做了实验来验证SGL是否对噪声交互具有鲁棒性。为此,我们通过添加一定比例的对抗样本(5%,10%,15%,20%)来污染训练集,而保持测试集不变。图4展示了在两个数据集上的性能结果。可以看到,随着噪声交互数量的增大,相比于 LightGCN,SGL 性能下降的比例明显更小,这表明通过比较结点的不同增强视图,SGL 能够找到有用的模式,特别是结点的结构性质,来降低对特定连边的依赖以提高模型的鲁棒性。


▲ 图4 噪声交互的比例对模型性能的影响


总结

在本工作中,我们强调了在有监督学习范式下基于 GCN 的推荐模型的局限性,并探索利用自监督学习来解决这些局限性。我们提出了一个模型无关的框架 SGL,利用用户-物品交互图上的自监督学习来补充有监督推荐任务,并从图结构的角度设计了三种数据增强方式来构建对比学习任务。这是自监督学习在推荐系统中的一个初步尝试,希望能开辟一个新的研究可能性为后续的研究提供一些指导意义。
 
 

参考文献

[1] Rex Ying, Ruining He, Kaifeng Chen, Pong Eksombatchai, William L. Hamilton, and Jure Leskovec. 2018. Graph Convolutional Neural Networks for Web-Scale Recommender Systems. In KDD. 974–983.

[2] Xiangnan He, Kuan Deng, Xiang Wang, Yan Li, Yong-Dong Zhang, and Meng Wang. 2020. LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. In SIGIR. 639–648.

[3] Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, and Lars Schmidt-Thieme. 2009. BPR: Bayesian Personalized Ranking from Implicit Feedback. In UAI. 452–461.

[4] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In NAACL-HLT. 4171–4186.

 


更多阅读




#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编





🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存