Transformers是一种图神经网络

Hist2ST:联合Transformer和图神经网络从组织学图像中进行空间转录组学预测 近日《Briefings in Bioinformatics》发表了一种空间信息引导的深度学习方法:Hist2ST,用于从全载玻片图像(WSIs)进行空间转录组预测。 阅读详情

作者:

编译:ronghuaiyang

导读

这个观点的目的是构建Transformer结构背后的NLP上的直觉,以及与图神经网络的联系。

工程师朋友经常问我:“图深度学习”听起来很厉害,但有什么大的商业成功的故事吗?它有没有被部署在实际app中?

除了Pinterest、阿里巴巴和Twitter的推荐系统外,一个非常小的成功就是Transformer结构,这个结构带来了NLP的风暴。

通过这篇文章,我想在Graph Neural Networks (GNNs)和transformer之间建立联系。我会讨论NLP和GNN社区中,模型架构背后的直觉,使用方程和图把这两者建立联系,并讨论如何把这两个放到一起工作来得到进展。

让我们先谈谈模型架构的目的 —— 表示学习。

NLP的表示学习

在较高的层次上,所有的神经网络架构都将输入数据构建为向量/嵌入的“表示”,它们编码和数据有关的有用的统计和语义信息。这些潜在的或隐藏的表示可以用于执行一些有用的操作,比如对图像进行分类或翻译句子。神经网络通过接收反馈(通常是通过误差/损失函数)来“学习”,建立越来越好的表示。

对于自然语言处理(NLP),通常,递归神经网络(RNNs)以顺序的方式构建句子中每个单词的表示,即,一次一个单词。直观地说,我们可以把RNN层想象成一条传送带,上面的文字从左到右进行递归处理。最后,我们得到了句子中每个单词的隐藏特征,我们将其传递给下一个RNN层或用于我们的NLP任务。

RNNs以顺序的方式构建句子中每个单词的表示。一次一个单词。另一方面,Transformers 使用一种注意机制来判断句子中其他词对上述词的重要性。

Transformers最初是为机器翻译而引入的,现在已经逐渐取代了主流NLP中的RNNs。这个架构使用了一种全新的方式来进行表示学习:不需要进行递归,Transformers使用注意力机制构建每个单词的特征,找出句子中的其他词对于前面之前的词的重要程度。知道了这一点,单词的特征更新就是所有其他单词特征的线性变换的总和,并根据它们的重要性进行加权。


拆解Transformer

让我们通过将前一段翻译成数学符号和向量的语言来发展关于架构的直觉。我们在句子S中从第l层到第l+1层更新第i个单词的隐藏特征h:

其中j∈S表示句子中的词集,Q、K、V为可学习的线性权值(分别表示注意力计算的Query、Key和V值)。对于Transformers,注意力机制是对句子中的每个单词并行执行的,RNNs是一个词一个词的进行更新。

通过以下pipeline,我们可以更好地了解注意力机制:

用这个词的特征h_i ^ℓ^和句子中的其他的词的特征h_j ^ℓ^,∀j∈S,我们通过点积为每一对(i, j)计算注意力权重w~ij~,然后对所有的j计算softmax。最后,对所有的h_j ^ℓ^进行加权求和,产生更新的词的特征h_i ^{ℓ+ 1}。句子中的每个词都并行地经历同一个pipeline,以更新其特征。

多头注意力机制

要让这种点积注意力机制发挥作用是很棘手的,因为随机初始化会破坏学习过程的稳定性。我们可以通过并行地执行多个“头”的注意力,并连接结果来克服这个问题(现在每个头都有独立的可学习的权重):

其中,Q^k^,K^k^,V^k^是第k个注意力头的可学习的权重,O是降维投影,为了匹配特征的维度。

多个头可以让注意力机制从本质上“对冲赌注”,观察前一层隐藏特征的不同的转换或不同的方面。我们稍后会详细讨论。


尺度问题以及前馈层

Transformer架构的一个关键问题是,词的特征在注意力机制之后可能是不同尺度,(1)这是由于当对其他的单词特征进行求和的时候,这些单词的权重可能有非常shape的分布。(2)在个体的特征向量层面上,拼接多个注意力头可能输出不同的尺度的值,导致最后的值具有很宽的动态范围。照传统的ML的经验,在pipeline中添加一归一化层似乎是合理的。

Transformer通过LayerNorm克服了问题,它在特征级别归一化和学习仿射变换。此外,通过特征维度的平方根来缩放点积注意力有助于抵消问题(1)。

最后,作者提出了另一个控制尺度问题的“技巧”:一个position-wise的2层MLP。多头的注意力之后,通过一个可学习的权重,他们把向量*h_i ^{ℓ+ 1}*投影到更高的维度上,然后通过ReLU再投影回原来的尺寸,再接另一个归一化:

老实说,我不确定这个过于参数化的前馈子层背后的确切直觉是什么,而且似乎也没有人对它提出问题!我认为LayerNorm和缩放的点积并没有完全解决这个问题,所以大的MLP是一种独立地重新缩放特征向量的hack。


Transformer层的最终看起来是这样的:

Transformer架构也非常适合深度网络,使得NLP社区在模型参数和数据方面都能进行扩展。每个多头注意子层和前馈子层的输入和输出之间的残差连接是叠加Transformer层的关键(但为了清楚起见在图中省略)。

用GNNs构建图的表示

让我们暂时离开NLP。

图神经网络(GNNs)或图卷积网络(GCNs)构建图数据中的节点和边的表示。它们通过邻域聚合(或消息传递)来实现,其中每个节点从其邻域收集特征,以更新其周围的局部的图结构的表示。堆叠几个GNN层使模型能够在整个图中传播每个节点的特征 —— 从它的邻居传播到邻居的邻居,等等。

以这个表情社交网络为例:GNN产生的节点特征可以用于预测任务,如识别最有影响力的成员或提出潜在的联系

在其最基本的形式中,GNN在第ℓ层通过对节点自身的特征和邻居节点的特征非线性变换的方式进行聚合,更新节点i的隐藏特征h:

其中U、V为GNN层的可学习权重矩阵,σ为ReLU等非线性变换。

邻居节点的总和*j∈N(i)*可以被其他输入大小不变的聚合函数代替,比如简单的mean/max,或者更强大的函数,比如通过注意力机制的加权和。

听起来耳熟吗?

也许一个pipeline有助于建立联系:

如果我们将多个并行的邻域头进行聚合,并将邻域j的求和替换为注意力机制,即加权和,我们就得到图注意力网络 (GAT)。加上归一化和前馈MLP,看,我们得到一个图Transformer!


句子是完全联通的词图

为了使这种联系更加明确,可以把一个句子看作是一个完全连通的图,其中每个单词都与其他单词相连。现在,我们可以使用GNN为图(句子)中的每个节点(单词)构建特征,然后我们可以使用它执行NLP任务。

广义上说,这就是Transformers 正在做的事情:它们是带有多头注意力的GNN,作为邻居的聚合函数。标准的GNNs从其局部邻居节点j∈N(i)中聚合特征,而NLP的Transformers将整个句子S作为局部邻居,从每一层的每个单词j∈S中聚合特征。

重要的是,各种针对特定问题的技巧 —— 比如位置编码、因果/隐藏聚合、学习率策略和预训练 ——对Transformers 的成功至关重要,但很少在GNN社区中出现。同时,从GNN的角度来看Transformers可以让我们摆脱架构中的许多花哨的东西。

我们可以相互学到点什么?

现在我们已经在Transformers和GNN之间建立了联系,让我来谈谈……

全连通图是NLP的最佳输入格式吗?

在统计NLP和ML之前,像Noam Chomsky这样的语言学家专注于发展语言结构的正式理论,比如语法树/图。Tree LSTMs已经尝试过了,但是也许transformer/GNNs是更好的架构,可以让语言理论和统计NLP的世界更靠近?

如何学习长期的依赖?

完全连通图的另一个问题是,它们让学习单词之间的长期依赖关系变得很困难。这仅仅是因为图中的边的数量是如何随着节点的数量以平方量级增长的。在一个有n个单词的句子中,一个Transformer/GNN将对n^2^个单词对进行计算。对于非常大的n,就没办法处理了。

NLP社区对长序列和依赖问题的看法很有趣:让注意力力机制变得稀疏或者可以自适应输入的大小,对每一层添加递归或压缩,使用局部敏感哈希来获得有效的注意力,都是改善Transformer的有前途的新想法。

看到来自GNN社区的想法加入其中将是很有趣的,例如使用划分二部图的方式用于句子图稀疏化似乎是另一种令人兴奋的方法。

Transformers在学习“神经语法吗” ?

有几个有趣的文章来自NLP社区,是有关Transformers可能正在学习的内容。它的基本前提是,对句子中的所有词进行关注,以确定对哪些词最感兴趣,从而使“Transformers”能够学习一些类似于特定任务语法的东西。在多头注意力中,不同的头也可能“看”不同的句法属性。

用图的术语来说,通过在全图上使用GNN,我们能从GNN如何在每一层执行邻居的聚合来恢复最重要的边缘(以及它们可能包含的内容)吗?对于这个观点,我并不那么信服。

为什是多头注意力?为什么是注意力?

我更赞同多头机制的优化视图 —— 拥有多个注意力头改进了学习并克服了错误的随机初始化。例如,这些论文表明Transformer 头可以在训练被“修剪”或删除,而不会对性能产生显著影响。

多头邻居聚合机制在GNNs中也被证明是有效的,例如,GAT使用相同的多头注意力和MoNet使用多个高斯核聚合特征。虽然是为了稳定注意力机制而发明的,但是多头机制会成为压榨模型性能的标准操作吗?

相反,具有简单聚合函数(如sum或max)的GNN不需要多个聚合头进行稳定的训练。如果我们不需要计算句子中每个词对之间的配对兼容性,对Transformers来说不是很好吗?

Transformers能从完全摆脱注意力中获益吗?Yann Dauphin和合作者的最近工作提出了一种替代的ConvNet的架构。Transformers也可能最终会做一些类似的事情。

为什么训练Transformers 这么难?

阅读Transformer的新论文让我觉得,在确定最佳学习率策略、热身策略和衰变设置时,训练这些模型需要类似于“黑魔法”的东西。这可能只是因为模型太大了,而NLP的研究任务太具有挑战性了。

最近的研究结果认为,也可能是因为归一化的具体排列和架构内的残差连接的原因。

image-20200611142642846

在这一点上,我很愤怒,但这让我怀疑:我们真的需要多个头的昂贵的两两的注意力吗,过分参数化的MLP层,和复杂的学习率策略吗?

我们真的需要拥有这么大的模型吗?

对于手头的任务来说,具有良好的归纳偏差的架构不应该更容易训练吗?

进一步的阅读

这个博客并不是第一个将GNNs和Transformers联系起来的博客:以下是Arthur Szlam关于注意力/记忆网络、GNNs和Transformers之间的历史和联系的精彩演讲:https://ipam.wistia.com/medias/1zgl4lq6nh。同样,DeepMind的明星云集的position paper引入了图网络框架,统一了所有这些想法。DGL团队有一个关于把seq2seq问题转化为GNN的很好的教程:https://docs.dgl.ai/en/latest/tutorials/models/4_old_wines/7_transformer.html

—END—

英文原文:https://towardsdatascience.com/transformers-are-graph-neural-networks-bca9f75412

图神经网络与 Transformer 多模型对比实战:从数据处理到结果分析全流程 ​ 在机器学习与深度学习领域,模型的选择与对比是优化算法性能的关键环节。本文将基于 Python 和 PyTorch 框架,结合torch_geometric库,详细展示图卷积网络(GCN)、图注意力网络(GAT)、视觉 Transformer(ViT)以及混合模型(Hybrid)的完整实现过程。从数据加载、模型定义、训练评估到结果保存,每一步都提供可复用的代码,适合算法研究、学术论文写作和工程实践参考。 数据参考(注意:直接用链接中的数据替换):https://download.youkuaiyun.com/dow 阅读详情

相关推荐

Transformers与图神经网络的关系,我们能从transformer学习到什么?

1、导读 这个观点的目的是构建Transformer结构背后的NLP上的直觉,以及与图神经网络的联系。 图深度学习”听起来很厉害,但有什么大的商业成功的故事吗?它有没有被部署在实际app中? 除了Pinterest、阿里巴巴和Twitter的推荐系统外,一个非常小的成功就是Transformer结构,这个结构带来了NLP的风暴。 通过这篇文章,我想在Graph Neural Networks (GNNs)和transformer之间建立联系。我会讨论NLP和GNN社区中,模型架构背后的直觉,使用方程和图把这

u013602059的专栏 4443

Transformer

文章目录transformer1. 概述1.1. 网络整体结构1.2. 网络结构大致解析2. Encoder2.1. Encoder概况2.2. 输入部分2.2.1. Embedding2.2.2. 位置嵌入 / 位置编码2.3. 注意力机制2.3.1 注意力2.3.2 多头的操作2.4. 残差和LayerNorm2.4.1. 残差2.4.2. LayerNorm2.5. 前馈神经网络3. Decoder3.1. Decoder概况3.2. Decoder中的多头注意力机制3.3. Dncoder和Deco

a264672的博客 2923

transformer架构_原来Transformer就是一种图神经网络,这个概念你清楚吗?

Transformer和GNN有什么关系?一开始可能并不明显。但是通过这篇文章,你会从GNN的角度看待Transformer的架构,对于原理有更清楚的认知。选自NTU Graph Deep Learning Lab,作者:Chaitanya Joshi,机器之心编译,参与:一鸣、杜伟、Jamin。有的工程师会问这个问题:图深度学习听起来不错,但是有没有商业上的成功案例?它是否已经在实际应用中使用过...

weixin_39531635的博客 1343

Transformers 是一种图神经网络

文章目录NLP 的表示学习拆解 Transformer多头注意力机制尺度问题以及前馈层用 GNNs 构建图的表示句子是完全联通的词图我们可以相互学到点什么?全连通图是 NLP 的最佳输入格式吗?如何学习长期的依赖?Transformers 在学习 “神经语法吗” ?为什是多头注意力?为什么是注意力?为什么训练 Transformers 这么难?进一步的阅读 转载来源:https://mp.weixin.qq.com/s/N1I4mGKzsHJiAluZL17sDQ 作者:Chaitanya Joshi 编

hwaust2020的博客 1430

不只是pip install:深入理解sentence_transformers在PyG MovieLens中的角色与替代方案

本文深入探讨了sentence_transformers在PyG MovieLens推荐系统中的关键作用,分析了其文本嵌入功能如何提升语义理解能力。同时对比了HuggingFace Transformers、BERT-as-service和FastText等替代方案,帮助开发者根据需求选择最佳工具,并提供了性能优化和错误处理的实用建议。

weixin_42624889的博客 295

别只傻傻pip install了:深入理解sentence-transformers在PyG MovieLens中的作用

本文深入解析了sentence-transformers在PyG MovieLens数据集中的核心作用,探讨了如何将文本特征转换为图神经网络可处理的向量表示。通过分析all-MiniLM-L6-v2模型的优势及替代方案,帮助开发者解决ModuleNotFoundError等常见问题,优化推荐系统性能。

weixin_42547431的博客 329

TPAMI 2024 | 计算机视觉中基于图神经网络和图Transformers的方法和最新进展

点击蓝字 关注我们关注并星标从此不迷路计算机视觉研究院公众号ID|计算机视觉研究院学习群|扫码在主页获取加入方式论文标题:A Survey on Graph Neural Networks and Graph Transformers in Computer Vision: A Task-Oriented Perspective论文地址:https://arxiv.org/abs/2209.132...

gzq0723的博客 757

Transformer 作为图神经网络

Transformer 作为图神经网络:叶子豪、周金晶、郭启鹏、甘泉、张政警告本教程旨在通过代码作为解释手段,深入了解本文。因此,该实现并未针对运行效率进行优化。推荐实现请参考。在本教程中,您将了解 Transformer 模型的简化实现。您可以看到最重要的设计点的亮点。例如,只有单头注意力。找到。中的结构类似。Transformer 模型作为序列建模的 CNN/RNN 架构的替代品,在研究论文《中被介绍。它提高了机器翻译和自然语言推理任务()的技术水平。最近使用大规模语料库(

具身机器人和通用AI 1624

原来Transformer就是一种图神经网络,这个概念你清楚吗?

Transformer和GNN有什么关系?一开始可能并不明显。但是通过这篇文章,你会从GNN的角度看待Transformer的架构,对于原理有更清楚的认知。 选自NTU Graph Deep Learning Lab,作者:Chaitanya Joshi,机器之心编译,参与:一鸣、杜伟、Jamin。 有的工程师会问这个问题:图深度学习听起来不错,但是有没有商业上的成功案例?它是否已经在实际应用...

喜欢打酱油的老鸟 1598

Altium Designer操作技巧(4)——如何利用嘉立创EDA来输出3D封装到AD封装库?

本文介绍了利用嘉立创EDA和FreeCAD软件为PCB元件添加3D模型的方法。首先在嘉立创EDA中搜索元件编号并导出3D模型,然后使用FreeCAD删除3D模型中的PCB基板部分,最后将处理后的3D模型导入PCB封装库并更新到PCB设计中。文章详细讲解了每个步骤的操作流程,包括模型导出、基板删除、位置调整等关键环节,并提供了解决常见问题的方法。通过这种方法,电子工程师可以快速获得元器件的3D模型,提高PCB设计的准确性。

u012526819的博客 2594

YOLOv11n-seg 实战指南:从训练到模型部署的完整流程

本文提供了YOLOv11n-seg实例分割模型从环境准备、数据标注到模型训练、验证及最终部署的完整实战指南。详细讲解了如何准备多边形掩码数据、配置关键训练参数、解读分割核心评估指标,并重点介绍了将模型导出为ONNX等格式进行部署的流程与优化技巧,帮助开发者高效完成从开发到生产的全链路实践。

weixin_29062255的博客 556

顶刊TPAMI 2024!计算机视觉中基于图神经网络和图Transformers的方法和最新进展

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【Mamba和遥感影像】交流群添加微信号:CVer111,小助手会拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶刊上的论文idea和CV从入门到精通资料,及最前沿应用!发论文/搞科研/涨薪,强烈推荐!转载自:机器之心本篇综述工作已被《IEEE 模式分析与机器智能汇刊》(IEEE TPAMI)...

阿木寺的博客 1440

基于JavaEE的银行大客户关系维护系统(JSP+java+springmvc+mysql+MyBatis)

基于JavaEE技术的大型银行客户关系管理系统可以实现客户信息的集中管理、客户需求的分析与挖掘、个性化的服务推荐等功能。+ Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。用户发送请求:用户通过浏览器或其他客户端向系统发送请求,请求访问特定的页面或执行特定的操作。前端展示结果:前端接收到后端返回的数据,根据需要进行展示。数据返回给前端:后端程序处理完业务逻辑后,将结果数据返回给前端。后端程序接收到请求后,根据请求的类型和参数进行相应的处理。

gp1052的博客 720

探索图神经网络的新前沿:GraphStorm框架深度解析

探索图神经网络的新前沿:GraphStorm框架深度解析 在大数据和人工智能蓬勃发展的今天,图数据处理成为了不可或缺的一环。为了满足企业级应用对大规模图机器学习(GML)模型的迫切需求,Amazon Web Services推出了一个重量级开源工具——GraphStorm。 项目介绍 GraphStorm是一个专为工业级图数据设计的机器学习框架,旨在简化复杂图结构上的模型开发、训练和部署过程。该框...

gitblog_00036的博客 861

警惕AI依赖:如何避免数字水蛭侵蚀你的认知能力

在人工智能技术日益普及的今天,人机协作已成为现代工作流的核心范式。其原理在于通过算法模型辅助人类完成信息处理、内容生成等任务,从而提升效率。然而,过度依赖AI可能导致认知卸载,引发思考能力退化等潜在风险。从技术价值看,AI的核心在于增强而非替代人类智能,关键在于建立健康的协作模式。在应用场景上,无论是编程开发、内容创作还是决策分析,用户都需警惕工具依赖对深度工作、创造性思维和决策责任的侵蚀。本文聚焦于识别AI依赖的早期信号,并提供构建分阶段使用流程、将AI作为质疑者等具体策略,旨在帮助读者守护核心认知能力,

weixin_30240349的博客 626

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计

printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。

PP_Cottage的博客 1034

《Pure Transformers are Powerful Graph Learners》NIPS2022

论文展示了标准Transformer模型,无需针对图数据的特定修改,就可以在图学习领域取得有希望的结果,无论是在理论还是实践上。作者提出,通过将图中的所有节点和边视为独立的token,并通过适当的token嵌入增强它们,然后将这些token输入到Transformer中,就可以有效地处理图数据。这种方法在大规模图数据集 PCQM4Mv2 上取得了显著优于图神经网络(GNN)基线的结果,并且与具有复杂图特定归纳偏置的Transformer变体相比具有竞争力。

qq_46981910的博客 1114

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1952
上一篇: YOLOv5它来了!YOLOv4发布不到50天,它带着推理速度140帧/秒、性能提升2倍来了
下一篇: 深度学习的多个loss如何平衡 & 有哪些「魔改」损失函数,曾经拯救了你的深度学习模型?...
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值