图神经网络自监督学习工具箱 - AutoGCL

文章名称

【AAAI-2022】AutoGCL: Automated Graph Contrastive Learning via Learnable View Generators

核心要点

文章旨在解决现有图神经网络对比学习方法,只能基于预定义的对比视图进行学习,无法针对不同的图输入数据自适应的产生对比视图的问题,提出了自动对比视图生成方法AutoGCL。该方法为每种图增广方法设计了一个视图生成学习器,来学习针对特定图数据的,图增广方法概率分布。此外,AutoGCL采用Joint Optimization的策略来端到端的学习对比视图生成器,图编码器和分类器,可以适应不同的拓扑和语义结构。

研究背景

图神经网络已经成为图表示学习的主流学习器,通过不断汇聚邻居节点的信息,GNN能够在有监督的情况下学习(下游任务)性能优异的节点表示。然而,标注数据缺失是整个机器学习界面临的根本难题(notoriously)。GAE,GraphSage等naive的表示学习方法仅仅是重建邻接矩阵,不能充分学习结构和属性信息。

对比学习利用不同的对比视图,获得正样本(同输入的不同视图下的表示)和负样本(不同输入的,不同或相同视图下的表示)。并基于对比损失拉进正样本表示,推远负样本表示来学习的节点表示。

选取合适的对比视图(Contrastive View)是基于对比的图神经网络自监督学习方法的核心。大多数现有的对比图神经网络学习方法采用预定义的对比视图,例如node drop或者edge perturbation。此类方法通常无法适用于新的输入或良好的保持原图数据的结构(因为图数据的异质性无法很好地迁移这些预定义的任务)。并且不同于图像的增广方法,图增广方法不一定能保证底层语义的稳定性(删除了一些属性可能图的语义,比如分子图,就发生了变化)。

InfoMin (Tian et al. 2020)提出利用基于流行的生成模型,为特定输入数据学习不同对比视图的分布。基于InfoMin的思想,作者提出AutoGCL学习节点级图增广方法的概率分布。

方法细节

AutoGCL的目标是设计一个可学习的图数据对比视图生成器,以(输入)数据驱动对比视图生成。与JOAO(You et al. 2021)从现有的图增广方法中进行组合不同(感兴趣的同学可以参考的解读),AutoGCL是对每个图生成不同的视图。作者认为,好的对比视图应该具有如下特性,

  • 能够在图的拓扑结构和节点特征级别都进行增广。
  • 能够保持原始图数据中的语义信息,例如节点的类别标签等。
  • 能够适应不同的数据分布,并且可以扩展到大规模图数据上。
  • 能够为对比多视图预训练任务提供了足够的方差(个人理解,没方差学不出东西,就比如常数特征)。
  • 能够快速求解,例如通过反向传播,端到端进行可微计算。

通过分析现有方法的图增广策略和参数选择,AutoGCL选择node dropping和attribute masking两种增广策略。不同的是,AutoGCL的增广策略是在节点级别应用端,也就是说每个节点都可能采用不同的增广参数(文章称“aug ratio”)来同时进行node dropping和attribute masking。(个人感觉,片面的讲,就是预设增广方式的自动超参数调节) 作者强调之所以没有采用edge perturbation,是由于边生成方法需要预测整个邻接矩阵,因此计算效率不高(个人感觉,可能会少一些拓扑逻辑学习的能力)。

Learnable Graph View Generator

AutoGCL的整体框架如下图所示,GIN被用来学习节点表示。基于该表示,AutoGCL利用 gumbel-softamx (Jang, Gu, and Poole 2016)来选择删除、保留或者遮盖该节点。注意,mask节点是指用替换节点属性的向量,而drop意味着去掉该节点以及与其相连的所有边。

framework of AutoGCL

具体的做法可以形式化为如下图所示,其中,分别表示节点的隐向量表示,增广采样概率向量(从中采样增广方法),采样得到的增广方法one-hot向量以及节点特征向量。

the formulation of AutoGCL

经过层GNN,得到节点表示后,可以利用聚合函数得到不同增广方法的概率分布(也就是说的维度和增广方法的数量相同,这里是3)。经过GumbelSoftmax可以one-hot向量。表示把增广方法应用到节点特征向量上,文章采用元素相乘等可以微分的运算符,保证可以端到端的训练。值得注意的是,邻接矩阵同样使用进行增广(其实只有节点删除的时候会更新邻接矩阵)

Contrastive Pre-training Strategy

InfoMin(Tian et al. 2020)表明对比学习中,效果较好的正样本对比视图应该最大化视图之间的标签相关信息以及最小化它们的互信息(如similarity)。值得注意的是,这里的互信息和标签相关性是性对视图而言的,而不是样本对。最大化标签相关性,其实就是两个视图生成的语义要是一样的。最小化视图之间的similarity是指不要让生成的两个视图长成一样的,那就不需要对比了,天然就是一会事儿。并且因此,作者采用两个独立的对比视图生成器,并设计了3个损失函数,

  • 对比损失。该损失采用NT-XEnt(Sohn 2016)的normalized temperature-scaled cross entropy loss(sampled softmax?),结合In batch negative sampling的方法,进行对比学习。具体的计算公式如下图所示。

    similarity

    contrastive loss

    其中,表示增广后的节点向量,表示指示函数,是temperature参数。时batch的大小,由于有两个对比视图来增广输入数据,因此会得到个样本,其中,同一个输入生成的两个向量为正样本对(也就是损失里所谓的)。

  • (增广视图)相似度损失。如前所述,为了保证生成的视图不要坍缩成一个,作者引入了增广矩阵的相似性损失,通过最小化形似,生成不同的视图。其中,增广视图利用Figure 1中的策略采样矩阵(就是图中标着"Sample"字样的那步得到的矩阵)表示,两个不同的视图分别标记为。

    view similarity loss

  • 分类损失。最后在半监督的情况下,可以如下图所示的分类损失,促使生成的对比视图保证节点label不变。


    label loss

Training Strategy

针对不同的数据场景,作者引入两种训练方法。

  • Naive Training Strategy。在没有标签的数据上,作者仅仅使用训练。因为,没有标签数据来计算,仅仅最小化只能让对比视图不同,并不能保证不同视图下节点标签比不变。因此,可能导致生成无异议的视图,伤害下游任务性能。同时,为了近似弥补标签相似,作者引入原始图数据(未经增广的),并在向量空间中,拉近原始数据和增广后的节点表示。
  • Joint Training Strategy。在有监督的情况下,作者并没有采取传统的pre-train/fine-tuning的训练策略。因为,作者发现过度的在pre-train阶段利用训练,很容易导致下游任务过拟合,猜测的原因是过度的拉近节点的表示,导致也需要超强的分类器才能进行有效分类(甚至很难训练出这样的分类器)。因此,作者采用两种训练方式交替进行的策略,
    • 在无监督数据上利用进行训练(也就是Naive Training Strategy)。
    • 在半监督数据上,同时优化和。

上述两种策略的伪代码参见,代码实现部分。

代码实现

下图是AutoGCL的整个训练过程以及两种训练的伪代码。可以看到,在Naive Training Strategy中,作者采用的是pre-train/fine-tuning的训练策略,并且引入了原始图数据(Algorithm 1的第6行)。在Joint Training Strategy中,作者是交替训练的且不同阶段优化不同的目标。

Training process and pseudo code

心得体会

引入足够的方差

文中提到,不同的对比视图需要引入充足的方差才能保证模型有良好的性能。个人理解,就如同在普通机器学习场景下,需要去掉只有常数值的特征一样。同时,如果没有方差,对比视图就会坍缩。

自动视图生成

如前所述,AutoGCL实际上是做了两方面的自动调节,

  • 增广方法选择。
  • 超参数(增广参数)调节。

可以理解为,利用把整个自监督方法参数化后进行联合训练。其中,参数化的重点是利用了GumbelSoftmax。

训练方式

AutoGCL在半监督和无监督场景都可以使用。不过,在无监督场景下的效果可能弱于半监督场景。

细节

个人感觉,文章中一些细节交代的不是很清楚。例如,

  • 对比损失时用的时哪里的节点向量表示。
  • 是怎么乘到节点属性上的,如何实现droping和masking?

此外可能有一些笔误(我这里写的笔误可能更多T.T),

  • section 3.3 Joint Training Strategy的最后一段,应该是优化。
  • Algorithm 1和2 中 第8行,应该无法优化?(可能我没有理解,需要看一下源码)。

但是,这些都不影响这是一篇思路独特,方法简洁的文章。

文章引用

Tian, Y.; Sun, C.; Poole, B.; Krishnan, D.; Schmid, C.; and Isola, P. 2020. What makes for good views for contrastive learning. arXiv preprint arXiv:2005.10243.

You, Y.; Chen, T.; Shen, Y.; and Wang, Z. 2021. Graph Contrastive Learning Automated. arXiv preprint arXiv:2106.07594.

Sohn, K. 2016. Improved deep metric learning with multiclass n-pair loss objective. In Proceedings of the 30th International Conference on Neural Information Processing Systems, 1857–1865.

Jang, E.; Gu, S.; and Poole, B. 2016. Categorical reparameterization with gumbel-softmax. arXiv preprint arXiv:1611.01144.

你可能感兴趣的:(图神经网络自监督学习工具箱 - AutoGCL)