《GRAPH ATTENTION NETWORKS》阅读笔记

本文记录阅读GAT原论文《GRAPH ATTENTION NETWORKS》的笔记,方便后续查阅。

论文地址:《GRAPH ATTENTION NETWORKS》

摘要

通过多层GAT模型,能够让节点关注其邻域的特征,这样可以为邻域中的不同节点赋予不同的权重(根据重要性),而且是不需要计算代价高的矩阵运算(还可以并行,计算效率快),也不需要预先知道图结构

1. INTRODUCTION

GAT模型想法的来源?------注意力机制。

GCN 存在的问题:对于每个邻居节点赋予的权重是一样的

针对图结构数据,本文提出了一种GAT( Graph Attention Networks )网络。该网络使用 masked self-attention层解决了之前基于图卷积的模型所存在的问题。在 GAT 中,图中的每个节点可以根据邻节点的特征,为其分配不同的权值。GAT的另一个优点在于,无需使用预先构建好的图。

注意力机制的一个优势是,它们允许处理不同大小的输入,专注于输入中最相关的部分,从而做出决定。论文基于注意力机制的思想,提出了GAT模型,该模型有以下几点特性:

  • 运行高效,可以在不同的节点上进行并行计算
  • 通过对相邻节点指定任意权重,可以将其应用于具有不同度的图节点
  • 该模型直接适用于归纳学习问题,包括模型必须推广到完全看不见的图的任务

2. 论文公式梳理

参考:GAT论文解读


图注意力模型结构:

左图表示单头图注意力模型结构,右图表示多头图注意力模型结构

3. EXPERIMENTS

3.1 先导知识:Transductive Learning和Inductive Learning的区别

参考:归纳式与直推式学习

归纳式(Inductive):

  • 归纳式学习是我们传统理解的监督学习(supervised learning),我们基于已经打标的训练数据,训练一个机器学习模型。然后我们用这个模型去预测我们没有从未见过的测试数据集上的标签

直推式(Transductive):

  • 和归纳式不同,直推式学习首先观察全部数据,包括了训练和测试数据,我们从观测到的训练数据集上进行学习,然后在测试集上做预测。即便如此,我们不知道测试数据集上的标签,我们可以在训练时利用数据集上的模式和额外信息

两者区别:直推式学习不会建立一个预测模型,如果一个新数据节点加入测试数据集,那么我们需要重新训练模型,然后再预测标签。然而,归纳式学习会建立一个预测模型,遇到新数据节点不需要重新运行算法训练

理解:(参考:博客作者个人理解)

  • Transductive learning(意为直推学习)就是在训练阶段已经看到过测试集节点的一些信息,比如在GCN中就是节点的结构信息已经被看到了,然后在测试阶段你只能处理这些测试集,不能处理新的节点,因为这些节点的结构信息你训练阶段没见过,模型就懵了。换句话说,测试集只是没有用标签的信息来帮助训练共享的参数W(训练集的节点和标签会帮助我训练W),但是图的结构必须包含测试集的节点
  • Inductive learning(意为归纳学习),它在训练阶段完全不需要用到测试集的信息,也就是说你测试集不管是训练的时候见过的(利用过某些信息的),或者没见过的,我都无所谓。

那么比较GAT(既可以做Inductive也可以做Transductive)和GCN(只是Transductive):

  • GAT在训练阶段学习参数a和W,然后在预测阶段,对于一个新的图结构,我虽然没在训练阶段见过这个图结构,但是我只要知道节点i的表征h_i 和它邻居的表征h_j ,我就能通过学习好的参数a和W计算出聚合后节点i的表征h_i 。所以说 GAT 不依赖于完整的图结构,只依赖于边,因此可以用于inductive任务


图片参考:论文解读


图片参考:论文解读

  • 而GCN是Transductive learning,不是inductive learning,因为他训练模型后,如果直接应用于未知的图结构,那拉普拉斯矩阵就会发生改变,以前训练好的基于原图的模型也就失效了(GCN需要利用图的结构来提取节点i (原特征为h_i),你现在如果来一个新的节点,我之前训练的时候没见过它的图结构,那也就无法用GCN提取它的表征h_i’,进而无法去做后续的节点标签预测了)

图片参考:论文解读

3.2 Dataset

3.3 Results

对于Transductive任务,在经过100次训练后,实验记录了该方法在测试节点上的平均分类精度(带标准差)。为了公平地评估注意力机制的优势,实验进一步评估了一个GCN模型,该模型计算了64个隐藏特征,分别进行了ReLU和ELU的激活,并统计了(GCN-64 *)运行100次后的更好结果(三种情况下都是ReLU激活函数)

对于Inductive任务,实验统计了在两个不可见的测试图节点上的micro-averaged F1。GraphSAGE * 对应于通过修改它的网络结构所能获得的最佳GraphSAGE的结果。Const-GAT对应的模型与GA T具有相同的架构,但具有持续关注机制(为每个邻居分配相同的重要性,类似GCN)。

总之,该实验结果表明,在所有四个数据集上,GAT都达到了最优的性能。

3.4 研究特征表示的有效性

为了定性研究特征表示的有效性,论文还绘制了在Cora数据集上预先训练的GAT模型的第一层提取转换后的特征表示的t-SNE图。该图在投影的2D空间中展示了可区分的聚类簇。注意,这些簇对应于数据集的7个标签,验证了模型对Cora的7个类别的区分能力。此外,该图中的边表示归一化注意力系数的相对强度,但需要定量地解释这些系数需要进一步研究数据集。

4. 总结

  • 提出了一个新颖的可用于图结构数据的模型,该模型融入了自注意力机制
  • 模型计算高效、图中的每个节点可以根据邻节点的特征来为其分配不同的权值、不依赖整个图结构(因此可以做Inductive Learning)
  • 进行了 Tansductive 和 Inductive 的实验
  • 提出了几个未来方向:在更大的图数据上操作、利用注意力机制对模型的可解释性进行分析、研究整个图的分类而不只是节点分类、考虑研究节点间的关系了 Tansductive 和 Inductive 的实验

GAT原论文阅读笔记相关推荐

  1. PointConv论文阅读笔记

    PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...

  2. DCP(Deep Closest Point)论文阅读笔记以及详析

    DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...

  3. keras cnn注意力机制_2019 SSA-CNN(自注意力机制)目标检测算法论文阅读笔记

    背景 <SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection>是2019 的工作,其作者来自于南洋理工.这篇文章主要是做 ...

  4. ResNet 论文阅读笔记

    ResNet 论文阅读笔记 #机器学习/深度学习 文章介绍 论文地址:https://arxiv.org/pdf/1512.03385.pdf 原文题目:Deep Residual Learning ...

  5. DSSD : Deconvolutional Single Shot Detector论文阅读笔记

    文章目录 DSSD : Deconvolutional Single Shot Detector论文阅读笔记2017 Abstract 1. Introduction 2. Related Work ...

  6. DGP 论文阅读笔记

    DGP 论文阅读笔记 论文题目:Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation Ex ...

  7. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  8. 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络

    论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...

  9. 虚假新闻检测的论文阅读笔记——sigir2021:User Preference-aware Fake News Detection

    文章目录 1.虚假新闻检测的相关简介 2.本篇论文引言 3.模型介绍 3.1.内生偏好编码器 3.2.外生内容编码器 3.3.二者信息融合 4.实验 4.1.各模型的实验结果 4.2.消融实验 5.结 ...

最新文章

  1. 卷积神经网络四种卷积类型
  2. 这样出ORACLE的面试题
  3. i_rdev i_bdev i_mapping 关系
  4. python学习--函数例子
  5. 记mac电脑下pycharm配置qt-creator开发环境
  6. 开发基于Web的RSS阅读器
  7. mysql启动warning: World-writable config file
  8. Centos6 安装RabbitMq3.7.7
  9. Java命令行界面(第17部分):jw-options
  10. java9 多版本兼容jar_Java 9 多版本兼容 jar 包
  11. 软件测试中的风控,测试过程中会遇到哪些风险和机会?
  12. Unity ToLua 中Update的调用流程
  13. go语言mysql框架_开源轻量级数据库访问框架-Go语言中文社区
  14. 矩阵的转置、加和乘法写入C++
  15. app推送怎么实现更好的效果?
  16. matlab零阶保持器的作用,MATLAB保持器的simulink仿真.ppt
  17. Gromacs—GMX
  18. android更改menu字体颜色,Android 修改 Menu字体颜色
  19. 最强nba体验服显示服务器正在停机,最强nba体验服安装包
  20. MATLAB simulink 模型验证学习笔记

热门文章

  1. OUC2022秋软件工程第14小组作业
  2. 编译原理chatpter04 文法的形式和文法的类型
  3. 几种隐藏批处理运行窗口的方法
  4. 中文版Windows XP升级SP3安装方法
  5. C++反汇编-函数调用原理
  6. CSDN编程挑战赛第六期—参赛心得+题解
  7. 网页不显示验证码的原因与处理方法
  8. 【科研】博士学位论文评阅书
  9. 抖音现在做的竞价推广都是怎么操作的?
  10. 调试本地SQLServer存储过程