本文介绍的论文是《DeeperGCN: All You Need to Train Deeper GCNs》。
为了防止GCN梯度消失、过度平滑和过拟合等问题,能够再大规模图上训练更深层次,该作者提出了DeeperGCN,并且定义了可微的广义聚合函数来统一不同的消息聚合操作,还将归一化层和残差连接应用到了GCN当中。
一、背景 |
在GCN中最重要的就是进行消息传递来更新节点特征信息,在每个GCN层,通过传递来自中心节点邻居的特征信息来更新节点特征。为了计算新的节点特征,就必须要定义一个聚合函数,来获得邻居节点特征的聚合新特征。
目前聚合函数常见有均值、最大、求和、注意力、LSTM等,而且通过实验表明,不同的聚合函数对不同的任务也会有不同的影响。
而且目前很多的GCNs任务都是基于浅层的,如果训练过深,会导致梯度消失以及过平滑问题,已有一些工作尝试解决这些问题,有些通过尝试像图像任务中的残差、密集连接和空洞卷积应用在图任务上。
二、模型方法 |
GCN图表示学习
对于图表示学习,目前已有一个通用的框架:
上述的三个式子代表学习过程中的三个流程:消息构建、消息聚合、节点更新
聚合函数
对于聚合函数常见的有Max、Mean、Sum、LSTM等,基于此作者又给出了两种聚合方式:
广义聚合网络(GEN)
上面给出的式子就是消息构建通用范式,其中的 1 1 1 是一个指示函数,如果存在边,那么该值为1,从而就会与该节点邻居做交互,后面的 ϵ \epsilon ϵ 是一个误差常数。
残差连接
作者改进了传统的残差连接序列方式,提出了一个新的预激活变体,并且该版本效果更好,其顺序如下图所示:
消息归一化
作者提出了消息归一化层,用于显著提升聚合函数表现不佳的网络的性能,该层主要思想是在顶点更新阶段将聚合消息的特征与其它特征相结合进行归一化。
三、实验结果 |
实验表明,残差连接显著提升了深度GCN模型的性能。无跳跃连接的普通GCN并没有随着深度的增加而得到改善。随着模型的深入,在ResGCN和ResGCN +中可以观察到明显的性能增益。值得注意的是,ResGCN +达到0.858 ROC-AUC,有112层,比ResGCN提高了0.7 %。平均结果显示,3个聚合商( Sum , Mean和Max)的ResGCN +均有一致的提升。这验证了预激活残差连接的有效性。我们还发现Max聚合器表现最好。
四、总结 |
为了能够训练更深层的GCN,作者首先提出了一个可微的广义消息聚合函数,该函数定义了一族置换不变函数。
这种广义聚集函数的定义为GCNs中聚集函数的设计提供了新的视角,并且进一步引入新的残差连接变体和消息规范化层。
最终展示了训练提出的深度GCN模型的有效性,据此作者在具有挑战性的开放图基准的四个数据集上设置了一个新的SOTA。