An Empirical Study of Graph Contrastive Learning

2023-05-16

摘要
图对比学习在图表示学习领域树立了新的范式,不需要人工标注信息。但对GCL的分析却寥寥无几。本文通过分析一般化的GCL范式的各个部分包括增强函数,对比模式,对比目标和负采样技术,然后分析各个组件之间的相互作用。实验结论显示,简单的拓扑增强可以生成稀疏视图带来不错的性能提升;对比模型应该与最终任务的粒度一致。

引言
一个经典的图对比学习方法是首先通过对输入的随机增强构建多个图视图,然后通过对比正负样本学习表示。以每个节点作为中心节点为例,正样本一般是其他视图中表示一致的一些节点,而负样本则是在该Batch中的给定图或者其他图中选择其他节点作为负样本。

尽管图对比学习已经取得了很大的成功,但是已有工作只是在模型级别做了评估,对于到底是什么因子影响GCL的效果尚未可知。为了分析这些问题,我们首先提出了一个一般化的对比范式,将之前的工作分解为四个部分分别为1)数据增强函数,2)对比模式,3)对比目标函数,4)负采样策略

我们的工作企图回答如下三个问题:
1)一个有效的GCL算法中最重要的组成部分是什么?
2)不同的设计考虑如何影响模型性能?
3)这些设计考虑是否有利于某些特定类型的数据或终端任务?

为设计高效的GCL算法,实验得出几个指导原则:
1)生成稀疏视图的拓扑增强对GCL的提升最大。从拓扑结构和特征级别都做增强会进一步提升效果。
2)对比模式的尺度应该与下游任务的粒度一致,即下游任务是节点级任务,对比应该是节点级别的。
3)InfoNCE目标函数最稳定且效果提升最好,但是要求大量的负样本
4)一些免负采样的目标函数可以保证效果的同时降低计算复杂度
5)基于embedding相似度的负采样策略对GCL效果提升甚微

GCL范式和设计维度
图片: https://uploader.shimo.im/f/3WuwHLuvZcWlH9YQ.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTY5ODg0MDksImZpbGVHVUlEIjoiS2xrS1ZnWlY2blN3MHpxZCIsImlhdCI6MTY1Njk4ODEwOSwidXNlcklkIjo2NjY4ODY1NX0.FS-BWVqaqN4BzaBHU4wZbVJNxYqZUZ1FrWzpW5xREIQ

我们将GCL算法分解为四个部分:1)数据增强函数,2)对比模式,3)对比目标函数,4)负采样策略。在每一次迭代训练时,首先才能使用随机的增强技术为输入图生成多个视图。具体来讲就是从转化函数集T中采样两个增强函数t来生成两个视图;当得到两个视图后,使用一个共享参数的图编码器计算对应视图的节点表示。对于图级别的任务,可以选择readout函数为每个视图学习一个图级别的表示。

对于每一个节点,对比模式会指定一组正样本和一组负样本。在两个视图中,embedding对应同一节点或者图的组成正样本集。我们使用负采样策略通过考虑负样本的相对相似性提升负样本集。最终使用对比目标函数计算这些指定正负样本对的得分。

Data Augmentations
数据增强的目的是为给定图生成一致的,恒等的正样本。目前大多数GCL是使用两级的增强技术即结构转化和特征转化。
Topology augmentations
边:1)边移除(ER), 2)边添加(EA), 3)边翻转(EF),
点:1)点丢弃(ND),2)随机游走的子图(RWS), 3)使用个性化pagerank的扩散(PPR),4)使用马尔可夫扩散核的扩散(MDK)
Feature augmentations
1)特征遮掩(FM), 2)特征丢弃(FD)

Contrasting modes
对于每一个点,对比模式需要确定图上不同粒度的正负样本集、在主流的工作中广泛应用的三种对比模式即1)local-local,2)global-global,3)global-local。注意,对比模式的应用是依赖下游人物的,只有local-local和global-local能用于节点级任务,对于图级别的数据集,这三种模式都可以使用。

Contrastive objectives
目标函数是用于衡量正样本之间的相似性和负样本之间的差异性的。按照是否需要负采样分为
1)依赖负样本
a. InfoNCE,b. Jensen-Shannon Divergence,c. Triplet Margin loss
2)不依赖负样本
a. Boostrapping Latent loss,b. Barlow Twins loss,c. VICReg loss

Negative mining strategies

  1. Hard Negative Mixing,2)Debiased Contrastive Learning,3)Hardness-Biased Negative Mining,4)Conditional Negative Mining
    在这里插入图片描述

GCL模型的表达能力

Dual branches vs. single branch
大多数的对比学习模型都是借鉴SimCLR使用双同分支的,将原始输入图增强两次得到两个视图并跨视图设计正样本。但对于一些global-local模式的对比如DGI,GMI只用到了一个分支,这种情况下,负样本是通过在原始图上扰动得到的。不同于之前提到的增强方式,通过生成一致的节点对建模正样本对的联合分布,扰动函数估计的是边缘分布的乘积。
Stronger augmentations
不同于GRACE和GraphCL使用均匀的边或特征扰动,GCA基于边和特征的重要性采用自适应的增强方式。
Variants of contrasting modes
GMI在DGI的基础上进一步考虑节点(边)原生特征和对应表示之间的一致性,但是会需要更多的计算资源。最近一些方法受启发与图聚类算法,通过对比局部/全局和上下文表示来学习。

Empirical Studies

  1. 数据增强方式
    图片: https://uploader.shimo.im/f/ZoaDgl4WgddZujpd.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTY5ODg0MDksImZpbGVHVUlEIjoiS2xrS1ZnWlY2blN3MHpxZCIsImlhdCI6MTY1Njk4ODEwOSwidXNlcklkIjo2NjY4ODY1NX0.FS-BWVqaqN4BzaBHU4wZbVJNxYqZUZ1FrWzpW5xREIQ
    GCL的效果高度依赖于数据增强方式的选取。
    图片: https://uploader.shimo.im/f/T6fcn8TlllTMnOJX.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTY5ODg0MDksImZpbGVHVUlEIjoiS2xrS1ZnWlY2blN3MHpxZCIsImlhdCI6MTY1Njk4ODEwOSwidXNlcklkIjo2NjY4ODY1NX0.FS-BWVqaqN4BzaBHU4wZbVJNxYqZUZ1FrWzpW5xREIQ
    观察一:拓扑结构上的增强对模型结果影响最大。产生稀疏图的增强函数能得到更好的效果。
    实验发现,与添加边相比移除边一般能达到更好的效果。也就是说得到一个稀疏的视图会更好一些。但稀疏的程度达到什么地步时可以取得最好的效果?本文分析了节点丢弃,边移除和边添加三种增强方式在CS数据集上的效果。实验发现,随着节点或边的减少,准确率会有一定的提升但随着大量的节点或边丢失,效果会极具下降。当边添加的越多时,准确率下降,这是因为大多数现实的图一般是稀疏的,太多的边添加进来会引入噪声,降低学习到的表示的质量。
    图片: https://uploader.shimo.im/f/MGluDBb5hSkgaSoE.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTY5ODg0MDksImZpbGVHVUlEIjoiS2xrS1ZnWlY2blN3MHpxZCIsImlhdCI6MTY1Njk4ODEwOSwidXNlcklkIjo2NjY4ODY1NX0.FS-BWVqaqN4BzaBHU4wZbVJNxYqZUZ1FrWzpW5xREIQ
    观察二:特征增强可以带来额外的提升,综合结构和属性级别的增强对GCL更有利。
    图片: https://uploader.shimo.im/f/2lDzmvWQaIrmTP26.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTY5ODg0MDksImZpbGVHVUlEIjoiS2xrS1ZnWlY2blN3MHpxZCIsImlhdCI6MTY1Njk4ODEwOSwidXNlcklkIjo2NjY4ODY1NX0.FS-BWVqaqN4BzaBHU4wZbVJNxYqZUZ1FrWzpW5xREIQ
    观察三:确定性的增强模式应该和随机的增强方式配合使用
    实验发现,单一使用确定性的增强并不一定会达到最好的结果。对比学习的目标函数就是区分从真实数据分布中采样的样本和从噪声分布中采样的样本。因此,随机增强可以更好的近似噪声分布。
    在这里插入图片描述

  2. 对比模式和目标函数
    在这里插入图片描述
    观察四:相同尺度的对比一般效果更好。不同粒度的下游任务使用不同的对比模式。
    实验发现,local-local在节点分类任务中效果最好,global-global在图级任务中效果最好。一种可能的解释是在global-local模式中,图中所有的节点表示可能恰好是每个图嵌入的正样本即在这种模式下,会把所有node-graph对拉入一个嵌入空间中,造成次优结果。
    在这里插入图片描述
    观察五:在所有基于负样本的目标函数中,InfoNCE的效果最好。
    观察六:Bootstrapping Latent and Barlow Twins losses可以获得与对应基于负样本的方法相同的效果且不需要显示的负采样,不会增加计算负担。

  3. 负采样策略
    在这里插入图片描述
    观察七:现存的基于计算嵌入相似性的负采样策略对GCL效果的提升影响不大。
    在这里插入图片描述
    我们发现,目前的负采样技术一般是通过计算样本嵌入的内积来计算样本之间相似性的。在无监督情况下,目标函数会把不同的表示分开而不考虑真实的语义关系。更糟糕的是,大多是GCN会倾向于为邻居节点生成相似的表示并不会考虑语义信息,这样会加重负采样选择的偏差。一些可能是正样本的样本被选为负样本会阻碍训练效果。

结论

本文从数据增强,对比模型,对比目标函数和负采样策略四个角度分析了现有的GCL算法,我们的实验发现对今后的算法设计起到指导作用。但是GCL依旧存在很多问题等待解决。
1)影响因素的局限。本文只从四个角度分析了影响GCL效果的因素,但是对于模型相关的因素如是否在InfoNCE目标函数中加入映射头以及在GCL中应该用什么图编码器有还没有分析到。
2)下游任务的局限。本文主要从节点和图级别的分类任务,图级别的回归任务上做了处理。大量下游任务如连接预测,社区检测都尚未考虑
3)缺乏理论分析。本文只是从实验角度分析了结果,缺乏理论解释。

未来方向
1)自动增强。我们知道拓扑结构增强对于GCL是至关重要的,但是现存工作还是要手动设计增强策略,这样可能会导致次优化。目前,图结构学习上的工作可以学习最优的图结构,可以用于自动学习合适的增强函数
2)理解前置任务和下游任务之间的表现差异。我们的工作分析了最终任务和对比目标函数的关系,但是前置任务和下游任务之间的效果差异并未分析
3)基于结构感知的负采样。在视觉领域,相似的视觉特征一般语义类别也相似,但是在图结构中很难通过嵌入相似性进行衡量。以前的图嵌入工作在结构角度设计了一些方法,但是如何整合丰富的结构信息为GCL建模更好的负分布尚未探索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

An Empirical Study of Graph Contrastive Learning 的相关文章

  • Warshall算法思想及改进[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 Warshall Floyd 算法 https en wikipedia org wiki Floyd E2 80 93Warshall a
  • graph6 格式如何工作?

    我一直在到处寻找 g6 或 graph6 格式的工作原理 但我不知道它是如何工作的 我发誓它就像魔法一样 F B w 这是一个以 ASCII 形式表示的图表 它可以由 Wolfram Mathematica Sage 和 Maple 等进行
  • 在图形工具、Python 界面中从邻接矩阵创建加权图

    我应该如何使用 python 中的图形工具从邻接矩阵中创建图形 假设我们有adj矩阵作为邻接矩阵 我现在做的是这样的 g graph tool Graph directed False g add vertex len adj edge w
  • 检测图中的所有圆圈

    我有一个存储在 Map 数据结构中的有向图 其中键是节点的 ID value 是key节点所指向的节点的nodeId数组 Map
  • 为加权图生成邻接矩阵

    我正在尝试实施弗洛伊德 沃歇尔算法 http en wikipedia org wiki Floyd E2 80 93Warshall algorithm 为此 我需要设置一个adjacency matrix的加权图 我该怎么做呢 我知道这
  • C++ boost::graph 从有向图中获取父顶点

    我有一个有向图 通过 boost graph 库中的 adjacency graph 实现 我试图找到某个顶点的父顶点 过去 通过 pygraph 我只是简单地反转了有向图 然后进行了邻居搜索 但似乎使用 boost reverse gra
  • C# 的图形查看器/抽屉?

    是否有一个好的 C 库用于绘制 可视化图形 我说的是节点路径可视化而不是折线图等 最好是原生的 而不是 pstricks 的包装或类似的东西 谢谢 一些提示 快速图表 http www codeplex com quickgraph 是一个
  • 键入lattice命令后图形不显示

    我安装了这个包lattice 并输入xyplot 没有错误消息 但也没有显示图表 我尝试切换到plot 而且效果很好 知道为什么会这样吗 谢谢你 尝试这个 require lattice require stats Depth lt equ
  • matplotlib 中刻度线的方向

    有没有办法使用 matplotlib 使 xaxis 底部刻度线的方向指向外 但顶部的刻度线指向内 是的 您可以使用 set tick params 方法来执行此操作 这是设置直方图以按照您的描述工作的示例 hist xaxis set t
  • 匈牙利算法的最少行数

    我想知道匈牙利算法覆盖所有零的最少行数 我已经关注了这个链接 但是那里的代码是一个贪婪的代码 匈牙利算法 如何用最少的行数覆盖0个元素 https stackoverflow com questions 14795111 hungarian
  • 投影 - 将 3d 转换为 2d

    我有问题或者很好 我不知道如何将具有 x y z 值的 3d 点转换为 2d 点 我必须绘制投影 其中我确实有点的 x y z 值 但我不知道如何将它们转换为 2d 以便我可以将它们移动到我的轴上 我一直在浏览维基和谷歌 但是我不太确定应该
  • 导出图像格式的访问图表?

    我在 Access 表单中创建了一个图表 并将其以图像格式导出 这很容易完成 但是当我关闭表单时 问题就出现了 它显示了一条弹出消息 对图表对象的操作失败 OLE 服务器可能未注册 要注册 OLE 服务器 请重新安装它 然后我做了一些改变
  • 迭代 DFS 与递归 DFS 以及不同的元素顺序

    我编写了一个递归 DFS 算法来遍历图 void Graph
  • Floyd Warshall 算法的时间复杂度

    Skiena 的算法书包含以下解释弗洛伊德 沃歇尔算法 http en wikipedia org wiki Floyd E2 80 93Warshall algorithm floyd adjacency matrix g int i j
  • R/Javascript:崩溃和扩展的网络

    我正在使用 R 编程语言 我有以下图形网络数据 library igraph library visNetwork from lt c Boss TeamA TeamA TeamA SubteamA1 SubteamA1 SubteamA1
  • 为什么使用 Dijkstra 算法而不是最佳(最便宜)优先搜索?

    从我到目前为止所读到的来看 这最佳优先搜索 https en wikipedia org wiki Best first search在找到到达目标的最短路径方面似乎更快 因为 Dijkstra 算法在遍历图时必须放松所有节点 是什么让 D
  • 如何使用 Chart.js 在堆积条形图中显示内联值?

    我正在使用 Chart js 库在堆叠条形图中显示一些值 但我正在努力找出如何显示条形图中的值 即 现在 我有以下代码 可以在条形顶部显示数字 但我想知道如何在条形内部显示它们 var numberWithCommas function x
  • 在 Python 中使用邻接表构建节点图

    我有一个Node类如下 class Node def init self val 0 neighbors None self val val self neighbors neighbors if neighbors is not None
  • 在 python matplotlib 中格式化损坏的 y 轴

    我正在 matplotlib 中处理一个 相当复杂的 条形图 它包含来自多个源的摘要数据 每个源都沿 x 轴标记 y 轴上有一系列结果 许多结果都是异常值 我尝试使用断开的 y 轴来显示这些结果 而不会使用以下组合来扭曲整个图表这个方法 h
  • 使用 d3 在两个节点之间绘制多条边

    我一直在关注 Mike Bostock 的代码这个例子 http bl ocks org 1153292学习如何在 d3 中绘制有向图 并且想知道如何构建代码 以便可以在图中的两个节点之间添加多个边 例如 如果上例中的数据集定义为 var

随机推荐

  • MVC4 网站发布(整理 + 部分转载 + 部分问题收集和解决方案)

    网站发布步骤 这部分是转载文章 在此标明出处 xff0c 以前有文章是转的没标明的请谅解 xff0c 因为有些已经无法找到出处 xff0c 或者与其它原因 如有冒犯请联系本人 xff0c 或删除 xff0c 或标明出处 因为好的文章 xff
  • 2022-适用于 Windows 10 Version 1809 的 02 累积更新,适合基于 x64 的系统 (KB5010351) - 错误 0x800f0982

    2022 适用于 Windows 10 Version 1809 的 02 累积更新 xff0c 适合基于 x64 的系统 KB5010351 错误 0x800f0982 系统是win10 企业版 LTSC版本 可能安装的是精简版导致的 运
  • sqlsever中text字段类型是否会影响查询性能

    先上结论 会影响查询性能 我在库里找了一张表T Sys Log 然后做2个副本 备份表 SELECT INTO T Sys Log back FROM T Sys Log SELECT INTO T Sys Log back2 FROM T
  • 【无标题】

    起因 2010 年 xff0c 谷歌宣布退出地内市场的时候 xff0c 一直保留着 谷歌地图 和 谷歌翻译 这两个公共服务 有兴趣自行百度下谷歌和百度恩怨 在 2020 年 xff0c 谷歌停止了 谷歌地图 在内地的服务 现在 xff0c
  • vmware ESXI 裸金属架构 本地服务器 开启Intel VT-x(虚拟化技术)

    我想使用vmware ESXI 安装的WIN10虚拟机中装vmware软件再装win10 即虚拟机中套虚拟机 基于工作要求某个XXX项目需要开启VPN远程到客户内网进行维护 客户对网络审计比较严 安装VPN的那台机子识别码要上传服务器 基本
  • 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。

    因为是转载文章 在此标明出处 xff0c 以前有文章是转的没标明的请谅解 xff0c 因为有些已经无法找到出处 xff0c 或者与其它原因 如有冒犯请联系本人 xff0c 或删除 xff0c 或标明出处 因为好的文章 xff0c 以前只想收
  • 一元正态分布

    d import numpy as np import matplotlib pyplot as plt from scipy stats import norm 生成100个正态分布数据 xff0c 均值为1 xff0c 标准差为2 da
  • CaptureLayer的另外一个调用例子TaskSnapshot

    在前一篇讨论中 xff0c 我们查找了系统中调用captureLayers的地方 1323 public static GraphicBuffer captureLayers IBinder layerHandleToken Rect so
  • visualsvn server 无法访问url

    IIS 发布网站 本机能访问 其它人访问不了 看一下服务端 VisualSVN Server 的服务有没有启动 x A 34 H g6 L N s 管理 服务 VisualSVN Server 备注 做为开发机子 手动优化自己的电脑吧 否则
  • JS日期加减,日期运算

    因为是转载文章 在此标明出处 xff0c 以前有文章是转的没标明的请谅解 xff0c 因为有些已经无法找到出处 xff0c 或者与其它原因 如有冒犯请联系本人 xff0c 或删除 xff0c 或标明出处 因为好的文章 xff0c 以前只想收
  • jQuery easyui 选中特定的tab

    获取选中的 Tab 1 获取选中的 tab panel 和它的 tab 对象 2 var pp 61 39 tt 39 tabs 39 getSelected 39 3 var tab 61 pp panel 39 options 39 t
  • Server Error in '/' Application. 解决办法

    Server Error in 39 39 Application Access to the path 39 E NetWeb2 Content upFile BClientExcel 大客户部通讯录导入 xlsx 39 is denie
  • easyui-datagrid 数据出不来(样式引起的bug)

    今天任务是需要从另一个项目中将某几个功能页面移植到现有的项目中 这是比较繁琐的功能 理解要移植功能的逻辑 xff08 业务逻辑 xff0c 涉及到的表和存储过程 xff09 页面样式 这么是我遇到的一个问题之一 xff1b 我需要展现一个e
  • c#切割字符串几种方法

    1 xff0c 按单一字符切割 string s 61 34 abcdeabcdeabcde 34 string sArray 61 s Split 34 c 34 oreach string i in sArray Console Wri
  • 动态链接库与静态链接库的区别

    静态链接库与动态链接库都是共享代码的方式 xff0c 如果采用静态链接库 xff0c 则无论你愿不愿意 xff0c lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了 但是若使用 DLL xff0c 该 DLL 不必被包含在最终
  • ssm——小学期实训总结

    实训总结 经过这两个星期短暂的学习 xff0c 我学习了ssm的框架搭建与web前端设计基础 在第一个星期 xff0c 老师着重为我们讲了框架的原理 搭建与运用 xff1b 而在第二个星期 xff0c 重点则转移到了小组对项目的开发与研究上
  • 节点中心性

    文章目录 度中心性 Degree Centrality 特征向量中心性 Eigenvector Centrality Katz中心性 Katz Centrality Katz index PageRank中心性PageRank算法 接近中心
  • 机器学习面试知识点总结

    文章目录 计算学习理论过拟合与欠拟合过拟合欠拟合 偏差与方差最大似然估计与贝叶斯估计极大似然估计贝叶斯决策论贝叶斯估计 特征工程与特征选择特征工程逐层归一化特征选择 模型融合融合策略 评估方法与评价指标评估方法评价指标 优化算法正则化深度模
  • Multi-view graph convolutional networks with attention mechanism

    摘要 传统的图卷积网络关注于如何高效的探索不同阶跳数 hops 的邻居节点的信息 但是目前的基于GCN的图网络模型都是构建在固定邻接矩阵上的即实际图的一个拓扑视角 当数据包含噪声或者图不完备时 xff0c 这种方式会限制模型的表达能力 由于
  • An Empirical Study of Graph Contrastive Learning

    摘要 图对比学习在图表示学习领域树立了新的范式 xff0c 不需要人工标注信息 但对GCL的分析却寥寥无几 本文通过分析一般化的GCL范式的各个部分包括增强函数 xff0c 对比模式 xff0c 对比目标和负采样技术 xff0c 然后分析各