作者在不同任务中尝试了节点式归一化(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)是同样的计算,在图的边上的体现。