近些年来,对图神经网络(GNN)的研究如火如荼。通过设计基于 GNN 的模型,我们可以对结构化的数据(如社交网络图、分子图等)与对应的标签(点级别、边级别、图级别)进行有监督的端到端训练,使神经网络学习结构化数据与标签的联系。流行的 GNN 结构有 GCN [1], GraphSAGE [2], GAT [3], DGI [4], GIN [5] 等。
尽管 GNN 相关模型在多个任务上取得了惊艳的效果,但仍然存在许多问题,如:
为了解决这些问题,一些研究者正在探索 GNN 上新的训练模式,如预训练和自监督学习。
一方面,可以借鉴预训练-微调的模式,先在容易获取的、大规模的、无监督的(或者粗粒度的有监督的)图数据上,对 GNN 的模型参数进行预训练。再将经过预训练的 GNN 模型参数作为下游任务的初始参数,在少量细粒度标签上快速地进行微调。
另一方面,可以参考自监督学习的模式(其中图对比学习的研究尤为火热),通过图数据自身的信号,设计自监督的损失函数,无需标注即可学习出有意义的节点/图表示向量。这些自监督表示向量进而结合 SVM 等传统机器学习方法,也可以达成不错的效果。
预训练-微调(Pre-training Fine-tuning)的模式在自然语言处理 [10]、计算机视觉 [11]、推荐系统 [12] 等领域取得了惊人的效果;而对比学习(Contrastive Learning)的流行,也在计算机视觉 [13] 等领域中重燃了学界对自监督学习的研究热情。在图学习领域,预训练和自监督的研究都还刚刚起步,具有较大的发展潜力。近两年(2020-2021)学界对 GNN 结构的探索逐步放缓,对预训练和自监督 GNN 的相关研究则快速升温。
本文将梳理近年来 GNN 预训练和自监督学习的相关工作,汇总常用资源,以思维导图的形式对主要方法进行分类。本文主要整理来自 ICML、ICLR、NeurIPS、KDD、WWW、AAAI、WSDM 等会议中已发表的工作。水平有限,难免疏漏,欢迎讨论、补充、指正,谢谢!
本章节介绍近年来发表于顶会的 GNN 预训练工作。下图为对 GNN 预训练任务的归纳:
本文由 Stanford 图学习大牛 Jure Leskovec 组的 Weihua Hu 和 Bowen Li 等人出品,发表于 ICLR 2020。
本文首先指出,GNN 的预训练-微调模式是很困难的。如果仅设计简单的任务进行预训练(如预测两点之间是否有边),评测下游任务时则经常可以观测到 negative transfer 的情况(即预训练-微调的结果要差于直接训练的结果)。作者认为出现 negative transfer 现象的原因为,预训练任务应该同时兼顾图的局部信息(Node-level)和全局信息(Graph-level)。如果只进行 Node-level 的预训练,节点的性质得到充分的学习,但是将图中节点 Pooling 起来得到的图表示向量则比较模糊;只进行 Graph-level 的预训练的话,Pooling 得到的图表示很清晰,但具体到每个节点的表示则较弱。
为此,作者提出了两个 Node-level 的预训练任务,和一个 Graph-level 的预训练任务,并强调预训练应该同时结合两个级别进行。
Node-level:
Graph-level:
除以上对于预训练策略的思考,本文另一个重要贡献为给学界提供了两个 Benchmark。真实场景中经常会出现的 out-of-distribution 问题,即测试数据(test)和训练数据(train+valid)具有不同的分布(如不同物种的蛋白质、不同结构的化学分子等),这种场景非常考验模型的泛化和迁移能力。作者联合 Stanford 化学学院和生物工程学院的学者,联合发布了两个 GNN 预训练+下游任务数据集,来测试 GNN 预训练策略在 out-of-distribution 场景下的迁移能力。这两个 Benchmark 也被广泛应用于后续的工作中。实验表明,结合 Node-level 和 Graph-level 的预训练策略可以有效避免 negative transfer,相比不预训练的 GNN 有较大的效果提升,且 fine-tuning 过程中收敛的轮数大大减少。
其他值得注意的点:
本文来自清华唐杰老师组的 Jiezhong Qiu 等人,发表于 KDD 2020。
本文想解决的重要问题是,图学习能否进行跨领域(cross-domain)的预训练。上一节的工作中,进行预训练的图和下游任务上的图是同领域、同分布的,比如分子图(都是化学世界中的)、蛋白质交互图(都是从 PPI 网络中采样而来)。
本文提出的重要假设是:富有表达能力的图结构模式(patterns),在不同的网络之间,是通用的(universal)、可迁移的(transferable)。比如网络中广泛存在的 Power Law 定律等。
就具体的预训练方法而言,则是使用了对比学习的方法。以某个节点为中心,进行可重新开始的随机游走(random walk with restart)(一定概率回到起始节点),从而产生若干子图。在经过 GNN 编码后,设计对比学习的损失(Contrastive Loss),使来自同一个中心节点的向量表示靠近,来自不同中心节点的向量表示远离。注意,为了学习广泛的网络结构中的模式,采样子图后,节点会被重新编码,这样子图之间都是匿名的,相互之间不会有共享的节点表示。
本文在节点分类、图分类、Top-K 相似度检索任务上进行了评测。值得注意的是,尽管经过 GCC 预训练的 GNN 不一定能在每个数据集上都达到最优效果,但是都共享同一套 fine-tuning 超参数,即可以达到十分有竞争力的结果;相比之下,直接训练的 GNN 需要在不同数据集上进行细致的调参,较为敏感。
本文由 UCLA 孙怡舟老师组的 Ziniu Hu 等人完成,发表于 KDD 2020。
本文提出了一种生成式 GNN 预训练任务。核心想法认为一张图是根据某种概率分布生成而来的,因此本文首先根据假设,人为定义了图生成所遵循的条件概率分布,进而将图结构与属性的恢复作为 GNN 的预训练任务。作者设计了一种巧妙的算法,通过将每个节点拆分成两个虚拟节点(Attribute Generation Nodes 和 Edge Generation Nodes),分别对应了图结构恢复和节点属性恢复的两个子任务,进而只需运行一次GNN 即可同时完成上述两个子任务。另外本文提出的概率生成预训练框架,可以直接适配至异构的 GNN。
本文在 OAG(Open Academic Graph)和 Amazon 评论推荐数据集上进行了实验,并考察了 GPT-GNN 对领域(Field)和时序(Time)的 out-of-distribution 迁移能力。不同于其他工作,本文实验中图数据的节点/边特征均为 XLNet 编码后的稠密文本特征。对于无特征的节点/边,则直接采用邻居特征的平均作为其自身的特征。
本文为中国人民大学张静老师组的 Bowen Hao 等人发表于 WSDM 2021 的工作。本文通过删去部分用户-商品交互来模拟冷启动场景,并将Embedding 的恢复作为预训练任务。待恢复的节点的 ground-truth Embedding 由 NCF [18] 模型基于完整的交互数据学习得来。为了减少冷启动邻居的影响,本文还基于元学习的思想设计了 Meta-Aggregator 算法。本文在 ML-1M、MOOCs、Last.fm 这三个公开的推荐系统 Benchmark 上进行实验。
本文为北京邮电大学石川老师组的 Yuanfu Lu 等人发表于 AAAI 2021 的工作。本文考虑到现有的 GNN预训练任务与下游任务之间存在不一致性,进而提出利用元学习 Learn to Learn 的思想,使 GNN 预训练的优化目标为削减预训练任务与下游任务之间迁移的成本。本文设计了参考 LINE [20] 一阶的 Node-level 预训练目标,以及参考 DGI [4] 的 Graph-level 预训练目标。本文除了在 Hu et.al. ICLR20 [7] 分享的蛋白质数据集上进行实验,还分享了名为 PreDBLP 的学术网络数据集并进行实验。值得注意的是,本文要求被预训练的 GNN Encoder 必须包含可学习的参数化 Pooling 层以用于 Graph-level 预训练。
本文的预训练任务为自监督的图对比学习任务,并提出了四种对图数据做数据增强的方法。原文第 5 章的 Transfer Learning 小节对该方法以预训练-微调的模式,在 Hu et.al. ICLR20 [7] 分享的蛋白质数据集和化学数据集上进行了实验。此工作会在本文第三章 GNN + 自监督的部分进行详细介绍。
本文为腾讯 AI Lab 的 Yu Rong 和 Yatao Bian 等人发表于 NeurIPS 2020 的工作。虽然本文专注于化学分子图上的图级别预测任务,且不适用于任意的 GNN Encoder 预训练,但是其预训练思想仍然值得借鉴。本文提出的 Node-level 预训练任务是对 Hu et.al. ICLR20 [7] 中 AttrMasking 任务的拓展,从预测中心节点的属性,拓展为预测中心节点K跳邻居的属性的集合,从而使节点的预测目标包含了 Context 信息。本文还提出了预测 Motif(特定的子图元结构)的 Graph-level 预训练任务。先人为约定P个 Motif 结构,再对预训练数据集中每个分子图预测其中是否含有这P个 Motif 结构。本文在 Hu et.al. ICLR20 [7] 分享的化学分子数据集中的 8 个下游任务上进行了实验,并使用了更大的(11M)分子图数据集进行预训练。
本章节介绍近年来发表于顶会的自监督 GNN 工作,着重于介绍图对比学习的发展。下图为图对比学习中,图数据增强方法的归纳:
本文由 GAT 的作者 Petar Veličković 等人发表于 ICLR 2019。
本文由 Texas A&M University 的 Yuning You 和 Tianlong Chen 等人发表于 NeurIPS 2020。
本文的对比学习的框架并无大的创新,重点在于讨论如何对图数据做数据增强。本文提出了四种图数据增强的方法,具体而言:
本文也对这四种图数据增强策略的使用进行了讨论。(1)图数据增强策略的选择对图对比学习至关重要;(2)组合多种合适的图数据增强策略可以达到更好的效果;(3)对边的扰动(Edge Perturbation)对社交网络图有益,但会损害化学分子图(由于分子图中化学键对分子性质起重要作用);(4)稠密图中 Attribute Masking 效果更好;(5)一般而言,Node Dropping 和 Subgraph 都可以起到比较好的效果。
本文提出的框架得到的 GNN Encoder 可以被用于多种模式。在自监督实验设置中,可以固定 GNN Encoder 的参数,得到的自监督的节点表示,进而通过 SVM 等传统机器学习方法进行分类。也可以进行迁移学习,不固定 GNN Encoder 的参数,在下游任务做微调。本文在众多 Benchmark 上进行了大量实验,包括半监督学习、无监督表示学习、迁移学习(预训练)和鲁棒性测试等,具体细节请参照原论文。本工作是图表示与图表示之间做对比,是 Graph-Graph 模式的。
本文由加拿大 AutoDesk AI Lab 的 Kaveh Hassani 和 Amir Hosein Khasahmadi 发表于 ICML 2020 上。
本文提出的方法在框架上与 DGI (Node-Graph 对比的模式)和 SimCLR(同一张图增强出两个 View)类似,主要创新点在于提出 Diffusion 这种数据增强方法,以及经验化地分析了图对比学习的一些实验 Trick。
图数据增强方面,主要分为特征层面和结构层面两种。特征层面的数据增强方法主要为随机 Mask 特征,以及加入高斯噪声;结构层面的数据增强主要包括增加或删除边、采样子图、或者产生全局层面的 View(Global View)。本工作的主要创新则集中在 Global View 上。文中的Global View 即是将离散的邻接矩阵稠密化,对邻接矩阵进行重新赋值,任意两点之间都可以有一个浮点数值,两点联系的密切程度。一种平凡的方式是将两点之间的值设为图上的最短距离;更普适性的方式则沿用 NeurIPS 2019 的工作,使用 Diffusion [25]操作。Diffusion 也包含多种方式,如 Personalized PageRank (PPR) 或 heat kernel。详细推导请参考原文。本文实验中发现 PPR 方式的 Diffusion 效果最好。
本文还通过大量实验,给出了若干图对比学习的经验性结论。(1)多于 2 个的 View 对效果几乎没有提升,只用两个 View 即可;(2)只做 Node-Graph 模式的对比,效果要优于 Graph-Graph 的对比,或者多种对比方式混合;(3)对于由节点表示产生图表示的过程,简单的 Readout 函数要优于参数化的 Pooling 层;(4)正则 (regularization)和标准化(normalization)往往会产生负面影响。
本文为中科院吴书老师组的 Yanqiao Zhu 和 Yichen Xu 等人发表于 WWW 2021 的工作。本文提出 GCA 方法,主要思想为图数据增强不应改变图的属性/标签/性质等。因此本文提出,对图数据增强时,应该尽量扰动那些不重要的边/节点/属性。本文对图上节点的重要性(以 Centrality 为核心)及属性的重要性(以离散特征出现的频率为核心)做了详细定义。此外,本文定义了同时计算“图内”以及“图间”的 Node-Node 对比学习的损失函数。
本文为北京航空航天大学李建欣老师组的 Qingyun Sun 等人发表于 WWW 2021 的工作。本文通过对比学习损失,来增强子图表示的表达能力。
GNN 的预训练和自监督学习关系紧密又有所区别,笔者认为最核心的区别在于两点:
总之,GNN 的预训练和自监督学习(对比学习)仍然是个年轻的领域,有众多问题值得进一步地分析研究。也欢迎对这个方向感兴趣的研究者通过邮件(houyupeng@ruc.edu.cn)等方式与笔者联系,深入地交流讨论,相信思维的碰撞会产生别样的火花。