作者 | Mr Bear
编辑 | 陈彩娴
在 AAAI 2021 图深度学习 Workshop 上,来自斯坦福大学的著名学者 Jure Leskovec 发表了题为「Design Space for Graph Neural Networks」的主题演讲,介绍了其团队近期为推动图学习社区发展所做出的两项奠基性工作:Open Graph Benchmark 以及「图神经网络的设计空间」。该工作由 Jure Leskovec 和其团队的成员 Jiaxuan You 等人共同完成。
图1:图神经网络的设计空间
Jure Leskovec来自斯洛文尼亚,是斯坦福大学计算机科学系副教授,主要研究主题是网络结构。他还是Pinterest的首席科学家。他于2008年获得卡内基梅隆大学的计算和统计学习博士学位,并曾获得2012年斯隆奖和2015年拉格朗日奖。他是图表示学习方法 node2vec 和 GraphSAGE 作者之一。
据谷歌学术显示,他目前的论文总引用量超过8万,h-index为113。Jure Leskovec的影响力在近年飙升,要知道在2019年底,他的论文引用量才4.5万,h-index为84。
在美国,研究型大学要获得永久教职的副教授,h-index一般为10到12,晋升为正教授则大约为18。成为美国科学院院士则一般在45以上,中位数是57。而Jure 2019年达到84的h-index就意味着他在人工智能研究领域占有举足轻重的地位,更不用说现在的113 h-index了。
在图网络研究早期,大部分的图网络框架的建立都是基于研究者的先验或启发性知识,缺少清晰的理论支撑。Jure曾在ICLR 2019的一篇论文中提出了基于WL图同构测试的理论框架,为众多的GNN框架给出了精彩的理论分析。感兴趣的同学可以查看这篇文章:斯坦福Jure Leskovec清华演讲:图神经网络研究最新进展。
以下是报告「图神经网络的设计空间」的原文,AI科技评论进行了不改变原意的整理。
1
图神经网络概述
图 2:下一代人工智能革命——图深度学习
当代图神经网络(GNN)的发展与深度学习革命密不可分,深度学习对我们利用大量数据进行学习的方式进行了重要变革,人们不再需要手动完成特征工程的工作。如今,我们正面临着下一个人工智能的发展浪潮——将深度学习应用到关系数据(图)上。我们希望将一个网络数据输入给 GNN,通过几层非线性层对输入进行变换,从而能够很好地进行节点标签预测、新链接预测,或者对整个图进行预测。甚至,我们还可以生成新的图。
图 3:GNN 的研究浪潮
近年来,研究者们对图神经网络的研究兴趣大增。如图 3 所示,2018 年至 2020 年间,「图神经网络」一词在诸多提交论文的关键词中的占比迅速增长,这一研究领域蓬勃发展。如今,图神经网络相关论文的占比要远远高于元学习、自监督学习、神经架构搜索等领域。
图 4:图机器学习拥有广阔的前景
图机器学习的前景十分广阔,并在许多不同的领域和任务取得了令人惊喜的实验结果。然而,人们对图机器学习和图神经网络的研究兴趣仍在持续增长。我们不禁要问:我们该如何在该领域的研究中更进一步?该领域还有哪些尚未被很好解决的问题?
图 5:图神经网络的两个发展机遇
在本次演讲中,Jure Leskovec 讨论了图机器学习领域的两个发展机遇,以及他为了推动该领域的发展所做的一些工作。
近年来,图机器学习研究社区的研究者们开展了大量的工作,取得了许多进展,但是我们很难跟进所有的研究进展。每天都有很多不同的网络架构被提出,它们被用于不同的数据集、不同的任务,人们会使用不同的度量标准来评价这些网络。我们很难发现在某种情况下究竟是网络中的什么因素真正起作用,也很难发掘它们起作用的原因。为了解决这一问题,Jure Leskovec 研究组及其合作者们开展了一系列研究工作。在本次演讲中,他介绍了其中的「Open Graph Benchmark」和「图神经网络的设计空间」这两项重量级研究成果。
图 6:Open Graph Benchmark
首先,Jure Leskovec 介绍了其团队在 NeurIPS 2020 上发表的论文「Open Graph Benchmark」。
论文地址:https://arxiv.org/abs/2005.00687
项目地址:https://ogb.stanford.edu
github地址:https://github.com/snap-stanford/ogb
图 7:图机器学习使用的数据集
在当下的图机器学习研究领域中,实验中所使用的数据集通常非常小。例如,对于节点分类任务而言,人们使用的标准数据集「CORA」包含 2,700 个节点;「Citeseer」数据集则包含略多于 3,000 个节点。对于图分类任务而言,最流行的数据集之一「MUTAG」仅仅包含 188 个分子,其中每一个分子都被表征为一个图。而在知识图谱对比基准方面,大多数工作都会使用一个较小的 Freebase 知识图谱,它仅仅包含 15,000个节点(即 15,000 个实体),600 条边。
图 8:对图机器学习进行评估
在 Jure Leskovec 看来,目前的图机器学习研究都分散在各个小数据集上,因此我们难以对其统计意义进行评估,也很难跟进研究进展究竟是如何取得的。
因此,为了恰当地跟进研究进展,找出当前的方法存在的问题,并对其进行改进,研究社区急需开发出一种多样化的、可以应对复杂场景、与现实情况相符的图机器学习对比基准。
图 9:提出新的对比基准的原因
那么,我们为什么需要一个新的对比基准呢?
首先,当前的数据集往往规模太小,与现实场景不符。这意味着我们很难可靠和严格地评估算法。
其次,评估算法的方案不统一。基本上,每一份研究工作或每一篇论文都使用了自己的「训练集/测试集」数据划分方式和性能评测指标。这意味着我们很难进行跨论文跨架构的性能比较。
此外,研究人员往往在划分数据集时采用传统的随机划分方法,这与许多现实世界中的应用程序所面对的环境并不相符。这意味着,在这种常规分割方法下,实验结果的准确性偏高。
出于上述考虑,Jure Leskovec 团队试图通过新的对比基准来改善该领域的研究现状。
图 10:Open Graph Benchmark 的特性
Open Graph Benchmark(OGB)包含一组用于图机器学习的对比基准实验数据集,它具有以下三个重要的特性:
(1)OGB 包含一些可以现成使用的用于图上的关键任务(节点分类、链接预测、图分类等)的数据集。
(2)OGB 包含用于加载图数据、构图、表征图的代码库。该代码库与目前流行的深度学习框架(例如,DGL、PyTorch Geometric)等相兼容。
(3)OGB 包含通用的代码库,以及性能评测指标的实现代码,可以进行快速的模型评估和比较。
可见,OGB 包含数据集、数据加载器,这意味着数据的划分是标准化的。研究者只需要导入他们的模型,接着 OGB 就可以进行模型的评估。此外,OGB 还设有一个模型性能排行榜,使我们可以很准确地跟进研究进展。
图 11:OGB 多样的数据集
OGB 可以处理各种尺寸的网络数据,一些较小的网络小到可以被放入单个现代 GPU 中,而较大的网络则需要我们进行更多的考虑。这些网络涉及的领域也十分多样,例如:生物、化学、自然科学、社交信息网络,甚至知识图谱。OGB 涉及的任务包含节点分类、链接分类、图分类。
图 12:OGB 的核心任务
OGB 涉及的图的核心任务包括节点特性预测、节点分类、链接预测、知识图谱补全,以及图级别的预测任务。图级别的任务主要有分子特性预测、代码片段(可以被表征为图)识别等。
图 13:OGB 涉及的领域十分多样
如前文所述,OGB 可以处理多个领域的任务,例如:自然科学、化学、生物、社会信息网络,知识图谱,以及计算机代码。这意味着 OGB 包含多样、丰富的节点、边和图的特征。OGB 包含的数据集规模范围十分广,较小的数据集包含 100,000 左右的节点,而大数据集则包含超过 100 万个节点,所有这些数据集都对图机器学习提出了非常独特和有趣的挑战。
图 14:目前 OGB 包含的数据集概览
目前,OGB 已经包含了许多不同的数据集。如图 14 所示,绿色的数据集已经内置于 OGB 中,而灰色的部分则是目前还未被包含到该对比基准中的数据集。
可见在 OGB 中,Jure Leskovec 等人构建了不同尺寸的数据集,涉及自然科学、社会网络科学、知识图谱这三个领域的节点、链接、图级别的各类任务。因此,OGB 是一个非常多样化的对比基准。
图 15:图结构的多样性
如图 15 所示,OGB 不仅在应用场景和任务领域方面十分多样,而且在图网络结构方面也存在多样性,它可以处理各种尺寸的网络数据。这些网络节点平均度差别很大,例如:蛋白质相互作用网络节点的平均度为 600,另一个节点分类数据集节点的平均度为 21.7。这些网络的节点聚类系数和图直径也有很大的差异。这对于信息通过 GNN 的消息传递机制流动和传播具有很大的影响。
图 16:随机数据划分的问题
Jure Leskovec 等人也投入了大量精力探究如何实现性能优于随机数据划分的数据划分策略。实际上,目前研究人员已经在现有的图对比基准上取得了接近饱和的性能,泛化性能的下降也十分小。基本上,只要我们在充足的已标注数据上进行训练,就不再需要进行泛化和外推了。从某种程度上说,我们只需要智能化地记住正确的模式。
在这种情况下,我们想要解决的问题是:随机数据划分往往与现实情况不符,或者不再足够具有挑战性。在许多应用程序中,随机数据划分无法表示人们在现实世界中所期望的情况。如果使用随机划分的数据进行训练,模型可能不会有很好的性能。Jure Leskovec 等人试图确定不同的数据划分方式,使它们与现实情况相符。
图 17:具有意义的数据划分
例如,对于分子图的图分类问题,我们希望基于分子的 Scaffold 结构对分子进行聚类,然后给出分子结构不同的验证集/测试集,这与现实世界中的用例十分相近。在现实中,化学家会使用一个模型来评估从未被合成的新分子。我们要确保训练使用的分子和测试使用的分子之间有一定的差别。
例如,在随着时间推移而演变的数据集中(比如知识图谱补全等),我们想要预测图谱的演变以及对知识图谱的演变过程进行补全,而不是随机地创建训练集/测试集(在给定的时间内使用某图作为训练数据,然后预测这个图将如何演变或者在未来如何补全)。
举例而言,在源代码预测任务中,我们希望基于 github 的代码仓库对数据进行划分,看看我们是否可以根据一个代码仓库泛化到另一个代码仓库。
图 18:Open Graph Benchmark 的使用
OGB 是一种用于图机器学习任务的资源,它提供了一个非常容易安装的代码。OGB 的程序包使研究人员可以快速地加载数据集,根据这些数据集构件图。构建好模型后,模型的评估和数据划分也可以通过 OGB 完成,OGB 旨在提供标准的数据评价工作流程,从而使研究科学家可以重点关注研发性能良好的模型架构。
这是一个会一直存在的项目,目前仍然在持续更新中。Jure Leskovec 团队欢迎大家向 OGB 贡献数据集,并对 OGB 的进一步改进提出贡献,进一步提升 OGB 的多样性。
图 19:图神经网络的设计空间
随着人们对图神经网络的研究兴趣与日俱增,各种不同的图神经网络架构、不同的方法、不同的优化技术也纷纷涌现了出来。实际上,我们很难弄清楚何时会出现新的数据集,何时会出现新的问题,如何解决这些问题,怎样的网络架构是有效的。在本次演讲中,Jure Leskovec 对图神经网络的设计空间进行了概述。
图 20:将网络作为计算图
我们可以认为图神经网络的底层图结构是一种可计算的图,如果底层的图结构决定了图神经网络,那么我们需要做的就是学习如何在网络间传播并聚合信息。
图 21:图神经网络的工作机制
如图 21 所示,这是图神经网络典型的工作机制,它表示了我们在对节点 A 进行预测的过程中定义的神经网络结构。该网络的结构为,节点 A 会聚合其邻居节点 B、C、D 的信息,而节点 B、C、D 也会聚合它们的邻居节点的信息。即 D 会从 A 聚合信息,B 会从 A 聚合信息,而 C 也会从其它节点聚合信息。
这是一种通用的架构,在设计图神经网络时,我们需要考虑这种消息传递机制,其中神经网络的输入是节点属性。接着,我们需要定义消息的变换操作以及消息聚合操作。也就是说,当我们从较底层获取消息时,应该如何聚合这些消息。
首先,我们会对节点的消息进行变换,然后将给定节点 V 邻域内的消息及其自身在上一层的消息聚合起来。这就是图神经网络的工作机制。
图 22:GNN 的任务
GNN 可以被用于各种各样的预测任务。我们可以将其用于预测节点的标签和数据。我们还可以将两个图神经网络结合起来,从而预测某对节点之间是否会产生链接,并且对这两个 GNN 进行反向传播。此外,我们可以将整个图作为输入,将其表征为一组节点和由这些节点组成的单个神经网络。接着,我们进一步聚合节点的嵌入,从而预测图的标签(例如,分子图的标签)。
图 23:GNN 设计的关键问题
Jure Leskovec 团队近年来一直致力于研究一个非常重要但也极具挑战性的问题:我们如何为某个特定的机器学习任务找到一种好的 GNN 设计方案?
由于 GNN 已经在诸多问题上取得了成功,人们提出了各种各样的网络架构、调整策略以及改进技术。从某种程度上说,如果我们是一名相关领域的从业者和科学家,我们会希望获得最先进的 GNN 来完成手头上的任务。
然而,可能存在的 GNN 架构有很多种,在某个任务上性能最佳的 GNN 网络设计可能对于另一个任务并不适用。这意味着我们必须尝试所有可能的 GNN 设计方案,并希望找到适用于特定任务的 GNN 架构。那么,我们是否可以构建一种系统,从而自动地预测出好的 GNN 设计?对于一个给定的数据集和预测任务,怎样的神经网络架构是有效的?
图 24:GNN 设计要点
在这里,我们需要从 GNN 的设计空间中找到某中具体的模型设计方案。我们可以将 GNN 看做一种通用的概念。例如,图卷积神经网络(GCN)可以给定义为一组堆叠起来的 GNN 层,其中我们可以根据下面的公式定义每一层:
其中,我们对消息使用简单的线性变换,并且使用「求和」作为聚合函数。
我们可以考虑对这个计算机制进行以下几种修改:(1)GNN A:在 GCN 层之间加入跳跃链接(2)GNN B:将「求和」聚合函数变为「最大池化操作」。对 GCN 的这种修改使该模型已经不是 GCN。有时,我们在做出这些小的调整时,并未赋予调整后的架构以新的名字。在特定的任务中,这些小的调整(例如,引入跳跃链接)可能会带来很大的改变。
那么,我们应该如何命名这些调整?如何探索不同的 GNN 设计?我们如何才能说:某种具有特定性质的特殊设计的网络适用于一组特定的任务?为了理解这种由各种可能性组成的空间,在设计新架构时,我们需要定义「图神经网络的设计空间」,并对其进行深入研究。
图 25:GNN 设计的局限性
然而,现有的 GNN 对比基准往往局限于特定的数据集和任务(例如,在 CORA 数据集上进行节点分类)。如上文所述,Jure Leskovec 构建了 Open Graph Benchmark,提供了一组更大、更有挑战性的数据集,从而试图缓解数据集和任务的局限性。
尽管我们已经可以使用 OGB 评价 GNN 模型,但是由于可能出现新的任务和数据集(例如,金融交易网络上的链接预测),所以仍然存在很大的挑战。在实践环节中,也许「GNN A 的性能优于 GNN B」在某些现有的对比基准的节点分类任务上成立,但是并不能泛化到新的任务上(例如,金融网络的链接预测)。
如图 25 所示,当我们仅仅在三个不同的数据集上比较三种不同的操作时,不同的设计选择可能在不同的数据集上有不同的效果。在某些情况下,「求和」操作可能效果十分好,而在另一些情况下「取均值」操作则效果更好。因此,我们不能仅仅考虑「设计空间」,与此同时,我们还应该考虑「任务空间」(图神经网络真正试图完成的工作)。
图 26:GNN 的设计空间
Jure Leskovec 等人针对 GNN 的设计空间展开了大量研究。他们系统地研究了用于各类任务的各种 GNN 架构设计。给定一个新的数据集,他们可以迅速地确定适用于这个新数据集的 GNN 架构。此外,他们还发布了一个名为「GraphGym」的项目及其相应的代码仓库。GraphGym 十分强大,它可以快速地探索用于各类任务的各种 GNN 设计方案。
图 27:什么是 GNN 设计?
那么,究竟什么是 GNN 设计呢?我们需要了解以下概念:
首先,「设计」指的是具体的 GNN 架构实例。例如,一个 4 层的 GraphSage 网络。「设计维度」指的是描述某种设计的变化的维度。例如,图神经网络的层数。「设计选择」指的是在给定的设计维度中选取的某个特定的值。例如,「设计空间」包含所有设计维度中元素的笛卡尔积。「任务」是我们感兴趣的某个具体的预测任务。「任务空间」则是由所有可能的任务或多个任务组成的空间。
图 28:GNN 设计空间的层次与目标
Jure Leskovec 从三个层次上定义了 GNN 的设计空间:
(1)层内设计:单独某个 GNN 层的设计。
(2)层间设计:如何将 GNN 层连接起来。
(3)学习配置:进行机器学习的设置参数(例如,批处理大小、学习率、优化器、训练的轮数)。
通过这种方式,Jure Leskovec 等人试图定义最广阔的设计空间,它能够在最大程度上涵盖各种设计的可能性,并且仍然是可跟进的。最终,他们考虑了一个包含 315,000 种可能的计算架构的设计空间。
图 29:GNN 设计空间示意图
如图 29 所示,首先我们将考虑单层 GNN 的设计;接着,我们要考虑如何将这些单个的 GNN 层组合到一个更大的 GNN 网络架构中;此外,我们还应该考虑使用怎样的学习配置。下面,我们将逐一分析这三层因素。
图 30:GNN 设计空间——层内设计
如图 30 所示,假设我们在考虑 GNN 的层内设计时考虑了 4 个维度。此时,我们需要决定使用怎样的消息传递机制、消息聚合函数、在 GNN 的线性层中是否采用 Dropout、是否采用批归一化。
图 31:GNN 设计空间——层间设计
在完成了层内设计后,我们需要决定如何将这些层连接起来。在这里,我们需要考虑另外四个设计维度:(1)是否使用多层感知机预处理层(2)是否使用跳跃链接,GNN 层之间如何相连(3)是否加入某种消息传递层(4)是否加入后处理层(例如,通过多层感知机进一步对 GNN 的输出进行变换)。
图 32:GNN 设计空间——学习配置
最后,我们需要考虑设计空间中的学习配置。人们往往会忽视这个部分,但它实际上非常重要。在这里,我们也需要考虑四个设计维度:批处理大小、学习率、优化器、训练的轮数。小结一下,设计空间包含三个重要的因素,而每个因素又包含四个设计维度。
图 33:GNN 设计空间概览
现在,我们已经对每个 GNN 层设计的四个维度做出了选择,确定了是否进行批归一化、是否采用 Dropout,以及采用 Dropout 的比例。此外,我们还确定了如何将各个 GNN 层堆叠起来,以及训练 GNN 的学习配置。
当我们将所有可能的设计选项相乘后,我们将得到超过 300,000种可能的模型架构。当然,我们并不需要穷举所有可能的架构并在某个新数据集上对它们进行训练,我们应该找到更好的解决方案。
图 34:各种 GNN 任务
在定义了 GNN 架构的设计空间后,我们将讨论 GNN 的任务空间。目前,人们通常从节点、边、图级别的预测任务三个方面对任务进行分类。尽管这种区分方法看似合理,但是并不够精确。为此Jure Leskovec 等人设计了一种「任务相似度矩阵」,使我们可以快速地识别出相似的任务,以及在相似的任务上性能良好的模型。这样一来,我们就可以在任务间迁移模型架构。
图 35:GNN 的任务空间
对于每个任务(一个数据集及其预测任务)而言,我们将选取一组「锚模型」(anchor model)。接着,我们将通过对锚模型的性能进行排序来表征某个任务。基本上,我们认为,具有相似排序(锚模型性能的排序相似)结果的任务也是相似的。在本例中,Jure Leskovec 等人使用了 12 个锚模型,用于衡量不同任务之间的相似度。
图 36:评价 GNN 设计
通过上述方法,我们可以评价不同的设计维度。例如,是否应该使用批归一化?批归一化通常是否有用?我们可以测试不同的模型架构,其中有些架构采用了批归一化层,有的架构则舍弃了批归一化层,我们可以观察不同情况下的模型性能。
可以想象,完整的设计空间将是十分巨大的,我们有超过 300,000 种可能的模型,并且考虑了 32 种不同的预测任务,最终将得到超过 1,000万种不同的模型组合。然而,我们并不需要对所有这些可能的模型进行评价,而是从这个巨大的空间中采样,然后对采样的模型进行比较,从而确定批归一化是否有用。
图 37:评价 GNN 设计——受控随机搜索
为了对不同的 GNN 设计进行评价,我们将使用受控随机搜索策略。首先,我们将从设计空间中随机采样「模型-任务」对的配置;接着,我们将分别在「采用批归一化」和「舍弃批归一化」两种情况下训练模型,然后对比这两种情况下的模型性能。
图 38:设计空间评价指标
在得到了一系列模型后,我们可以根据它们的性能对它们进行排序。然后,我们可以以某种量化的方式画出排序值或性能的均值或分布。从而确定使用批归一化与否究竟会不会对模型性能产生巨大影响。例如,我们发现使用了批归一化的模型实际上表现更好,因此它们的排序更高。我们可以得出结论,批归一化是一种可以有效提高 GNN 模型性能的技术。
图 39:特定的设计选择展现出其优势——层内设计
通过这种系统的研究,Jure Leskovec 等人发现,某些设计选择在众多不同的设计决策中都具有明显的优势。例如,使用批归一化对提升模型性能帮助很大;使用 Dropout 则效果并不明显。从本质上讲,GNN 往往容易发生欠拟合现象。所以一般来说,不要使用 Dropout。此外,我们还发现 pRelu 激活函数通常比 Relu 和 swish 激活函数的效果更好。我们发现在这些不同的任务和架构上,「求和」聚合操作的性能在实践中是最好的。
图 40:特定的设计选择展现出其优势——层间设计
Jure Leskovec 等人还发现使用预处理层往往会有所帮助,而使用后期处理层有时也会有所帮助。他们还发现,在某些情况下,较浅网络和较深的网络都会取得不错的性能。他们发现跳跃链接基本上可以实现分层的节点表示,通常这是有所助益的。例如,使用「跳跃链接+连接(concatenation)」比使用「跳跃链接+求和」的效果更好。某些设计选择的显著优势如图 40 所示。
图 41:特定的设计选择展现出其优势——学习配置
Jure Leskovec 等人发现,在优化方面,尚不清楚批处理大小是否对模型训练性能有显著影响。其影响似乎随任务架构的改变而存在较大的变化。学习率同样也存在类似的现象。他们发现使用 Adam 优化器的效果要优于使用随机梯度下降的效果。而进行更多轮的训练确实可以获得更好的模型性能。
图 42:不同任务上的最佳 GNN 设计差别很大
这套分析方法也使我们能够理解不同的设计决策在不同任务上的执行效果。如前文所述,不同任务中的最佳 GNN 设计可能会有很大的差异。例如,在不同数据集上的不同聚合操作对模型的影响也不尽相同。在某些情况下,「求和」运算符的效果很好;而在另外的情况下,「取均值」聚合操作则是最佳的;在 BZR 数据集上,「取最大值」操作的性能最好。可见,最佳的聚合函数选择与给定的数据集紧密相关。此外,GNN 消息传递层的层数也存在这种现象。例如,在 CORA 数据集上,较深的网络性能更好。而在 IMDB 数据集上,较浅的网络性能更好。在 Scalefree 数据集上,同样也是较深的网络具有更好的性能。
图 43:理解 GNN 任务
面对一个新的任务时,我们应该如何确定最佳的模型设计方案?
在 Jure Leskovec 看来,我们可以构建一个 GNN 任务空间,在给定某项任务、某个数据集的情况下,我们将训练一组「锚模型」来完成该任务。接着,我们可以通过对模型进行排序来量化它们在特定任务上的性能差异。
Jure Leskovec 等人通过各个锚模型性能的肯德尔等级相关稀疏来计算这些任务之间的相似度。如图 43 所示,每一个点都代表一个不同的 GNN 任务。在本例中,Jure Leskovec 等人希望仅仅通过 12 个锚模型就可以量化所有不同的模型之间的任务相似度。如图 43 右侧的散点图所示,纵轴代表相似度的真实值,横轴代表仅仅通过 12 个不同的锚模型计算出的任务相似度。从图中可以看出,这二者之间的正相关性非常强。因此,我们可以认为,仅仅使用 12 个不同的锚模型就可以很好地近似真实的任务相似度。
由于我们可以计算出任务的相似度,当面对一个使用新数据 D 的新任务时,我们可以迅速地在新数据上训练锚模型,然后设计考虑不同的网络架构和不同的任务,从而找到最相似的任务以及对该任务最有效的模型架构。从某种程度上说,这种方式使我们可以通过使用肯德尔等级系数找到最接近的相似任务,并基于此迁移 GNN 的架构。
图 44:GNN 的任务空间
基于上述方法,Jure Leskovec 得到了如图 44 所示的任务空间相似度矩阵度量结果。其中,他们考虑了 32 中不同的任务,这些任务包括不同的节点、链接、图级别的分类任务。每个网格中的点都代表了任务的相似度(即肯德尔等级相关系数),其取值范围为[-1,1]。可以看到,位于矩阵左上角的任务相似度都非常高,即这些任务在锚模型上的性能排序情况十分相似。同理,位于矩阵右下角的任务相似度也非常高。
图 45:GNN 任务与特征/结构信息的关系
在 Jure Leskovec 等人看来,我们之所以会得到如图 45 所示的任务空间中的相似度矩阵,是因为左上角的节点/图分类任务都主要依赖于节点特征信息,此时输入的图包含对于获取较高性能至关重要的高维特征。而右下角的任务则更多地依赖于图结构信息,而节点的特征则较少。
图 46:GNN 任务空间——相似的任务有相似的最佳架构
这意味着,我们可以将不同的任务和模型架构嵌入到该任务空间中。如图 46 所示,我们可以将任务向下投影到一个二维的空间中,其中不同的颜色代表不同的数据集,而不同的形状则代表不同的任务类型(圆圈代表节点级别的分类任务,而「X」则代表图级别的分类任务)。
有趣的是,我们发现对于该空间中存在的模型架构来说,如果锚模型在任务 A 和任务 B 上的性能更为相近,则此时它们选取的最佳模型架构也更加相近。然而,另外的任务 C 则和任务 A、B 的模型选择相差较远(例如,模型 C 选用了「skip-cat」连接方式以及「取均值」聚合函数;而模型 A、B 则选用了「skip-sum」连接方式和「求和」聚合函数)。这使得我们可以对模型架构进行迁移和泛化。
图 47:任务间的模型迁移
如图 47 所示,GNN 的任务空间可以引导我们在不同任务之间迁移模型,这意味着我们可以将任务 A 上的最佳模型迁移到与其高度相似的任务 B 上。换言之,如果两个任务的肯德尔等级相关系数很高,那么我们可以迁移这两个任务上的最佳模型架构,从而快速地为给定的新任务找出新的最佳架构。
图 48:新任务模型迁移示例
举例而言,假设我们想要将某种方法应用于 OGB 上的图分类任务的「ogbg-molhiv」数据集上,该数据集较为特殊,它比平均数据集规模大 20 倍,并且数据分布高度不平衡(训练数据集中只有 1.4% 的正样本),我们需要对该数据集进行分布外泛化。
为此,我们在该新数据集上运行了 12 个锚模型,并对其其性能进行了排序。接着,我们计算出了在该任务上通过这 12 个锚模型得到的排序结果的相似度,以及在本例中使用的 32 个任务上的模型排序结果。我们找出了最相似的模型,并将最佳模型迁移到了新的数据集上。
图 49:将模型迁移到新任务上
上述任务空间可以引导我们快速地识别出适用于新任务的优秀模型架构。举例而言,假设任务 B 与我们感兴趣的新数据集相差甚远,而任务 A 则与我们感兴趣的数据集非常相似。如果我们将任务 A 上的最佳模型迁移到新的数据集上,则模型性能十分出色(准确率接近 0.79),甚至可以得到目前最佳的模型性能(之前的最佳准确率为 0.771)。然而,如果我们使用与新任务相差甚远的任务 B 的最佳模型,模型的表现就要差得多(准确率为 0.736)。
通过简单地计算新数据集与任务空间中已有收集的相似度,我们可以快速地识别出最相近的任务,并将其最佳模型迁移到新的数据集上进行训练。通过这种方式,我们可能在之前从未使用过的数据集上得到最佳的模型性能。
图 50:GNN 设计平台——GraphGym
GraphGym 代码库是 Jure Leskovec 团队开发的一个 GNN 设计平台,它提供了用于 GNN 研究的高度模块化的工作流程,使我们可以快速地加载、划分数据,并且可以在不同的任务上有效地枚举、尝试各种 GNN 的实现方式,使用各种评价策略来评价模型。我们可以快速地指定设计空间中的模型,对其进行训练,并观察模型的性能。
图 51:GraphGym——实验管理平台
GraphGym 还是一个非常棒的实验管理平台,我们可以快速地描述我们想要进行的实验(例如,我们想要运行的参数设置),然后以一种分布式的方式高效的进行实验。
图 52:GraphGym 的应用场景
举例而言,我们可以将 GraphGym 应用于金融交易网络上的 GNN 预测任务。如果我们手动地找到一个用于欺诈检测的模型架构,模型的准确率为 0.64。而当我们尝试将 GraphGym 任务空间用于该任务时,模型的性能迅速被提升至 0.94。
此外,当我们试图预测未来的金融交易时,通过在不同的任务间迁移最佳网络,我们对网络架构进行了少数的搜索工作,最终得到模型的性能也会有巨大的飞跃。
通过这种方式,我们可以快速地识别出对于给定的预测任务和新数据集十分有效的模型架构。
图 53:使用更多的 MP 网络层往往性能更好
通过该框架,我们发现了一系列有趣的现象。例如,在欺诈检测任务中,使用更多的 MP 层对提升模型性能,欺诈检测往往需要使用多轮的消息传递。
图 54:「取最大值」聚合函数性能最佳
此外,我们通过该工具发现,「取最大值」聚合函数在该场景下性能最佳,而理论上「求和」聚合函数才是表达能力最强的。
4
结语
图55:summary
综上所述,近年来人们对 GNN 的研究兴趣迎来了井喷式的增长,研究人员在该领域做出了大量的工作。但是与此同时,由于出现了大量的新数据集、任务、模型架构,我们很难跟进该领域的研究进展。在本次演讲中,Jure Leskovec 等人回顾了两种缓解上述问题的解决方案,并提出了两套相应的工具。
图 56:Open Graph Benchmark
首先,Jure Leskovec 在本次演讲中介绍了 Open Graph Benchmark。这是一个大规模的、多样化的与现实相符的对比基准,它包含了用于图机器学习的各个数据集。
图 57:GNN 的设计空间总结
此外,Jure Leskovec 介绍了「图神经网络的设计空间」。他们提出了一种系统地研究 GNN 设计空间的方法,定义了「任务相似度」度量方法,使我们可以快速地在不同任务之间迁移最佳模型;他们还研发了名为「GraphGym」的研究工具,使我们可以非常高效地搜索各种 GNN 网络架构,从而为给定任务找出性能最佳的模型架构。