查看原文
其他

【源头活水】Deep GNN评测,模型退化是做不深的主要原因!

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

来源:知乎—zwt233
地址:https://zhuanlan.zhihu.com/p/398736015
近期,由于图结构数据在现实生活中存在的广泛性与普遍性(例如,在推荐系统中可以用图来表示用户与商品之间的交互、在化学中可以用图来建模分子等等),引起了研究者对将深度学习应用到,推动了图领域的相关研究蓬勃发展。深度学习发展成功的一个主要因素在于模型的深层次架构。然而,图神经网络模型随模型深度增加性能却会较快下降。一种主流研究认为,GNN模型做不深的原因在于过平滑 - 即图卷积网络有赋予相邻节点接近的表示的特点。因此,当图卷积网络的层数无限加深时,所有节点的表征都倾向收敛于同一个点。
本篇工作探讨了为什么图神经网络模型做不深的原因,通过实验的方式对于主流的研究观点进行验证与探讨,并提出我们认为的GNN模型普遍较浅的真正原因 - 模型退化与过平滑。
首先我们对图卷积模型的图卷积层进行分析。在图卷积层中,主要包含两个操作:特征传播(propagate)操作和非线性变换(transformation)操作。因此,图神经网络的模型相应地也应该分为两个深度,特征传播的深度  和非线性变换的深度  。我们在图一中展示图卷积网络的两个操作。如图一所示,特征传播可以用 表示,而非线性变换可以理解为一层简单的MLP中的dense layer。从图中我们可以看到,图卷积层与MLP最大的区别在于图卷积层多了一层特征传播的过程。如果我们把邻接矩阵替换为单位矩阵,图卷积层将退化为简单的MLP中的dense layer。通过对现有关于deep GNN的工作进行分析,我们发现,绝大多数工作只关注到了特征传播  的深度,而忽略了非线性变换  的深度。
图1. GCN与MLP的关系示意图
我们对现有研究深层GNN的工作进行了详细的分析,并对它们提出的关于GNN无法做深的原因进行了实验的验证和探究。经我们观察,主流的看法主要有以下几种:

01

过平滑
随着GNN的层数加深,节点收集到的图区域信息逐渐趋于全局化,造成节点之间的表征趋同,同一个簇内的节点变得难以区分,从而造成GNN模型的性能下降。为了探究这一观点,我们进行了实验性的分析。如果GNN的性能下降是由过平滑造成的话,当我们增大特征传播深度时,模型的性能表现应该会显著下降。我们对比了普通的  的GCN和  的GNN变体的性能,结果绘制在图2(a)中。我们发现,更大的  没有相应带来更多的性能下降。同时,我们在图2(b)中绘制了  固定、  变化的SGC模型性能曲线。我们发现,随着  上升,衡量节点表征平滑度的指标迅速下降,然而模型的性能指标下降却不超过1个点。此外,我们在图2(c)中固定  是单纯增加  ,比如  时我们在每一个原始GCN层中施加3次传播操作。此时,只是就算增加  ,模型性能也没有显著降低。综上,图2显示出过平滑对GNN加深以后性能下降的影响被高估了,造成深层GNN性能显著下降的主要原因并不是过平滑。

图2. 过平滑不是造成深层GNN模型性能下降的主要原因


02

过拟合
一些工作把深层图神经网络的性能下降归因于过拟合。为了验证过拟合的说法,我们测试了不同深度的GCN模型下节点分类任务在训练集和验证集的表现,并绘制在图3中。一般地,过拟合发生时会出现模型在训练集上表现好、测试集上表现差的情况。但是从实验结果中我们可以发现,模型在训练集和测试集上的表现都随模型深度增加而减小,并且在模型深度大于6时,测试集的表现反而优于训练集,证明过拟合与梯度消失的归因是错误的。

图3. 训练和测试准确率在模型深度加深时都快速下降


03

模型耦合
一些近期的工作认为造成GNN模型性能下降的主要原因是在图卷积层中特征传播和非线性变换的耦合。为了验证这种说法,我们分别变换了不同模型(例如ResGCN,DenseGCN,GCN)的非线性变换深度,并且在图4绘制了它们的性能曲线。我们发现,虽然ResGCN和DenseGCN都是基于耦合特征传播与非线性变换的设计,但是当  增加时,它们并没有像GCN一样出现大幅度的性能下降。说明GNN在耦合时也同样可以做深,将特征传播和非线性变换耦合在一起并不是GNN性能下降的根本原因。同时,对于解耦的方法我们也做了类似的实验。我们做了DAGNN的两种变体实验:一种控制  不变而增加  并观察性能变化,另外一种控制  令两者同步增加。我们将实验结果绘制在图5中。我们可以发现,即使DAGNN是一个解耦的方法,在模型增大  时,也同样会遭遇性能下降的问题。

04

梯度消失
梯度消失意味着在浅层的时候梯度过小,导致之后的层得不到梯度、无法完成更新。为了验证梯度消失是否在深层GNN发生,我们分别在图6中绘制了在Cora数据集上,2层GNN模型的梯度和7层GNN模型的梯度。我们发现,虽然深度为7的GCN模型性能指标下降很快,但是它的梯度和2层的GNN是很接近的。说明梯度消失不是导致GNN深层性能下降的主要原因。

图6. 在Cora数据集上不同深度的第一层GCN模型梯度对比

在对之前研究中提出的说法证伪以后,我们继续探究GNN无法做深的根本原因。我们分别对耦合的GNN(比如GCN,GAT和Graphsage等)以及解耦的GNN(比如SGC, SIGN, S^2 GC和Grand)进行分析。
图7:加入skip-connection后MLP和GCN的性能变化

05

对于耦合的GNN
前面分析过,既然不是多次propagation(  太大)的问题,那没有可能是多次transformation(  太大)的问题?想象一下:
如果4层的MLP就已经崩了,凭啥4层的GCN就能够work?
毕竟,去掉propagate后4层的GCN就是4层的MLP。从图7(a)我们可以发现,当  从3增加到7的时候,MLP在PubMed上的效果急剧下降,但是加了residual或者dense connection后,效果能保持平稳,说明MLP做深导致的模型退化可能是deep GNN性能下降的主要原因。从图7(b)可以看出,ResGCN和DenseGCN只在  大于5的时候出现了性能下降,并且下降程度远轻于GCN。因此,over-smoothing和模型退化都限制了GNN的深度,并且模型退化的影响占主导地位。

06

对于解耦的GNN

图8:分别增大解耦的GNN的propagation和transformation深度

很多解耦的工作都highlight做深后性能不下降,但是我们发现大部分工作都只是在加大  ,因为模型解耦后就没有了  这个约束。这里我们以S^2 GC和Grand为例,可以看到就算加深  到32层效果依然很好,但是一旦把  做深,模型退化就会显著影响性能做到7层的时候效果就很差了。只是单纯的增加  并不会急剧降低模型性能,和over-smoothing比起来,模型退化带来的影响显然更大。我们认为,一个好的smoothness是GCN比MLP效果好的根本原因。比如图里某些节点所处位置比较稀疏或者自身特征不太好,需要更高的smoothness程度来增强自己。但增强过头了就over-smoothing,增强太少了就是under-smoothing(比如MLP就是完全独立同分布处理,只用原始的feature不做smoothness增强),因此如何做到node-specific的smoothness也是一个有意义的point。
接下来我们探讨

1. 大的特征传播深度  ?

2. 大的非线性变换的深度  ?


07

When large   
我们认为,较深的特征传播深度可以增加节点的感受域,但是也容易招致过平滑的问题。从上面三个实验Table 1,2和3中,我们认为图数据满足以下特性时,适合增大特征传播深度  以获得更好的模型性能:
(1)边稀疏性 - 真实世界的图往往具有有偏的度分布;
(2)标签稀疏 - 由于标注需要开销,可能在图中只有少部分节点有标签;
(3)特征稀疏 - 图上的一些节点可能没有特征(比如推荐系统中新注册的用户)。我们认为满足以上特性的稀疏图往往需要更大的  以满足更大的感受域、从而取得更好的模型性能。

08

When large   
我们认为,较小的图由于信息量有限,往往使用较浅的模型就足以很好的拟合它们的分布。如果图的规模较大,则需要更大的  去拟合大图上更复杂的分布,从而提取到有意义的图信息。我们通过实验验证了我们的观点。我们分别在Cora和Ogbn-arxiv上从1到6的增加  ,并且测试相应的模型准确率。我们发现,在小图Cora上,  便足以拟合小图信息,然而在Ogbn-arxiv上则需要更大的
才能获得更好的节点表征。

图7. 用ResMLP替换SGC中的逻辑回归后不同深度的SGC效果

基于以上的分析,我们可以得到如下的结论:

1. GNN模型通常有两个深度,分别是特征传播深度  和非线性变换深度  ;

2.   和  增大会分别带来过平滑和模型退化的问题;并且模型退化通常在深层GNN性能下降的问题中占主导地位;

3. 跳跃连接可以有效减轻模型退化问题。

4. 大多数解耦的GNN虽然能做深,但增加的只是特征变换的深度  。

详细分析可以参考我们的论文原文。
Zhang W, Sheng Z, Jiang Y, et al. Evaluating Deep Graph Neural Networks[J]. arXiv preprint arXiv:2108.00955, 2021.
论文:https://arxiv.org/abs/2108.00955
代码:https://github.com/PKU-DAIR/DGMLP

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存