Graph Transformer系列论文阅读

news2024/10/5 17:26:47

文章目录

  • research
    • 1.《Do Transformers Really Perform Bad for Graph Representation》【NeurIPS 2021 Poster】
    • 2.《Relational Attention: Generalizing Transformers for Graph-Structured Tasks》【ICLR2023-spotlight】
  • survey


推荐一个汇总Graph Transformer论文的项目:awesome-graph-transformer
推荐一个串讲Graph Transformer的推送:一文带你浏览Graph Transformers


research

1.《Do Transformers Really Perform Bad for Graph Representation》【NeurIPS 2021 Poster】

\quad 原作者对论文的解读:https://www.msra.cn/zh-cn/news/features/ogb-lsc
\quad 核心: 利用结构信息对 attention score 进行修正,这样在self-attention的基础上,比较好地利用上了图的结构信息。
\quad 动机: 目前图预测领域的主流算法是图神经网络(GNN)模型及其变种(比如图卷积网络(GCN,Graph Convolutional Net)、图注意力网络(GAT,Graph Attention Net)、图同构网络(GIN,Graph Isomorphic Net)等)。但是,这些图神经网络的结构相对简单,表达能力有限,且经常会出现过度平滑(Over-Smoothing)的问题(即无法通过堆深网络而增加 GNN 的表达能力)。相比于此,Transformer的模型表达能力很强,但是它的设计初衷是用来处理序列数据的,比如文本、语音等,并不能处理图结构数据。或者说self-attention机制只计算了节点的相关性,并没有考虑节点间的边信息(结构信息),self-attention机制将节点的相关性当作节点间的“边信息”,然而这并不包含结构关系。

\quad 那如何让Transformer处理图类型数据呢?对于这个问题,这篇文章认为核心在于如何让Transformer 学会编码图的结构信息

\quad Transformer 具有强大表达能力的原因在于其 自注意力机制,它通过计算输入中不同位置的语义信息相关性(可以理解为相似度),从而捕捉到输入之间的关系,并基于这些关系得到对整个输入完整的表达(representation)。然而,自注意力机制无法捕捉到结构信息,只能捕捉节点的相似度。对于自然语言序列而言,输入序列的结构信息可以简单认为是词与词的相对顺序,以及每个词在句子中的位置。对于图数据而言,这种结构信息更加复杂、多元,例如在图上的每个节点都有不同数量的邻居节点,两个节点之间可以有多种路径,每个边上都可能包含重要的信息。如何在图数据中成功应用 Transformer 的核心优势,最关键的难题是要确保Transformer可以正确利用图数据的结构信息

在这里插入图片描述
\quad 为了在Transformer中引入图数据中的结构信息,这篇文章提出了 Graphormer 模型,引入了三种结构编码,以帮助 Transformer 模型捕捉图的结构信息。其实就是构造了这些结构编码,然后直接加到self-attention的注意力权重上,目的是为attention score引入结构信息来进行修正,从而令修正的注意力权重分配更准确。三种结构编码如下:(主要参考原作者的解释)

  • 第一种编码,Centrality Encoding(中心性编码)。Centrality(中心性)是描述图中节点重要性的一个关键衡量指标。图的中心性有多种衡量方法,例如一个节点的“度”(degree)越大,代表这个节点与其他节点相连接的边越多,那么往往这样的节点就会更重要,如在疾病传播路线中的超级传播者,或社交网络上的大V、明星等。Centrality 还可以使用其他方法进行度量,如 Closeness、Betweenness、Page Rank 等。在 Graphormer 中,研究员们采用了最简单的度信息作为中心性编码,为模型引入节点重要性的信息。具体的方式是直接将Centrality Encoding加到每一个节点特征上。为什么要直接加到节点特征上?因为这些信息并没有反应注意力的信息,反映的是每个结点的特征。
    在这里插入图片描述

    • 其中xxx
  • 第二种编码,Spatial Encoding(空间编码)。实际上图结构信息不仅包含了每个节点上的重要性,也包含了节点之间的重要性。例如:邻居节点或距离相近的节点之间往往相关性比距离较远的节点相关性高。因此,研究员们为 Graphormer 设计了空间编码:给定一个合理的距离度量 ϕ ( v i , v j ) ϕ(v_i, v_j) ϕ(vi,vj), 根据两个节点 ( v i , v j ) (v_i, v_j) (vi,vj)之间的距离,为其分配相应的编码向量距离度量 ϕ(⋅) 的选择多种多样,对于一般性的图数据可以选择无权或带权的最短路径,而对于特别的图数据则可以有针对性的选择距离度量,例如物流节点之间的最大流量,化学分子 3D 结构中原子之间的欧氏距离等等。为了不失一般性,Graphormer 在实验中采取了无权的最短路径作为空间编码的距离度量。具体实施时,在self-attention模块,在softmax之前,将两个点的shortest path作为一个bias term加到两个点的相关度上去。
    在这里插入图片描述
    其中: ϕ ( v i , v j ) ϕ(v_i, v_j) ϕ(vi,vj)是衡量节点间距离的一个函数, b ϕ ( v i , v j ) b_{ϕ(v_i, v_j)} bϕ(vi,vj)为基于距离的一个可学习的标量 。无论在Graphormer的哪一层,图结构都是不变的,所以 b ϕ ( v i , v j ) b_{ϕ(v_i, v_j)} bϕ(vi,vj)在所有层中都是一样的,也就是共享。

  • 第三种编码,Edge Encoding(边信息编码)。对于很多的图任务,连边上的信息有非常重要的作用,例如连边上的距离、流量等等。然而为处理序列数据而设计的 Transformer 模型并不具备捕捉连边上的信息的能力,因为序列数据中并不存在“连边”的概念。因此,研究员们设计了edge encoding,将连边上的信息作为权重偏置(Bias)引入注意力机制中。具体来说,在计算两个节点之间的相关性时,研究员们对这两个节点最短路径SP上的连边特征进行加权求和作为注意力偏置,其中权重是可学习的。
    在这里插入图片描述
    其中:
    在这里插入图片描述

\quad Graphormer采用最短路径的方式来进行边信息编码,因为它处理的还是一张图,是有邻接矩阵的。如果没有邻接矩阵,就是将所有的节点看作是一个全连接图,那么就无需最短路径了,因为每两个点之间的边就是最短路径。这类的Graph Transformer一般会将两两之间的“距离”当作边信息,那么此时, b ϕ ( v i , v j ) b_{ϕ(v_i, v_j)} bϕ(vi,vj) c i j c_{ij} cij的作用就变成了一样的,都是将边信息纳入进attention score里。

\quad 《Language Conditioned Spatial Relation Reasoning for 3D Object Grounding》的思想在本质上有些与Graphormer类似,就是在self-attention的基础上加入了一种空间编码信息,相当于去除了edge、centrality encoding的Graphormer。

2.《Relational Attention: Generalizing Transformers for Graph-Structured Tasks》【ICLR2023-spotlight】

\quad 核心:为Transformer引入了节点间的有向边向量,并设计了一个Graph Transformer的计算方式,将QKV 向量 condition 到节点间的有向边。具体结构如下,细节参看之前文章:《Relational Attention: Generalizing Transformers for Graph-Structured Tasks》【ICLR2023-spotlight】
在这里插入图片描述
\quad 本文在效果上并没有与Graphormer直接对比,与Graphormer哪一个更好不能确定,应视具体任务而定。RT是将边向量直接加在q,k,v上,然后进行self-attention,最后得到的attention score中每一个元素如下式(11)所示。而Graphormer是将每一个边向量直接加在qk相乘后的attention score上,目的是对其做修正,最后得到的attention score为: n i W n Q ( n j W n K ) T n_iW^Q_n(n_jW^K_n)^T niWnQ(njWnK)T(RT的attention score第一项)+ e i j e_{ij} eij。此外,Graphormer的v向量也没有加上边向量 e i j e_{ij} eij
在这里插入图片描述
\quad RT强调的是算法,对边向量 e i j e_{ij} eij 如何获取没有讨论。Graphormer强调的是将图数据的结构信息(≈RT中的边向量 e i j e_{ij} eij )纳入进Transformer中,主要考虑的是对边向量 e i j e_{ij} eij 如何构造(spatial encoding+edge encoding),在算法层面倒是很简单,直接加上attention score就行。

survey

TODO

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

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

相关文章

SpringMVC事务控制(xml文件配置和注解配置)

事务的定义 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。 一致性(c…

实用的生产管理系统案例分析:如何应对市场快速变化?

生产管理系统是一种可视化管理工具,通过展示关键生产数据来协助企业监测生产进程。这些数据可能包括工作进度、生产速率、库存、质量、安全等。通过这些数据的可视化呈现,生产管理人员可以更快速地获得关于生产进程的信息,并能更快地做出决策…

如何将本地项目上传到Github的方法步骤

默认:已经安装好了git。 第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。 第二步:通过命令git init把这个…

深度分析MVC和MVVM:你在选择框架的时候应该注意什么?

💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝 CSDN主页:Zeeland🔥📣 我的博客:Zeeland📚 Github主页: Undertone0809 (Zeeland) (github.com)&…

SpringCloudalibaba微服务工具集

版本: Hoxton SR6 1.什么是微服务 官网 In short, the microservice architectural(架构) style is an approach to developing a single application as a suite(系列) of small services, each running in its own process(进程) and communicating with lightweight mech…

【C++基础】内联函数、nullptr(内联函数的概念;内联函数VS宏函数;内联函数的特性;C++11中的nullptr)

七、内联函数 7.1 内联函数的概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 应用场景: 短小简单的函数(1-10行&#xff…

一篇文章把所有前端安全相关的攻击和防御都给解决了——XSS攻击和CSRF攻击

前端安全 1. XSS跨站脚本攻击 1.1 定义 XSS跨站脚本攻击(Cross Site Scripting),很多人会缩写成CSS,但是这个缩写会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,所以,我们通常把跨站脚本攻击缩写成XSS; X…

huggingface transformer模型库使用(pytorch)

参考: https://huggingface.co/docs transformer库 介绍 使用群体: 寻找使用、研究或者继承大规模的Tranformer模型的机器学习研究者和教育者想微调模型服务于他们产品的动手实践就业人员想去下载预训练模型,解决特定机器学习任务的工程师…

初识linux之线程控制

目录 一、POSIX线程库 二、线程创建 1.创建线程的接口 2. 错误的创建多线程 3.正确的创建多线程 4. 线程的私有栈结构 三、线程终止 1. 函数结束 2. 调用pthread_exit()终止 3.调用pthread_cancel()函数 四、线程等待 …

C++初阶 -1- C++入门

文章目录0.什么是C1.C关键字2.命名空间导入什么是命名空间命名空间的使用3.C 输入&输出4.缺省参数什么是缺省参数缺省参数的应用场景5.函数重载0.什么是C C是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的…

基于ESP32和blinker的红外小夜灯控制

一. 系统设计及框图: 本设计可以实现通过手机APP使用蓝牙或WIFI远程控制红外设备,也可以通过离线语音模块语音控制红外设备。可以控制市面上常见的NEC格式的红外设备, 这里是控制小夜灯,其它红外设备在控制原理上是相通的。本设计可用作课程…

二、UVM Sequencer和Sequence

了解sequencer与driver之间传递sequence item的握手过程,也掌握了sequence与item之间的关系。接下来对sequence挂载到sequencer的常用方法总结,可以通过这些方法和宏的介绍,了解到它们不同的使用场景面对多个sequence如果需要同时挂到sequenc…

机器学习:基于AdaBoost算法对信用卡精准营销建立模型(附案例实战)

机器学习:基于AdaBoosts算法对信用卡精准营销建立模型 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞&a…

OPNET Modeler 例程——M/M/1 队列建模

文章目录一、例程概述二、模型构建三、仿真配置及结果1.M/M/1 队列2.M/M/n 队列总结一、例程概述 本例程是使用节点编辑器建立一个 M/M/1 队列模型,同时对仿真收集到的统计数据进行数学分析。M/M/1 队列由先进先出的缓冲区组成,数据包的到达服从指数(泊…

Mybatis动态SQL查询 --(附实战案例--8888个字--88质量分)

目录 前言 一、动态SQL---if标签 1. 持久层添加用户通用查询方法 2. 映射文件添加相关标签 3. 测试类新建测试方法 4. 运行结果 二、动态SQL---where标签 1. 映射文件添加相关标签 2. 测试类新建测试方法 3. 运行结果 三、动态SQL---set标签 1. 持久层添加用户更新方…

DNS域名协议(IP段获取DNS服务器、反解析获取主机域名、查找子域名记录、查看子域名记录)

IP段获取DNS服务器 nmap 192.168.190.0/24 -p53 反解析获取主机域名 host 192.168.137.149 192.168.137.149 查找子域名记录 dig 192.168.137.149 -t axfr MAILMAN.com 查看子域名记录 dig 192.168.137.149 -t axfr _msdcs.MAILMAN.com

神经微分方程Resnet变体实现内存下降和保持精度

本文内容&#xff1a; 1、学习神经微分方程的笔记&#xff0c;主要锻炼自己学习新知识的能力和看有很多数学原理的论文能力&#xff1b; 2、神经微分方程可以用于时序数据建模、动力学建模等&#xff0c;但是本文专注于分类问题-resnet变体<比较容易理解>&#xff1b; …

StringBuffer,StringBuilder,

StringBuffer 结构示意图&#xff0c; Serializable,可以实现网络传输 package com.jshedu.StringBuffer_;/*** author Mr.jia* version 1.0*/public class StringBuffer01 {public static void main(String[] args) {/*1.在父类中AbstractStringBuilder 属性char[] value不是f…

博弈论在电动车和电网系统中分布式模型预测控制研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Android中使用有趣的指示器和过渡自定义 Compose Pager

Android使用有趣的指示器和过渡自定义 Compose Pager google最近在compose中新增了Pager控件&#xff0c;HorizontalPager和VerticalPager。 页面之间的转换 该文档涵盖了访问页面从“对齐”位置滚动到多远的基础知识。我们可以使用这些信息来创建页面之间的过渡效果。 例…