ICLR’20 | 预训练图神经网络

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文。

Strategies for Pre-training Graph Neural Networks, ICLR 2020

 

引言


 

预训练是指通过在一个数据充足的任务上去训练模型,然后再用目标任务的数据集去继续调优(fine-tune)这个模型。预训练模型最近在很多任务上取得了重大的进展,包括计算机视觉和自然语言处理。本文主要将介绍今年关于在图神经网络上如何进行预训练的工作。这篇工作发表在ICLR 2020上,由斯坦福大学Jure Leskovec组完成。

 

背景


 

预训练是迁移学习中的一种策略,通过训练一个数据量充足的相关任务来使模型参数达到一个较优的初始值,再输入我们目标数据集来训练当前任务。典型的预训练模型是自然语言处理中的Word2Vec,Word2Vec模型在大规模文本数据集上训练每一个词语的表达,然后我们就可以用这些词语的表达来进一步完成别的任务,比如句子表达等。

 

我们使用预训练模型主要是因为数据集上的不均衡,有些数据集数据量很大,有些却很小。还有一些任务数据标注很昂贵,所以大部分数据没有标签,只有一小部分数据是有标签的。这种情况在化学和生物的图数据集上尤为明显。这些数据集一方面需要花费大量的时间和资源去标注,另一方面还会存在训练集和测试集数据分布差距过大的情况。因此,预训练有解决这些问题的潜力,通过在不同任务或不同数据集上进行预训练来提高数据量和提高模型的鲁棒性。

 

然而,在图神经网络上进行预训练存在着一些困难的挑战。过去一些研究表明,在这些图数据集上用其他数据集进行预训练并不是一定会取得很好的效果,反而有时候进行预训练会导致模型效果变差,我们称这种现象会负迁移(negative transfer)。因此在进行预训练之前一般需要用专家知识来细致的选择相关的任务以及数据集

 

图神经网络


 

图神经网络是通过图的连接关系和边以及节点的特征来学习每个节点的表达。最新的图神经网络使用邻节点聚合的方法来聚集目标节点v的邻居节点的特征来得到v的表达。经过k次迭代后,v的表达中就包含了k阶的结构信息。K层图神经网络的公式如下:

在得到节点表达后,我们还可以用READOUT函数结合节点表达得到全图的表达,具体公式如下:

READOUT函数可以是不同的形式,比如图节点表达的平均值或者更复杂的全图层面的池化函数(pooling function)

 

预训练图神经网络


 

本文的核心想法是同时从点和图的层面来进行预训练。图1表达了为什么要从点和图层面同时预训练。我们可以看出,同时对图和点进行预训练可以在图和节点的表达上都取得更好的效果,这和过去的仅用图或点的方法相比有很大优势。接下来我们就来探讨如何在图上预训练

 

图1. 为什么要从点和图层面同时预训练

 

节点层面预训练1:上下文预测(context prediction)

 

图2. 上下文预测

 

在上下文预测中,我们选用一些子图去预测它们周围的图结构。如图2所示,对于节点v,我们定义v的邻居是最远K阶的所有边和节点,v的上下文图(context graph)是v周围的图结构。具体来说,我们定义了两个超参,r1和r2,它们分别是上下文图的最小和最大阶数。在图2中,两个粉色的圆之间的图就是v的上下文图,而蓝色圈内的就是K阶邻居图。我们用两个不同的图神经网络来训练邻居图和上下文图,分别得到节点v的表达。最终我们的目标是希望这两个图神经网络得到的v的表达是一致的,具体函数如下:

这里两个图中的相同节点v就作为正样本,然后选择n个负样本,并选用负对数似然作为损失函数,这里n选用的是1。

 

节点层面预训练2:属性遮挡(attribute masking)

 

图3. 属性遮挡

 

在属性遮挡中,我们希望用专家知识来得到点或边的一些规则。具体如图3,我们遮挡一些点或边的属性然后让图神经网络基于邻居结构来预测这些特征。在图3中,我们随机遮挡点或边的属性,比如化合物图中的原子类别,并将其替代成 “被遮挡的点”这种特殊表达。之后我们用图神经网络聚合邻居的信息来得到这个节点表达,最后用这个节点的表达输入一个线性函数去预测被遮挡的节点属性。这种方法对于一些标注丰富的图有更好的效果。

 

图层面预训练1:有监督的图属性预测

我们通过定义一些有监督的图层面预测任务来将特定领域的知识加入到预训练中。具体来说,我们考虑用一些实用的方法来预训练图的表达,即设计一个图层面多任务的预训练来同时预测每个图的一组监督标签。比如在化合物预测中,我们预训练一个图神经网络来预测化合物中已经被实验测量的所有性质。在蛋白质功能预测中,我们的目标是预测给定的蛋白质是否有特定的功能。但随意的选择多任务预训练有时候会造成负迁移,影响实验结果,所以我们需要选择“真正重要的”监督任务。但选择监督任务成本很高,所以本文给的策略是,只在图层面的表达使用多任务监督预训练,而不影响点的表达,将图和点的预训练分开。

 

图层面预训练2:结构相似度预测

第二种方法是定义图层面的预测任务来建模两个图的结构相似度,由于度量两个图相似度很困难,并且在大数据集中,两个图的组合是图总数量的平方,因此我们将不再这里继续讨论这种方法。

 

整体模型框架:

总体来说,本文的预训练策略是在第一步执行点层面的自监督预训练,然后再进行图层面的多任务监督预训练。当图神经网络的预训练完成时,我们就可以在我们的目标任务上进一步优化(fine-tune)图神经网络。具体来说,我们可以加一个线性分类器在图层面表达上来预测图的标签,这样整体的模型,包括预训练的图神经网络和线性分类器,将连续地(end-to-end)进行优化。

 

 

实验


 

表1. 实验结果

 

本文用的数据集是MoleculeNet中的八个二元分类数据集。具体实验结果如表1所示。

表1中加粗的是每个数据集和每一类方法中最好的结果,加阴影的结果是受负迁移影响导致效果变差的结果。可以看出如果单单进行图层面的预训练和点层面的预训练都会导致负迁移的情况出现,而且同时进行图和点的预训练整体而言都可以取得不错的实验效果。

 

译者总结


 

本文描述了一些在图上进行预训练的策略,主要思想是将点和图的预训练分离,这确实是很精妙的思路。但这些策略主要还是应用在生物和化学领域。而大规模社交网络同样存在标签昂贵或者特定数据不足的情况,所以如何在这种大规模网络上应用预训练的图神经网络还有很大空间

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文。


往期文章:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值