论文笔记 Graph Attention Networks

news2024/12/28 8:22:11

2018 ICLR

1 intro

1.1. GCN的不足

  • 无法完成inductive任务
    • inductive任务是指:
      • 训练阶段与测试阶段需要处理的graph不同。
      • 通常是训练阶段只是在子图上进行,测试阶段需要处理未知的顶点。
    • GGN 的参数依赖于邻接矩阵A/拉普拉斯矩阵L,所以换了一张图,就会有不同的A和L
  • 处理有向图的瓶颈,不容易实现分配不同的学习权重给不同的邻居

1.2 本文思路

  • 引入masked self-attentional layers 来改进前面图卷积的缺点
    • 对不同的相邻节点分配相应的权重,既不需要矩阵运算,也不需要事先知道图结构
    • attention为每个节点分配不同权重,关注那些作用比较大的节点,而忽视一些作用较小的节点

2 GAT

  • 和一般注意力机制一样,GAT的计算也分为两步
    • 计算注意力系数
    • 加权求和

2.1 输入 输出

2.1.1 输入

单个 graph attentional layer的输入是一个节点特征向量集合

  • N是节点数量
  • F是每个节点特征维度

2.1.2 输出

新的节点特征集合

 

 2.2 计算注意力系数

2.2.1 全局attention的弊端

  • self-attention是一种Global graph attention,会将注意力分配到图中所有的节点上,但是这样会存在以下问题
    • 1,丢失结构信息
      • 基于空间相似假设,一个样本与一定范围内的样本关系较密切
    • 2,样本较多的时候,计算量非常大

2.2.2 masked self-attention

  • 为了解决这一问题,作者使用了一种 masked attention 的方法
    • 对于一个样本来说只利用邻域内的样本计算注意力系数和新的表示
    • 即仅将注意力分配到节点的一阶邻居节点集上
  • 针对每个节点执行 self-attention机制
      • eij就是i点和其邻居j点的注意力相关系数
      • 为一个映射函数(这边计算eij的时候漏了一个激活函数,论文中使用的是LeakyReLU)
      • hi,hi是点i和点j的特征向量 
  • 计算完点i和所有邻居的注意力相关系数后,引入softmax对所有相邻节点进行正则化
    • || 表示拼接(concat)操作

2.2.3 加权求和

  • 得到归一化的注意力系数后,使用归一化的值计算对应特征的线性组合,作为每个顶点这一层最后的输出特征

     

2.2.4 多头自注意力

  • 使用K个独立的 attention 机制,然后他们的特征拼接在一起

     

    • 这样每一层输出的维度为KF‘
  • 对于最后一个卷积层,不采用拼接的方式合并不同的attention机制的结果了,而是采用求平均的方式进行处理

     

3 实验

3.1 数据集

 3.2 实验结果

3.2.1 transductive learning

训练和测试在一张图上

 3.2.2 inductive learning

训练和测试不在一张图上

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/899863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个完整挖洞 /src 漏洞实战流程【渗透测试】

目录: 1.如何找漏洞 2.找到后如何挖漏洞 3.漏洞如何提交 只要搞渗透,不就会听到很多行业内人前辈一直在重复:“信息搜集” 信息搜集有多重要,你搜集的到的多少资产信息,决定了你后续进行的一系列实战到什么程度! 要说 SQL 注入的漏洞咋找…

【博客700】如何使用 Nginx Ingress 快速实现金丝雀与蓝绿部署

如何使用 Nginx Ingress 快速实现金丝雀与蓝绿部署 背景 越来越多的应用采用微服务架构,应用数量相比传统模式更多,管理更加复杂,发布更加频繁,如果直接将新版本上线发布给全部用户。一旦遇到线上事故(或BUG&#xff…

Selenium的使用:WEB功能测试

Selenium是ThrougthWorks公司一个强大的开源WEB功能测试工具系列,本系统包括多款软件 Selenium语言简单,用(Command,target,value)三种元素组成一个行为,并且有协助录制脚本工具,但Selenese有一些严格的限制: …

在字节和滴滴划水四年,过于真实了...

先简单交代一下,我是某不知名211的计算机本硕,18年毕业加入滴滴,之后跳槽到了头条,一直从事测试开发相关的工作。之前没有实习经历,算是四年半的工作经验吧。 这四年半之间完成了一次晋升,换了一家公司&am…

torch.cuda.is_available()为false的解决办法

一、问题 在进行torch进行开发的过程中,我们习惯性的会使用pip install torch这样的方式来安装torch的包。 其实这样的是安装CPU的torch。 在导入包,执行下面代码的过程中,会出现结果为false。 import torchprint(torch.cuda.is_availabl…

04-数据集汇总

一、3D检测数据集 1、Argoverse数据集[参考] 年份:2019年; 作者:Argo AI等; 场景数:共113个场景,室外,包括USA,Pennsylvania,Miami,Florida等&#xff1b…

Django进阶:DRF(Django REST framework)

什么是DRF? DRF即Django REST framework的缩写,官网上说:Django REST framework是一个强大而灵活的工具包,用于构建Web API。 简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或删除数据(…

CFDEM-OpenFOAM-Yade安装教程

在网上搜索与OpenFOAM相关的颗粒两相流计算资料时,发现了一个CFD-DEM coupled simulations with Yade and OpenFOAM。 在此之前,我学习过OpenFOAM自带的颗粒计算求解器,但是自带的求解器有很多缺点,最大的缺点就是颗粒运动方程的求…

10. 实现业务功能--退出登录

目录 1. 实现 Controller 2. 单体测试 3. 实现前端界面 退出的具体实现逻辑如下: 1. 用户访问退出接口 2. 服务器注销 Session( 在 Controller 中可以直接进行处理 ) 3. 返回成功或失败 4. 如果返回成功浏览器跳转到相应页面 5. 结束 一般来说&#…

Python入门--开发工具

Python是一种优秀的编程语言,具有简单易学、开放源代码、高效可靠等特点,广泛应用于Web开发、科学计算、数据分析、人工智能等领域。以下是常用的Python开发工具: PyCharm:JetBrains公司开发的Python IDE,功能强大&…

VMware vSphere Client端设置热添加虚拟机的CPU和内存

使用vSphere Client连接到VMware ESXi Server,在“配置→网络”中,可以看到,当前有两个虚拟交换机,并且为该虚拟交换机分配了管理地址10.10.228.81,点击“添加网络”如图所示。 添加配置向导,在网络类型&am…

AIGC的变革

AIGC(Artificial Intelligence and General Computing)是一个涵盖人工智能和通用计算的领域,它的发展前景非常广阔。以下是一些关于AIGC发展前景的观点: 人工智能市场增长迅速:随着人工智能技术的迅猛发展,…

嵌入式学习之投票系统改进版本

今天周六,9点钟就开始写代码,但是呢,一直在家里面,真的很容易心烦气躁,我正在研究有没有什么方法可以改变我的状态,今天写的代码是做昨天做的选票系统的改进,代码如下:

C语言实现贷款计算器

等额本金,等额本息数学推导:贷款 买房,利息怎么算?不要被忽悠了!李永乐老师讲等额本金和等额本息 一个心血来潮的研究,避免以后买房被坑。 捣鼓了半天才发现原来支付宝的那个利率是年利率不是月利率,坑了…

猿人学刷题系列(第一届比赛)——第四题

题目:采集这5页的全部数字,计算加和并提交结果 地址:https://match.yuanrenxue.cn/match/4 页面分析 首先打开开发者工具然后刷新界面进行抓包。 通过返回的数据来看,我们需要的数据极有可能是位于info键对应的值中,…

Nginx介绍(Nginx是什么?能干什么?)

Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器,基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator…

删除有序链表中重复的元素-II(链表)

乌!蒙!山!连!着!山!外!山! 题目: 思路: 双指针,slow和fast,并且增加标记flag初始为1。 如果slow指向节点值等于fast指向节点值&…

JAVA结合AE(Adobe After Effects)AE模板文件解析生成视频实现类似于逗拍(视频DIY)的核心功能

最近看抖音上有很多各种视频表白生成的直播而且直播间人很多,于是就思考如何实现的视频内的文字图片内容替换的呢 ,答案需要用到类似与逗拍一样的视频DIY的功能,苦于我是java,百度了半天没有办法和思路,总不能为了一个…

Hadoop小结(上)

最近在学大模型的分布式训练和存储,自己的分布式相关基础比较薄弱,基于深度学习的一切架构皆来源于传统,我总结了之前大数据的分布式解决方案即Hadoop: Why Hadoop Hadoop 的作用非常简单,就是在多计算机集群环境中营…

typescript报错:‘name‘ was also declared here

问题再现 用 Typescript 时, 遇到一个声明常量 name 的报错。代码如下: let name:string"zhangsan"; let num:number1001;执行编译时报错: 原因 在默认状态下,typescript 将 DOM typings 作为全局的运行环境&#…