本文是清华大学刘知远老师团队出版的图神经网络书籍《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图注意力网络相关推荐

  1. 图神经网络基础--基于图神经网络的节点表征学习

    图神经网络基础–基于图神经网络的节点表征学习 引言 在图节点预测或边预测任务中,首先需要生成节点表征(Node Representation).我们使用图神经网络来生成节点表征,并通过基于监督学习的对 ...

  2. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...

  3. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](5) Graph Neural Networks 图神经网络 Now th ...

  4. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](2)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](2) Graphs and where to find them 图以及在 ...

  5. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](6)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](6) GNN playground Some empirical GNN ...

  6. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](4)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](4) The challenges of using graphs in ...

  7. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](3) What types of problems have graph ...

  8. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](1)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](1) 最近读了一篇Distill网站上的一篇文章,讲的是图神经网络的入门, ...

  9. 图神经网络通用框架信息传递网络(MPNNs)

    图神经网络通用框架信息传递网络(MPNNs) 介绍 机制 理论 信息传递阶段 读取阶段 实际案例 代码 第三方库 介绍 信息传递网络(Message Passing Neural Networks, ...

  10. 【论文解读|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 ...

最新文章

  1. C++如何输出特定格式浮点数
  2. 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授
  3. Cpp 对象模型探索 / 静态联编和动态联编
  4. 2018年9月杭州云栖大会Workshop - 基于日志的安全分析实战
  5. 20165205 2017-2018-2 《Java程序设计》第六周学习总结
  6. 把ATmega128开发板转为Arduino
  7. java选择排序(从大到小和从小到大)
  8. 天猫精灵测评与开发案例
  9. 计算机光盘无法格式化,怎么格式化光盘啊??求解!!
  10. 内存条带宽的换算方法以及DDR4内存理论带宽
  11. 用HTML写手机QQ登录界面
  12. java treemap的排序_Java TreeMap的排序(转)
  13. 程序员的日常工作是怎样的?
  14. AngularJS初识
  15. 使用Frodo,在Android中调试RxJava
  16. 利用NCBIdatasets批量下载大规模生信数据集
  17. 数据库大数据量、高并发、高可用解决方案!
  18. 利用DOCX文档远程模板注入执行宏代码
  19. 从一道面试题认识函数柯里化
  20. matplotlib的cmap

热门文章

  1. Ubuntu 小白起步
  2. 最全解析如何正确学习JavaScript指南,必看!
  3. MyEclipse 代码自动提示功能失效 提示No Default Proposals 或 no completions available 的解决方法 转...
  4. hdu1421 搬寝室 DP
  5. 【翻译】优秀网站的10个技巧
  6. 电脑没有音频设备怎么办
  7. 【项目管理】------九大项目管理框架 (
  8. HTML的form表单标签
  9. Scaled Exponential Linear Unit
  10. Part2-HttpClient官方教程-Chapter5-流利的API