论文笔记:详解图注意力网络(GAT)

这篇具有很好参考价值的文章主要介绍了论文笔记:详解图注意力网络(GAT)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

  图神经网络的任务可以分为直推式(Transductive)学习与归纳(Inductive)学习:

Inductive learning,翻译成中文可以叫做 “归纳式学习”,就是从已有数据中归纳出模式来,应用于新的数据和任务。在图学习的训练过程中,看不到没有标注的节点,训练时只需要图的局部,不必一次性输入整张图,由于这个特性,归纳式学习是可以迁移的。即,在这个图上训练好的模型,可以迁移到另外一个图中使用。
Transductive learning,翻译成中文可以叫做 “直推式学习”,指的是由当前学习的知识直接推广到给定的数据上。就是训练期间可以看到没有标注的节点(训练需要整个图里面所有的节点参与),那么换一个图就需要重新训练。

  之前对将卷积网络推广到图结构的研究主要包括谱方法(spectral approaches)和非谱方法(non-spectral approaches)。
  谱方法(代表:GCN)学习到的滤波器依赖于拉普拉斯特征基,而拉普拉斯特征基依赖于图的结构。因此,在特定结构上训练的模型不能直接应用于具有不同结构的图。必须基于相应的图结构才能学到拉普拉斯矩阵,对于一个图结构训练好的模型,不能运用于另一个图结构,这就是GCN的一大弊端:无法完成inductive任务,即无法处理动态图。
  非谱方法(代表:GraphSAGE)以归纳的方式计算节点表示,通过对每个节点的固定大小的邻域进行采样,然后对其执行特定的聚合器(例如对所有采样邻域的特征向量取平均值)。取得了很好的效果。
  本文引入了一种基于注意力的架构来执行图结构数据的节点分类。其思想是通过对其邻居节点的自注意力策略计算图中每个节点的隐藏表示。它具有以下几个特性:

  1. 操作效率高,因为它可以跨节点邻居对并行化。
  2. 通过对相邻节点指定权重,可将其应用于度数不同的节点。
  3. 该模型直接适用于归纳学习(Inductive learning)问题,包括模型必须推广到完全看不见的图的任务。

图注意力网络的构建模块

模块的输入:节点特征的集合 h h h
h = { h 1 , h 2 , . . . , h N }    h ⃗ i ∈ R F h={\{h_1,h_2,...,h_N\}}\ \ \vec h_i\in R^F h={h1,h2,...,hN}  h iRF  其中,N是节点数量,F是每个节点的特征维度,模块的输出是更新后的节点特征集合 h ′ h^{'} h,为了获得更新的特征矩阵,首先对每个节点应用一个权值共享的参数矩阵 W ∈ R F ′ × F W\in R^{F^{'}×F} WRF×F,然后我们对每个节点对执行自注意力机制: a : R F ′ × R F = R a:R^{F^{'}}×R^F=R a:RF×RF=R计算相应的注意力系数, e i j e_{ij} eij表示节点j对节点i的重要性:
e i j = a ( W h i , W h j ) e_{ij}=a(Wh_i,Wh_j) eij=a(Whi,Whj)  在GAT中,作者提出两种运算方式:Global graph attention和Mask graph attention,Global graph attention指的是就是每一个顶点i都对于图上所有顶点都进行attention运算。这种方法的弊端明显:(1)计算量大;(2)丢掉了图结构特征,无异于自废武功。Mask graph attention指的是注意力机制的运算只在邻居顶点上进行。很明显,这才是正确的打开方式,对于每一个节点i,我们对每一个节点 j ∈ N i j \in N_i jNi计算他们的注意力系数, N i N_i Ni就是节点i的所有一阶邻居节点,然后应用一个softmax归一化:
a i j = s o f t m a x j ( e i j ) = e x p ( e i j ) ∑ k ∈ N i e x p ( e i k ) a_{ij}=softmax_j(e_{ij})=\frac {exp(e_{ij})}{\sum_{k\in N_i}exp(e_{ik})} aij=softmaxj(eij)=kNiexp(eik)exp(eij)  文章所使用的注意力机制a是一个单层前馈网络,参数化为 a ⃗ ∈ R 2 F ′ \vec a\in R^{2F^{'}} a R2F,应用LeakyReLU非线性激活函数,最终的展开式为:
a i j = e x p ( L e a k y R e L U ( a ⃗ T [ W h ⃗ i ∣ ∣ W h ⃗ j ] ) ) ∑ k ∈ N i e x p ( L e a k y R e L U ( a ⃗ T [ W h ⃗ i ∣ ∣ W h ⃗ k ] ) ) a_{ij}=\frac {exp(LeakyReLU({\vec a}^T[W\vec h_i||W\vec h_j]))}{\sum_{k\in N_i}exp(LeakyReLU({\vec a}^T[W\vec h_i||W\vec h_k]))} aij=kNiexp(LeakyReLU(a T[Wh i∣∣Wh k]))exp(LeakyReLU(a T[Wh i∣∣Wh j]))  其中 ∣ ∣ || ∣∣表示串联操作,可视化的样子:
论文笔记:详解图注意力网络(GAT),图数据挖掘学习路线,论文笔记,论文阅读,python
  但是这样显得有些单薄了,作者又发现使用多头注意力可以为模型带来进一步提升,于是就变成了这样的情况:
论文笔记:详解图注意力网络(GAT),图数据挖掘学习路线,论文笔记,论文阅读,python  上图是节点1在其邻域上的多头注意(三头)的图示。不同的箭头样式和颜色表示独立的注意力计算。通过将每个头部的聚合特征进行连接或平均,对特征矩阵进行更新。于是,假如我们加入了k头注意力机制,公式就变成了:
h i ′ ⃗ = ∣ ∣ k = 1 K σ ( ∑ j ∈ N i α i j k W k h i ⃗ ) \vec{h_i^{'}}={||_{k=1}^K}\sigma(\sum_{j\in N_i}\alpha_{ij}^kW^k\vec{h_i}) hi =k=1Kσ(jNiαijkWkhi )  其中, ∣ ∣ || ∣∣表示拼接, α i j k \alpha_{ij}^k αijk表示第k个头的归一化注意力系数, W k W^k Wk是线性变换的参数矩阵,如果是拼接的设置,那我们最终会得到的每个节点的特征维度就不再是 F F F,而是 K F KF KF。对于最终预测层,concate操作可能不那么敏感了,所以我们直接用K平均来取代concate操作:
h i ′ ⃗ = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k h i ⃗ ) \vec{h_i^{'}}=\sigma(\frac 1K{\sum_{k=1}^K}\sum_{j\in N_i}\alpha_{ij}^kW^k\vec{h_i}) hi =σ(K1k=1KjNiαijkWkhi )  到这里,模型的推导的就结束了。

与其他模型对比

  1. 首先,GAT的算法复杂度很低,单个头计算得到 F ′ F{'} F的时间复杂度为 O ( ∣ V ∣ F F ′ + ∣ E ∣ F ′ ) O(|V|FF{'}+|E|F{'}) O(VFF+EF),其中, F F F是一个节点的特征维度, ∣ V ∣ |V| V ∣ E ∣ |E| E是节点和边的个数,这种复杂性与GCN相当,如果有K个头,就将参数需求乘以K倍,每个头是可以并行化计算的。
  2. 与GCN相比,GCN与GAT都是将邻居顶点的特征聚合到中心顶点上(一种aggregate运算),利用graph上的local stationary学习新的顶点特征表达。不同的是GCN利用了拉普拉斯矩阵,GAT利用attention系数。一定程度上而言,GAT会更强,因为顶点特征之间的相关性被更好地融入到模型中,并且GAT对干扰有更强的鲁棒性。
  3. 与LSTM的方法相比,Hamilton等人(2017)最近发表的归纳方法对每个节点的固定大小的邻域进行采样,以保持其计算足迹的一致性;这不允许它在执行推理时访问整个邻域。此外,当使用基于LSTM的邻域聚合器时,假设存在一个跨邻域的一致的顺序节点排序,并且作者通过持续地向LSTM提供随机排序的序列来纠正它。我们的技术没有这些问题——它可以处理整个邻域(代价是可变的计算空间,这仍然与GCN等方法相当),并且不假设其中有任何排序。
  4. 此外,GAT的运算方式是逐顶点的运算(node-wise),每一次运算都需要循环遍历图上的所有顶点。这意味着摆脱了拉普利矩阵的束缚,使得GAT可以应用于有向图。GAT中重要的学习参数是 w w w a ( ⋅ ) a(\cdot) a() ,因为上述的逐顶点运算方式,这两个参数仅与顶点特征相关,与图的结构无关。所以测试任务中改变图的结构,对于GAT影响并不大,只需要改变 N i N_i Ni,重新计算即可。这让它可以进行Inductive learning。

实验

文章在四个经典的数据集上进行试验,数据集信息:
论文笔记:详解图注意力网络(GAT),图数据挖掘学习路线,论文笔记,论文阅读,python1、半监督学习transductive learning,实验设置:

两层 GAT
在Cora 数据集上优化网络结构的超参数,应用到Citeseer 数据集
第一层 8 head, F’=8 , ELU 作为非线性函数
第二层为分类层,一个 attention head 特征数C,后跟 softmax 函数,为了应对小训练集,正则化(L2)
两层都采用 0.6 的dropout,相当于计算每个node位置的卷积时都是随机的选取了一部分近邻节点参与卷积

实验结果:
论文笔记:详解图注意力网络(GAT),图数据挖掘学习路线,论文笔记,论文阅读,python
2、归纳学习inductive learning,实验设置:

三层GAT 模型
前两层 K=4, F1=256 ,ELU作为非线性函数
最后一层用来分类 K=6, F’=121,激活函数为sigmoid
该任务中训练集足够大不需要使用正则化和 dropout

实验结果:
论文笔记:详解图注意力网络(GAT),图数据挖掘学习路线,论文笔记,论文阅读,python

论文地址:https://arxiv.org/abs/1710.10903
代码地址: https://github.com/Diego999/pyGAT

欢迎点赞 关注 留言私信交流 📝 如有错误敬请指正!
本文的引用部分来自:图注意力网络(GAT)详解文章来源地址https://www.toymoban.com/news/detail-785757.html

到了这里,关于论文笔记:详解图注意力网络(GAT)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文笔记:基于并行注意力 UNet的裂缝检测方法

    论文:基于并行注意力 UNet的裂缝检测方法(Parallel Attention Based UNet for Crack Detection); 发表:2021年发表在《计算机研究与发展》上。 问题:裂缝图像中存在噪声、光线、阴影等因素干扰; 解决方法:比较流行的解决方案是嵌入注意力机制以抑制各种干扰; 缺点:现有的注

    2023年04月23日
    浏览(45)
  • [自注意力神经网络]Segment Anything(SAM)论文阅读

    论文地址 https://arxiv.org/abs/2304.02643 源码地址 https://github.com/facebookresearch/segment-anything 强烈建议大家试试Demo,效果真的很好:https://segment-anything.com/         本文建立了一个基础图像分割模型,并将其在一个巨大的数据集上进行训练,目的是解决一系列下游任务。本文的关键

    2023年04月23日
    浏览(63)
  • 【YOLOv8改进】 YOLOv8 更换骨干网络之GhostNetV2 长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干 (论文笔记+引入代码)

    轻量级卷积神经网络(CNNs)专为移动设备上的应用而设计,具有更快的推理速度。卷积操作只能捕获窗口区域内的局部信息,这限制了性能的进一步提升。将自注意力引入到卷积中可以很好地捕获全局信息,但这将大大增加实际速度的负担。在本文中,我们提出了一种硬件友

    2024年03月23日
    浏览(56)
  • 【论文阅读 09】融合门控自注意力机制的生成对抗网络视频异常检测

            2021年 中国图象图形学报 背景: 视频异常行为检测是智能监控技术的研究重点,广泛应用于社会安防领域。当前的挑战之一是如何提高异常检测的准确性,这需要有效地建模视频数据的空间维度和时间维度信息。生成对抗网络(GANs)因其结构优势而被广泛应用于视

    2024年02月03日
    浏览(46)
  • 机器学习笔记 - 什么是图注意力网络?

            顾名思义,图注意力网络是图神经网络和注意力层的组合。要理解图注意力网络,我们首先需要了解什么是注意力层和图神经网络。首先,我们将看一下对图神经网络和注意力层的基本理解,然后我们将重点介绍两者的结合。让我们看一下图神经网络。       

    2023年04月09日
    浏览(38)
  • 【YOLOv8改进】 MSDA:多尺度空洞注意力 (论文笔记+引入代码).md

    作为事实上的解决方案,标准的视觉变换器(ViTs)被鼓励模拟任意图像块之间的长距离依赖性,而全局关注的接受域导致了二次计算成本。视觉变换器的另一个分支受到CNNs启发,利用局部注意力,只模拟小邻域内块之间的交互。尽管这样的解决方案降低了计算成本,但它自

    2024年03月18日
    浏览(66)
  • SE、CBAM、ECA注意力机制(网络结构详解+详细注释代码+核心思想讲解+注意力机制优化神经网络方法)——pytorch实现

           这期博客我们来学习一下神秘已久的注意力机制,刚开始接触注意力机制的时候,感觉很有意思,事实上学会之后会发现比想象中的要简单,复杂的注意力机制后续会讲解,这期博客先讲解最常见的三种SE、CBAM、ECA注意力机制。        注意力机制更详细的可以被称

    2024年02月07日
    浏览(49)
  • [ 注意力机制 ] 经典网络模型1——SENet 详解与复现

    🤵 Author :Horizon Max ✨ 编程技巧篇 :各种操作小结 🎇 机器视觉篇 :会变魔术 OpenCV 💥 深度学习篇 :简单入门 PyTorch 🏆 神经网络篇 :经典网络模型 💻 算法篇 :再忙也别忘了 LeetCode Squeeze :挤压     Excitation :激励 ; Squeeze-and-Excitation Networks 简称 SENet ,由 Momenta 和

    2024年01月20日
    浏览(43)
  • 【图-注意力笔记,篇章2】Graphormer 和 GraphFormers论文笔记之两篇经典Graph Transformer来入门

    说明: 本文仅供学习,未经同意请勿转载 笔记时间:2022年08月 博客公开时间:2023年3月2日 前面我们大致的了解了Graph Transformer是什么,以及它与GNN、Transformer的差别,关联。如果对这方面不是很熟悉的朋友可以看一下【图-注意力笔记,篇章1】一份PPT带你快速了解Graph Trans

    2023年04月25日
    浏览(44)
  • 神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解

    CA注意力机制是最近提出的一种注意力机制,全面关注特征层的空间信息和通道信息。 Github源码下载地址为: https://github.com/bubbliiiing/yolov4-tiny-pytorch 复制该路径到地址栏跳转。 该文章的作者认为现有的注意力机制(如CBAM、SE)在求取通道注意力的时候,通道的处理一般是采

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包