Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

©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 展示了各组 [email protected] 的分布情况,可以看到,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.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注