Effective Training Strategies for Deep Graph Neural Networks论文笔记

Effective Training Strategies for Deep Graph Neural Networks

摘要

提出的节点规范通过抑制隐藏嵌入的特征相关性和增加模型相对于输入节点特征的平滑度来正则化深度GCNs,从而有效地减少过拟合。
随着模型深度增加,GNN的性能往往会下降,作者在承认过平滑问题(oversmoothing)为影响因素的基础上,提出两个主要原因:训练困难(training difficulty)和过拟合问题(overfitting)

通过对GCNs这一具有代表性的GNN架构的研究发现:

  • 训练困难由梯度消失引起,可通过添加残差连接解决
  • 因过拟合问题无法通过正则化手段解决,故提出节点标准化(NodeNorm)方法

NodeNorm通过抑制隐藏嵌入的特征相关性和增加模型相对于输入节点特征的平滑度来正则化(deep)GCNs,从而有效减少过拟合现象,并提高了训练稳定性

介绍

pass

为什么deep GCNs会失效

这里,作者通过实验表明了:(突然冒出的英文)

  • Is over-smoothing the main reason?
  • Main reason I: training difficulty caused by gradient vanishing
  • Main reason II: overfitting and training instability
  • Disadvantage of batch normalization

Notations:

One kind of GCN layer representation:

\[H^{(l+1)}=ReLU(\hat{A}H^{(l)}W^{(l)}) \]

  • \(ReLU\) is a activation function used to enhance the nonlinear relationship of layers
  • \(H^{(l)}\) and \(W^{(l)}\) denote the matrix of node embeddings and the matrix of learnable parameters of this layer. The \(i\)-th row of \(H(l)\), i.e. \(h^{T(l)}_i\) denotes the input embedding vector of node \(i\) of the \(l\)-th layer
  • \(\hat{A}\) is the re-nomalized adjacency matrix and \(\hat{A} = \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}\), where \(\tilde{A}=I + A\) and \(\tilde{D} = diag(\tilde{A}1)\)

The layer consists of a propagation operation and a transformation ooperation:

\[\tilde{H}^{(l)}=\hat{A}H^{(l)}(progapation),\quad H^{(l+1)}=ReLU(\tilde{H}^{(l)}W^{(l)}) \]

Fig 1(a) indicates the main reason that cause performance decline is from transformation operation

梯度消失造成的训练困难

MLANG 计算式:

\[MALNG = \min_t \lg(\frac{1}{d_ld_{l+1}}\sum^{d_l}_{i=1}\sum^{d_l+1}_{j=1}|G^t_{ij}|) \]

  • MALNG 值越低表明底层模型的传播梯度越小

作者进一步计算MLANG值发现在高深度情况下GCN有梯度消失问题且性能下降Fig 2(a)并导致准确度的降低Fig 1(b)。然而,在高深度情况下,传播操作受影响程度小,转换操作却遭受严重性能下降。因此梯度消失造成的训练困难为GCN性能下降的主要原因之一,而不是过平滑问题

在引入残差连接后:

\[H^{(l+1)}=ReLU(\hat{A}H^{(l)}W^{(l)})+H^{(l)} \]

Fig 2(b)可见准确度由较号提升

过拟合与训练不稳定性

Fig 3(a)中的Accuracy gap 和 lg loss gap的增加表明了过拟合问题,并无法通过现行正则化方法(Dropout)解决Fig 3(b)。在Fig 3(c)中,训练后期出现了GCN曲线严重的波动,而广为流行的BatchNorm尽管加速了训练过程但效果仍较2-layer GCN-res差。而作者提出的NodeNorm却能很好的解决这些问题

BatchNorm的缺点

研究发现,GCN与GCN-res with BatchNorm在特征高方差情况下表现较差,其中:

\[\sigma^{(l)}_i=\sqrt{\frac{1}{d_l}\sum^{d_l}_{j=1}{(h^{(l)}_{ij}-\mu^{(l)}_i)^2}} \]

\[\mu^{(l)}_i=\frac{1}{d_l}\sum^{d_l}_{j=1}h^{(l)}_{ij} \]

把节点按照节点偏差从高到低分为10个集合,发现高节点集合GCN性能较低,而BatchNorm尽管有一定优化但仍无法完全解决,原因是BatchNorm考虑了所有的节点数据,故无法适应各个节点的方向偏差

节点归一化

表述

作者提出节点标准化(NodeNorm),以通过其自身的均值和标准差对每个节点的嵌入进行标准化:

\[NodeNorm(h^{(l)}_i) = {{h^{(l)}_i - u^{(l)}_i} \over {\sigma^{(l)}_i}} \]

  • 其中,\(h^{(l)}_i\)表示节点\(i\)\(d_l\)维内嵌向量,\(u^{(l)}_i\)\(\sigma^{(l)}_i\)分别表示其均值和标准差

代码段:

mean = torch.mean(x, dim=1, keepdim=True)
std = (torch.var(x, unbiased=self.unbiased, dim=1, keepdim=True) + self.eps).sqrt()
x = (x - mean) / std

由于没有引入可学习参数,从而降低了过度拟合的风险。

带有NodeNorm的GCN-res层为:

\[H^{l+1} = ReLU(NodeNorm(\hat{A}H^{(l)}W^{(l)})) + H^{(l)} \]

  • 具有简明的形式,能很好地应用于现行的GNN架构

NodeNorm的作用

这里通过计算Frobenius范数来评估隐藏特征的相关性,计算Lipschitz常数来评估模型的平滑性,并通过实验肯定了NodeNorm的作用

pass

实验

pass

posted @ 2021-03-04 09:39  liacaca  阅读(196)  评论(0)    收藏  举报