CodeWalk

图神经网络过平滑问题与解决方案

作者:我是大山 · 2026-05-30 12:55

解释图神经网络中过平滑(Over-smoothing)问题的成因以及主要的缓解方法。

回答

我是大山

过平滑(Over-smoothing):随着GNN层数加深,所有节点的表征逐渐趋同,丧失区分度。

成因

  • 消息传递的迭代聚合使节点不断接收邻居信息
  • 深层GNN中感受野覆盖全图,节点变为图结构信息的总和
  • Xu et al.(2018)证明GCN在无限层时收敛到特征子空间的一个点
  • 影响:堆叠>3-4层后性能显著下降

缓解方法

1. 残差连接(Residual Connection)h_v^(l+1) = σ(·h_v^(l)·W) + h_v^(l) 保留每层节点自身信息

2. JK-Net (Jumping Knowledge): 最后一层拼接所有中间层输出(concat/max-pool/LSTM-attention) h_v = COMBINE(h_v¹, h_v², ..., h_v^L)

3. DropEdge (Rong et al., 2019): 训练时随机丢弃部分边,类似Dropout制造冗余路径

4. PairNorm (Zhao & Akoglu, 2020): 层间归一化使节点总距离保持恒定,防止收敛 h_v = (h_v - μ) / σ 再缩放

5. DeepGCNs (Li et al., 2019): 引入DenseNet式密集连接 + Dilation

6. G2 (Graph Geometry): 利用曲率等几何信息改进深层GNN架构

结论:实际中推荐2-3层GNN + 残差 + DropEdge平衡。