图神经网络越深,表现就一定越好吗?

人工智能 深度学习
数十层甚至数百层神经网络的应用,是深度学习的重要标志之一。但现实情况却远非如此:比如今年被视作机器学习领域最火热的研究方向之一——图神经网络,大多数都只运用了寥寥几层网络。

数十层甚至数百层神经网络的应用,是深度学习的重要标志之一。但现实情况却远非如此:比如今年被视作机器学习领域最火热的研究方向之一——图神经网络,大多数都只运用了寥寥几层网络。

[[336725]]

一般思路里,我们会认为图神经网络越深,效果就会越好。然而,日前帝国理工学院教授Michael Bronstein 发出了灵魂拷问:图神经网络的深度,真的会带来优势吗?

“深度图神经网络”是否被误用了?或者说,我们是否应该重新审视以前认为“图神经网络越深,效果就会越好”的思路,说不定“深度”反而对基于图的深度学习不利呢?

众所周知,深度图神经网络的训练过程非常艰难。除了研究者们能够在深层神经体系结构中观察到的典型难点外(比如大量参数导致反向传播梯度消失和过度拟合),还有一些图特有的难点,例如“过度平滑”:由于应用了多个图卷积层,节点特征趋于收敛到同一向量并逐渐变得难以区分。这个现象最早在GCN模型中观察到,其作用类似于低通滤波器。另一个图所特有的现象是“信息瓶颈”,会将信息从指数级数量的临域“过度挤压”到大小固定的向量中。

近日来,人们致力于解决图神经网络中的深度问题,希望图神经网络能有更好的表现,至少能避免“名义上是深度学习、实际上图神经网络却只应用了两层”的尴尬。

解决之道分为两派:第一类是正则化技术(regularisation techniques),例如 DropEdge 方法,结点特征之间的成对距离归一化(PairNorm)或结点均值和方差归一化(NodeNorm);第二类是架构调整,包括各类残差连接,例如知识跳跃或仿射残差连接。

虽然这些方法可以训练出具有数十层深度图神经网络(这是一项壮举,并非不可能实现),但却没有产生令人满意的效果。更糟糕的是,使用深度结构体系通常会导致性能的倒退。下表显示了一个典型的实验评估结果,比较了node-wise分类任务上不同深度的图神经网络的表现。

此表显示了深度图神经网络架构在CoauthorsCS引文网络的结点分类任务上的一般结果。深度越深,基线(带有残差连接的GCN)的表现越差,性能也从88.18%急剧下降至39.71%。使用NodeNorm技术的神经网络架构随着深度的增加会变得更好, 但是性能却开始下降(虽然仅是从89.53%降低到87.40%)。总体而言,64层深层架构获得的最佳结果(87.40%)还不如简单的基线(88.18%)。此外,我们注意到NodeNorm规则化可以改善浅层2层架构的性能(从88.18%增至89.53%)。上表源自论文《 Effective training strategies for deep graph neural networks》

从上表可以清晰看到,我们很难区分神经网络的“优势”是从深度网络架构获得的,还是从训练此类神经网络的“技巧”所获得的。上述示例中的NodeNorm还改进了仅有两层的浅层架构,从而实现了最佳性能。因此,我们无法确定在其他条件均相同的情况下,更深层数的图神经网络是否会表现得更好。

这些结果与基于网格结构数据的传统深度学习形成了鲜明的对比。在传统深度学习中,“超深度”架构能带来性能上的突破,在当今也得到了广泛应用。

接下来,作者尝试从以下几个方面来探索文章开头所提出的问题:图神经网络的深度越深,真的优势越大吗?不过作者也表示,他目前也没有一个明确的答案,希望下面这些探讨能够对大家的思考有所启发。

1、图结构

因为网格属于特殊图,目前也有一些案例可以说明深度对这类图有益。除网格图外,研究发现深度结构对一些象征结构的几何图(如分子、点云、网格等)是有促进作用的。为什么这些图与常用于评估图神经网络的引文网络(如Cora、PubMed与CoauthorsCS)如此不同呢?其中一个差异是引文网络就像直径小的“小世界”( small world),在这个“小世界”里,任意节点都可以在短短几步跳到其他节点。因此,感受野只需具备几层卷积层即能够覆盖整个图,再增加层数也无更大助益。另一方面,在计算机视觉中,感受野成倍增长,需要更多层数来建立一个能捕捉图中物体背景的感受野。

在上图顶部的“小世界”图中,只需几步就能从一个节点跳到其他任意节点,因此邻域的数量以及相应的图卷积滤波器的感受野呈指数快速增长。我们可以看到,从红色节点到任意节点仅需两跳(不同颜色表示从红色节点开始到达各个节点的图层)。另一方面,在上图底部的网格图上,我们看到感受野呈多项式增长,因此需要更多的层数才能形成大小相同的感受野。

如上图所示,邻域呈指数增长,并出现了“信息瓶颈”现象:来自许多个领域的大量信息不得不被挤压成单个的节点特征向量,结果导致信息无法传播,且模型性能下降。

2、远程问题vs.短程问题

作者认为在探讨深度与图深度学习的关系时会涉及到远程与短程信息的处理。比方说,社交网络的预测只依赖本地领域节点的短程信息,无法添加远程信息进行改善,因此多运用浅层GNN进行预测。另一方面,分子图往往需要用到远程信息,因为分子的化学性质可能由其相斥的原子组合决定。深度GNN可能会被应用于处理远程信息,但如果图结构导致感受野呈指数增长,信息瓶颈现象则会阻止远程信息的有效传播。这也是为什么深度模型的性能无法提高。

3、理论局限性

深度结构除了能使感受野更广,还能使计算机视觉基于简单特征合成复杂特征。研究者通过将卷积神经网络从人脸图像学到的特征可视化,发现简单的几何图元逐渐变得越来越复杂,并最终能形成完成的面部结构。这个现象表明传说中的“祖母神经元”(grandmother neuron)很可能真实存在。

这些将简单特征合成为复杂特征的方法,对图来说看似天方夜谭。比方说,无论神经网络的层数有多深,都无法基于边缘角/线合成一个三角形。另一方面,研究表明,必须设定最小深度,才能使用通过网络的消息来计算图的属性。目前人们无法确定哪些图的属性可以通过浅层GNN计算、哪些必须通过深层模型计算、哪些又是任何类型的GNN都根本无法计算的。

以下是卷积神经网络基于人脸图像学习到的人脸特征示例。大家可以注意到:随着图层的加深,图像特征逐渐变得更复杂,人脸结构也更加齐全。

图源自Matthew Stewart的一篇博文:https://towardsdatascience.com/advanced-topics-in-deep-convolutional-neural-networks-71ef1190522d

4、深度与丰富度

图深度学习与计算机视觉相反的一点在于:在计算机视觉中,底层网格是固定的,而在图深度学习中,图结构是一个非常重要的考虑要素。标准图神经网络无法定位的一些复杂高阶信息(如motifs 和substructure counts),我们有可能设计出更精细的信息传递机制来解决。比方说,研究人员可以选择配备多跳滤波器(multi-hop filters)的浅层网络,而不是运用简单的单跳卷积(1-hop convolutions)深度结构。

Michael Bronstein在他最近发表的一篇关于可伸缩初始类图神经网络(Scalable inception-like graph neutral networks, SIGN)的论文里,详尽讲解了如何使用具备多个预计算滤波器(multiple pre-computed filters)的单层线性图卷积结构,并展示了该网络与更复杂数十倍的模型想比,性能不相上下。有趣的是,计算机视觉采取的方法与图深度学习截然相反:早期使用大型滤波器(高达11×11)的浅层卷积神经网络(CNN)结构(比如AlexNet),后来都被使用小型滤波器(一般为3×3)的深度结构所取代了。

5、评估 

目前评估图神经网络的常见方法,遭到了Oleksandr Shchur和Stephan Günnemann小组成员的严重质疑。他们聚焦于常见基准的缺陷,并指出简单模型和复杂模型在相同条件下的表现相差无几。

我们观察到的一些与深度结构相关的现象(包括性能随深度加深而降低),可能仅是因为小型数据集的过度拟合。全新的 Open Graph Benchmark能为大规模图像提供严格的训练和测试数据拆分方法,在一定程度上解决了上述的一些问题。作者认为,研究者需要精心设计实验过程,以便更好地了解深度对图深度学习是否有用、以及在什么时候能发挥作用。

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

责任编辑:未丽燕 来源: 雷锋网
相关推荐

2017-05-23 18:54:18

深度学习人工智能

2023-05-04 07:39:14

图神经网络GNN

2020-09-09 10:20:48

GraphSAGE神经网络人工智能

2023-03-11 13:15:01

AI模型系统

2018-07-03 16:10:04

神经网络生物神经网络人工神经网络

2022-10-17 08:21:29

UDPTCP

2019-11-19 08:00:00

神经网络AI人工智能

2021-01-08 11:23:08

IP核

2022-07-28 09:00:00

深度学习网络类型架构

2024-04-30 14:54:10

2017-05-22 14:45:51

大数据神经网络架构

2018-07-29 06:46:07

神经网络RNN循环神经网络

2016-12-27 14:24:57

课程笔记神经网络

2022-03-02 14:53:34

人工智能神经网络

2022-07-27 09:53:06

神经网络结构

2020-08-30 14:31:40

Python编程语言开发

2018-04-08 11:20:43

深度学习

2022-02-23 09:27:37

神经网络人工智能模型

2023-02-09 08:53:26

GNN神经网络深度学习

2017-09-10 07:07:32

神经网络数据集可视化
点赞
收藏

51CTO技术栈公众号