【图神经网络入门】GAT图注意力网络
本文是清华大学刘知远老师团队出版的图神经网络书籍《Introduction to Graph Neural Networks》的部分内容翻译和阅读笔记。
个人翻译难免有缺陷敬请指出,如需转载请联系翻译作者@Riroaki。
注意机制已成功用于许多基于序列的任务,例如机器翻译,机器阅读等等。与GCN平等对待节点的所有邻居相比,注意力机制可以为每个邻居分配不同的注意力得分,从而识别出更重要的邻居。将注意力机制纳入图谱神经网络的传播步骤是很直观的。图注意力网络也可以看作是图卷积网络家族中的一种方法。
Graph Attention Network (GAT)
GAT在传播过程引入自注意力(self-attention)机制,每个节点的隐藏状态通过注意其邻居节点来计算。
GAT网络由堆叠简单的图注意力层(graph attention layer)来实现,对节点对 ,注意力系数计算方式为:
其中, 是节点
到
的注意力系数,
表示节点
的邻居节点。节点输入特征为
,其中
分别表示节点个数和特征维数。节点特征的输出为
。
是在每一个节点上应用的线性变换权重矩阵,
是权重向量,可以将输入映射到
。最终使用softmax进行归一化并加入LeakyReLU以提供非线性性质(其中负输入的斜率为0.2)。
最终节点的特征输出由以下式子得到:
此外,该层也利用多头注意力以稳定学习过程。它应用 K 个独立的关注机制来计算隐藏状态,然后将其特征连接起来(或计算平均值),从而得到以下两种输出表示形式:
其中 是第 k 个注意力头归一化的注意力系数,
表示拼接操作。模型细节如下图所示:
这一模型结构具有如下特点:
节点-邻居对的计算是可并行化的,因此运算效率很高(和GCN同级别);
可以处理不同程度的节点,并为其邻居分配相应的权重;
可以很容易地应用于归纳学习(inductive learning)问题。
与GCN类似,GAT同样是一种局部网络,无需了解整个图结构,只需知道每个节点的邻节点即可。
补充:
归纳学习(inductive learning)与转导学习(transductive learning)
在半监督学习场景中,大部分数据是没有标注的。
如果和常规的学习一样使用归纳学习,只采用标注数据进行训练,并且尝试对没有见过的数据进行分类,效果可能会很糟糕。
但是转导学习就不同。它可以引入没有标签的数据,学习数据的分布信息,并且在测试时对(已经见过的)没有标注的数据进行分类。
因此,一般来说转导学习的效果会更好。当然,一般的任务都是使用归纳学习模型解决。以下来自维基百科(en.wikipedia.org/wiki/T):
归纳尝试从特殊案例归纳出一般特征(train),再应用于特殊案例(test)。
转导尝试从特定案例(train)中学习并应用到特定案例(test)。
后者的难度更小。还有一个有趣的概念是主动学习(active learning),有兴趣的读者可以自行了解。
GAT在半监督节点分类,链接预测等多项任务上均胜过GCN。
详见原论文《Graph attention networks》
Gated Attention Network (GaAN)
除了GAT之外,门控注意力网络(GaAN)也使用多头注意力机制。GaAN中的注意力聚合器与GAT中的注意力聚合器的区别在于,GaAN使用键值注意力和点积注意力,而GAT使用全连接层来计算注意力系数。
此外,GaAN通过计算其他soft gate为不同的注意力头分配不同的权重。该聚合器称为门控注意聚合器。详细地讲,GaAN使用卷积网络,该卷积网络具有中心节点的特征,并且与之相邻以生成门值。
在归纳节点分类问题中,GaAN可以优于GAT以及其他具有不同聚合器的GNN模型。
关于本模型的细节,原文没有过多介绍,有待补充。
详见原论文《GaAN: Gated Attention Networks for Learning on Large and Spatiotemporal Graphs》
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
【图神经网络入门】GAT图注意力网络相关推荐
- 图神经网络基础--基于图神经网络的节点表征学习
图神经网络基础–基于图神经网络的节点表征学习 引言 在图节点预测或边预测任务中,首先需要生成节点表征(Node Representation).我们使用图神经网络来生成节点表征,并通过基于监督学习的对 ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](5) Graph Neural Networks 图神经网络 Now th ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](2)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](2) Graphs and where to find them 图以及在 ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](6)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](6) GNN playground Some empirical GNN ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](4)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](4) The challenges of using graphs in ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](3) What types of problems have graph ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](1)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](1) 最近读了一篇Distill网站上的一篇文章,讲的是图神经网络的入门, ...
- 图神经网络通用框架信息传递网络(MPNNs)
图神经网络通用框架信息传递网络(MPNNs) 介绍 机制 理论 信息传递阶段 读取阶段 实际案例 代码 第三方库 介绍 信息传递网络(Message Passing Neural Networks, ...
- 【论文解读|AAAI2021】HGSL - Heterogeneous Graph Structure Learning for Graph Neural Networks 图神经网络的异构图结构学习
文章目录 1 摘要 2 引言 相关工作 3 方法 3.1 特征图产生器 3.1.1 特征相似图 3.1.2特征传播图 3.2 语义图生成器 4 实验 5 结论 论文链接: http://shichua ...
最新文章
- C++如何输出特定格式浮点数
- 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授
- Cpp 对象模型探索 / 静态联编和动态联编
- 2018年9月杭州云栖大会Workshop - 基于日志的安全分析实战
- 20165205 2017-2018-2 《Java程序设计》第六周学习总结
- 把ATmega128开发板转为Arduino
- java选择排序(从大到小和从小到大)
- 天猫精灵测评与开发案例
- 计算机光盘无法格式化,怎么格式化光盘啊??求解!!
- 内存条带宽的换算方法以及DDR4内存理论带宽
- 用HTML写手机QQ登录界面
- java treemap的排序_Java TreeMap的排序(转)
- 程序员的日常工作是怎样的?
- AngularJS初识
- 使用Frodo,在Android中调试RxJava
- 利用NCBIdatasets批量下载大规模生信数据集
- 数据库大数据量、高并发、高可用解决方案!
- 利用DOCX文档远程模板注入执行宏代码
- 从一道面试题认识函数柯里化
- matplotlib的cmap