Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ]

论文信息

论文标题:LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation
论文作者:Cai, Xuheng and Huang, Chao and Xia, Lianghao and Ren, Xubin
论文来源:2023 ICLR
论文地址:download 
论文代码:download
视屏讲解:click

1 介绍

  出发点:现有图对比推荐方法主要么对用户-项目交互图执行随机增强(例如,节点/边缘扰动),要么依赖于基于启发式的增强技术(例如,用户聚类)来生成对比视图。本文认为这些方法不能很好的保存图内部的语义结构,而且容易收到噪声的干扰;

  贡献

    • 在本文中,我们通过设计一个轻量级和鲁棒的图对比学习框架来增强推荐系统,以解决与该任务相关的关键挑战;
    • 我们提出了一种有效的对比学习范式用于图的增强。通过全球协作关系的注入,我们的模型可以缓解不准确的对比信号所带来的问题;
    • 与现有的基于gcl的方法相比,我们的方法提高了训练效率;
    • 在几个真实数据集上进行的大量实验证明了我们的LightGCL的性能优势。深入的分析证明了LightGCL的合理性和稳健性;

2 方法

2.1 模型框架

  

2.2 局部图依赖关系建模

  使用一个 两层的 GCN 捕获用户-物品之间的局部关系:

    $\boldsymbol{z}_{i, l}^{(u)}=\sigma\left(p\left(\tilde{\mathcal{A}}_{i,:}\right) \cdot \boldsymbol{E}_{l-1}^{(v)}\right), \quad \boldsymbol{z}_{j, l}^{(v)}=\sigma\left(p\left(\tilde{\mathcal{A}}_{:, j}\right) \cdot \boldsymbol{E}_{l-1}^{(u)}\right)$

  最终的用户和物品嵌入表示如下(每层嵌入的加和):

    $\boldsymbol{e}_{i}^{(u)}=\sum_{l=0}^{L} \boldsymbol{z}_{i, l}^{(u)}, \quad \boldsymbol{e}_{j}^{(v)}=\sum_{l=0}^{L} \boldsymbol{z}_{j, l}^{(v)}, \quad \hat{y}_{i, j}=\boldsymbol{e}_{i}^{(u) \top} \boldsymbol{e}_{j}^{(v)}$

2.3 高效的全局协作关系学习

  为使图对比学习与全局结构学习一起进行推荐,引入 SVD 以便从全局的角度有效地提取重要的协作信号。

  首先对归一化邻接矩阵进行 SVD 分解:

    $\tilde{\mathcal{A}}=\boldsymbol{U} \boldsymbol{S} \boldsymbol{V}^{\top} $

  注意:$\boldsymbol{U}$ 和 $\boldsymbol{V}$ 分别是  $I \times I $ 和  $J \times J$ 的矩阵,$S$ 是  $I \times J $ 的对角矩阵(主对角线为从大到小的奇异值);

  由于最大的奇异值通常与矩阵的主成分相关联。因此,本文截断奇异值列表以保持大的奇异值值,并重构被截断的归一化邻接矩阵:

    $\hat{\mathcal{A}}=\boldsymbol{U}_{q} \boldsymbol{S}_{q} \boldsymbol{V}_{q}^{\top} $

  注意:$\boldsymbol{U}_{q} \in \mathbb{R}^{I \times q}$、$\boldsymbol{V}_{q} \in \mathbb{R}^{J \times q}$、$\boldsymbol{S}_{q} \in \mathbb{R}^{q \times q} $;

  优点:

    ①:通过识别对用户偏好表示很重要和可靠的 user-item 交互来强调图的主成分;

    ②:生成的新图结构通过考虑每个 user-item 对来保持全局协作信号;

  基于重构的 $\hat{\mathcal{A}}$ 进行消息传递:

    $\boldsymbol{g}_{i, l}^{(u)}=\sigma\left(\hat{\mathcal{A}}_{i,:} \cdot \boldsymbol{E}_{l-1}^{(v)}\right), \quad \boldsymbol{g}_{j, l}^{(v)}=\sigma\left(\hat{\mathcal{A}}_{:, j} \cdot \boldsymbol{E}_{l-1}^{(u)}\right)$

  由于在大的矩阵上进行 SVD 分解困难,本文采用了 低阶一阶近似的解法:

    $\hat{\boldsymbol{U}}_{q}, \hat{\boldsymbol{S}}_{q}, \hat{\boldsymbol{V}}_{q}^{\top}=\operatorname{ApproxSVD}(\tilde{\mathcal{A}}, q), \quad \hat{\mathcal{A}}_{S V D}=\hat{\boldsymbol{U}}_{q} \hat{\boldsymbol{S}}_{q} \hat{\boldsymbol{V}}_{q}^{\top}$

  因此,基于重构的 user-item 邻接矩阵的消息传递重写为:

    $\boldsymbol{G}_{l}^{(u)}=\sigma\left(\hat{\mathcal{A}}_{S V D} \boldsymbol{E}_{l-1}^{(v)}\right)=\sigma\left(\hat{\boldsymbol{U}}_{q} \hat{\boldsymbol{S}}_{q} \hat{\boldsymbol{V}}_{q}^{\top} \boldsymbol{E}_{l-1}^{(v)}\right) ; \quad \boldsymbol{G}_{l}^{(v)}=\sigma\left(\hat{\mathcal{A}}_{S V D}^{\top} \boldsymbol{E}_{l-1}^{(u)}\right)=\sigma\left(\hat{\boldsymbol{V}}_{q} \hat{\boldsymbol{S}}_{q} \hat{\boldsymbol{U}}_{q}^{\top} \boldsymbol{E}_{l-1}^{(u)}\right)$

2.4 简化的局部-全局对比学习

  传统方法:采用三视图范式,使用增强图之间的对比策略,而不使用原始图;

  本文:认为,增强图之间的对比可能带来错误信息知道,可能是由于破坏了图结构,然而,在本文提出的方法中,增强图视图是通过全局协作关系创建的,这可以增强主视图的表示。

  本文采取主视图和基于 SVD 分解重构图之间的对比,InfoNCE loss:

    $\mathcal{L}_{s}^{(u)}=\sum_{i=0}^{I} \sum_{l=0}^{L}-\log \frac{\exp \left(s\left(\boldsymbol{z}_{i, l}^{(u)}, \boldsymbol{g}_{i, l}^{(u)} / \tau\right)\right)}{\sum_{i^{\prime}=0}^{I} \exp \left(s\left(\boldsymbol{z}_{i, l}^{(u)}, \boldsymbol{g}_{i^{\prime}, l}^{(u)}\right) / \tau\right)}$

  注意:为防止过拟合,在 mini-batch 中实现了一个随机节点丢弃,以排除一些节点参与对比学习;

  推荐任务损失:

    $\mathcal{L}_{r}=\sum_{i=0}^{I} \sum_{s=1}^{S} \max \left(0,1-\hat{y}_{i, p_{s}}+\hat{y}_{i, n_{s}}\right)$

  总损失:

    $\mathcal{L}=\mathcal{L}_{r}+\lambda_{1} \cdot\left(\mathcal{L}_{s}^{(u)}+\mathcal{L}_{s}^{(v)}\right)+\lambda_{2} \cdot\|\Theta\|_{2}^{2} $

论文解读(LightGCL)《LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation》的更多相关文章

  1. 论文解读(MLGCL)《Multi-Level Graph Contrastive Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  2. 论文解读(SimGRACE)《SimGRACE: A Simple Framework for Graph Contrastive Learning without Data Augmentation》

    论文信息 论文标题:SimGRACE: A Simple Framework for Graph Contrastive Learning without Data Augmentation论文作者: ...

  3. 论文解读(GRACE)《Deep Graph Contrastive Representation Learning》

    Paper Information 论文标题:Deep Graph Contrastive Representation Learning论文作者:Yanqiao Zhu, Yichen Xu, Fe ...

  4. 论文解读(GCC)《GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training》

    论文信息 论文标题:GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training论文作者:Jiezhong Qiu, Qibi ...

  5. 论文解读(GGD)《Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with Group Discrimination》

    论文信息 论文标题:Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with ...

  6. 论文解读(GCA)《Graph Contrastive Learning with Adaptive Augmentation》

    论文信息 论文标题:Graph Contrastive Learning with Adaptive Augmentation论文作者:Yanqiao Zhu.Yichen Xu3.Feng Yu4. ...

  7. 论文解读(GROC)《Towards Robust Graph Contrastive Learning》

    论文信息 论文标题:Towards Robust Graph Contrastive Learning论文作者:Nikola Jovanović, Zhao Meng, Lukas Faber, Ro ...

  8. 论文解读(SelfGNN)《Self-supervised Graph Neural Networks without explicit negative sampling》

    论文信息 论文标题:Self-supervised Graph Neural Networks without explicit negative sampling论文作者:Zekarias T. K ...

  9. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》

    论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...

  10. 论文解读(AGC)《Attributed Graph Clustering via Adaptive Graph Convolution》

    论文信息 论文标题:Attributed Graph Clustering via Adaptive Graph Convolution论文作者:Xiaotong Zhang, Han Liu, Qi ...

随机推荐

  1. 软硬件--智能穿戴常见BUG及原因分析

    软硬件--智能穿戴常见BUG及原因分析 1.手表有常亮功能(类似熄屏表盘),开启常亮暗屏状态下 按侧键,设备时间出现倒退现象:频率切换相关问题: 2.手表有常亮功能(类似熄屏表盘),开启常亮暗屏状态下 ...

  2. 都说 C++ 没有 GC,RAII: 那么我算个啥?(赠书福利)

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/7A9-tGZxf4w_7eZl3OUQ4A 学过 Java.C# ...

  3. ET介绍——CSharp协程

    什么是协程 说到协程,我们先了解什么是异步,异步简单说来就是,我要发起一个调用,但是这个被调用方(可能是其它线程,也可能是IO)出结果需要一段时间,我不想让这个调用阻塞住调用方的整个线程,因此传给被调 ...

  4. python学习之-------OS 文件夹和文件操作

    # OS模块 :查看一个文件夹下所有文件,这个文件夹有文件夹,不能用walk# -- coding: UTF-8 --import osimport sys#C:\Users\Administrato ...

  5. 7-9 《Fibonacci 数列》

    7-9 <Fibonacci 数列> 思路:吃过前面<序列求和>问题的亏 但还是要尝试一下循环大法 Fn=Fn-1+Fn-2 定义int型 aFn-1 , bFn-2 , cF ...

  6. Vue——表单控制、购物车案例、v-model进阶、与后端交互三种方式、箭头函数

    表单控制 // 1 checkbox 单选 多选 // 2 radio 单选 <body> <div id="app"> <h1>checkbo ...

  7. [ARM 汇编]进阶篇—存储访问指令—2.3.3 栈操作指令

    栈是一种特殊的数据结构,其特点是后进先出(LIFO,Last In First Out).在 ARM 汇编中,栈通常用于保存函数调用时的寄存器状态.局部变量和返回地址等.本节将详细介绍 ARM 汇编中 ...

  8. python测试系列教程——python+Selenium+chrome自动化测试框架

    需要的环境 浏览器(Firefox/Chrome/IE-) Python Selenium Selenium IDE(如果用Firefox) FireBug.FirePath(如果用Firefox) ...

  9. 加速体细胞突变检测分析流程-系列2(ctDNA等高深度样本)

    Sentieon●体细胞变异检测系列-2 Sentieon 致力于解决生物信息数据分析中的速度与准确度瓶颈,通过算法的深度优化和企业级的软件工程,大幅度提升NGS数据处理的效率.准确度和可靠性. 针对 ...

  10. Unity中的PostProcessScene:深入解析与实用案例

    Unity中的PostProcessScene:深入解析与实用案例 在Unity游戏开发中,我们经常需要对场景进行后处理,以实现更丰富的视觉效果.Unity提供了一个名为PostProcessScen ...