本文主要是介绍STRATEGIES FOR PRE-TRAINING GRAPH NEURAL NETWORKS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pre-train+fine-tune的策略已经广泛地应用在了CV, NLP领域,但如何有效地利用图数据集的预训练仍然是一个有待解决的问题。本文提出了一种在node-level和graph-level同时学习的预训练模型,能够很好地得到图的局部和全局的表示。实验证明预训练模型在ROC-AUC上超过了非预训练模型9.4%,并在分子性质预测和蛋白质功能预测方面达到了最好的表现。
本文被ICLR2020接收,Strategies for Pre-training Graph Neural Networks
INTRODUCTION
在图上做预训练的关键思想是利用易得的节点级别的信息让模型能够捕获到domain-specific的节点和边的knowledge,进而获得图级别的knowledge。
如果仅仅做节点级别的pre-train,虽然不同的节点能够很好地被区分,但节点组合成的图不能被很好地被区分;如果仅仅做图级别的pre-train,虽然不同的图能够被很好地区分,但图中节点的表示不能够被区分。所以既需要节点级别的,也需要图级别的,这样无论是不同的节点的表示还是图的表示都能够在空间中很好地区分开来。
STRATEGIES FOR PRE-TRAINING GRAPH NEURAL NETWORKS
NODE-LEVEL PRE-TRAINING
CONTEXT PREDICTION: EXPLOITING DISTRIBUTION OF GRAPH STRUCTURE
这一部分的主要任务是让模型具有通过中心节点预测其周围结构的能力。
Neighborhood and context graphs:
一个 K K K层GNN网络可以聚合节点 k k k阶邻居的信息,本文将节点 v v v的 k k k阶邻居内的边和节点称作是 v v v的K-hop neighborhood
,将节点 v v v r 1 ( r 1 < K ) r_1(r_1 < K) r1(r1<K)与 r 2 r_2 r2跳之内的子图称作是 v v v的context graph
,将context graph
与K-hop neighborhood
重叠的部分称作 v v v的context anchor nodes
。
Encoding context into a fixed vector using an auxiliary GNN:
在这里使用辅助的context GNN编码context graph
,然后使用得到的context anchor nodes
的embedding的均值作为context graph
的embedding,记作 c v G c_v^G cvG。
Learning via negative sampling:
训练目标是 σ ( h v ( K ) ⊤ c v ′ G ′ ) ≈ 1 { v and v ′ are the same nodes } \sigma\left(h_{v}^{(K) \top} c_{v^{\prime}}^{G^{\prime}}\right) \approx 1\left\{v \text { and } v^{\prime} \text { are the same nodes }\right\} σ(hv(K)⊤cv′G′)≈1{v and v′ are the same nodes }通过negative sampling 的方式得到负样本。
ATTRIBUTE MASKING: EXPLOITING DISTRIBUTION OF GRAPH ATTRIBUTES
通过令网络能够预测被mask掉的节点/边的方式,让网络能够学习到图的一些性质。具体来说,通过mask掉分子结构的部分原子,模型能够学习到一些化学的规则,通过mask掉蛋白质交互网络的部分边,模型能够学习到不同的交互如何关联起来。
GRAPH-LEVEL PRE-TRAINING
SUPERVISED GRAPH-LEVEL PROPERTY PREDICTION
通过图级别的表示来预测图的一些标签,例如预测化学物质的性质或蛋白质的功能,每一个标签对应着一个二分类问题。
但是这样的multi-task的图级别的预训练可能会带来negative transfer的问题,一个解决办法是只让模型去预测和下游任务相关的一些标签, 但是这样的做法需要手动去选择哪些标签是相关的。
One solution would be to select “truly-relevant” supervised pre-training tasks and pre-train GNNs only on those tasks.
为了缓解这个问题,本文只使用多任务的有监督预训练进行图级别的学习,不使用在此过程中生成的节点嵌入。这些无用的节点表示可能会加重负迁移问题,因为在节点的嵌入空间中,许多不同的预训练任务容易互相干扰。
所以首先需要进行节点级别的pre-train,然后再做图级别的pre-train,这样产生了更加 transferable 的图表示,并在没有专家选择监督的培训前任务的情况下显著提高了下游的性能。
STRUCTURAL SIMILARITY PREDICTION
future work!
EXPERIMENTS
待更新
这篇关于STRATEGIES FOR PRE-TRAINING GRAPH NEURAL NETWORKS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!