GPT-GNN:图神经网络的生成式预训练方法

2020 年 8 月 26 日 AI科技评论

作者 | Dyson

 编辑 | 陈彩娴

GNN通过端到端的有监督学习训练对于某一输入图上的一个任务,但是对于同一输入图数据,当训练的目标任务变化时,往往只能通过不同任务对应不同标注的数据集训练对应于每个任务的专用GNN网络模型。

事实上,在NLP任务中也同样存在着类似的问题,作者利用自然语言处理中预训练的思想: "从大量的未标记语料库中训练一个模型,然后将学习到的模型转移到只有少量标记的下游任务",尝试通过对图神经网络进行预训练,使得GNN能够捕获输入图的结构和语义属性,从而轻松地将其推广到任何下游任务。

预训练的目标是允许一个模型(通常是神经网络)用预训练的权重初始化它的参数。在以往的相关工作中,一般对图模型进行的预训练往往针对的是图中节点的表示,通过图嵌入(graph embedding)或者随机游走(random walk)的方式。但是以这类方式学习到的嵌入模型不能用于初始化其他预训练任务的fine-tuning。
考虑到上述存在的问题,本文作者贡献了预训练一个通用的GNN的方法,并可以用这种预训练模型得到的GNN处理不同的任务。
下图展示了GPT-GNN中的预训练过程与fine-tuning:首先,左图表示GPT-GNN的预训练任务,通过对任务属性和结构的自监督学习,可以利用生成的新的节点作为数据对GNN进行预训练;右图表示使用预训练后的GNN模型及其参数可以用来初始化一个新的输入图数据,进而使模型扩展到该数据对应的下游任务中。

1

GNN的预训练

通过预训练,能够使得图神经网络 对于任意的一个没有标注的图数据 仍然能够针对不同的下游任务进行良好的初始化。 而对于如何建立一个预训练GNN的无监督学习的任务,作者采用了生成式的方法,通过生成图的节点属性和图的结构信息,来提供无监督数据供GNN进行预训练。
以学术搜索图为例,视不同的论文作为图中不同的节点,则可以将论文的标题当做该节点的属性(attribute),该论文的作者,相关的出版地点以及该论文所引用的参考文献构成该学术搜索图中的相关连边。
如果我们想生成一个论文节点,首先可以通过图中已知的连边(observed edge)比如该作者的其他论文,生成该节点的标题,并进一步预测生成的标题对应的论文相关连边属性,如参考文献,出版地点等信息。 已知连边和生成的连边构成结构信息,通过这种交互的方式能够充分利用到图的属性和结构来完成预训练所需的生成任务。

2

生成式预训练框架

作者用概率 来描述图 节点的属性和相互的连接关系,预训练的目标是寻找最大的参数值 这里的参数 可以代表是图中的节点属性与连边关系(即图的结构信息)。
为了方便展开该似然函数,作者考虑采用类似自回归的思想对图中节点进行排序来对 代表的节点和边进行逐个生成,并记图中第 个位置,排列数为 的节点为 通过这种方法,将变量 分解为不同排列的属性值和连边值,即:

为了便于讨论,作者进一步假设从图中观察到任意一个排列数 的节点的概率都是相同的,那么对于一个固定的节点排列,自回归概率的对数展开式可以表示为

在每一步 中,我们使用所有在 之前生成的节点属性,以及这些节点之间的结构(边)来生成一个新节点 ,所以生成模型问题转化成了上式中的条件概率如何确定的问题。
如果假设节点的属性 与节点对应的连边 相互独立,就会忽略掉属性与图结构信息之间重要的关联关系,相当于并没有发挥出GNN处理图结构化数据过程中的信息聚合的能力,因此做GNN的预训练任务需要寻求新的解决方法。
为了求解属性图生成任务中的上述的联合条件概率,本文作者提出dependency-aware分解机制: 用某一新节点的已知结构信息去估计一个该新节点的属性,反之亦然。(这里的已知结构信息即为前述的observed edges)
具体而言,首先我们用节点已知的结构信息,去生成该节点的属性(attribute),然后利用该新生成的属性与已知结构信息,共同生成余下的结构信息(remaining edges). 通过这种生成机制,可以表示联合条件概率的分布为:

其中, 表示已知的结构信息, 表示生成的边(在数据处理中,作者采用mask的方式处理成节点剩余的连接关系)。
可以清晰的看出,第一项 表示利用前 个点的属性信息与结构信息,以及当前节点的已知结构信息(即利用节点 的邻点信息),生成当前第 个节点的属性。第二项 代表通过当前节点的已知结构信息与前 个点的属性信息与结构信息生成当前节点的余下连边信息。

3

属性和结构信息生成

本文的关键就在于对上式生成概率模型中如何进行属性生成和连边生成。因为连边的生成需要节点属性作为输入,而这些节点属性同时又通过属性生成。所以作者将生成的节点类型分为通过属性生成的节点(Attribute Generation Nodes)和通过连边生成的节点(Edge Generation Nodes)。
为了防止属性信息过多的使用导致可能的模型过拟合的问题,作者对数据进行了处理:用一个虚拟标记替换这些节点的属性,从而屏蔽这些节点的属性,并用一个可学习的共享向量 来表示这些屏蔽的属性。 而对于连边生成的节点,作者保留它们的属性信息,直接将两者(属性信息与结构信息)一并送入GNN中做信息聚合。
接下来,将两种不同类型的生成节点送入GNN网络,得到网络的输出表示向量 因为属性节点生成中使用了虚拟标记进行过替换, 相较于 包含更少的信息,因此在GNN的信息传递过程中作者只用 ,然后使用不同的解码器来对这两种不同类型的节点表示 进行属性和连边的生成。
其中,对于通过属性生成的节点,如果输入的属性是文本类型,则可以使用如LSTM这类文本生成模型作为生成器;如果输入的属性是向量类型,则可以使用多层感知机等模型来做属性节点的生成。
此外,作者通过取距离函数作为生成的属性和真实属性之间的度量作为Loss函数 当该距离取得最小值时,等价于得到上述公式第一项 的最大似然概率(相当于最大化观察每个节点属性的可能性),从而使预训练后的模型捕捉到图数据的语义特征。
而对于通过边生成的节点,作者假设每条边的生成都是独立于其他边的,因为任何多维随机变量的联合概率分布,都可以分解成只有一个变量的条件概率相乘的形式,所以直接可以对上式的第二项似然做如下分解:

最后,对于通过连边生成的节点的训练损失函数计算,作者采用候选采样(candidate sampling)的方式,从每一个有连接的节点 中通过负采样 的方法,从所有没有连接的节点与所有有连接的节点中采样有连接但是没有连边信息(remaining edges)的节点,计算通过连边生成节点训练的loss函数:

结合上述两种节点的生成模型,便可以得到整个属性图的生成过程:首先确定输入图的节点排列顺序 接着,随机选择数据中的一部分目标节点的边作为已知结构信息 则数据中剩下未被选择的边 则作为被mask掉的边在数据处理中被删除(对应数据集给出的邻接矩阵也同样需要变化)。 接着将图中的每个节点划分为由属性生成的节点和由边生成节点。
经过上述预处理后,接下来使用经过删除mask边后的邻接矩阵来通过信息聚合得到新生成节点的表示,即通过属性生成的节点和通过连边生成的节点在GNN中的向量表示。 最后通过对这两类节点同时进行属性预测和mask掉的连边的预测任务来训练GNN模型。 如下图所示:



4

GPT-GNN在异构图和大规模图数据上的表现

在给出实验结果前,作者还讨论了如何应用GPT-GNN对大规模和异构图进行预训练,因为考虑大规模和异构图对于建模真实世界的复杂系统具有实际意义。
因为异构图包含多种不同类型的节点和边,所以异构图往往能更加真实地刻画现实中复杂的社会网络模型。
对于异构图,本文提出的GPT-GNN框架可直接用于异构GNN的预训练。作者认为GPT-GNN对异构图的学习特点是, 能够使每种类型的节点和边都对应一种由异构的GNN而不是训练前的框架指定的解码器 。而GPT-GNN学习大规模的图数据时,作者使用的方法是对子图进行采样以进行训练。
作者使用LADIES算法及其异构版本HGSampling算法,从同构图和异构图中抽取稠密子图,可以在理论上都保证了采样节点之间高度互联,并最大限度地保留了结构信息。

5

模型评价与实验

作者使用两种数据集Open Academic Graph (OAG) 和 Amazon Recommendation对GPT-GNN开展实验,两种图数据集中的相关实例如下所示:

另外为了评价GPTGNN的可推广性,作者考虑了具有实际意义的不同迁移设置——时间迁移和现场迁移(settings—time transfer and field transfer)。

6

基线设置

对OAG数据集上的实验,作者使用Heterogeneous Graph Transformer 模型作为GPT-GNN的base model,即对Heterogeneous Graph Transformer进行了相关的生成式预训练。作者使用其他的GNN变体模型作为基线开展了相关的实验,包括graph auto-encoders,GraphSAGE 以及Graph Infomax等模型。

7

预训练和Fine-Tuning

作者考虑以下三种在预训练和微调阶段的图转换设置方法:Time Transfer, Field Transfer和Time+Field Transfer.
为了满足训练数据通常稀缺的假设,作者默认只提供10%的标签用于训练(fine-tuning),同时也进行不同数据百分比的消融研究。在预训练时随机选择数据的一个子集作为验证集。在Open Academic Graph (OAG)数据集上开展的不同的训练方法对应的实验结果如下:

作者继续展开了基于GNN的消融研究,并利用其他的GNN变体模型:GCN,GAT,R-GCN和HAN等模型作为GPT-GNN的基础模型,在OAG数据集上对进行预训练。
在所有未经过预处理的GNN模型中,HGT的性能最好,且作者认为本文提出的GPT-GNN预训练框架可以提高所有GNN架构的下游任务的性能。得到相关结果如下:

接着,作者检验了GPT-GNN的两种设计选择的有效性:即节点分离和自适应队列两种设计。节点分离是为了缓解从属性生成节点过程中的信息在通过连边生成节点时重复利用的问题。
最后,作者研究了GPT-GNN模型的fune-tuning过程与训练数据大小的关系。
如图所示:首先可以观察到GPT-GNN和其他预训练框架均通过使用更多标记的培训数据不断提高下游任务的性能,但是在所有预训练的任务/框架中,GPT-GNN的表现最好。
我们可以看到,尤其是在标签稀缺的情况下,在预训练的模型中,10-20%数据的fine-tuning(最左边的两个蓝色圆圈)可以与100%训练数据的监督学习相比,表现出了GNN预训练的优越性。

而对于使用齐次图数据训练GPT-GNN的表现,作者采用异构图数据集OAG中的计算机科学领域论文数据中的论文引用图数据,以及 Reddit network 两种齐次图数据进行了相关实验。
结果表明,所选择的所有的预训练框架模型都可以在上述两种图中取得提高,其中GPT-GNN的效果更好:

在文章的附录中,作者一并给出了实验过程,改变训练数据的占比,观察GPT-GNN在没有预训练时的收敛性:从图中可以看出与未经过预训练的模型相比,GPT-GNN泛化性能更好,如果使用预训练且初始化良好,GPT-GNN的鲁棒性也越好。

而对于有预训练和fine-tuning的GPT-GNN,其验证集误差与时间的关系如下图所示:

图中的结果表明,该模型在验证集上的loss值持续下降,而不只是快速地找到一个简单的解,作者认为原因是预训练的GPT-GNN模型能够真正捕获图数据的内在结构。

8

结论

作者通过生成式的方法对图神经网络开展预训练的相关工作。其中,作者通过对生成图进行分解的方式,从属性生成与结构生成两个角度,对GNN及其变体模型用自回归的方式构建了我们的预训练模型。
另外,作者将属性生成的节点和连边生成的节点相互分离,提高了信息的利用率,以及引入了自适应节点表示的排列方法,减小了采样图与全图概率间的差距。在预训练过程中通过对数据集中的少量有标签数据进行fine-tuning。
实验结果表明,作者所提出的GPT-GNN性能可以在各种不同数据集对应的下游任务上显著提高,取得了预期的效果。

[ 博文视点赠书福利]

AI科技评论联合博文视点赠送周志华教授“森林树”十五本,在“周志华教授与他的森林书”一文留言区留言,谈一谈你和集成学习有关的学习、竞赛等经历。

AI 科技评论将会在留言区选出15名读者,每人送出《集成学习:基础与算法》一本。

活动规则:

1. 在“周志华教授与他的森林书”留言区留言,留言点赞最高的前 15 位读者将获得赠书。获得赠书的读者请联系 AI 科技评论客服(aitechreview)。

2. 留言内容会有筛选,例如“选我上去”等内容将不会被筛选,亦不会中奖。

3. 本活动时间为2020年8月23日 - 2020年8月30日(23:00),活动推送内仅允许中奖一次


 

阅读原文,直达“ KDD”小组,了解更多会议信息!

登录查看更多
0

相关内容

【KDD2020】图神经网络:基础与应用,322页ppt
专知会员服务
75+阅读 · 2020年8月30日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
61+阅读 · 2020年8月19日
最新《图神经网络模型与应用》综述论文
专知会员服务
292+阅读 · 2020年8月2日
【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
【KDD2020-清华大学】图对比编码的图神经网络预训练
专知会员服务
43+阅读 · 2020年6月18日
【KDD2020】图神经网络生成式预训练
专知
21+阅读 · 2020年7月3日
ICML2020 图神经网络的预训练
图与推荐
12+阅读 · 2020年4月4日
图神经网络火了?谈下它的普适性与局限性
机器之心
21+阅读 · 2019年7月29日
赛尔笔记 | 一文读懂图神经网络
哈工大SCIR
81+阅读 · 2019年7月12日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
图神经网络综述:方法及应用 | Deep Reading
AI100
35+阅读 · 2019年3月17日
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
Arxiv
15+阅读 · 2019年9月11日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
8+阅读 · 2018年11月21日
Arxiv
5+阅读 · 2018年4月30日
Arxiv
4+阅读 · 2018年4月10日
Arxiv
6+阅读 · 2018年3月31日
Arxiv
21+阅读 · 2018年2月14日
Arxiv
7+阅读 · 2018年1月10日
VIP会员
相关资讯
【KDD2020】图神经网络生成式预训练
专知
21+阅读 · 2020年7月3日
ICML2020 图神经网络的预训练
图与推荐
12+阅读 · 2020年4月4日
图神经网络火了?谈下它的普适性与局限性
机器之心
21+阅读 · 2019年7月29日
赛尔笔记 | 一文读懂图神经网络
哈工大SCIR
81+阅读 · 2019年7月12日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
图神经网络综述:方法及应用 | Deep Reading
AI100
35+阅读 · 2019年3月17日
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
相关论文
Arxiv
15+阅读 · 2019年9月11日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
8+阅读 · 2018年11月21日
Arxiv
5+阅读 · 2018年4月30日
Arxiv
4+阅读 · 2018年4月10日
Arxiv
6+阅读 · 2018年3月31日
Arxiv
21+阅读 · 2018年2月14日
Arxiv
7+阅读 · 2018年1月10日
Top
微信扫码咨询专知VIP会员