理解和解决图卷积网络的性能退化问题
论文标题:Understanding and Resolving Performance Degradation in Graph Convolutional Networks
论文链接:arxiv
代码链接:github
更多图神经网络和深度学习内容请关注:
摘要
图卷积网络(GCN)由数层神经网络堆叠而成,在每层中执行传播操作
(PROP,PROPagation)和变换操作
(TRAN,TRANsformation),用以学习图结构数据上的节点表示(表征)。图卷积网络(GCN)虽然功能强大,但是深层GCN往往存在性能下降问题
。以往的研究主要集中在传播(PROP,PROPagation)阶段研究和缓解这一问题,但对变换操作(TRAN,TRANsformation)的作用却鲜有研究。
在这篇论文中,我们通过实验研究只堆叠变换操作或传播操作是如何工作的,用于研究 GCNs 的性能退化问题。论文发现,在GCN中变换操作对性能下降的影响显著超过了传播操作,且更倾向于放大节点特征的方差,导致方差膨胀(variance inflammation),而方差膨胀是导致性能下降的主要原因
。
论文提出了一种称为节点归一化(NodeNorm)
的方差控制技术,该技术使用每个节点的标准差来缩放每个节点的特征。
关键词:Graph-structured data, deep graph convolutional networks, performance degradation
简介
随着模型深度的增加,现有GNN模型的性能往往会下降。
这个问题首先在GCN中发现,后来Chen等人发现其他流行的GNN架构(如GraphSage和GAT)也会出现这种性能下降问题。
对这一问题的研究大多基于GCNs,现有的研究主要集中在GCNs中的传播操作
(PROP,PROPagation)如何影响节点表示并导致模型性能下降。Lietal认为GCN中的传播操作本质上是拉普拉斯平滑,因此传播操作使深层GCN中的节点嵌入不可区分,导致模型性能下降,即过平滑
。
为了减少过平滑,现有的方案有:
- Chenet等人引入了一种额外的损失来抑制远处节点之间的相似性;
DropEdge
在训练过程中随机删除了图中的边;PairNorm
等
除了过平滑外,Lietal还认为梯度消失是性能下降的另一个原因,也被广泛认为是传播操作的平滑效果造成的。与传播操作
(PROP,PROPagation)相比,变换操作
(TRAN,TRANsformation)在这一问题中的作用很少受到关注。
一些工作试图设计新的GNN架构用以解决深层图卷积网络性能退化问题,例如:
- JKNet
- GCNII
- GEN
理解和解决图卷积网络的性能退化问题
神经网络通常随着深度的增加表现得更好,然而GCNs在模型深度越大的情况下表现越差。
图卷积网络的性能退化问题
论文使用消融实验(ablative experiments,ablation experiments:类似一种控制变量法),研究了传播操作
(PROP,PROPagation)相比,变换操作
(TRAN,TRANsformation)在性能下降中的作用。根据实验结果,论文认为变换操作
引起的方差膨胀(variance inflammation)问题是主要原因而不是目前主流认为的主要原因是传播操作
。论文提出了一种方差控制技术来缓解这一问题,提高深层GCNs的性能。
第l层图卷积网络可以表示为: H ( l ) = R e L U ( A ′ H ( l − 1 ) W ( l ) ) H^{(l)}= ReLU(A'H^{(l−1)}W^{(l)}) H(l)=ReLU(A′H(l−1)W(l)),其中A为邻接矩阵,W为可训练权重, H ( l − 1 ) H^{(l-1)} H(l−1)为第 l − 1 l-1 l−1层结点的表征。
GCN每一层执行以下两个基本操作:
- 传播操作(PROP,PROPagation,传播和聚合来自每个节点的1跳邻居的信息): H ′ ( l − 1 ) = A ′ H ( l − 1 ) ( P R O P 操 作 ) H'^{(l−1)}=A'H^{(l−1)} (PROP操作) H′(l−1)=A′H(l−1)(PROP操作)
- 变换操作(TRAN,TRANsformation,通过一个线性转换和一个非线性ReLU激活函数对聚合的嵌入进行转换): H ( l ) = R e L U ( H ( l − 1 ) W ( l ) ) ( T R A N 操 作 ) H^{(l)}= ReLU( H^{(l−1)}W^{(l)})(TRAN操作) H(l)=ReLU(H(l−1)W(l))(TRAN操作)
GCN模型是通过堆叠多个GCN层构建的,直觉上认为随着GCN层的增加,节点的特征信息可以传播到更远的节点,从而提高GCNs的性能。然而一些实验结果表明:深层GCN存在严重的性能下降
,被称为深层GCN的性能退化问题。
为了研究变换操作在性能退化问题中的作用,论文使用消融实验分离了这两种基本操作(传播操作和变换操作),并构建了两种GCN 变体:
- 仅在每个隐藏层中执行传播操作的T-GCN ;
- 仅在每个隐藏层中执行变换操作的P-GCN 。
两种GCN 变体可表示为如下的公式,其中GC为图卷积层,X为输入结点的特征矩阵,T()为传播操作,注:两个模型在不同层中的参数是不共享的。
论文在Cora数据集上训练了三中不同层数的模型,分别为vanilla GCN(初代GCN)、P-GCN和T-GCN,模型层数从2到64层。可以发现T-GCN相对于GCN性能退化更为严重。64层T-GCN的精度降至0.4,而64层GCN的精度为0.6,相比之下P-GCNs精度为0.72。实验结果说明在GCN中变换操作对性能下降的影响显著超过了传播操作
。
论文认为变换操作倾向于放大节点特征方差,对于更深层的GCN模型来时,它包含多个变换操作,因此它的输出节点特征方差通常变得越来越大。即方差膨胀(variance inflammation)
。这里的节点特征方差是指每个节点特征的方差。在形式上,第l层节点特征的方差可定义为:
论文认为缓解方差膨胀(variance inflammation)
,即防止指节点特征的方差过大,有助于缓解深层GCN的性能退化问题。
解决图卷积网络的性能退化问题-缓解方差膨胀技术
论文提出的方案是:用每个节点特征的标准差的开p次方来缩放每个节点的特征向量,其中p>1,论文称其为节点规范化(NodeNorm)
,形式上可表示为
其中
σ
i
σ_i
σi为节点的表征
h
i
h_i
hi的标准差,即
σ
i
=
v
a
r
i
1
/
2
σ_i = var_i^{1/2}
σi=vari1/2,此处为了清晰起见,省略了层索引
l
l
l。
在使用NodeNorm标准化之后,节点 i i i的标准偏差为 σ i 1 − 1 / p σ_i^{1-1/p} σi1−1/p,如果 σ i > 1 σ_i>1 σi>1,则标准化后的标准差小于 σ i σ_i σi。因此,一个较小的 p p p可更严格地控制方差膨胀。当 p = 1 p=1 p=1时,所有节点的方差标准化为 1 1 1。
现有的层归一化(LayerNorm)
(引用J. L. Ba, J. R. Kiros, and G. E. Hinton, “Layer normalization,”arXivpreprint arXiv:1607.06450, 2016.)也执行节点的方差缩放操作,形式上,层归一化形式上可表示为
其中的
⊙
⊙
⊙为按元素乘法,
α
=
(
α
1
,
⋅
⋅
⋅
α
d
)
α= (α_1,···α_d)
α=(α1,⋅⋅⋅αd)和
β
=
(
β
1
,
⋅
⋅
⋅
β
d
)
β= (β_1,···β_d)
β=(β1,⋅⋅⋅βd)为可学习的参数,
d
d
d为h的维度,
σ
i
σ_i
σi为标准差,
u
i
u_i
ui为平均值。一个层归一化由三个基本操作组成:方差缩放、均值减法和特征线性变换(α和β是斜率和偏差)。特别是,LayerNorm中的方差缩放(variance-scaling)本质上是我们的NodeNorm。
ps:这篇论文写作是真的不太行,看论文的过程太累了。