Advertisement

SGL:Self-supervised Graph Learning for Recommendation论文

阅读量:

一、前言

1、背景

研究了基于用户-商品图的自监督学习方法旨在提升GCNs在推荐系统中的准确性和鲁棒性。这一创新思路通过引入一个辅助自监督任务来补充传统的推荐监督学习框架并利用自鉴别器机制强化节点表示的学习能力。具体而言为每个节点生成多个不同的表征视角通过自鉴别器最大化同一节点不同表征视角之间的相似度同时最小化不同节点之间表征视角之间的相似度以实现更加均衡和精确的特征提取从而进一步提升模型的整体性能。为此我们设计并实施了三种不同的操作方案用于生成这些表征视角:包括通过节点随机采样实现特征降噪、借助边采样方法优化网络结构以及运用随机游走策略模拟真实的社交关系网络模式**这些技术手段共同构成了完整的特征增强体系

传统的图神经网络如PinSage、LightGCN等。然而基于GCN的方法取得了较好的效果。我们却认为这些方法仍存在一些局限性:

  • 监督信号稀疏(数据稀疏): 目前大多数推荐学习任务都是基于监督学习的范式,其中监督信号一般指用户和物品的交互数据。然而这些交互数据通常来说是异常稀疏的,不足以学习高质量的表征。
  • 倾斜的数据分布(幂律分布): 推荐系统的交互数据通常呈现幂律分布,其中长尾部分low-degree的物品节点缺乏监督信号。然而,high-degree的物品节点在邻居聚合和监督学习损失中占据了主导地位,对表征学习影响更大。因此,基于GCNs的方法倾斜于high-degree物品节点,牺牲了low-degree物品推荐的性能。
  • 交互噪音: 用户提供的交互大多数是隐式的(clicks,views),而不是显式的(ratings,likes,dislikes)。因此,收集到的交互通常包含噪声,如用户误点击了一个物品。而GCNs中的邻居聚合操作则会加大这些交互噪音的影响,使得模型训练更容易受到交互噪音的影响。

2、准备工作

这部分内容较为基础。主要涉及的是GCN模型中的聚合操作。实际上也是基于lightGCN框架进行了一些改进。

聚合邻域节点 的表示来更新自我节点的表示:

这两个公式就是一个意思,通过聚和邻居节点,生成下一阶的表示

下面这个是层结合生成最终的结点嵌入 表示:(每一层嵌入的整合一起)

接下来就是内积预测得分 :

损失函数 ,使用BPR:

二、SGL模型

本文提出了一种新的自监督图学习(Self-supervise Graph Learning, SGL)范式,并将其作为对传统监督学习的一种补充方法进行介绍。如图所示为SGL的具体流程图。简而言之,则是通过分析输入数据之间的关联关系来生成相应的标签或目标。

在图结构上开发了三种操作符:节点删除、边删除和随机游走 ,从而生成多种类型的节点视图。它们的统一表示方法如下。

1、Node Dropout(ND)

图中每个节点都可能以概率 ρ 被舍弃,连带其连接的边一起舍弃。

2、 Edge Dropout(ED)

图中每条边都可能以概率 ρ被舍弃。具体如下表示:

3、Random Walk (RW)

通过两个操作符生成的子图在每一层的图卷积结构中均保持一致特征。为了提升模型的处理能力(higher capability),我们设计了一种层次化的方法,在每一层应用不同的子图结构。这等价于对每个节点进行随机游走过程建模。其中,在每一层单独应用ED策略(即通过不同的dropout率或随机种子来控制噪声强度),进而使得RW掩码矩阵能够适应不同层次的需求。

4、对比学习

建立完节点的增强视图后

s(·)被用来衡量两个向量间的相似程度,并被定义为余弦相似性指标;τ被视为超参数,在计算过程中可视为在softmax层中所使用的温度参数

同理,物品的loss

5、多任务训练

为了优化SSL任务的推荐系统,我们采用了多任务训练策略;通过协同优化主流的推荐任务与自监督学习机制。

实验结果:

全部评论 (0)

还没有任何评论哟~