Understanding and Resolving Performance Degradation in Deep Graph Convolutional Networks
1. 文章概述
图卷积网络(GCN)堆叠几层,在每一层中执行传播操作(PROPagation operation)和变换操作(TRAN),用于学习图结构数据上的节点表示。尽管功能强大,但当模型深入时,GCN的性能往往会下降。先前的工作认为引起性能下降的主要原因是PROP过程造成的过平滑问题和梯度消失问题导致的,本文作者通过多组对照实验,分别比较了PROP过程和TRAN过程对gcn性能下降造成的影响,并发现了TRAN对GCN深度增加导致性能下降产生的影响更大,并提出了一种归一化方法解决该问题
2. 理解和解决深GCNS的性能退化
2.1 问题
首先给出GCN两个过程PROP和TRAN的定义,在图卷积过程中给定一个图的邻接矩阵和度量矩阵,图卷积可以定义为:
H
(
l
)
=
ReLU
(
A
^
H
(
l
−
1
)
W
(
l
)
)
H^{(l)}=\operatorname{ReLU}\left(\hat{A} H^{(l-1)} W^{(l)}\right)
H(l)=ReLU(A^H(l−1)W(l))
其中
H
l
∈
R
n
×
d
H^l\in R^{n \times d}
Hl∈Rn×d表示第l层的特征矩阵,
W
l
W^{l}
Wl是可学习的权值矩阵。其他PROP和TRAN操作可分别定义如下:
H
ˉ
(
l
−
1
)
=
A
^
H
(
l
−
1
)
(
P
R
O
P
)
H
(
l
)
=
ReLU
(
H
ˉ
(
l
−
1
)
W
(
l
)
)
(
T
R
A
N
)
\bar{H}^{(l-1)} =\hat{A} H^{(l-1)}(\mathrm{PROP}) \\ H^{(l)} =\operatorname{ReLU}\left(\bar{H}^{(l-1)} W^{(l)}\right)(\mathrm{TRAN})
Hˉ(l−1)=A^H(l−1)(PROP)H(l)=ReLU(Hˉ(l−1)W(l))(TRAN)
PROP操作传播和聚集来自每个单个节点的
1
1
1 跳邻居的信息,而TRAN通过线性变换随后是非线性ReLU激活函数来变换聚集的嵌入。通常,使用更多的GCN层,节点特征信息可以传播到更远的节点。这有助于聚集来自远处节点的信息,因此提高了GCNs的性能。然而,一些实际观察与这种直觉相矛盾——堆叠更多的层会导致GCNs的性能严重下降。
2.2 两种模型比较
本文作者为了探究两个过程对GCN随着深度的增加导致的性能下降的影响,分别定义了一个只包含PROP操作的模型P-GCN和一个只包含TRAN操作的模型T-GCN如下:
H
(
L
)
=
G
C
(
T
∘
⋯
∘
T
⏟
L
−
2
(
G
C
(
X
)
)
)
(
T
−
G
C
N
)
H
(
L
)
=
G
C
(
A
^
L
−
2
G
C
(
X
)
)
(
P
−
G
C
N
)
\begin{aligned} &H^{(L)}=\mathrm{GC}(\underbrace{\mathrm{T} \circ \cdots \circ \mathrm{T}}_{L-2}(\mathrm{GC}(X))) \quad(\mathrm{T}-\mathrm{GCN}) \\ &H^{(L)}=\mathrm{GC}\left(\hat{A}^{L-2} \mathrm{GC}(X)\right) \quad(\mathrm{P}-\mathrm{GCN}) \end{aligned}
H(L)=GC(L−2
T∘⋯∘T(GC(X)))(T−GCN)H(L)=GC(A^L−2GC(X))(P−GCN)
两个模型随着深度的加深效果如下:
可以很明显的观察到随着深度的加深T-GCN模型的性能下降最为明显,由此作者得出结论,TRAN过程是造成GCN性能下降的主要原因。
2.3 转化操作导致variance inflammation原因分析
本文通过实验检验了TRANS对节点表示的影响,发现trans倾向于放大节点方向的特征方差。结果,随着GCN模型变得更深,它包含更多的转换,因此它的输出节点特征方差通常变得越来越大。其中节点特征方差定义如下:
var
i
(
l
)
=
1
d
l
∑
j
=
1
d
l
(
h
i
j
(
l
)
−
μ
i
(
l
)
)
2
\operatorname{var}_{i}^{(l)}=\frac{1}{d_{l}} \sum_{j=1}^{d_{l}}\left(h_{i j}^{(l)}-\mu_{i}^{(l)}\right)^{2}
vari(l)=dl1j=1∑dl(hij(l)−μi(l))2
h
i
j
(
l
)
h_{i j}^{(l)}
hij(l)表示第l层图卷积的第i个节点第j个特征的值,
μ
i
(
l
)
\mu_{i}^{(l)}
μi(l)表示第i个节点所有特征的平均值。本文通过实验论证的节点方差对GCN性能的影响,安装节点在64层的方差将节点分为五类,比较其于第二层的性能差异,发现方差越高性能下降越严重。
2.4 节点归一化
为了缓解TRAN过程中出现的特征方差变大的问题本文提出了节点归一化的方法,定义如下
NodeNorm
(
h
i
)
=
h
i
(
σ
i
)
1
p
\text { NodeNorm }\left(\mathbf{h}_{i}\right)=\frac{\mathbf{h}_{i}}{\left(\sigma_{i}\right)^{\frac{1}{p}}}
NodeNorm (hi)=(σi)p1hi
其中
σ
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
=
σ
i
1
−
1
/
p
σ_i=σ_i^{1-1/p}
σi=σi1−1/p ,如果
σ
i
>
1
σ_i>1
σi>1 ,则标准化后会小于原来的方差,现有的层归一化:
LayerNorm
(
h
i
)
=
α
⊙
h
i
−
μ
i
σ
i
+
β
\text { LayerNorm }\left(\mathbf{h}_{i}\right)=\alpha \odot \frac{\mathbf{h}_{i}-\mu_{i}}{\sigma_{i}}+\beta
LayerNorm (hi)=α⊙σihi−μi+β
其方差缩放在本质上也是节点归一化