Graph Normalization (GN):为图神经网络学习一个有效的图归一化

摘要

作者在不同任务中尝试了节点式归一化(Node-wise),邻接式归一化(Adjance-wise),图式归一化(Graph-wise)和批处理归一化(Batch-wise)作为归一化计算方式,来分析每种归一化方式的优劣,并提出一种基于学习的四合一自动加权组合的方式来学习适合当前任务的图归一化。

Paper:
Learning Graph Normalization for Graph Neural Networks
https://arxiv.org/abs/2009.11746
Source Code:
https://github.com/cyh1112/GraphNormalization

背景

图神经网络(GNN)近年来吸引了大量的关注,因为图神经网络成为了处理图结构数据最有希望的一种范例。图神经网络通过堆叠多层,每一层通过节点间的信息传递与聚合来更新每个节点的表示,多层信息传递,可以捕捉远程节点之间的依赖关系,而带来更好的性能。要训练一个多层的GNN,归一化技术是必不可少的。但不同的归一化技术对不同任务有不一样的表现,最近arXiv上公开的一篇文章《Learning Graph Normalization for Graph Neural Networks》探讨了在图神经网络里面,应该如何选择更好的归一化技术。

核心思想介绍

首先我们来看在论文中提到的四种归一化技术,(a)节点式(node-wise)归一化,其实类似于NLP里面的层归一化(LayerNorm), 每个节点单独来计算归一化;(b)邻接式归一化(Adjance-wise)是将该节点的邻接节点信息加进来一起计算归一化,在查阅源代码之后,这一点实现作者用了一个比较巧妙的实现方式,利用dgl的消息传递机制,邻接节点特征聚合到中心节点之后再计算归一化,等于是做了两次的信息传递。(c)图式(Graph-wise)归一化, 就是利用整个图所有节点的特征来计算归一化,归一化只考虑图内信息,而不是考虑整个数据库的分布。(d)批处理式(Batch-wise)归一化,在CV领域最常用的归一化方式。(e)(f)(g)(h)是同样的计算,在图的边上的体现。

节点式归一化Node-wise Normalization计算如下:,

本质上Node-wise Normalization和LayerNorm的计算方式是一样的, 只是LayerNorm经常用在NLP任务中,NLP任务中数据大多是Sequence化的,如Transformer, Bert。而图中的数据不一定是序列化,大多数情况下不是序列化的,因此Node-wise Normalization对哪类图问题会比较好是疑问。

邻接式的归一化计算Adjance-wsie Normalization如下:

其中k表示第k个图, i表示第i个节点, 表示第k个图中第i个节点的所有近邻节点。

邻接式的Normalization的计算量要大一点。

图式的归一化计算 Graph-wise Normalization如下:

其中 G _ k \mathcal{G}\_{k} G_k表示第k个图中的所有节点, ∣ G _ k ∣ \left|\mathcal{G}\_{k}\right| G_k表示第k个图中所有节点的数量。

批处理式的归一化计算 Batch-wise Normalization如下:

Batch-wise Normalization和BN本质上也是等价的。BN是CV中至关重要的一个技术,有效的改善了梯度爆炸的问题。

除了以上四种归一化技术之后,作者还提出一种自动学习加权组合的归一化技术(United Graph Normalization), 将以上四种归一化技术,加上可学习权重lambda,在lambda可视化中也可以看到,这个lambda权重学习有一定倾向性,作用越大的归一化方式,对应lambda权重越大,公式如下:

在不同数据集上,随着层次变化权重的分布图如下:

在节点分类上,图式的归一化效果好,它在最后一层的权重就大,在图分类和图回归上面批处理式的效果好,它在最后一层权重就大。在边预测问题上面规律没有图分类回归明显。

4种归一化方法分析

节点式归一化: 等同于层归一化(LayerNorm),只考虑自身特征,但忽略了邻域和图结构等信息。

邻接式归一化: 计算引入邻接节点的信息,能反映节点在不同邻域的差异。

图式归一化: 在单图做归一化,能体现图内节点在图中的差异,在节点分类任务中表现更加优异。

批处理归一化: 与标准的批处理归一化一样,但当在单图任务上时,与图式归一化相似。只是在训练的时候一个用momentum,一个不用。

实验

论文除了follow [1]中的实验之外,还做了一个关键信息抽取SROIE的任务,这个任务有四个关键字段,’公司名’、’地址’、’时间’、’合计金额’,如下图所示。论文把关键信息抽取看出是一个节点分类任务,其中’公司名’和’地址’可能包含多行,也就是多个节点,只有当所关键字段包含的所有节点都同时分类正确才算对,否则就算错误。

结果如下表:

结论

在实验结果和lambda的可视化分析中,我们可以发现,图式归一化和邻接式的归一化在节点分类上性能突出,这也说明节点分类更依赖节点所在邻域信息,或者节点所在图中位置的信息。而批处理归一化在在图分类和图回归任务中表现很好。而组合式的归一化( United Graph Normalization)可以调节不同归一化结果的比重,来达到更好的性能,同时也有一个体现,lambda权重越大,对应单一归一化结果也更好。我们也可以通过lambda的分布来判断哪种归一化更适合。

本文为极市开发者原创投稿,转载请注明来源。极市「论文推荐」专栏,帮助开发者们推广分享自己的最新工作,欢迎大家投稿。联系极市小编(fengcall19)即可投稿~

猜你喜欢

转载自blog.csdn.net/Extremevision/article/details/109813885