【从零开始】CS224W-图机器学习-2021冬季学习笔记7.2 Graph Neural Networks 2: Design Space

发布于:2023-01-04 ⋅ 阅读:(272) ⋅ 点赞:(0)

课程主页:CS224W | Home
课程视频链接:斯坦福CS224W《图机器学习》课程(2021) by Jure Leskovec


1  前言

上篇文章介绍了怎样设计一个单层的神经网络,大致包括消息转换和消息聚合两步操作,还讨论了一些可用于优化神经网络训练的深度学习方法。

本篇文章将学习如何将单个的神经网络层一层一层地堆叠起来,学习添加skip connections的方法。

2  堆叠GNN的神经网络层

连接GNN网络层的标准方式:按序堆叠

输入原始节点特征,输出L层后计算得到的节点嵌入向量:

2.1  过平滑问题

但是,当太多GNN层堆叠在一起,就会产生过平滑问题(The Over-smoothing Problem):不同节点的嵌入向量会收敛到非常相同的一个值,所有不同节点都有相同的输出,导致我们无法通过节点嵌入来区分不同的节点,影响下游预测任务(如节点分类)。

和过度平滑问题相关的还有感受野(Receptive Field):决定该节点嵌入的所有节点组成的集合。

对K层的GNN来说,每个节点都有一个K跳邻居的感受野。如上图可见,K越大,感受野越大。

对两个节点来说,如果要进行链接预测,我们将K(层数)变大,感受野的重合部分会迅速变大:

从上面两个图上都可以看到,当K=3时,几乎整个图上的节点都包含在感受野内,我们所关心的单个节点的嵌入与图上绝大部分节点都有联系,所以当网络在聚集邻居的信息时,所有神经网络基本都得到相同的输入,所以越来越难区分出节点嵌入的不同。

结论:节点的嵌入取决于它的感受野。当堆叠很多GNN网络层时,两个节点的感受野将会高度重合,它们的嵌入也会高度相似,进而难以区分不同的节点,导致我们所说的过平滑问题。

那么如何解决过平滑问题呢?

2.2  设计GNN网络层间的连接方式

2.2.1  思路1:谨慎地增加GNN的网络层

与其他领域的神经网络(比如用于图像分类的CNN)不同,增加更多的神经网络层并不能让GNN产生更好的效果。

  • 第一步:先分析解决问题所需的必要感受野(如测量图的直径:任意两个顶点间距离的最大值)
  • 第二步:设置GNN的层数 L 略大于我们想要的感受野

既然GNN层数不能太多,那么我们如何使一个浅的GNN更具有表现力呢?

方法1:增加GNN每个层的表现力

在我们先前的讨论中,每个信息转换和信息聚合函数仅包含一个线性层。我们可以将转换和聚合本身拓展成深度的神经网络,比如三层的MLP:

方法2:添加不传递信息的网络层

一个GNN模型不必只有GNN层,比如我们可以在GNN层之前或之后(分别叫预处理层Pre-process layers 和后处理层Post-process layers),对每个节点添加不传递信息的MLP层:

  • Pre-processing layers:如果节点特征必须经过编码就很重要(如永节点表示图像/文字时)
  • Post-processing layers:如果在节点嵌入的基础上需要进行推理或转换就很重要(如图分类、知识图谱等任务中)

在实践中,将经典的神经网络层和GNN结合起来也取得了不错的效果。

如果在实际任务还是需要很多层GNN网络应该如何处理呢?

2.2.2  思路2:在GNN中添加skip connections

在过平滑问题中我们发现,靠前的GNN层得到的节点嵌入能很好地将节点区分开。因此,我们可以增加靠前的GNN层对最终节点嵌入的影响力,实现方法是在GNN中添加捷径:

在Skip connection后,保存了上一层节点的嵌入向量,使线性转换前的嵌入和转换后的嵌入进行了汇总。

也就是说,每次Skip connection都会创建一个混合模型(比如上层和本层信息的加权组合),如下图所示:

N个skip connections相当于创建了2^{N}条路径,且每个路径最多有N个模块,这些路径都会对最终的节点嵌入产生影响,相当于自动获得了一个浅GNN和深GNN的融合模型。

Skip connection传送门:Residual Networks Behave Like Ensembles of Relatively Shallow Networks

 举例:在GCN上使用Skip connection

 除此之外,我们还可以直接跳到最后一层,在最后一层聚合之前各层的嵌入:


3  总结

本篇文章主要学习如何将单个的神经网络层堆叠连接起来,介绍了过平滑问题并提出了多种解决策略,包括:增强单个层的表现力、添加非GNN层、在GNN中添加skip connections等方法。

4  参考资料

http://web.stanford.edu/class/cs224w/slides/07-GNN2

cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space_诸神缄默不语的博客

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到