GNN中的Over-smoothing与Over-squashing问题
Over-squashing
(过度压缩,顾名思义就是数据被“压缩”的过分小了,导致学不到什么东西。)
1、 why 会被压缩的过分小?
可能因为网络过深,那么在多层传播后,信息可能会被过度压缩(本质是特征减少了,当层数过多时会大大杂糅信息,导致特征减少,输出维度过小也会),导致细节丢失。
2、why 学不到什么东西?
会加剧梯度消失的现象,导致早期层几乎不学习,从而使得输入信息的重要细节无法有效传递到网络的深层。
Over-smoothing
Over-smoothing 是指随着GNN网络层数的增加,节点的特征表示逐渐趋向于一致,导致不同节点的特征差异变得越来越小的现象.
节点的特征由:没有关系 -> 相互关联 -> 关系过分杂糅,导致每个节点的输出相似
现在以一个simple 的GNN 来预测用户的兴趣为例:
- 用户A:兴趣:运动
- 用户B:兴趣:音乐
- 用户C:兴趣:运动
- 用户D:兴趣:旅行
GNN会根据邻居节点的特征更新每个节点的特征,假如A与B、C相连(有亲密关系,兴趣可能受对方影响),经过一层传播后,用户A的特征可能变为:兴趣:运动和音乐的混合。
最终输出:
- 用户A:兴趣:运动、音乐、旅行的混合
- 用户B:兴趣:运动、音乐、旅行的混合
- 用户C:兴趣:运动、音乐、旅行的混合
- 用户D:兴趣:运动、音乐、旅行的混合
所有用户的特征趋向于一致,失去了原有的差异性。这就是over-smoothing现象,导致模型在进行兴趣预测时的准确性下降,因为模型无法区分不同用户的特征。