© 作者|侯宇蓬
机构|中国人民大学高瓴人工智能学院
研究方向|图机器学习与推荐系统
本文介绍的是图对比学习的研究趋势。文章也同步发布在AI Box知乎专栏(知乎搜索 AI Box专栏),欢迎大家在知乎专栏的文章下方评论留言,交流探讨!转载本文请注明来源RUC AI Box。
随着对比学习(Contrastive Learning)在 CV、NLP 等领域大放异彩,其研究热度近年来也逐步走高。在图学习领域,由于图(Graph)数据也存在缺少标签或难以标注的问题,自 2020 年来,研究者们也着力于将对比学习技术应用于图表示学习任务上,取得了十分不错的效果,这一系列算法研究称为 图对比学习(Graph Contrastive Learning)。由于图是一种离散的数据结构,且一些常见的图学习任务中,数据之间往往存在紧密的关联(如链接预测)。如何针对这些特性设计图对比学习算法、对比学习又是如何更好地帮助学习图表示、节点表示的,这些问题仍在积极地探索中。
本文将主要基于 2020-2021 年已发表的顶会论文(ICML、ICLR、NeurIPS、KDD、WWW、IJCAI),介绍图对比学习算法的一般流程,并总结当今图对比学习的若干研究趋势。希望本文能帮助研究者们快速了解对图对比学习相关研究进展,并欢迎大家在评论区讨论及指出文章的疏漏错误等。章节 1-4 主要概述图对比学习 2020 年的工作,而对于熟悉 GraphCL 等基础的图对比学习算法的读者,可以直接跳到章节 5 阅读 2021 年的新研究进展总结。
一般意义上,图对比学习是一种针对图数据的自监督学习算法。对给定的大量无标注图数据,图对比学习算法旨在训练出一个图编码器,目前一般指图神经网络(Graph Neural Network, GNN)。由这个 GNN 编码得到的图表示向量,可以很好地保留图数据的特性,并进一步在无监督、半监督、迁移学习以及鲁棒性测试等实验设置下进行测试,并应用于社交网络、蛋白质交互网络、分子结构、学术引用网络等多个场景中。
Graph Contrastive Learning with Augmentations. NeurIPS 2020.
常见的图对比学习算法由下述步骤组成:
随机采样一批(batch)图;
对每一个图进行两次随机的数据增强(如删除若干条边(edge)),增强后两个新图称为视图(View);
使用待训练的 GNN 对 View 进行编码,得到节点表示向量(node representation)和图表示向量(graph representations);
根据上述表示向量计算 InfoNCE 损失,其中由同一个 graph 增强出来的 view 的表示相互靠近,由不同的 graph 增强得到的 view 的表示相互远离;
在这个流程下,对 graph 应用对比学习,与对其它类型数据(如图像、文本)应用的区别在于:
数据增强。CV 领域一般通过随机对图片进行裁剪、旋转等操作产生增强后的数据,那如何对 graph 进行数据增强?
对比层次。GNN 编码后我们可以同时得到节点级别 / 图级别的两个层次的表示,那么对比的目标应该设计在哪个层次?
在图对比学习研究的初期,研究者们通常设计启发式算法来决定如何做 graph 的数据增强(data augmentation)。这部分主要涉及论文有:
GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training. KDD 2020.
Contrastive Multi-View Representation Learning on Graphs. ICML 2020.
Graph Contrastive Learning with Augmentations. NeurIPS 2020.
Graph Contrastive Learning with Adaptive Augmentation. WWW 2021.
接下来从图结构、图特征两方面介绍已经提出的、用于图对比学习的启发式图数据增强方法。
基于结构的图数据增强方式,主要为启发式约定 distribution,对 edge 和 node 进行修改,如随机删边 / 加边(edge perturbation / edge drop)、随机删除节点及与其相连的边(node drop)、随机游走采样子图(subgraph)等。特别地:
GCC KDD20. 这篇文章中主要研究不同场景下图的迁移学习,因此在随机采样子图后,进一步进行了匿名化的操作,详见原论文 Sec. 3.2 Q2。
Contrastive Multi-View Representation Learning on Graphs. ICML20. 这篇文章还提出修改邻接矩阵的操作,如可以将点与点之间的最短路径设置为邻接矩阵的权重,或者通过 diffusion 的操作对邻接矩阵做实值化。
GraphCL NeurIPS20. 这篇文章提出,数据增强的选择与数据集的领域紧密相关,并探索了不同数据增强方式选择做效果的影响。
GCA WWW21. 这篇文章提出根据节点的 centrality 设定删边的概率,不重要的边被删的概率更高。这里的 centrality 由 Degree、Eigenvector、PageRank 等方式定义。
基于图上点特征或者边特征的图数据增强方式,主要包含随机遮掩特征(attribute / feature mask)、在特征向量上加高斯噪声等。特别地:GCA WWW21. 提出一套计算 feature 每一维度重要性的策略,并根据重要性进行 mask。
由于图数据经过 GNN 后会产生 节点表示 和 图表示 两个层次的表示向量,因此早期工作也设计了不同的对比层次。比如 GraphCL. NeurIPS 2020. 就与 SimCLR 一脉相承,只对比各个 view 的图表示;GCA. WWW 2021. 进行各个节点表示之间的对比;Contrastive Multi-View Representation Learning on Graphs. ICML 2020. 则设计实验对不同层次的对比进行分析,并发现在其实验设置下,将节点表示与图表示进行对比会取得更好的效果。
(注意本章提到的工作参考文献与第三章相同)
之前已经讨论到,现有启发式图数据增强方法存在若干问题,如:
过多的人工干预。往往要经过大量实验,才能对给定的数据挑选出合适的数据增强方式;
启发式方法。这些预设的人工定义算法不一定总能保留 graph 本身的特性;
面对上述问题,今年一些工作探索了通过 learning 的方式,自动从数据中学习如何选择数据增强方式、或者如何实行数据增强。本章节主要涉及工作有:
Graph Contrastive Learning Automated. ICML 2021.
Adversarial Graph Augmentation to Improve Graph Contrastive Learning. NeurIPS 2021.
Bringing Your Own View: Graph Contrastive Learning without Prefabricated Data Augmentations. WSDM 2022.
在 GraphCL 的实验中,作者表明不同领域的数据集所需要的数据增强方式是不同的。比如对于化学分子,随机删边可能会显著影响分子的性质,并不是一个好的数据增强方式。那么对于一批新数据,我们应该如何选择合适的图数据增强方式呢?
Graph Contrastive Learning Automated. ICML 2021.
在 ICML 2021 的论文 Graph Contrastive Learning Automated 中,作者以 GraphCL 为基础,设计了自动选择数据增强方式的 JOAO 框架。大体思想为通过对抗训练(adversarial training)的方式,迭代训练选择每种数据增强方式的概率矩阵,并对应更换 GraphCL 中的映射头(projection head)。实验结果表明,对抗训练学习得到的概率矩阵和此前 GraphCL 关于数据增强选择的实验结果趋势相近,并在不需要过多人工干预的情况下达到了有竞争力的结果。
还有一些工作旨在探索,如何自动学习数据增强时对图做扰动的分布。在 NeurIPS 2021 的论文 Adversarial Graph Augmentation to Improve Graph Contrastive Learning 中,作者从数据增强如何保留图的信息出发,假设增强出的两个 View 之间并不是互信息越大越好,因为这些互信息中可能包含大量噪音。
作者引入信息瓶颈 (Information Bottleneck)原则,认为更好的 View 应该是在共同保留图本身的特性这一前提下,彼此之间的互信息最小。即在训练中,学习如何通过增强保留 graph 中的必要信息,并同时减少噪音。基于这一原则,作者设计了 min-max game 的训练模式,并训练神经网络以决定是否在数据增强中删除某条边。
Adversarial Graph Augmentation to Improve Graph Contrastive Learning. NeurIPS 2021.
除了上述工作,WSDM 2022 的论文 Bringing Your Own View: Graph Contrastive Learning without Prefabricated Data Augmentations 讨论了生成式的数据增强方法(generative augmentations),但是该论文暂未发布预印本。
针对图对比学习的特性,一些工作修改了对比学习的训练过程,本部分涉及的论文为:
Self-supervised Graph-level Representation Learning with Local and Global Structure. ICML 2021.
Graph Debiased Contrastive Learning with Joint Representation Clustering. IJCAI 2021.
CuCo: Graph Representation with Curriculum Contrastive Learning. IJCAI 2021.
发表于 ICML 2021 的论文 Self-supervised Graph-level Representation Learning with Local and Global Structure 假设图的数据集中存在全局的、层次性的类别关联,并引入层次化的 Prototype 的概念,除了进行图表示之间的对比学习,还进行图表示与 prototype 表示之间的对比学习。该算法的 prototype 通过 EM 算法进行优化。
发表于 IJCAI 2021 的论文 Graph Debiased Contrastive Learning with Joint Representation Clustering 认为图对比学习过程中,随机采样的负例存在大量的 false-negative 样例。本文提出的方法在训练过程中同时进行聚类,根据聚类的结果生成伪标签,并根据伪标签决定选择哪些负例。
Graph Debiased Contrastive Learning with Joint Representation Clustering. IJCAI 2021.
发表于 IJCAI 2021 的另一篇论文 CuCo: Graph Representation with Curriculum Contrastive Learning 也着眼于对比学习训练过程中的负例选择。作者引入课程学习(Curriculum Learning) 的概念,为负样本设计了打分函数,将负样本从易到难地排序,并依次学习。
除了针对通用的图结构的图对比学习算法,一些工作还在细分领域的特殊图上进行设计。如:
图对比学习当前还是一个十分火热的,可研究方向众多的图表示学习领域,NeurIPS 2021、ICLR 2022 都可以看到若干相关投稿。除图对比学习外,感兴趣的研究者也可以关注图互信息最大化、GNN + 预训练、GNN + 自监督学习等领域的研究。
关于 GNN 预训练的总结可以参考这篇文章:
Make GNN Great Again: GNN 上的预训练和自监督学习
关于 GNN + 自监督学习的论文列表可以参考:
https://github.com/ChandlerBang/awesome-self-supervised-gnn。
关于图对比学习的代码实现,可以参考:
https://github.com/GraphCL/PyGCL。