图结构感知的Transformer:一种新的图表示学习方法

news2024/11/14 20:28:37

人工智能咨询培训老师叶梓 转载标明出处

尽管图神经网络(GNNs)在处理图数据方面取得了显著成就,但它们在表达能力和捕获长距离依赖方面存在局限性。为了突破这些局限,研究者们开始探索将Transformer架构应用于图表示学习。在此基础上,瑞士苏黎世联邦理工学院的研究团队提出了一种创新的方法——Structure-Aware Transformer(SAT),旨在通过在自注意力机制中引入基于子图的表示,增强模型对图结构的感知能力,从而在计算注意力时能够显式地考虑节点间的图结构信息。

SAT

在传统的Transformer模型中,自注意力机制仅依赖于节点特征,忽略了节点在图中的结构位置和邻域信息。研究者提出的结构感知自注意力机制,通过引入子图表示来增强模型对图结构的感知能力。

图 2 展示了一个使用k-subgraph GNN提取器作为其结构提取器的SAT层的概述。结构提取器生成结构感知的节点表示,这些表示被用来计算Transformer层中的查询(Q)和键(K)矩阵。具体为k-subgraph GNN提取器首先提取以每个节点为中心的k-hop子图(这里,k=1),然后使用GNN在每个子图上生成节点表示,利用完整的子图信息。

结构感知自注意力函数不仅考虑了节点特征的相似性,还考虑了子图之间的结构相似性。这使得它能够生成比原始自注意力更富有表达性的节点表示。

公式 (5) 定义了结构感知注意力函数 SA-attn(v),其中 SG(v) 表示以节点 v 为中心的子图,与节点特征 X 相关联,κgraph 是可以比较一对子图的核函数。这种自注意力不再是节点排列不变的,而仅在节点的特征和子图相同时才不变,这是理想的属性。

公式 (6) 提供了 κgraph 的一种形式,它包含了一大类富有表达性且计算上可行的模型。

在定义了结构感知自注意力函数之后,Structure-Aware Transformer的其他组件遵循Transformer架构。如图 2 所示,自注意力函数后面是一个跳跃连接(skip-connection)、一个前馈网络(FFN)以及FFN前后的两个归一化层。另外跳跃连接中还包括了度因子,这有助于减少高度连接的图组件的压倒性影响。

公式 (9) 展示了如何结合自注意力和节点的度来更新节点表示。

对于图属性预测,有多种方法可以将节点级表示聚合成图表示,例如通过取平均或求和。或者,可以使用虚拟 [CLS] 节点的嵌入,该节点附加到输入图上,与其他节点没有连接。

尽管结构感知自注意力已经能够感知结构信息,但大多数绝对编码技术仅是位置感知的,因此可以提供补充信息。实际上结合使用可以进一步提高性能。研究者选择使用随机游走位置编码(RWPE),尽管也可以使用其他任何绝对位置表示,包括可学习的表示。

定理 1 表明,如果两个节点的子图表示相似,那么它们在结构感知注意力之后的表示也会相似。这表明结构感知编码可以生成相似的节点级表示,即使在不同图中,只要它们具有相似的局部结构。

由于结构感知注意力的设计独特,依赖于子图结构提取器,因此可以研究输出表示的表达性。定理 2 表明,结构感知注意力层的节点表示至少与其子图表示一样具有表达性。

通过这些创新,Structure-Aware Transformer在图表示学习领域提供了一种新的视角,有望推动相关技术的发展。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

评论留言“参加”或扫描微信备注“参加”,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实验中,SAT模型与多种GNNs进行了比较,包括GCN、GraphSAGE、GAT、GIN、PNA、DeeperGCN和ExpC等。同时,也与最近提出的多种基于图的Transformer模型进行了比较,包括原始的Transformer与RWPE、Graph Transformer、SAN、Graphormer和GraphTrans等。

在表1和表2中,SAT模型与其他GNNs和Transformers的性能进行了比较。结果显示,SAT在所有数据集上一致地超越了现有的最先进方法,证明了其结合GNNs和Transformers优势的能力。特别是在CODE2数据集上,尽管参数数量相对较少且仅进行了最小的超参数调整,SAT模型仍然大幅度超越了其他SOTA方法。

表3总结了SAT相对于其使用的稀疏GNN的性能,这些GNN用于提取子图表示。在不同的GNN选择中,两种变体的SAT(k-subtree和k-subgraph SAT)始终显著提高了基础GNN的性能,这表明结构感知方法的表达能力得到了显著提升。

超参数k的选择对SAT模型的性能有显著影响。图 3a 展示了在ZINC数据集上,使用PNA和不同k值的k-subtree和k-subgraph提取器时,测试MAE如何变化。结果表明,包含结构信息可以显著提高性能,k=3时性能最佳。与仅使用绝对位置编码的Transformer相比,结构感知注意力在性能上取得了显著提升,如图 3b所示。

除了性能提升外,SAT模型还提供了比仅具有绝对位置编码的经典Transformer更好的模型解释性。通过在Mutagenicity数据集上训练SAT模型和具有CLS读出的Transformer,并可视化[CLS]节点与其他节点之间的注意力分数,如图 4所示。SAT模型能够识别出更多与突变性相关的化学基团(例如NO2和NH2),并且注意力分数更稀疏、更具信息性。

这些实验结果不仅证明了SAT模型在图表示学习任务中的有效性,还展示了其在模型解释性方面的优势,为未来的研究和应用提供了有价值的参考。

https://arxiv.org/pdf/2202.03036v3

GitHub - BorgwardtLab/SAT: Official Pytorch code for Structure-Aware Transformer.

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

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

相关文章

使用Electron打包一个Vue3项目全步骤

1.创建一个Vue3项目 2.使用 WebStorm打开项目,并安装依赖项 npm install 等待完成后, 安装electron npm install --save-dev electron 等待完成后, 安装electron 打包依赖项(打包成可执行文件) npm install electron-packager --save-dev 3…

从零开始一个git操作实例,图文并茂

徒弟不懂git怎么用, 于是写了篇文章, 把本地git操作从头写了一遍, 自己去看吧! 0、基本概念 •Git是一个免费、开源的、分布式版本控制系统 •它使用一个特殊的叫做仓库的数据库来记录文件的变化 •仓库中的每个文件都有一个…

ccfcsp-202406(1、2、3、4、5)

矩阵重塑&#xff08;其一&#xff09; #include <bits/stdc.h> using namespace std; int main() {int n,m,p,q;cin >> n >> m >> p >> q;vector<int> vec(n * m);vector<vector<int>> res(p, vector(q,0));int k 0;for(in…

力扣反转链表系列【25. K 个一组翻转链表】——由易到难,一次刷通!!!

力扣《反转链表》系列文章目录 刷题次序&#xff0c;由易到难&#xff0c;一次刷通&#xff01;&#xff01;&#xff01; 题目题解206. 反转链表反转链表的全部 题解192. 反转链表 II反转链表的指定段 题解224. 两两交换链表中的节点两个一组反转链表 题解325. K 个一组翻转…

HarmonyOS---权限和http/Axios网络请求

网络请求(http,axios) 目录 一、应用权限管理1.1权限的等级1.2授权方式1.3声明权限的配置1.4如何向用户进行申请 二、内置http请求使用三、Axios请求使用&#xff08;建议&#xff09;3.1 使用方式一3.2 使用方式二&#xff08;建议&#xff09; 一、应用权限管理 应用权限保护…

git仓库服务器端损坏如何用本地code重新部署

文章目录 1. **在新服务器上创建一个新的 Git 仓库**2. **将本地仓库推送到新服务器**2.1. 添加新服务器为远程仓库2.2. 推送代码和历史记录2.3. 推送 tags&#xff08;如果有 tags&#xff09; 3. **在新服务器上拉取代码并部署**4. **确保修改记录和历史完整**5. **可选&…

Flink Task 日志文件隔离

Flink Task 日志文件隔离 任务在启动时会先通过 MdcUtils 启动一个 slf4j 的 MDC 环境&#xff0c;然后将 jobId 添加到 slf4j 的 MDC 容器中&#xff0c;随后任务输出的日志都将附带 joid。 MDC 介绍如下&#xff1a; MDC ( Mapped Diagnostic Contexts )&#xff0c;它是一个…

Linux 线程互斥

文章目录 3. Linux 线程互斥3.1 相关概念3.2 互斥量mutex3.3 互斥量的接口3.4 改进3.2中的代码3.5 互斥量&#xff08;锁&#xff09;的原理3.6 封装一下原生锁的接口&#xff0c;RAII风格的锁3.7 可重入 和 线程安全 3. Linux 线程互斥 3.1 相关概念 临界资源&#xff1a;多…

web自动化学习笔记

目录 一、web自动化测试环境搭建二、web自动化测试第一个脚本三、selenium 8种定位方式3.1、通过id定位3.2、通过name定位3.3、通过tag_name&#xff08;标签名&#xff09;定位3.4、通过class值进行定位3.5、通过链接文本定位3.6、通过部分链接文本定位3.7、通过xpath定位3.8、…

MySQL:SQL语句执行过程

本篇文章会分析下一个 SQL 语句在 MySQL 中的执行流程&#xff0c;包括 SQL 的查询在 MySQL 内部会怎么流转&#xff0c;SQL 语句的更新是怎么完成的。 在分析之前我会先带着你看看 MySQL 的基础架构&#xff0c;知道了 MySQL 由那些组件组成以及这些组件的作用是什么&#xf…

Spring_AMQP

文章目录 一、SpringAMQP二、SpringAMQP应用2.1、消息发送2.2、消息接收 一、SpringAMQP SpringAMQP是基于RabbitMQ封装的一套模板&#xff0c;并且还利用SpringBoot对其实现了自动装配&#xff0c;使用起来非常方便。 SpringAmqp的官方地址。 SpringAMQP提供了三个功能&am…

python27 安装pywinauto-0.6.8

文章目录 环境所需依赖依赖查找所需依赖链接1. comtypes2. six3. pyWin324. (optional) Pillow (to make screenshoots)5. pywinauto 安装结果 环境 windows 11 Python 2.7 setuptools 18.0.1 pip 18.1 所需依赖 依赖查找 按照官方文档&#xff08;https://pywinauto.readt…

MMROTATE 1.X特征图可视化(绘制Heat Map)

本文参考MMYOLO官方的特征图可视化教程&#xff0c;对MMROTATE相关算法进行特征图可视化 1. 新建featmap_vis_demo.py文件 在mmrotate项目文件夹下新建 featmap_vis_demo.py &#xff1a; # Copyright (c) OpenMMLab. All rights reserved. import argparse import os from t…

java intellij idea开发步骤,使用指南,工程创建与背景色字体配置,快捷键

intellij idea2021 配置背景色&#xff0c;字体大小&#xff0c;主题 快捷键

STM32系统时钟

时钟为单片机提供了稳定的机器周期&#xff0c;从而使我们的系统能够正常的运行 时钟就像我们人的心脏&#xff0c;一旦有问题就整个都会崩溃 stm32有很多外设&#xff0c;但不是所有的外设都使用同一种时钟频率工作&#xff0c;比如我们的内部看门狗和RTC 只要30几k的频率就…

计算机毕业设计推荐-基于python的白酒销售数据可视化分析

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、白酒销售数据…

react:React Hook函数

使用规则 只能在组件中或者其他自定义的Hook函数中调用 只能在组件的顶层调用&#xff0c;不能嵌套在if、for、 其他函数中 基础Hook 函数 useState useState是一个hook函数&#xff0c;它允许我们向组件中添加一个状态变量&#xff0c;从而控制影响组件的渲染结果 示例1…

[Excel VBA]如何使用VBA自动生成图表

在Excel中&#xff0c;图表是可视化数据的重要工具。以下是一个VBA代码示例&#xff0c;帮助你自动生成图表。 1. 代码说明 该代码会根据指定数据范围创建一个柱状图&#xff0c;并设置图表的基本属性。 2. VBA代码 Sub CreateChart()Dim ws As WorksheetDim chartObj As Ch…

百度营销转化追踪(网页JS布码)

引言&#xff1a;使用百度营销api配置网站上各个模块组件的转化追踪&#xff0c;统计网站上的各组件模块点击等信息。 一、选择接入方式&#xff08;本文选择的是网页JS布码&#xff09; 参考文档&#xff1a;百度营销-商业开发者中心百度开发者中心是一个面向开发者的知识分享…

Java启动Tomcat: Can‘t load IA 32-bit .dll on a AMD 64-bit platform报错问题解决

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…