论文链接https://arxiv.org/abs/2106.04554 202106年论文时间 复旦大学 【论文长度】40页
论文目录
- A Survey of Transformers-Transformers的文献综述
- 1 INTRODUCTION 引言
- 2 BACKGROUND 背景-介绍了 Transformer架构及关键组件。
-
- 2.1 Vanilla Transformer-原始Transformer
-
- 2.1.1 Attention Modules-注意力模块
- 2.1.2 Position-wise FFN-前模块的位置
- 2.1.3 Residual Connection and Normalization-残差连接与归一化
- 2.1.4 Position Encodings-位置编码
- 2.2 Model Usage-模型使用
- 2.3 Model Analysis-模型分析
- 2.4 Comparing Transformer to Other Network Types-比较trm和其他
-
- 2.4.1 Analysis of Self-Attention 自我注意力分析
- 2.4.2 In Terms of Inductive Bias 归纳偏好(西瓜书把Inductive Bias翻译成归纳偏好,更合适)
- 3 TAXONOMY OF TRANSFORMERS -trm变体及其分类
- 4 ATTENTION-注意力及其变体
-
- 4.1 Sparse Attention-稀疏注意力
-
- 4.1.1 Position-based Sparse Attention.-稀疏位置注意力
-
- 4.1.1.1 Atomic Sparse Attention-原子注意力稀疏
- 4.1.1.2 Compound Sparse Attention-复合稀疏注意力
- 4.1.1.3 Extended Sparse Attention-扩大稀疏注意力
- 4.1.2 Content-based Sparse Attention-内容稀疏
- -4.2 Linearized Attention-线性注意力
- -4.3 Query Prototyping and Memory Compression-查询原型和内存压缩
- -4.4 Low-rank Self-Attention-低秩自注
- -4.5 Attention with Prior-有先验的注意力
- -4.6 Improved Multi-Head Mechanism-完善多头机制
-
- -4.6.1 Head Behavior Modeling-关于头部行为建模
- -4.6.2 Multi-head with Restricted Spans-多头限制跨度
- -4.6.3 Multi-head with Refined Aggregation-多头聚合精细
- 4.6.4 Other Modifications-其他修改
- -5 OTHER MODULE-LEVEL MODIFICATIONS-其它模块级变体
-
- -5.1 Position Representations-位置表征
-
- -5.1.1 Absolute Position Representations-绝对位置表达
- -5.1.2 Relative Position Representations-表达相对位置
- -5.1.3 Other Representations-表达其他位置
- 5.1.4 Position Representations without Explicit Encoding-没有明确的位置编码
- 5.1.5 Position Representation on Transformer Decoders-trm解码器上的位置表示
- 5.2 Layer Normalization-层归一化
-
- 5.2.1 Placement of Layer Normalization-层归一化的放置
- 5.2.2 Substitutes of Layer Normalization-替代层归一化
- 5.2.3 Normalization-free Transformer-去除归一化
- 5.3 Position-wise FFN-网络前的位置
-
- 5.3.1 Activation Function in FFN-FFN的激活函数
- 5.3.2 Adapting FFN for Larger Capacity.-调整FFN适应大容量
- 5.3.3 Dropping FFN Layers-去掉FFN
- 6 ARCHITECTURE-LEVEL VARIANTS-结构级变体
-
- 6.1 Adapting Transformer to Be Lightweight-轻量化
- 6.2 Strengthening Cross-Block Connectivity-加强跨区块连接
- 6.3 Adaptive Computation Time-自适应计算时间
- 6.4 Transformers with Divide-and-Conquer Strategies-分治下的trm
-
- 6.4.1 Recurrent Transformers-循环trm
- 6.4.2 Hierarchical Transformers-分层trm
-
- 6.4.2.1 Hierarchical for long sequence inputs-分层长文本trm
- 6.4.2.2 Hierarchical for richer representations-分层表达更丰富trm
- 6.5 Exploring Alternative Architecture-探索替代结构
- 7 PRE-TRAINED TRANSFORMERS-预训练的trm
- 8 APPLICATIONS OF TRANSFORMER-trm的应用
- 9 CONCLUSION AND FUTURE DIRECTIONS-总结展望
A Survey of Transformers-Transformers的文献综述
Transformers在自然语言处理、计算机视觉和音频处理等人工智能领域取得了巨大的成功。因此,吸引学术和行业研究人员的许多兴趣是很自然的。到目前为止,还有各种各样的东西。Transformers变体(记:X-Formers),然而,仍然缺乏对这些变形变体的系统和全面的文献综述。在这项调查中,我们对各种调查进行了调查X-Formers全面审查 首先,我们简要介绍了原始Transformers,然后提出了X-Formers的新分类。 接下来,我们从三个角度介绍各种X-Formers:结构修改、预训练和应用。最后,我们总结了未来研究的一些潜在方向
1 NTRODUCTION 引言
Transformers[137]是一个突出的深度学习模型,已被广泛采用,如自然语言处理(NLP),计算机视觉(CV)和语音处理。Transformers也被作为机器翻译的序列到序列模型[130]。后来的工作表明,基于Transformers的预训练模型(PTMS)[100]可以实现各种任务的最先进的表演。因此,Transformers已成为NLP中的通用架构,尤其是PTMS。除语言相关应用外,还采用了CV [13,33,94],音频处理[15,31,41]甚至其他学科,如化学[114]和生命科学[109]。由于成功,各种Transformers变体(记:X-Formers)已在过去几年提出。 这些X-Formers从不同的角度改善了原始的Transformers。
- Model Efficiency模型效率 应用Transformers的关键挑战是其效率低于处理长序列的效率,主要是由于自我关注模块的计算和内存复杂性。改进方法包括轻量级注意(例稀疏的注意力)和分而治之方法(例,循环和分层机制)。
- Model Generalization模型泛化 由于Transformers是一个灵活的架构,并且在输入数据的结构偏好上做了少量的假设,因此很难在小规模数据上训练。改进方法包括引入结构偏好或正则化,在大规模未标记数据上进行(无监督)的预训练。
- Model Adaptation模型适应性 这条工作行旨在使Transformers调整到特定的下游任务和应用程序。
在本调查中,我们的目标是对Transformers及其变体提供全面的调查。虽然我们可以根据上述角度来组织X-Formers,但许多现有的X-Formers可以解决一个或几个问题。例如,稀疏的注意变体不仅可以降低计算复杂性,而且还将在输入数据之前引入先验以缓解小型数据集的过拟合问题。因此,将各种现有的X-Formers分类并提出新的分类物,主要根据其改进原始Transformers的方式提出新的分类物:架构修改,预训练和应用。考虑到这项调查的受众可能来自不同的域,我们主要关注一般的架构变体,并只是讨论了预训练和应用的特定变体。 本调查的其余部分安排如下:
- 2 介绍了 Transformer的架构和关键组件。
- 3 阐明了 Transformer 变体的分类。
- 4和5审视了模块级修改,包括注意力模块、位置编码、层归一化和前馈层。
- 6 架构级变体。
- 7 介绍了一些代表性的基于Transformer的 PTM。
- 8 介绍Transformer的应用在各种不同的领域。
- 9 讨论了研究人员可能发现的 Transformer的耐人寻味的某些方面并总结了这篇论文
2 BACKGROUND 背景-介绍了 Transformer的架构和关键组件。
2.1 Vanilla Transformer-原始Transformer
原始的trm[137]是序列到序列模型,包括编码器和解码器,每个都是堆叠相同块。每个编码器块主要由多头自我注意模块和位置方向前馈网络(FFN)组成。为了构建更深的模型,在每个模块周围采用残差连接[49],然后是图层归一化[4]模块。与编码器块相比,解码器块在多头自我关注模块中和FFN之间插入交叉注意力模块。此外,解码器中的自我注意模块为了防止每个位置使用后续的位置的信息做了调整。原始的trm的整体架构如图1所示。 在以下小节中,我们将介绍原始的trm的关键模块.
2.1.1 Attention Modules-注意力模块
Transformers采用Query-Key-Value(QKV)模型。其中矩阵定义如下:Query矩阵 Q ∈ R N × D k \mathbf Q\in \mathbb{R}^{N\times D_k} Q∈RN×Dk,Key矩阵 K ∈ R M × D k \mathbf K\in \mathbb{R}^{M\times D_k} K∈RM×Dk,Value矩阵 V ∈ R M × D v \mathbf V\in \mathbb{R}^{M\times D_v} V∈RM×Dv,那么trm使用的缩放点击注意力(以下直接使用scaled dot-product attention,袁一涵注)为: Attention ( Q , K , V ) = softmax ( Q K T D k ) V = A V (1) \text{Attention}(\mathbf{Q,K,V})=\text{softmax}(\frac{\mathbf{QK}^\text T}{\sqrt{D_k}})\mathbf V=\mathbf {AV} \tag{1} Attention(Q,K,V)=softmax(Dk QKT)V=AV(1) 其中𝑁和𝑀表示Q和K(或V)的长度; 𝐷 𝑘 𝐷_𝑘 Dk和 𝐷 𝑣 𝐷_𝑣 Dv表示Q(或K)和V的尺寸; A = softmax ( Q K T D k ) A=\text{softmax}(\frac{\mathbf{QK}^\text T}{\sqrt{D_k}}) A=softmax(Dk QKT)通常被称为注意矩阵;softmax采用以行为单位的应用方式。Q和K的点击除以了 D k \sqrt{D_k} Dk 以用来让softmax不在饱和区域(饱和区有梯度消失问题)。 不是简单地使用单头注意力功能,Transformers使用多头注意力机制,其中𝐷𝑚维原始Q,K和V分别投射到𝐷𝑘,𝐷𝑘和𝐷𝑣尺寸,𝐻为不同的角度投影。 对于每个投影的Q,K和V,根据公式1的注意力计算,然后,模型连接所有输出并将它们投影回𝐷𝑚维表示,即: MultiHeadAttn ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d H ) W O (2) \text{MultiHeadAttn}(\mathbf{Q, K, V}) = Concat(head_1,...,head_H) \mathbf{W^O} \tag 2 MultiHeadAttn(Q,K,V)=Concat(head1,...,headH)WO(2) where head i = Attention ( Q W i Q , K W i K , V W i V ) (3) \text{where head}_i =\text{ Attention}(\mathbf{QW}_i^Q,\mathbf{KW}_i^K,\mathbf{VW}_i^V) \tag{3} where headi= Attention(QWiQ,KWiK,VWiV)(3) 原始的trm架构在Transformers中,根据QKV的信息来源有三种注意力:
- 自注意力。在trm的编码器,在公式2中,Q=K=V=X,其中X是前一层的输出
- 掩码自注意力。在Transformers解码器中,限制了自我关注,使得每个位置的查询只能参加到所有键值对并且包括该位置的所有键值对。
- 交叉注意力。查询从上一个(解码器)层的输出Q,而使用编码器的输出投影K和V
2.1.2 Position-wise FFN-位置前向模块
位置的FFN是一个完全连接的前馈模块,其在每个位置和相同地在每个位置和相同上操作,每个位置都会作如下处理: FFN ( H ′ ) = ReLU ( H ′ W 1 + b 1 ) W 2 + b 2 (4) \text{FFN}(\mathbf H')=\text{ReLU}\mathbf{(H'W^1+b^1)W^2+b^2} \tag 4 FFN(H′)=ReLU(H′W1+b1)W2+b2(4) 其中, H ′ \mathbf H' H′是前一层输出, W 1 ∈ R D m × D f , W 2 ∈ R D f × D m , b 1 ∈ R D f , b 2 ∈ R D m \mathbf{W^1}\in \mathbb{R}^{D_m\times D_f},\mathbf{W^2}\in \mathbb{R}^{D_f\times D_m},\mathbf{b^1}\in \mathbb{R}^{D_f},\mathbf{b^2}\in \mathbb{R}^{D_m} W1∈RDm×Df,W2∈RDf×Dm,b1∈RDf,b2∈RDm是训练参数,典型的 D f D_f Df维度要大于 D m D_m Dm。
2.1.3 Residual Connection and Normalization-残差连接和归一化
为了建立更深的网络,trm在每个模块里使用了残差连接,后面设置了 LN(层归一化),每一层使用如下: 其中,LayerNorm(·) 是层归一化操作。
2.1.4 Position Encodings-位置编码
由于Transformers不会引入循环或卷积,因此位置信息(特别是对编码器)被忽略了。因此额外的位置表示(5.1中的详细讨论)是必要的
2.2 Model Usage-模型使用
通常,Transformer 架构可以以三种不同的方式使用:
- Encoder-Decoder编解码器。使用2.1章节介绍的全部结构。这通常用于序列到序列模型(比如机器翻译)
- Encoder只用编码。仅使用编码器,编码器的输出用作输入序列的表示。这通常用于分类或序列标签问题。
- Decoder只用解码器。仅使用解码器,其中编码器-解码器交叉注意模块也被移除。这通常用于序列生成,例如语言建模
2.3 Model Analysis-模型分析
为了说明Transformer的计算时间和参数要求,我们分析了Transformer的两个核心部件(即表1中的自我注意模块和位置相关的FFN)。我们假设该模型隐藏层维度为𝐷, 输入序列长度为𝑇. FFN的中间尺寸设置为4𝐷, K和V的尺寸设置为𝐷/𝐻, 如Vaswani等人[137]。 。此外,自我注意的计算需要T×T大小的矩阵被存储,这使得Transformer对于长序列场景的计算(例如:长文本文档和高分辨率图像的像素级建模)。应该看到,提高Transformer效率的目标通常会导致自我关注的长序列兼容性,以及普通设置下位置相关FFN的计算和参数效率
2.4 Comparing Transformer to Other Network Types-比较trm和其他
2.4.1 Analysis of Self-Attention 自注意力的分析
作为Transformers的核心,自我关注具有灵活的机制来处理可变长度输入。它可以理解为FC的层,其中权重从来自输入的成对关系动态生成。表2比较了三种常用的图层类型的自我关注的复杂性,顺序操作和最大路径长度。我们总结了自我关注的优点,如下所示: (1)它具有与FC的层相同的最大路径长度,使其适用于远程依赖性建模。与FC的图层相比,处理可变长度输入方面更具参数高效且更灵活 (2)由于卷积层的视野有限,通常需要堆叠深网络以具有全局接收领域。另一方面,常数级的最大路径长度使自我关注能够以常数级数量的层模拟长距离依赖性 (3)常数级的顺序操作和最大路径长度使得自关注比递归网络更具并行性,并且在长距离建模中表现更好
2.4.2 In Terms of Inductive Bias 归纳偏好(西瓜书把Inductive Bias翻译成归纳偏好,更贴切)
Transformers经常与卷积和递归网络进行比较。已知卷积网络利用共享的局部核函数施加平移不变性和局部性的归纳偏好。类似地,递归网络通过其马尔可夫结构携带时间不变性和局部性的归纳偏好[9]。另一方面,Transformer架构很少对数据的结构信息进行假设。这使Transformer成为一种通用且灵活的体系结构。作为一个副作用,缺少结构偏好使得Transformer容易对小规模数据进行过度拟合。 另一种密切相关的网络类型是带有消息传递的图神经网络(GNNs)[149]。可以将Transformer视为在完整有向图(带自循环)上定义的GNN,其中每个输入都是图中的一个节点。Transformer和GNNs之间的关键区别在于Transformer没有引入关于输入数据结构的先验知识-Transformer中的消息传递过程完全依赖于内容的相似性度量。
3 TAXONOMY OF TRANSFORMERS -trm的变体及其分类
到目前为止,原始的 Transformer,已经从三个角度提出了各种各样的模型:架构修改类型、预训练方法和应用程序。图2给出了Transformer变体分类的图示。 图3说明了我们的分类法和一些有代表性的模型 在本次调查中,我们重点回顾了架构修改方面的工作。由于注意模块是Transformer的关键组件,因此我们在第4节中描述与注意相关的变体。第5节介绍其他模块级变体。第6节描述结构级别的变体。最后,我们在第7节回归和预训练相关的工作。第8节描述应用。对后两类工作进行了一些综合调查,如预训练模型(PTM)[100]和视觉trm[47,64]。
4 ATTENTION-注意力及其变体
自我注意力在Transformers中发挥着重要作用,但实际应用中存在两个挑战
- 复杂性。自我关注的复杂性是当处理长序列时,注意模块成为瓶颈
- 先验。自我注意不假设对输入有任何结构偏好。甚至顺序信息也需要从训练数据中学习。因此,Transformer(不带预训练)通常很容易在小型或中型数据上过拟合。
注意机制的改进可以分为几个方向:
- 稀疏注意力。这项工作将稀疏性偏好引入注意机制,从而降低了复杂性。
- 线性化注意力。这项工作将注意力矩阵与内核特征映射分离。然后按相反的顺序计算注意力,以获得线性复杂度。
- 原型和内存压缩。这类方法减少了查询或键值内存对的数量,以减小注意矩阵的大小
- 低秩的自我关注。这项工作抓住了自我关注的低秩属性
- 加入先验。这一研究领域探索用先前的注意力分布来补充或替代标准注意力
- 改进的多头机构。这一系列研究探索了不同的替代性多头机制
我们将在本节的其余部分详细描述这些注意变体
4.1 Sparse Attention-稀疏注意力
在标准的自我关注机制中稀疏关注,每个token都需要参加所有其他token。然而,观察到,对于训练有素的Transformers,所学到的注意力矩阵A通常在大多数数据点中的稀疏[17] 。此,可以通过结合结构偏好来减少计算复杂性以限制每个查询所使用的QK对的数量。在这种限制下,我们只根据预定义模式计算QK对的相似度分数: 其中Aˆ是非标准化注意矩阵。在实践中,−∞ 的项通常不存储在内存中,以减少内存占用。 从另一个角度来看,标准注意可以被视为一个完整的二部图,其中每个Q从所有内存节点接收信息并更新其表示。稀疏注意可以看作是一个稀疏图,其中删除了节点之间的一些连接。 基于确定稀疏连接的度量,我们将这些方法分为两类:基于位置的稀疏注意和基于内容的稀疏注意。
4.1.1 Position-based Sparse Attention.-位置稀疏注意力
在基于位置的稀疏注意中,注意矩阵根据一些预定义的模式进行限制。虽然这些稀疏模式有不同的形式,但我们发现其中一些可以分解为一些原子稀疏模式。 我们首先确定一些原子稀疏模式,然后描述在一些现有工作中这些模式是如何组成的。最后,我们介绍了一些针对特定数据类型的扩展稀疏模式。
4.1.1.1 Atomic Sparse Attention-原子稀疏注意力
主要