论文解读(ChebyGIN)《Understanding Attention and Generalization in Graph Neural Networks》
论文信息
论文标题:Understanding Attention and Generalization in Graph Neural Networks
论文作者:Boris Knyazev, Graham W. Taylor, Mohamed R. Amer
论文来源:2019,NeurIPS
论文地址:download
论文代码:download
1 Introduction
本文关注将注意力 GNNs 推广到更大、更复杂或有噪声的图。作者发现在某些情况下,注意力机制的影响可以忽略不计,甚至有害,但在某些条件下,它给一些分类任务带来了超过 60% 的额外收益。
2 Attention meets pooling in graph neural networks
注意力机制可以用在边上,也可以用在节点上,传统的 GAT 是用在边上,本文更关注于节点上的注意力机制。
注意力机制在CNN里一般用以下公式表达:
$Z=\alpha \odot X \quad\quad\quad(1)$
其中:
- $X \in \mathbb{R}^{N \times C}$ 代表输入;
- $Z_{i}=\alpha_{i} X_{i}$ 是使用注意力机制后的输出;
- $\alpha$ 是注意力系数,并有 $\sum_{i}^{N} \alpha_{i}=1$;
在 Graph U-Nets 的 $\text{Eq.2}$ 中,同样使用到了注意力机制:
$Z_{i}=\left\{\begin{array}{ll}\alpha_{i} X_{i}, & \forall i \in P \\\emptyset, & \text { otherwise }\end{array}\right.\quad\quad\quad(2)$
其中:
- $P$ 是一组集合节点的索引,且有 $|P| \leq N$;
- $\emptyset$ 表示输出中不存在该单元;
本文的 $\text{Eq.2}$ 和 $\text{Eq.1}$ 的不同之处在于,在 Graph U-Nets 中 $Z \in \mathbb{R}^{|P| \times C}$ 表明只使用了部分节点,即保存了 $r=|P| / N \leq 1$ 部分的节点。
本文设计了两个简单的图形推理任务,让我们在一个受控环境中研究注意力,了解地面真实注意力。第一个任务是计算图中的颜色,其中颜色是一个唯一的离散特征。第二个任务是计算图形中的三角形的数量。我们在一个标准基准,MNIST[13](Figure1)上证实了我们的观察结果,并确定了影响注意力有效性的因素。
3 Model
本文研究了两种GNNs:GCN 和 GIN,其中 GIN 将原有的 MEAN aggregator 替换为 SUM aggregator,然后使用一个 FC 层。
3.1 Thresholding by attention coefficients
使用 Graph U-Nets 中的方法,需要使用预定义的比率 $r=|P| / N$ 为整个数据集选择节点。比如对每个 pooling 设置 r = 0.8 即 80% 的节点被保存下来。直观地说,对于大小不同的图,这个比率应该是不同的。因此,建议选择阈值 $\tilde{\alpha}$,这样就只传播具有注意值 $\alpha_{i}>\tilde{\alpha}$ 的节点:
$Z_{i}=\left\{\begin{array}{ll}\alpha_{i} X_{i}, & \forall i: \alpha_{i}>\tilde{\alpha} \\\emptyset, & \text { otherwise }\end{array}\right. \quad\quad\quad(3)$
Note:图中删除的节点不同于保存的节点,其特征的值是非常小的,甚至为 $0$。在本实验中,相近邻域的节点通常有相似 $\alpha$ ,因此整个局部邻域被合并或者丢弃,而不是基于聚类的方法将每个邻域压缩为单个节点。
3.2 Attention subnetwork
为了训练一个预测节点系数的注意模型,我们考虑了两种方法:
- Linear Projection[11]:只有单层投影 $\mathbf{p} \in \mathbb{R}^{C}$ 需要被训练:$\alpha_{\text {pre }}=X \mathbf{p}$;
- DiffPool[10],其中训练了一个单独的 GNN:$\alpha_{\text {pre }}=X \mathbf{p}$;
在所有情况下,我们在[11]中使用 softmax 激活函数而不是 tanh,因为它提供了更可解释的结果和稀疏输出:$\alpha=\operatorname{softmax}\left(\alpha_{p r e}\right)$ 。为了以监督或弱监督的方式训练注意力,我们使用 KL 散度损失。
3.3 ChebyGIN
有些结果下,GCNs 和 GINs 表现的较差,本文将 GIN 和 ChebyNet 进行融合,研究了 $K=2$ 的 ChebyGIN。
4 Experiments
4.1 Datasets
本文引入了颜色计数任务,即统计图中绿色的节点有多少个,对于绿色节点设置 注意力系数为 $\alpha_{i}^{G T}=1 / N_{\text {green }}$。
TRIANGLES
统计图中有多少个三角形?显然一个简单 的方法是计算:$\operatorname{trace}\left(A^{3}\right) / 6$ 。
接着对每个节点设置注意力系数:$\alpha_{i}^{G T}=T_{i} / \sum\limits _{i} T_{i}$,其中 $T_{i}$ 是多少个三角形包含节点 $i$。
4.2 Generalization to larger and noisy graphs
在颜色实验中添加了另外一个通道,变成 $4$ 个通道 [ c_1,c_2,c_3,c_3 ],然后其中 [0,1,0,0] 的时候代表绿色,其他的时候 $[c_1,0,c_3,c_4]$ 其中 $c_1$,$c_3$,$c_4$,可以是 $0-1$ 之间的数值,代表红色,蓝色,透明色的三种颜色的混合。
在三角形计数实验中,也引入了更多的节点数。
在MNIST数据集的实验中,加入了高斯噪音,是的模型的识别度更高。
4.3 Network architectures and training
对于 COLORS 和 TRIANGLES,我们最小化了其他任务的回归损失(MSE)和交叉熵(CE),对于有监督和弱监督实验,本文还最小化了 ground truth attention $\alpha^{G T}$ 和 predicted coefficients $\alpha$ 之间的 KL 散度。
为了评估注意力系数的正确性,遵循CNN的方式,我们在训练完一个模型之后呢,移除这个节点,再计算预测一个标签,计算与原始标签的差异,这样来计算出一个评估的 $\alpha$ 系数:
5 Experiments
6 Conclusion
证明了注意力对于图神经网络是非常强大的,但是由于初始注意力系数的敏感性,要达到最优是很困难的。特别是在无监督的环境中,由于不能确定初始注意力系数的值,使得这样的训练更加困难。我们还表明,注意力可以使GNN对更大,更嘈杂的图形有更强的能力。同时本文提出的弱监督模型和有监督模型具有相似的优势性。
论文解读(ChebyGIN)《Understanding Attention and Generalization in Graph Neural Networks》的更多相关文章
- 论文解读(DAGNN)《Towards Deeper Graph Neural Networks》
论文信息 论文标题:Towards Deeper Graph Neural Networks论文作者:Meng Liu, Hongyang Gao, Shuiwang Ji论文来源:2020, KDD ...
- 论文解读(Geom-GCN)《Geom-GCN: Geometric Graph Convolutional Networks》
Paper Information Title:Geom-GCN: Geometric Graph Convolutional NetworksAuthors:Hongbin Pei, Bingzhe ...
- 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
论文信息 论文标题:Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks论文作者:Mingqi Yang, Ya ...
- 论文解读(SelfGNN)《Self-supervised Graph Neural Networks without explicit negative sampling》
论文信息 论文标题:Self-supervised Graph Neural Networks without explicit negative sampling论文作者:Zekarias T. K ...
- 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》
论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...
- 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》
论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ...
- 论文解读(GIN)《How Powerful are Graph Neural Networks》
Paper Information Title:<How Powerful are Graph Neural Networks?>Authors:Keyulu Xu, Weihua Hu, ...
- 论文解读(LA-GNN)《Local Augmentation for Graph Neural Networks》
论文信息 论文标题:Local Augmentation for Graph Neural Networks论文作者:Songtao Liu, Hanze Dong, Lanqing Li, Ting ...
- 论文解读(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
论文信息 论文标题:GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks论文作者:Tianxi ...
随机推荐
- 手绘图解java类加载原理
摘要:这也许是全网"最大"."最细"."最深"的java类加载原理图解了. 本文分享自华为云社区<[读书会第12期]这也许是全网&qu ...
- Jwt隐藏大坑,通过源码帮你揭秘
前言 JWT是目前最为流行的接口认证方案之一,有关JWT协议的详细内容,请参考:https://jwt.io/introduction 今天分享一下在使用JWT在项目中遇到的一个问题,主要是一个协议的 ...
- Jmeter之测试片段--include控制器进行接口测试以及管理测试用例
1.线程组--右键添加--测试片段--测试片段 2.在测试片段中进行添加测试用例如下图: 3.通过include控制器进行调用测试片段 (通常使用全局) 选择线程组--右键添加--逻辑控制器--Inc ...
- 在Visual C++ 6.0中无法使用gets()函数的解决办法
问题 昨晚遇到一个有意思的问题,明明在Visual Studio 2019运行好好的C语言代码,Copy到Visual C++ 6.0中就无法编译通过了,错误提示信息如下: error C2143: ...
- 2.2 追求并发的极致-线程概论 -《zobolの操作系统学习札记》
2.2 追求并发的极致-线程概论 为了追求程序运行之间的并发性,计算机科学家们发明了进程.为了进一步的追求进程内部的并发性,工程师们又提出了线程. 正是线程的出现,给予了程序员更多地操纵OS的自由,可 ...
- BUUCTF-后门查杀
后门查杀 后门查杀这种题最好还是整个D盾直接扫描目录方便. 查看文件得到flag
- 不同的子序列问题I
不同的子序列问题I 作者:Grey 原文地址: 不同的子序列问题I 题目链接 LeetCode 115. 不同的子序列 暴力解法 定义递归函数 int process(char[] str, char ...
- UiPath循环活动Do While的介绍和使用
一.Do While的介绍 先执行循环体, 再判断条件是否满足, 如果满足, 则再次执行循环体, 直到判断条件不满足, 则跳出循环 二.Do While在UiPath中的使用 1. 打开设计器,在设计 ...
- Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的.本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所 ...
- 使用C#编程语言开发Windows Service服务
转载-https://www.cnblogs.com/yubao/p/8443455.html Create Windows Service project using Visual Studio C ...