摘要

作者在不同任务中尝试了节点式归一化(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)即可投稿~

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

  1. 【论文解读】Graph Normalization (GN):为图神经网络学习一个有效的图归一化

    作者|平安产险视觉计算组 编辑丨极市平台 本文为极市开发者投稿,转载请获授权. 极市专栏 论文推荐:在图神经网络里面,应该如何选择更好的归一化技术?本文将介绍一种为图神经网络学习有效的图归一化的方式. ...

  2. 图神经网络学习记录:《图神经网络综述:模型与应用》

                                        Graph Neural Networks: A Review of Methods and Applications 摘要:大 ...

  3. 【GNN报告】考虑拓扑信息的图神经网络学习

    1.简介 打算之后在本博客里存放BAAI里面邀请的所有演讲者有关GNN的报告学习(本人筛选的都是自己感兴趣的或者感觉还不错的) 2.报告 腾讯林衍凯:图神经网络,考虑「拓扑信息」会怎样? [专栏:前沿 ...

  4. 图神经网络(GNN):同质图模型【GCN/GraphSAGE/GAT...】、异质图模型【HAN/HetGNN...】

    目前的图神经网络主要针对同质图(节点类型和边类型单一)设计. 同质图中只有一种类型的节点和边(例如,只有朋友关系的社交网络),网络结构较为简单.因此,同质图神经网络通常只需要聚合单一类型的邻居来更新节 ...

  5. 2023.2.3,周五【图神经网络 学习记录17】二部图——BiNE算法:显式关系,隐式关系;新的随机游走方式 特点:随机游走次数 是跟节点中心性相关的,在随机游走的过程中 添加一个停止随机游走的概率

    声明:仅学习使用~ 前情提要: 2023.2.2,周四[图神经网络 学习记录16]异构图Graph Embedding算法--GATNE(异构图多属性 多边 类型算法),不建议普通PC跑-PyChar ...

  6. 图神经网络学习笔记-01基础

    图神经网络-01基础-图与图学习 文章目录 图神经网络-01基础-图与图学习 图是什么 图的定义 图的基本表示方法 e.g 图的存储 图的类型和性质 图算法 1. 寻路和图搜索算法 1). 搜索算法 ...

  7. 【笔记整理】图神经网络学习

    [笔记整理]图神经网络学习 文章目录 [笔记整理]图神经网络学习 一.GNN简介 1.图结构 & 图基础算法 1)引言("非欧几何, 处理图数据的NN") 2)图基本概念 ...

  8. 逆势而上的技术:图神经网络学习来了!

    要问这几年一直在逆势而上的技术有哪些?你一定不会忽略它--图神经网络. 相比传统神经网络,图神经网络的优势非常明显: 1.非顺序排序的特征学习:GNN的输出不以节点的输入顺序为转移的. 2.两个节点之 ...

  9. 2023.2.9,周四【图神经网络 学习记录23】动态图算法 之 SGNN(DGNN):更新组件(update component),传播组件(propagation component)

    路虽远,行则将至. 声明:仅学习使用. 前情提要: 2023.2.9,周四[图神经网络 学习记录22]动态图算法 之 EvolveGCN:离散型动态GNN网络,将GNN和RNN结合到同一层,结合时间和 ...

最新文章

  1. npm WARN enoent ENOENT: no such file or directory
  2. 虚拟机克隆Linux操作系统后解决MAC地址冲突
  3. instanceof_您真的需要instanceof吗?
  4. ASP.NET常用代码
  5. 手把手maven的功能/安装/使用/idea集成
  6. MySQL数据库的自动备份与数据库被破坏后的恢复
  7. 黑客攻防技术宝典Web实战篇第2版—第3章 Web应用程序技术
  8. 统计学习方法 --- 感知机模型原理及c++实现
  9. Google,Guava本地高效缓存
  10. oracle查询所有表字段属性_MybatisPlus基础篇学习笔记(四)------查询方法
  11. 《Excel数据处理与分析实战技巧精粹》扫描版[PDF]
  12. 北大核心期刊目录2020_音乐舞蹈类核心期刊目录(2020年最新收藏版)
  13. CSS设置div水平垂直居中
  14. c语言中整型实型是什么,C语言中为何整型变量以实型变量输出为0?
  15. 《环球》杂志|“宇宙级”漏洞过后,一个技术总裁的忠告……
  16. boot版本是什么 cent os_CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
  17. 同花顺python_这是真的么 | 学会了用Python预测股票价格
  18. 初识人脸识别---人脸识别研究报告(概述篇)
  19. NDS游戏与FLASH游戏
  20. Redhat系列系统在线镜像源

热门文章

  1. php foreach循环中的变量
  2. 静默安装Azure CLI
  3. HDU1824 2-sat
  4. 平面设计师必备的十个技能
  5. Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号
  6. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解
  7. iso qemu 安装ubuntu_在 Ubuntu 6.06 上安装 qemu 和 kqemu(zz)
  8. gson解析天气json_几种常用JSON解析库性能比较
  9. Quartus II13.1安装教程
  10. Android studio | From Zero To One ——简单布局(View和LinearLayout)