1序言
近年来,对图神经网路(GNN)的研究如火如荼。通过设计基于GNN的模型,我们可以对结构化的数据(如社交网路图、分子图等)与对应的标签(点级别、边级别、图级别)进行有监督的端到端训练,使神经网路学习结构化数据与标签的联系。流行的GNN结构有GCN[1],GraphSAGE[2],GAT[3],DGI[4],GIN[5]等。
虽然GNN相关模型在多个任务上取得了震撼的疗效,但依然存在许多问题,如:
监督标签很难获取:通常来说,GNN的训练须要充足的任务相关的标签数据,而获取这种标签数据又常常是高昂且吃力的[6]。诸如生物/物理数据上的标签,通常须要专业实验室进行实验以获取[7,8]。
GNN不易训练:传统的GNN构架,在面对新任务或则修改了节点/边的特点时,只能重新训练。且通常来说,GNN的训练须要较大的训练轮数能够达到较好的疗效[9]。
为了解决这种问题,一些研究者正在探求GNN上新的训练模式,如预训练和自监督学习。
一方面,可以借鉴预训练-微调的模式,先在容易获取的、大规模的、无监督的(或则粗细度的有监督的)图数据上,对GNN的模型参数进行预训练。再将经过预训练的GNN模型参数作为下游任务的初始参数,在少量细细度标签上快速地进行微调。
另一方面,可以参考自监督学习的模式(其中图对比学习的研究尤为火爆),通过图数据自身的讯号,设计自监督的损失函数,无需标明即可学习出有意义的节点/图表示向量。那些自监督表示向量从而结合SVM等传统机器学习方式,也可以达成不错的疗效。
预训练-微调(Pre-trainingFine-tuning)的模式在自然语言处理[10]、计算机视觉[11]、推荐系统[12]等领域取得了惊人的疗效;而对比学习(ContrastiveLearning)的流行,也在计算机视觉[13]等领域中重燃了学界对自监督学习的研究热情。在图学习领域,预训练和自监督的研究都还刚才起步,具有较大的发展潜力。近三年(2020-2021)学界对GNN结构的探求逐渐趋缓,对预训练和自监督GNN的相关研究则快速升温。
本文将梳理近些年来GNN预训练和自监督学习的相关工作,汇总常用资源,以思维导图的方式对主要方式进行分类。本文主要整理来自ICML、ICLR、NeurIPS、KDD、WWW、AAAI、WSDM等大会中已发表的工作。水平有限,难免偏颇,欢迎讨论、补充、指正,感谢!
2GNN+预训练
本章节介绍近些年来发表于顶会的GNN预训练工作。右图为对GNN预训练任务的归纳:
2.1StrategiesforPre-trainingGraphNeuralNetworks[7]
本文由Stanford图学习大牛JureLeskovec组的WeihuaHu和BowenLi等人出品,发表于ICLR2020。
本文首先强调,GNN的预训练-微调模式是很困难的。倘若仅设计简单的任务进行预训练(如预测两点之间是否有边),评测下游任务时则常常可以观测到negativetransfer的情况(即预训练-微调的结果要差于直接训练的结果)。作者觉得出现negativetransfer现象的缘由为,预训练任务应当同时兼具图的局部信息(Node-level)和全局信息(Graph-level)。假如只进行Node-level的预训练,节点的性质得到充分的学习,并且将图中节点Pooling上去得到的图表示向量则比较模糊;只进行Graph-level的预训练的话,Pooling得到的图表示很清晰,但具体到每位节点的表示则较弱。
因此,作者提出了两个Node-level的预训练任务,和一个Graph-level的预训练任务,并指出预训练应当同时结合两个级别进行。
Node-level:
ContextPrediction:类似word2vec[14,15]的思想,按照节点的邻居来预测某个节点。对于一个中心节点(CenterNode,上图(a)黑色节点),定义其周围K跳邻居构成的子图为Neighborhood,定义其r1跳至r2跳之间(可以看成一个环)的节点构成的子图为ContextGraphs。注意
,这样同一个中心节点对应的Neighborhood和ContextGraphs之间存在节点的共享(上图(a)中绿色节点)。Neighborhood通过正在预训练的GNN编码为向量,ContextGraphs则通过一个辅助的GNN编码为向量。本任务为,依照Neighborhood向量和ContextGraphs向量,预测这两个子图是否由同一个中心节点生成而至。具体的预训练方式很像word2vec,也是采用负取样的方式。
AttributeMasking:粗略地说即为预测图中点/边的属性(特点)。在预训练的GNN后接简单的分类器,随机Mask点/边的属性进行预测。例如上图(b)中,按照邻居节点预测某个节点的原子序号。
Graph-level:
SupervisedPropertyPrediction:有时数据中会包含一些容易获得的粗细度(coarse-grained)图级别标签,本任务即为有监督的图级别标签预测。
乘以上对于预训练策略的思索,本文另一个重要贡献为给学界提供了两个Benchmark。真实场景中常常会出现的out-of-distribution问题,即测试数据(test)和训练数据(train+valid)具有不同的分布(如不同物种的蛋白质、不同结构的物理分子等),这些场景特别考验模型的泛化和迁移能力。作者联合Stanford物理大学和生物工程大学的学者,联合发布了两个GNN预训练+下游任务数据集,来测试GNN预训练策略在out-of-distribution场景下的迁移能力。这两个Benchmark也被广泛应用于后续的工作中。实验表明,结合Node-level和Graph-level的预训练策略可以有效防止negativetransfer,相比不预训练的GNN有较大的疗效提高,且fine-tuning过程中收敛的轮数大大降低。
其他值得注意的点:
本文对应的代码实现中,先进行Node-level预训练,再基于Node-level的模型进行Graph-level的预训练,最后使用下游任务的数据集进行Fine-tuning;
同时进行本文的两种Node-level预训练任务会使疗效增长;
实验数据集中out-of-distribution指的是,下游任务的test和train+valid的分布是不同的。但预训练的时侯虽然是会使用下游任务的test中的全部图结构,以及部份粗细度标签。为了防止数据泄露,应保证test中拿来评测的具有细细度标签的图的集合,和用于有监督预训练的具有粗细度标签的图的集合,互相正交。
2.2GCC:GraphContrastiveCodingforGraphNeuralNetworkPre-Training[16]
本文来自北大唐杰老师组的JiezhongQiu等人,发表于KDD2020。
本文想解决的重要问题是,图学习能够进行跨领域(cross-domain)的预训练。上一节的工作中,进行预训练的图和下游任务上的图是同领域、同分布的,例如分子图(都是物理世界中的)、蛋白质交互图(都是从PPI网路中取样而至)。
本文提出的重要假定是:富于抒发能力的图结构模式(patterns),在不同的网路之间,是通用的(universal)、可迁移的(transferable)。例如网路中广泛存在的PowerLaw定理等。
就具体的预训练方式而言,则是使用了对比学习的方式。以某个节点为中心,进行可重新开始的随机穿行(randomwalkwithrestart)(一定几率回到起始节点),因而形成若干子图。在经过GNN编码后,设计对比学习的损失(ContrastiveLoss),使来自同一个中心节点的向量表示紧靠,来自不同中心节点的向量表示远离。注意,为了学习广泛的网路结构中的模式,取样子图后神经网络预测r程序,节点会被重新编码,这样子图之间都是匿名的,互相之间不会有共享的节点表示。
本文在节点分类、图分类、Top-K相像度检索任务上进行了评测。值得注意的是,虽然经过GCC预训练的GNN不一定能在每位数据集上都达到最优疗效,并且都共享同一套fine-tuning超参数,即可以达到非常有竞争力的结果;相比之下,直接训练的GNN须要在不同数据集上进行细致的调参,较为敏感。
2.3GPT-GNN:GenerativePre-TrainingofGraphNeuralNetworks[6]
本文由UCLA孙怡舟老师组的ZiniuHu等人完成,发表于KDD2020。
本文提出了一种生成式GNN预训练任务。核心看法觉得一张图是依照某种机率分布生成而至的,因而本文首先依照假定,人为定义了图生成所遵守的条件机率分布,从而将图结构与属性的恢复作为GNN的预训练任务。作者设计了一种巧妙的算法,通过将每位节点拆分成两个虚拟节点(AttributeGenerationNodes和EdgeGenerationNodes),分别对应了图结构恢复和节点属性恢复的两个子任务,因而只需运行一次GNN即可同时完成上述两个子任务。另外本文提出的几率生成预训练框架,可以直接适配至异构的GNN。
本文在OAG(OpenAcademicGraph)和Amazon评论推荐数据集上进行了实验,并考察了GPT-GNN对领域(Field)和时序(Time)的out-of-distribution迁移能力。不同于其他工作,本文实验中图数据的节点/边特点均为XLNet编码后的稠密文本特点。对于无特点的节点/边,则直接采用邻居特点的平均作为其自身的特点。
2.4MorePre-trainingGNNPapersPre-TrainingGraphNeuralNetworksforCold-StartUsersandItemsRepresentation[17]
本文为中国人民学院张静老师组的BowenHao等人发表于WSDM2021的工作。本文通过删掉部份用户-商品交互来模拟冷启动场景,并将Embedding的恢复作为预训练任务。待恢复的节点的ground-truthEmbedding由NCF[18]模型基于完整的交互数据学习得来。为了减低冷启动邻居的影响,本文还基于元学习的思想设计了Meta-Aggregator算法。本文在ML-1M、MOOCs、Last.fm这三个公开的推荐系统Benchmark上进行实验。
LearningtoPre-trainGraphNeuralNetworks[19]
本文为南京邮电学院石川老师组的YuanfuLu等人发表于AAAI2021的工作。本文考虑到现有的GNN预训练任务与下游任务之间存在不一致性,因而提出借助元学习LearntoLearn的思想,使GNN预训练的优化目标为缩减预训练任务与下游任务之间迁移的成本。本文设计了参考LINE[20]一阶的Node-level预训练目标,以及参考DGI[4]的Graph-level预训练目标。本文不仅在Huet.al.ICLR20[7]分享的蛋白质数据集上进行实验,还分享了名为PreDBLP的学术网路数据集并进行实验。值得注意的是,本文要求被预训练的GNNEncoder必须包含可学习的参数化Pooling层以用于Graph-level预训练。
GraphContrastiveLearningwithAugmentations[8]
本文的预训练任务为自监督的图对比学习任务,并提出了四种对图数据做数据提高的技巧。原文第5章的TransferLearning小节对该方式以预训练-微调的模式,在Huet.al.ICLR20[7]分享的蛋白质数据集和物理数据集上进行了实验。此工作会在本文第三章GNN+自监督的部份进行详尽介绍。
Self-SupervisedGraphTransformeronLarge-ScaleMolecularData[21]
本文为腾讯AILab的YuRong和YataoBian等人发表于NeurIPS2020的工作。其实本文专注于物理分子图上的图级别预测任务,且不适用于任意的GNNEncoder预训练,并且其预训练思想一直值得借鉴。本文提出的Node-level预训练任务是对Huet.al.ICLR20[7]中AttrMasking任务的拓展,从预测中心节点的属性,拓展为预测中心节点K跳邻居的属性的集合,因而使节点的预测目标包含了Context信息。本文还提出了预测Motif(特定的子视口结构)的Graph-level预训练任务。先人为约定P个Motif结构,再对预训练数据集中每位分子图预测其中是否富含这P个Motif结构。本文在Huet.al.ICLR20[7]分享的物理分子数据集中的8个下游任务上进行了实验,并使用了更大的(11M)分子图数据集进行预训练。
3GNN+自监督
本章节介绍近些年来发表于顶会的自监督GNN工作,注重于介绍图对比学习的发展。右图为图对比学习中,图数据提高技巧的归纳:
3.1DeepGraphInfomax[4]
本文由GAT的作者PetarVeličković等人发表于ICLR2019。
深受DeepInfoMax[22]的启发,作者将其思想运用至图学习领域。本文提出了一个非随机穿行的,基于互信息最大化的自监督图学习通用框架。方式部份和DeepInfoMax类似,上图中
为GNNEncoder,按照图结构将节点编码为H,节点表示经过一个Read-out函数可汇总为图表示向量
。同时神经网络预测r程序,我们对原图进行扰动,并将扰动过的图经过相同的GNNEncoder得到扰动后的节点向量
。通过DecoderD,我们应使图表示
与原图的节点表示H更接近,并使图表示
与扰动图的节点表示
更厌弃。本文在较为传统的Transductive数据集Cora、Citeseer、Pubmed和Inductive数据集Reddit和PPI上进行实验,以验证DGI框架的通用性与有效性。注意本工作是将图表示与节点表示做对比,是Node-Graph模式的。
3.2GraphContrastiveLearningwithAugmentations[8]
本文由TexasA&MUniversity的YuningYou和TianlongChen等人发表于NeurIPS2020。
本文基本沿袭了SimCLR[23]的对比学习构架。提出图对比学习框架GraphCL。具体而言,首先随机取样一个batch的图,然后对每位图进行两次随机的数据提高,提高得到的图数据被称为View,随后这个batch中由
的View组成。这样同一个batch中,由相同的图提高得到的View相互之间为正例,不同的图提高得到的View相互之间为负例。对一个batch内的View均过一下GNNEncoder(上图中的
得到节点的表示向量
等。再经过非线形映射层g后,得到的图表示向量之间即可按照原先约定的正负例关系,估算对比学习的损失函数。在经过自监督的训练后,GNNEncoder被保留,而非线形映射层被丢弃。
本文的对比学习的框架并无大的创新,重点在于讨论怎样对图数据做数据提高。本文提出了四种图数据提高的方式,具体而言:
NodeDropping:随机删掉图中的节点及与之相连的边;
EdgePerturbation:随机降低/删掉图中一定比列的边;
AttributeMasking:随机Mask节点的属性;
Subgraph:使用随机穿行算法得到的子图(假定图的语义信息可以较大程度上被局部结构保留);
本文也对这四种图数据提高策略的使用进行了讨论。(1)图数据提高策略的选择对图对比学习至关重要;(2)组合多种合适的图数据提高策略可以达到更好的疗效;(3)对边的扰动(EdgePerturbation)对社交网路图有益,但会损害物理分子图(因为分子图中化学键对分子性质起重要作用);(4)稠密图中AttributeMasking疗效更好;(5)通常而言,NodeDropping和Subgraph都可以起到比较好的疗效。
本文提出的框架得到的GNNEncoder可以被用于多种模式。在自监督实验设置中,可以固定GNNEncoder的参数,得到的自监督的节点表示,从而通过SVM等传统机器学习方式进行分类。也可以进行迁移学习,不固定GNNEncoder的参数,在下游任务做微调。本文在诸多Benchmark上进行了大量实验,包括半监督学习、无监督表示学习、迁移学习(预训练)和鲁棒性测试等,具体细节请参照原论文。本工作是图表示与图表示之间做对比,是Graph-Graph模式的。
3.3ContrastiveMulti-ViewRepresentationLearningonGraphs[24]
本文由美国AutoDeskAILab的KavehHassani和AmirHoseinKhasahmadi发表于ICML2020上。
本文提出的方式在框架上与DGI(Node-Graph对比的模式)和SimCLR(同一张图提高出两个View)类似,主要创新点在于提出Diffusion这些数据提高技巧,以及经验化地剖析了图对比学习的一些实验Trick。
图数据提高方面,主要分为特点层面和结构层面两种。特点层面的数据提高方式主要为随机Mask特点,以及加入高斯噪音;结构层面的数据提高主要包括降低或删掉边、采样子图、或者形成全局层面的View(GlobalView)。本工作的主要创新则集中在GlobalView上。文中的GlobalView即是将离散的邻接矩阵稠密化,对邻接矩阵进行重新形参,任意两点之间都可以有一个浮点数值,两点联系的密切程度。一种平凡的方法是将两点之间的值设为图上的最短距离;更普适性的方法则沿袭NeurIPS2019的工作,使用Diffusion[25]操作。Diffusion也包含多种形式,如PersonalizedPageRank(PPR)或heatkernel。详尽推论请参考原文。本文实验中发觉PPR形式的Diffusion疗效最好。
本文还通过大量实验,给出了若干图对比学习的经验性推论。(1)少于2个的View对疗效几乎没有提高,只用两个View即可;(2)只做Node-Graph模式的对比,疗效要优于Graph-Graph的对比,或则多种对比方法混和;(3)对于由节点表示形成图表示的过程,简单的Readout函数要优于参数化的Pooling层;(4)正则(regularization)和标准化(normalization)常常会形成负面影响。
3.4MoreSelf-supervisedGNN(GraphContrastiveLearning)PapersGraphContrastiveLearningwithAdaptiveAugmentation[26]
本文为中科院吴书老师组的YanqiaoZhu和YichenXu等人发表于WWW2021的工作。本文提出GCA方式,主要思想为图数据提高不应改变图的属性/标签/性质等。因而本文提出,对图数据提高时,应当尽量扰动这些不重要的边/节点/属性。本文对图上节点的重要性(以Centrality为核心)及属性的重要性(以离散特点出现的频度为核心)做了详尽定义。据悉,本义民义了同时估算“图内”以及“图间”的Node-Node对比学习的损失函数。
SUGAR:SubgraphNeuralNetworkwithReinforcementPoolingandSelf-SupervisedMutualInformationMechanism[27]
本文为上海民航航天学院李建欣老师组的QingyunSun等人发表于WWW2021的工作。本文通过对比学习损失,来提高子图表示的抒发能力。
4总结与讨论
GNN的预训练和自监督学习关系紧密又有所区别,笔者觉得最核心的区别在于两点:
预训练的核心为迁移能力,即经过预训练的GNN参数能够快速、准确地迁移至新的下游任务上,而自监督学习通常会固定经过训练的节点/图表示向量。对于预训练方式/模型的迁移能力,现有工作基本以经验性地实验验证为主,而理论剖析较少;
预训练时可以借助容易获取的粗细度标签作为监督讯号,而自监督学习通常不使用监督讯号。并且怎么平衡预训练过程中的无监督任务和有监督任务,以及它们怎样对模型的迁移能力形成影响的,目前也较为缺乏相关研究。
其实,GNN的预训练和自监督学习(对比学习)一直是个年青的领域,有诸多问题值得进一步地剖析研究。也欢迎对这个方向感兴趣的研究者通过短信(houyupeng@ruc.edu.cn)等方法与笔者联系,深入地交流讨论,相信思维的碰撞会形成别样的火花。
5资源汇总5.1论文列表
awesome-self-supervised-gnn:
5.2预训练GNN数据集
蛋白质关系图(Huet.al.ICLR2020[7])
[stanford.edu]
[GoogleDrive]
[百度云盘]
(解压码:j97n)
物理分子图(Huet.al.ICLR2020[7])
[stanford.edu]
PreDBLP(Luet.al.AAAI2020[19])
[GoogleDrive]
[百度云盘]
(解压码:j97n)
OpenAcademicGraph(OAG,Huet.al.KDD2020[6])
[GoogleDrive]
Reference
[1]:ThomasN.KipfandMaxWelling.Semi-SupervisedClassificationwithGraphConvolutionalNetworks.ICLR2017.
[2]:WilliamL.HamiltonandRexYinget.al.InductiveRepresentationLearningonLargeGraphs.NIPS2017.
[3]:PetarVeličkovićet.al.GraphAttentionNetworks.ICLR2018.
[4]:PetarVeličkovićet.al.DeepGraphInfomax.ICLR2019.
[5]:KeyuluXuandWeihuaHuet.al.HowPowerfulareGraphNeuralNetworks?ICLR2019.
[6]:ZiniuHuet.al.GPT-GNN:GenerativePre-TrainingofGraphNeuralNetworks.KDD2020.
[7]:WeihuaHuandBowenLiet.al.StrategiesforPre-trainingGraphNeuralNetworks.ICLR2020.
[8]:YuningYouandTianlongChenet.al.GraphContrastiveLearningwithAugmentations.NeurIPS2020.
[9]:JiaxuanYouet.al.DesignSpaceforGraphNeuralNetworks.NeurIPS2020.
[10]:JacobDevlinet.al.BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding.NAACL2019.
[11]:RossGirshicket.al.Richfeaturehierarchiesforaccurateobjectdetectionandsemanticsegmentation.CVPR2014.
[12]:suōZhouandHuiWanget.al.S3-Rec:Self-SupervisedLearningforSequentialRecommendationwithMutualInformationMaximization.CIKM2020.
[13]:KaimingHeet.al.Momentumcontrastforunsupervisedvisualrepresentationlearning.CVPR2020.
[14]:TomasMikolovet.al.DistributedRepresentationsofWordsandPhrasesandtheirCompositionality.NIPS2013.
[15]:TomasMikolovet.al.EfficientEstimationofWordRepresentationsinVectorSpace.ICLR2013.
[16]:JiezhongQiuet.al.GCC:GraphContrastiveCodingforGraphNeuralNetworkPre-Training.KDD2020.
[17]:BowenHaoet.al.Pre-TrainingGraphNeuralNetworksforCold-StartUsersandItemsRepresentation.WSDM2021.
[18]:XiangnanHeet.al.NeuralCollaborativeFiltering.WWW2017.
[19]:YuanfuLuet.al.LearningtoPre-trainGraphNeuralNetworks.AAAI2021.
[20]:JianTanget.al.LINE:Large-scaleInformationNetworkEmbedding.WWW2015.
[21]:YuRongandYataoBianet.al.Self-SupervisedGraphTransformeronLarge-ScaleMolecularData.NeurIPS2020.
[22]:RDevonHjelmet.al.Learningdeeprepresentationsbymutualinformationestimationandmaximization.ICLR2019.
[23]:TingChenet.al.ASimpleFrameworkforContrastiveLearningofVisualRepresentations.ICML2020.
[24]:KavehHassaniandAmirHoseinKhasahmadi.ContrastiveMulti-ViewRepresentationLearningonGraphs.ICML2020.
[25]:JohannesKlicperaet.al.DiffusionImprovesGraphLearning.NeurIPS2019.
[26]:YanqiaoZhuandYichenXuet.al.GraphContrastiveLearningwithAdaptiveAugmentation.WWW2021.
[27]:QingyunSunet.al.SUGAR:SubgraphNeuralNetworkwithReinforcementPoolingandSelf-SupervisedMutualInformationMechanism.WWW2021.