本文分享一篇 ICLR 2023 的最新工作,通过大量实验和理论分析揭示了图学习领域的一个普遍现象,对 GNN 的本质性原理引发了一系列新的思考。
论文题目:
Graph Neural Networks are Inherently Good Generalizers: Insights by Bridging GNNs and MLPs
论文链接:
https://arxiv.org/pdf/2212.09034.pdf
代码链接:
https://github.com/chr26195/PMLP
引言
图神经网络(简称 GNN)目前已被广泛应用于各类任务,且在很多场景下都展现了显著超越多层感知器(简称 MLP)的性能。目前绝大部分研究都把 GNN 的能力归因于其更强大的表征/拟合能力:相比于 MLP 只能利用每个样本自己的信息来计算表征,GNN 每层计算会不断聚合邻居节点(即相连样本)的特征,从而利用全局的信息来计算每个样本的表征。
然而这一认识事实上也与一些常见的实验现象是不符的:例如在最常用的 Cora 数据集上,对于良好调过参的 MLP,虽然其无法在测试性能上比肩 GNN,但也能在训练集上取得 100% 的准确率。这就说明至少在这个 case 中,MLP 的拟合能力并不逊色于 GNN,而导致其测试性能不足的关键在于无法具有 GNN 的泛化能力。
1. 表征/拟合能力:指模型拟合观测数据的能力,通常可以由训练误差反映;
2. 泛化能力:指模型泛化到新数据上的能力,通常可以由测试集误差与训练误差之间的差距反映。
带着这一观察,我们在这篇 ICLR 2023 的工作中引入了一类介于 MLP 和 GNN 之间的中间模型 Propagational MLP(简称 PMLP),它在训练时模型架构等价 MLP,但在测试时模型架构等价于 GNN(即在模型中间层插入额外的信息传递)。通过在 16 个不同规模/性质的公开 benchmark 以及使用不同的 GNN 和超参数组合的实验,我们惊奇的发现了两个一致存在的实验现象:
(现象一)PMLP在测试集上的性能显著好于 MLP;
(现象二)PMLP在测试集上可以表现得与 GNN 相当,甚至在有些情况下超越 GNN。
这一发现也带来了几点新的思考与启发:
现象一表明 GNN 在测试阶段的信息传递操作(相比于 MLP 唯一的不同)可以提升模型的泛化性,而现象二表明 GNN 相比于 MLP 的测试性能提升几乎完全来源于测试阶段引入的信息传递操作。结合以上两点我们可以得出结论,GNN 表现好于 MLP 的主要原因来自于模型本身更好的泛化性能,而泛化性的提升主要来自于信息传递操作。
PMLP 可以作为一类新的模型架构,其同时具备了 MLP 的训练高效性(不需要在计算图中引入图结构,从而大大节省了训练开销)和 GNN 的性能优越性(测试集性能比肩对应的 GNN)。
基于本文的主要结论,对于未来 GNN 的使用和开发,如何利用好其模型本身的泛化能力和进一步提升 GNN 的泛化性(如在具有分布偏移、观测缺失的情况下)值得进一步的研究。而对于一般神经网络架构的改进,本文的结论也意味着可以通过设计更好的信息传递方式来提升模型的泛化性。
模型和实现
多层感知机(MLP)是一类最经典的神经网络模型,它由多个前馈(Feed-Forward,FF)层构成,每一层包含一个可学习的权重用于特征线性转换和一个激活函数来引入非线性。
与传统的 MLP 类似,图神经网络(GNN)也将前馈层作为核心组成构件,即在每一层中使用了相同的权重矩阵和激活函数。但是不同的是,GNN 将信息传递(Message Passing,MP)或称图卷积操作引入到了模型结构设计中,使得单个节点能够在每一层不断聚合邻居节点的特征信息。在去掉信息传递层之后,GNN 的结构就能够等价于 MLP。
在本文中,我们提出了一类介于 MLP 和 GNN 之间的新模型,称作为 Propagational Multi-Layer Perceptron(PMLP),它的设计关键在于: 在训练的时候去掉信息传递(MP)层,但在测试的时候加回上去。因此,PMLP 在训练时完全等价于 MLP(同样的模型结构、拟合能力、训练过程、训练结果等等),不同之处只在于在测试时通过插入额外的信息传递层变成相对应的 GNN 结构。
(对不同 GNN 的适用性)PMLP 的定义可以适用于不同的 GNN,具体的训练/测试时对应的模型结构如下表所示。GCN 的结构可以看作 MP 和 FF 层的交替堆叠;SGC 可以看作先使用多层 MP,再使用FF层;APPNP 的结构则是先使用FF对输入特征变换再使用多层 MP。
这三种模型对应的 PMLP 版本在训练时的模型结构都是最简单的 MLP,而在测试时的模型结构则是将 MP 层相应的插入回去。除此之外,对于一些更复杂的 GNN 模型我们也可以得到其对应的 PMLP 版本。例如 GCNII 对应的 PMLP 在训练时的结构可以看作带 residual 连接的 MLP。
(PMLP 的实现)代码实现 PMLP 非常简单,我们在提供了多种不同(但等价)的实现方式以及快速的教程,其中最简单的版本只需要在原来 GNN 的代码基础上修改一行代码:
https://github.com/chr26195/PMLP
我们在这里用伪代码介绍默认的一种实现方式,它将三个模型(MLP,PMLP,GNN)合并在一个类中。这种实现的关键思想是在self.forward()
函数中为任何 GNN 类添加一个 use_conv = True / False
参数。要实现 PMLP,只需在训练和验证中将此参数设置为 False
,然后在测试中将其重置为 True
。
class GNN(nn.Module):
...
def forward(self, x, edge_index, use_conv = True):
...
x = self.feed_forward_layer(x)
if use_conv:
x = self.message_passing_layer(x, edge_index)
...
return x
# training
gnn.train()
for epoch in range(args.epochs):
y_pred = gnn(x, edge_index, use_conv = False)
...
# inference
gnn.eval()
y_pred = gnn(x, edge_index, use_conv = True)
这种实现非常灵活。如果在训练和测试中都使用 use_conv = True
,则该模型等效于原始的 GNN。如果在训练和测试中都使用 use_conv = False
,则该模型等效于原始的 MLP(或其他“主干”模型)。我们可以在这种实现基础上开发许多 PMLP 的扩展,以适应新任务或进一步提高性能。例如,我们可以指定 def if_use_conv(**args)
具体控制何时何地使用消息传递层。
实验和讨论
我们考虑在 Inductive 节点分类任务中对比三类模型(MLP,GNN,PMLP)的性能。与常见的半监督节点分类不同,Inductive 节点分类保证了所有模型在训练的时候都无法利用测试/无标签节点的信息,因此能够保证实验对比的公平性。部分结果如表所示。我们发现,有趣的是,尽管使用相同的模型和相同的可训练参数,不同 PMLP 变体在所有数据集上的表现都大幅超越 MLP。
此外,PMLP 与其相对应的 GNN 一样有效,甚至在某些情况下超过了 GNN。以上结果表明:首先,GNN 相对于 MLP 所带来的性能提升并非纯粹源于更强大的表示能力,而是泛化能力;其次,消息传递的模型结构设计确实可以帮助 MLP 取得更好的泛化能力,尽管目前仍不清楚它具体如何帮助 MLP 在未见过的测试数据上实现泛化,我们稍后将尝试通过理论分析来解答这个问题。
(实验现象的一致性)另外,我们还做了一系列相关的讨论,包括:1. 模型深度,2. 模型宽度,3. 前馈层的实现形式,4. 信息传递层的实现形式,5. 图结构的稀疏程度,6. 图结构中的噪声,7. 过平滑,8. 残差连接,9. 图异质性。特别的,我们发现当图结构中带有很多噪声时,PMLP 能取得显著比 GNN 更好的性能,可能由于它在训练的阶段避开了使用包含噪声的图结构。感兴趣的读者可以进一步阅读论文获取更多信息。
理论分析
为了从理论上回答为什么 “GNN 天生具有良好的泛化能力”,解释 PMLP 和 GNN 良好的泛化表现,我们从神经正切核的角度比较 MLP、PMLP 和 GNN 这三类模型,研究测试时的模型结构对神经网络泛化性能的影响。
神经正切核(Neural Tangent Kernel,NTK)是一种用于理解神经网络学习行为的工具,它将神经网络视为一个无限宽度的神经网络,即网络中的神经元数量趋近于无穷大。在这种情况下,使用无穷小步长的梯度下降算法训练过参数化的神经网络等价于使用 NTK 进行核回归(Kernel Regression):
其中 表示核回归的参数,对应于神经网络中所有的参数摊平成一个向量。从这个角度来看,在测试阶段使用额外的消息传递层意味着将核函数的特征映射从 MLP 的特征映射 转换为 GNN 的特征映射 ,同时固定 。因此,GNN 具有更好的泛化性能的关键在于在测试时将特征映射从 转换为 。
下面我们进一步分析不同特征映射函数对泛化的影响。一言以蔽之,我们发现由于 GNN 和 PMLP 在测试阶段使用的 GNN 神经网络结构,它们能更好地泛化(或称外推 /Extrapolate)到分布外(Out-of-Distribution)的测试节点。具体而言,我们有以下的理论结论:
定理 4 揭示了 GNN 的泛化缺陷,即当测试样本不停远离训练数据时,PMLP 和 GNN (类似于普通的 MLP)都会最终收敛成为一个线性函数,即无法对分布外的样本进行有效的预测。但与 MLP 不同的一点是,PMLP 和 GNN 相应的线性系数反映了子图的属性,而不是一个固定的常数。
定理 5 进一步揭示了,由于 GNN 结构引入了额外的消息传递层,PMLP 和 GNN 收敛到线性模型的速度远比 MLP 要小。这表明它们更不容易线性化,并且更容易在靠近训练数据的测试样本上实现更好的泛化。该结果的直觉可以用以下的示意图来表示。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·