论文解读(SimGCL)《Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation》
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ]
论文信息
论文标题:Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation
论文作者:Junliang Yu, H. Yin, Xin Xia, Tong Chen, Li-zhen Cui, Quoc Viet Hung Nguyen
论文来源:SIGIR 2022
论文地址:download
论文代码:download
1 Introduction
本文是针对图对比学习在推荐系统中的应用而提出的相关方法。通常做对比学习的时候,需要对数据进行增广,得到相同数据的不同视图(view),然后进行对比学习,对于图结构也是一样,需要对用户-商品二部图进行结构扰动从而获得不同视图,然后进行对比学习最大化不同图扩充之间的节点表征一致性。
贡献:
- 通过实验阐明了为什么 CL 可以提高推荐性能,并说明了 InfoNCE 损失,而不是图的增强,是决定性的因素;
- 提出一种简单而有效的无图增强 CL 推荐方法,可以平滑地调节均匀性;
- 对三个基准数据集进行了全面的实验研究,结果表明,该方法在推荐精度和模型训练效率方面比基于图增强的方法具有明显的优势;
2 相关工作

作者使用 SGL 进行了如下实验,探究图结构扰动在图对比学习中的作用。
SGL 训练目标如下:
$\mathcal{L}_{\text {joint }}=\mathcal{L}_{\text {rec }}+\lambda \mathcal{L}_{c l}$
$\mathcal{L}_{c l}=\sum_{i \in \mathcal{B}}-\log \frac{\exp \left(\mathbf{z}_{i}^{\prime \top} \mathbf{z}_{i}^{\prime \prime} / \tau\right)}{\sum_{j \in \mathcal{B}} \exp \left(\mathbf{z}_{i}^{\prime \top} \mathbf{z}_{j}^{\prime \prime} / \tau\right)}$
其中, $\mathbf{z}^{\prime}\left(\mathbf{z}^{\prime \prime}\right)$ 是从两个不同图增强中学习到的 $L_{2}$ 归一化后的节点表示。对比学习损失函数最大 化正样本之间的一致性,即来自同一节点的增强表示 $\mathbf{z}_{i}^{\prime}$ 和 $\mathbf{z}_{i}^{\prime \prime}$ ; 同时,最小化负样本之间的一致性,即两个不同节点的增强表示 $\mathbf{z}_{i}^{\prime}$ 和 $\mathbf{z}_{j}^{\prime \prime}$ 。

注意:ND 为 node dropout,ED 为 edge dropout,RW 为随机游走,WA 不进行数据增广。可以发现,不进行数据增广的情况下,只比增强低一点,说明其作用很小。
注意:SGL-WA :
$\mathcal{L}_{c l}=\sum_{i \in \mathcal{B}}-\log \frac{\exp (1 / \tau)}{\sum_{j \in \mathcal{B}} \exp \left(\mathbf{z}_{i}^{\top} \mathbf{z}_{j} / \tau\right)}$
3 InfoNCE 的影响
对比损失的优化有两个特性:
- alignment of features from positive pairs;
- uniformity of the normalized feature distribution on the unit hypersphere;
Note:
$\mathcal{L}_{\text {align }}(f ; \alpha) \triangleq \underset{(x, y) \sim p_{\text {pos }}}{\mathbb{E}}\left[\|f(x)-f(y)\|_{2}^{\alpha}\right], \quad \alpha>0$
$\begin{array}{l}\mathcal{L}_{\text {uniform }}(f ; t) &\triangleq \log \underset{x, y \text { i.i.d. }}{\mathbb{E}} p_{\text {data }}\left[G_{t}(u, v)\right] \\&=\log \underset{x, y \stackrel{\text { i.i.d. }}{\sim} p_{\text {data }}}{\mathbb{E}}\left[e^{-t\|f(x)-f(y)\|_{2}^{2}}\right], \quad t>0 \\\end{array}$
实验

实验表明:
- LigthGCN 学习到的特征表示聚类现象更明显;
- SGL 结合对比学习的特征表示相对均匀;
- CL only 只有对比学习的特征分布均匀;
本文认为有两个原因可以解释高度聚集的特征分布:
- 消息传递机制,随着层数的增加,节点嵌入变得局部相似;
- 推荐数据中的流行度偏差,,由于推荐数据通常遵循长尾分布,当 $$ 是一个具有大量交互的流行项目时,用户嵌入将会不断更新到 $$ 的方向;
结论:即分布的均匀性是对 SGL 中的推荐性能有决定性影响的潜在因素,而不是图增强。优化 CL 损失可以看作是一种隐式的去偏倚的方法,因为一个更均匀的表示分布可以保留节点的内在特征,提高泛化能力。
4 方法
作者直接在表示中添加随机噪声,以实现有效的增强:
$\mathbf{e}_{i}^{\prime}=\mathbf{e}_{i}+\Delta_{i}^{\prime}, \quad \mathbf{e}_{i}^{\prime \prime}=\mathbf{e}_{i}+\Delta_{i}^{\prime \prime}$
约束:
- $\|\Delta\|_{2}=\epsilon $ 控制扰动在大小为 $\epsilon$ 的超球面上;
- $\Delta=\bar{\Delta} \odot \operatorname{sign}\left(\mathbf{e}_{i}\right), \bar{\Delta} \in \mathbb{R}^{d} \sim U(0,1) $ 控制扰动后的嵌入和原嵌入在同一超空间中;
图示如下:

以 LightGCN 作为图编码器,在每一层增加随机噪声,可以得到最终的节点表示:
$\begin{array}{l}\mathbf{E}^{\prime}=&\frac{1}{L}\left(\left(\tilde{\mathrm{A}} \mathbf{E}^{(0)}+\Delta^{(1)}\right)+\left(\tilde{\mathrm{A}}\left(\tilde{\mathrm{A}} \mathbf{E}^{(0)}+\Delta^{(1)}\right)+\Delta^{(2)}\right)\right)+\ldots \\&\left.+\left(\tilde{\mathrm{A}}^{L} \mathbf{E}^{(0)}+\tilde{\mathrm{A}}^{L-1} \Delta^{(1)}+\ldots+\tilde{\mathrm{A}} \Delta^{(L-1)}+\Delta^{(L)}\right)\right)\end{array}$
注意,这里丢掉了最开始的输入表示 $\mathbf{E}^{(0)}$ ,因为作者实验发现,不增加初始输入会带来性能提升, 但对于 LigthGCN 会有性能下降。

可以发现,相较于 SGL,SimGCL 的卷积复杂度会更高一些,作者也给出了如下图的理论分析。同时,作者也提到在实际实现中,由于卷积操作在GPU运算,且 SimGCL 只需要一次图构建,所以整 体上效率更高。
5 实验结果

参考:
[1] Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere
论文解读(SimGCL)《Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation》的更多相关文章
- 论文解读(ClusterSCL)《ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs》
论文信息 论文标题:ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs论文作者:Yanling Wang, Jing ...
- 论文解读(LG2AR)《Learning Graph Augmentations to Learn Graph Representations》
论文信息 论文标题:Learning Graph Augmentations to Learn Graph Representations论文作者:Kaveh Hassani, Amir Hosein ...
- 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》
论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...
- 论文解读(GROC)《Towards Robust Graph Contrastive Learning》
论文信息 论文标题:Towards Robust Graph Contrastive Learning论文作者:Nikola Jovanović, Zhao Meng, Lukas Faber, Ro ...
- 论文解读(SimCLR)《A Simple Framework for Contrastive Learning of Visual Representations》
1 题目 <A Simple Framework for Contrastive Learning of Visual Representations> 作者: Ting Chen, Si ...
- 论文解读(DAGNN)《Towards Deeper Graph Neural Networks》
论文信息 论文标题:Towards Deeper Graph Neural Networks论文作者:Meng Liu, Hongyang Gao, Shuiwang Ji论文来源:2020, KDD ...
- 论文解读(MaskGAE)《MaskGAE: Masked Graph Modeling Meets Graph Autoencoders》
论文信息 论文标题:MaskGAE: Masked Graph Modeling Meets Graph Autoencoders论文作者:Jintang Li, Ruofan Wu, Wangbin ...
- 论文解读(Geom-GCN)《Geom-GCN: Geometric Graph Convolutional Networks》
Paper Information Title:Geom-GCN: Geometric Graph Convolutional NetworksAuthors:Hongbin Pei, Bingzhe ...
- 【论文解读】NIPS 2021-HSWA: Hierarchical Semantic-Visual Adaption for Zero-Shot Learning.(基于层次适应的零样本学习)
作者:陈使明 华中科技大学
- 论文解读(SUGRL)《Simple Unsupervised Graph Representation Learning》
Paper Information Title:Simple Unsupervised Graph Representation LearningAuthors: Yujie Mo.Liang Pen ...
随机推荐
- Vue使用:style动态给css中某样式赋值
template中 <span class="successOrError" :style="{'--fontColor':"green"}&q ...
- 2023-04-10:给定两个正整数x、y,都是int整型(java里) 返回0 ~ x以内,每位数字加起来是y的数字个数。 比如,x = 20、y = 5,返回2, 因为0 ~ x以内,每位数字加起
2023-04-10:给定两个正整数x.y,都是int整型(java里) 返回0 ~ x以内,每位数字加起来是y的数字个数. 比如,x = 20.y = 5,返回2, 因为0 ~ x以内,每位数字加起 ...
- 2022-01-18:将数组分成两个数组并最小化数组和的差。 给你一个长度为 2 * n 的整数数组。你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之
2022-01-18:将数组分成两个数组并最小化数组和的差. 给你一个长度为 2 * n 的整数数组.你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之 ...
- 什么是DOM和BOM?
DOM:文档对象模型,描述了处理网页内容的方法和接口.最根本对象是document 由于DOM的操作对象是文档,所以DOM和浏览器没有直接关系 BOM:浏览器对象模型,描述了与浏览器进行交互的方法和接 ...
- Spring Cloud开发实践(六): 基于Consul和Spring Cloud 2021.0的演示项目
目录 Spring Cloud开发实践(一): 简介和根模块 Spring Cloud开发实践(二): Eureka服务和接口定义 Spring Cloud开发实践(三): 接口实现和下游调用 Spr ...
- SICP:惰性求值、流和尾递归(Python实现)
求值器完整实现代码我已经上传到了GitHub仓库:TinySCM,感兴趣的童鞋可以前往查看.这里顺便强烈推荐UC Berkeley的同名课程CS 61A. 即使在变化中,它也丝毫未变. --赫拉克利特 ...
- Python潮流周刊#3:PyPI 的安全问题
你好,我是豌豆花下猫.这里记录每周值得分享的 Python 及通用技术内容,部分为英文,已在小标题注明.(标题取自其中一则分享,不代表全部内容都是该主题,特此声明.) 文章&教程 1.掌握Py ...
- JS逆向实战15——猿人学第五题 动态cookie乱码增强
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站 https://ma ...
- ChatGPT 时代,程序员的生存之道 | 人工智能 AI
前言 ChatGPT 近期炙手可热,仿佛没有什么问题是它不能解决的.出于对 ChatGPT 的好奇,我们决定探索下它对于前端开发人员来讲,是作为辅助工具多一些,还是主力工具更多一些? 2D 能力测试 ...
- 绘图;OSPF 虚连接
绘图;OSPF 虚连接 原图如下 绘图 实验拓扑 实验需求 按照图示分区域配置OSPF 配置虚连接认证 实验步骤 配置相应接口IP地址及loopback 环回口地址 按照图示分区域配置OSPF AR1 ...