ICLR 2023 | 表达力 v.s. 泛化性:我们真的需要更强大的GNN吗?
本文分享一篇 ICLR 2023 的最新工作,通过大量实验和理论分析揭示了图学习领域的一个普遍现象,对 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 和 GNN 之间的新模型,称作为 Propagational Multi-Layer Perceptron(PMLP),它的设计关键在于: 在训练的时候去掉信息传递(MP)层,但在测试的时候加回上去。因此,PMLP 在训练时完全等价于 MLP(同样的模型结构、拟合能力、训练过程、训练结果等等),不同之处只在于在测试时通过插入额外的信息传递层变成相对应的 GNN 结构。
这三种模型对应的 PMLP 版本在训练时的模型结构都是最简单的 MLP,而在测试时的模型结构则是将 MP 层相应的插入回去。除此之外,对于一些更复杂的 GNN 模型我们也可以得到其对应的 PMLP 版本。例如 GCNII 对应的 PMLP 在训练时的结构可以看作带 residual 连接的 MLP。
(PMLP 的实现)代码实现 PMLP 非常简单,我们在提供了多种不同(但等价)的实现方式以及快速的教程,其中最简单的版本只需要在原来 GNN 的代码基础上修改一行代码:
我们在这里用伪代码介绍默认的一种实现方式,它将三个模型(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)
具体控制何时何地使用消息传递层。
实验和讨论
此外,PMLP 与其相对应的 GNN 一样有效,甚至在某些情况下超过了 GNN。以上结果表明:首先,GNN 相对于 MLP 所带来的性能提升并非纯粹源于更强大的表示能力,而是泛化能力;其次,消息传递的模型结构设计确实可以帮助 MLP 取得更好的泛化能力,尽管目前仍不清楚它具体如何帮助 MLP 在未见过的测试数据上实现泛化,我们稍后将尝试通过理论分析来解答这个问题。
(实验现象的一致性)另外,我们还做了一系列相关的讨论,包括:1. 模型深度,2. 模型宽度,3. 前馈层的实现形式,4. 信息传递层的实现形式,5. 图结构的稀疏程度,6. 图结构中的噪声,7. 过平滑,8. 残差连接,9. 图异质性。特别的,我们发现当图结构中带有很多噪声时,PMLP 能取得显著比 GNN 更好的性能,可能由于它在训练的阶段避开了使用包含噪声的图结构。感兴趣的读者可以进一步阅读论文获取更多信息。
理论分析
神经正切核(Neural Tangent Kernel,NTK)是一种用于理解神经网络学习行为的工具,它将神经网络视为一个无限宽度的神经网络,即网络中的神经元数量趋近于无穷大。在这种情况下,使用无穷小步长的梯度下降算法训练过参数化的神经网络等价于使用 NTK 进行核回归(Kernel Regression):
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者