GraphCL方法介绍(Graph Contrastive Learning with Augmentations)

news2025/1/21 22:10:57

论文链接:https://arxiv.org/pdf/2010.13902.pdf

附录链接:https://yyou1996.github.io/files/neurips2020_graphcl_supplement.pdf 

代码链接:https://github.com/Shen-Lab/GraphCL 

1 图的数据增强

        我们专注于图级扩充。给定 M 个图的数据集中的图 G ∈ {G_m : m ∈ M },我们制定扩充图 G 满足: ,其中 q(·|G) 是扩充分布预定义的原始图,代表数据分布的人类先验。例如对于图像分类,旋转和裁剪的应用编码先验,人们将从旋转图像或其局部补丁中获得相同的基于分类的语义知识 [49, 50]

        在图表方面,可以遵循同样的想法。 1 是图形数据集是从不同领域抽象出来的,因此可能没有像图像数据集那样普遍适用的数据增强。换句话说,对于不同类别的图形数据集,某些数据扩充可能比其他数据扩充更受欢迎。我们主要关注三类:生化分子(例如化合物、蛋白质)[9]、社交网络[1]和图像超像素图[12]。接下来,我们为图结构数据提出了四种通用数据增强,并讨论了它们引入的直观先验。 

        节点丢弃

        给定图 G,节点丢弃将随机丢弃特定部分的顶点及其连接。它强制执行的潜在先验是顶点的缺失部分不会影响 G 的语义。每个节点的丢弃概率遵循默认的 i.i.d。均匀分布(或任何其他分布)。

        边缘扰动

        它会通过随机添加或删除一定比例的边来扰乱 G 中的连通性。这意味着 G 的语义对边连接模式方差具有一定的鲁棒性。我们也遵循 i.i.d.均匀分布以添加/删除每条边。

        属性掩码

        属性掩码提示模型使用上下文信息(即剩余属性)恢复被掩码的顶点属性。基本假设是缺少部分顶点属性不会对模型预测产生太大影响;

        子图

        这个使用随机游走从 G 中采样一个子图(该算法在附录 A 中进行了总结)。它假设 G 的语义可以在其(部分)局部结构中得到很好的保留。

        默认增强(丢弃、扰动、掩蔽和子图)比率设置为 0.2。

2 图对比学习

        受最近视觉表示学习中对比学习发展的推动(见第 2 节),我们提出了一个图对比学习框架(GraphCL)用于(自监督)GNN 预训练。

        在图对比学习中,预训练是通过潜在空间中的对比损失最大化同一图的两个增强视图之间的一致性来执行的,如图 1 所示。该框架由以下四个主要组件组成:

 (图对比学习的框架。两个图增强 qi(·|G) 和 qj (·|G) 从增强池 T 中采样并应用于输入图 G。一个共享的基于 GNN 的编码器 f (·) 和一个投影头 g(·) 被训练通过对比损失最大化表示 zi 和 zj 之间的一致性。)

        (1) 图数据扩充

        给定的图 G 经过图数据扩充以获得两个相关视图 ^Gi, ^Gj,作为正对,其中 分别。对于图数据集的不同领域,如何从战略上选择数据扩充很重要(第 4 节);

        (2) 基于 GNN 的编码器

        基于 GNN 的编码器 f (·)(在 (2) 中定义)提取图级表示向量 hi, hj 用于增强图 ^Gi, ^Gj。图对比学习不对 GNN 架构施加任何约束。

         (3) 投影头

        正如 [18] 中所提倡的,名为 projection head 的非线性变换 g(·) 将增强表示映射到计算对比损失的另一个潜在空间。在图对比学习中,应用双层感知器 (MLP) 来获得 zi, zj 。

        (4) 对比损失函数

        对比损失函数 L(·) 被定义为强制最大化正对 zi、zj 与负对之间的一致性。在这里,我们利用归一化温度标度交叉熵损失 (NT-Xent) [51、25、52]。

        在 GNN 预训练过程中,通过对比学习随机抽取 N 个图的 minibatch 进行处理,得到 2N 个增广图和相应的对比损失进行优化,其中我们将 zi, zj 重新标注为 z_{n,i}, z_{n,j}用于小批量中的第 n 个图。负对不是明确采样的,而是从与 [53、18] 中相同的小批量中的其他 N-1 个扩充图中生成的。将余弦相似度函数表示为 ,第 n 个图的 NT-Xent 定义为:

         其中 τ 表示温度参数。最终的损失计算在所有正对在minibatch上。所提出的图形对比学习方法总结在附录 A 中。

        讨论

        我们首先证明 GraphCL 可以被视为两种增强图的潜在表示之间的互信息最大化的一种方式。完整的推导在附录 F 中,损失形式重写如下:

        上述损失本质上最大化了 h_i = f_1(\widehat{G}_i), h_j = f_2(\widehat{G}_j)之间互信息的下界,即 的组合决定了我们期望的视图。此外,我们绘制了 GraphCL 与最近提出的对比学习方法之间的联系,我们证明 GraphCL 可以重写为一个通用框架,通过重新解释 (4) 统一图结构数据上的广泛对比学习方法。在我们的实现中,我们选择 f1 = f2 并通过数据扩充生成 ^Gi, ^Gj,而组合的各种选择导致 (4) 实例化为其他特定的对比学习算法,包括 [54, 55, 56, 21, 57, 58 , 59] 也显示在附录 F

 上述损失公式推理步骤:

 

        其中 P( ^Gi, ^Gj ), P( ^Gj | ^Gi), P^Gi 分别是增强图的联合分布、条件分布和边缘分布,T(·,·) 是一个可学习的得分函数,我们用相似函数 sim( ·,·), 温度系数 τ 和投影头 g(·)。因此,(3) 符合 InfoNCE 损失 [6, 7] 的公式,使得最小化 (3) 等效于最大化图 h_i = f_1(\widehat{G}_i), h_j = f_2(\widehat{G}_j) 的两个视图的潜在表示之间的互信息的下限。我们想强调投影头在框架中的关键作用,它提供可学习的权重来为得分函数构建函数空间,与丢弃投影头相比达到更严格的下界(它的关键作用也在[3]中进行了经验验证)。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式】熔断、降级傻傻分不清楚-熔断和降级的真实关系

文章目录前言降级熔断什么是服务熔断熔断和降级的关系降级方式1、熔断降级(不可用)2、超时降级3、限流降级总结前言 刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过…

[架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)

目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 4 . 成组链接法 3.4.3分布式文件系统 1. D F S 的特点 2. DFS 的组成 3. DFS 的架构 3 . 4 文件系统…

腾讯云服务器TencentOS系统安装宝塔Linux面板命令

腾讯云服务器TencentOS Server操作系统安装宝塔Linux面板命令选择CentOS安装脚本即可,TencentOS用户态环境与CentOS保持兼容,在CentOS上开发的应用程序可直接在TencentOS Server上运行。腾讯云百科分享腾讯云服务器TencentOS操作系统安装宝塔Linux面板命…

客户端ack模块的实现

文章目录背景第一版设计第二版设计第三、四版设计写在最后背景 所谓客户端ack模块是在我们推送服务中一个技术需求,本文主要介绍其迭代过程。 首先简单介绍下推送服务的架构,如下图。用户请求ws服务,建立ws长连接,并通过login和…

类和对象(C++11)

目录 一、类的定义 1.定义与声明放一起 2.定义与声明分开 二、类的访问限定符及封装 1.类的访问限定符 2.类的封装 三、类的实例化 四、类对象 1.类对象的存储方式 2.计算类对象的大小 面试题 1.结构体怎么对齐? 为什么要进行内存对齐? 2.如…

Python数据结构与算法-树

一、树的概念详情见 https://blog.csdn.net/little_limin/article/details/129845592 Python数据结构与算法-堆排序(NB组)—— 一、树的基础知识二、树的实例:模拟文件系统1、树的存储树结构也是链式存储的,与链表的结构相似&…

java通过URLClassLoader类加载器加载外部jar

相信在实际工作中,大家可能会遇到这种需求,这个jar是外部的,并没有添加到项目依赖中,只能通过类加载器加载并调用相关方法。 这种jar加载,其实也简单,我们通过普通的URLClassLoader就可以加载。代码如下所示…

netfilter filter表

iptables是linux下常用的一个防火墙软件,可以实现对网络访问的各种限制。iptables相当于防火墙的客户端,与用户进行交换,其后台依赖于内核的netfilter模块。iptables的各种配置,最终都是netfilter模块来实现的。 iptables分为4个…

Python-DQN代码阅读(12)

目录 1.代码 1.1代码解读 1.2 代码分解 1.2.1 latest_checkpoint tf.train.latest_checkpoint(checkpoint_dir) 1.2.2 saver.restore(sess, latest_checkpoint) 1.2.3 sess.run(tf.global_variables_initializer()) 1.2.4 deep_q_learning() 1.3 输出结果 1.4 问题 1…

v-for比v-if优先级更高?

前言 v-if和v-for哪个优先级更高呢?这是面试官常常问到的一个问题,如果是在三年前,我会毫不犹豫的回答当然是v-for哩,但在3202的今天,如果还这么答,显然是低估了前端技术的日新月异啰。下面我们就来结合编…

第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组 E 题

颜色平衡树问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序问题描述 格式输入 输入的第一行包含一个整数 n ,表示树的结点数。 接下来 n 行,每行包含两个整数 Ci , Fi,用一个空格分隔,表示第 i 个结点 …

动态内存管理【下篇】

文章目录⚙️5.C/C程序的内存开辟⚙️6.柔性数组🔔6.1.柔性数组的特点🔔6.2.柔性数组的使用⚙️5.C/C程序的内存开辟 C/C程序内存分配的几个区域: 🔴1.栈区(stack):在执行函数时,函数…

2023软件测试最难求职季,哪些测试技能更容易拿到offer?

在一线大厂,没有测试这个岗位,只有测开这个岗位。这几年,各互联网大厂技术高速更新迭代,软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰,各种新的测试技术层出不穷,测试人员的薪资也水涨船高。与…

【刷题之路】LeetCode 2389. 和有限的最长子序列

【刷题之路】LeetCode 2389. 和有限的最长子序列一、题目描述二、解题1、方法——二分法1.1、思路分析1.2、代码实现一、题目描述 原题连接: 2389. 和有限的最长子序列 题目描述: 给你一个长度为 n 的整数数组 nums ,和一个长度为 m 的整数数…

UR5构型机械臂正逆运动学

前言 整理之前的一个项目,当时看着一个博客硬生生计算了差不多一个星期。尝试用MatLab符号推导工具箱化简一部分工作。我使用的大象机器人一款开源入门级协作机器人产品myCobot,开发文档十分完善,但是有部分技术没有开源,如正逆运…

数据分析师 ---- SQL强化(2)

数据分析师 ---- SQL强化(2) 文章目录数据分析师 ---- SQL强化(2)题目一:SQL实现文本处理题目二:语种播放量前三高所有歌曲总结:题目一:SQL实现文本处理 现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别,…

钢铁侠材质制作——2、线条轮廓部分的制作

钢铁侠Unlit光照Shader,三种效果变化返回目录大家好,我是阿赵,这里是钢铁侠材质制作第二部分,线条轮廓部分的制作 为了实现这个效果,可以把细节拆分成以下几个部分: 1、轮廓光 1.效果分析 这是一个很基…

时间序列 | MATLAB实现CNN-BiLSTM-Attention时间序列预测

时间序列 | MATLAB实现CNN-BiLSTM-Attention时间序列预测 目录时间序列 | MATLAB实现CNN-BiLSTM-Attention时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现CNN-BiLSTM-Attention时间序列预测,CNN-BiLSTM结合注意力机制时间序列预…

语言模型ChatGPT,为什么能引领各行各业的AI技术革命

为什么ChatGPT这样一个语言模型的发展能引发所有行业的AI技术革命呢? 答案就在于它能理解我们的自然语言, 并能将我们的语言转换成计算机能够完全理解的特征。 自然语言与计算机理解 ChatGPT之所以能引领技术革命,关键在于它能理解我们的…