深蓝学院-GNN课程笔记12-图神经网络的高级方法

 

这个系列是深蓝学院图深度学习理论与实践的同步课程笔记。课程内容涉及图深度学习的基础理论与应用,本节主要介绍现代图神经网络的研究热点。

更深的图神经网络

现代计算机视觉和自然语言处理等任务中往往会使用深层的神经网络来提高模型的性能,然而在图神经网络中人们发现一味地加深模型的深度不仅不会提高性能反而会使模型的性能下降。

进一步对图上节点的嵌入进行可视化发现,随着图神经网络深度的增加图上节点的嵌入会趋于一致。从message passing的角度上看,每一层中图上节点会收集相邻节点的信息,而随着网络层数的加深每个节点收集到的信息都相当于在全图上进行信息融合。这样的现象称为过度平滑(over smoothing)

我们可以从数学上来严格解释过渡平滑的原因。以最基本的GCN为例,在不考虑激活函数的情况下每一层的图卷积相当于对特征进行了一个线性变换。其中$\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}$表示每个节点从相邻节点收集信息,而$\Theta$则表示对信息进行线性变换。把模型中的所有层组合到一起就得到了整个模型的前向输出。

接下来对$\tilde{D}^{-\frac{1}{2}} \tilde{A}^L \tilde{D}^{-\frac{1}{2}}$进行特征分解,可以发现它只与$\tilde{A}$的特征值相关。由于$\tilde{A}$的特征值都位于(-1, 1]区间上,当层数$L$较大时$\tilde{A}^L$会收敛到$\text{diag}(1, 0, 0, …)$上。因此对于任意特征$f$经过图卷积后得到的结果都是最大特征值对应特征向量$u_1$乘以一个系数。

把上面的结论代回到原始的模型表达式中可以发现模型输出的每一列都是$u_1$乘以一个系数,因此每个节点(每一行)的节点表示都是非常相似的。

为了缓解过度平滑的问题人们开发了各种各样的方法:jumping knowledge将每一层的输出拼接到一起作为模型的最终输入,dropedge则是在每一训练周期中随机去掉图上的一些边,此外还可以利用正则化的方法来强制不相连的节点特征保持不同。

图上的自监督学习

深度学习的成功离不开大量的标记数据,而自监督学习(self-supervised learning)的出现极大地缓解了对数据的依赖。自监督学习的核心是设计一个特定的自监督任务,然后使用未标记的数据来学习更好的数据表示。

在GNN中根据模型训练的方式可以把自监督学习分为联合训练自己两阶段训练两种。联合训练是指将自监督辅助任务和下游任务一起进行训练;而两阶段训练则是首先通过自监督辅助任务对模型进行预训练,然后在自监督任务的基础上进行微调以适应下游的任务。

用于图上的自监督学习的辅助任务

显然如何设计自监督学习的辅助任务是图上自监督学习的核心。根据图任务的类型我们可以把图上的辅助任务分为侧重于节点表示学习的辅助任务以及侧重于图表示学习的辅助任务。

侧重于节点表示学习的辅助任务

根据自监督任务的信息,我们可以把侧重于节点表示学习的辅助任务进行划分:基于图结构信息、基于节点属性信息以及基于图和节点属性信息。

基于图结构信息的任务非常直观,我们可以利用GCN来预测图上节点的结构信息(如度、中心性等)或是在学习到节点表示后对链路进行预测。

除了节点局部信息之外我们也可以使用GNN去预测图上的一些全局信息,如最短路径、聚类信息等。

此外也可以将一些节点遮盖然后使用GNN来对这些遮盖后的节点特征进行预测。

如果要同时使用节点属性以及图上的信息则可以考虑使用GNN来预测节点到另一个带标签节点之间的距离。

侧重于图表示学习的辅助任务

在侧重于图表示学习的辅助任务中我们把图当做处理的对象,通过对子图或者全图的性质进行预测来实现自监督学习。

图神经网络的表达性

如果两张图之间的映射关系相同则可以认为两张图在拓扑意义上是相同的,此时我们称两张图是同构的。图同构任务旨在判断两个给定图是否在拓扑上相同。测试图同构在计算上是昂贵的,而且目前尚未找到多项式时间的解法。而WL测试则是一种有效的图同构测试算法,它可以区分绝大多数的图。

WL测试的过程是首先为图上的每一个节点赋予一个编号,然后将它自身以及相邻节点的编号利用哈希函数聚合成一个新的编号。不断重复聚合的过程直到两张图上的标签几何不同,此时可以认为两张图不同构。

不难发现WL测试的过程与GNN有很多相似之处。GNN的消息传播相当于WL测试中的聚合信息,而GNN中的聚合函数则类似于WL测试中的哈希函数。

一些近期的研究显示GNN在区分图结构的表达能力上最多和WL测试一样强,这给出了GNN表达能力的一个上界。