A Survey of Transformers

除了模块化的改进之外,还有一些研究对模型整体架构进行改进。作者将这些改进分为5种,轻量化改进方法、增强模块之间的连接、动态调整计算时间、分而治之的方法以及可替代的模型。
在轻量化变种中,具有代表性的是2020年提出的Light Transformer模型 ,在这个研究里作者将transformer的self-attention模块替换为卷积神经网络与注意力机制的组合,卷积神经网络分支专门研究局部上下文建模,注意力机制分支专门研究长距离关系建模。这是light transformer的结构。该架构在模型大小和计算方面都是轻量级的,因此更适合移动设备。

还有Funnel Transformer模型,对输入序列长度进行降采样,处理后再上采样恢复原长度。如图所示,encoder里,在每个块内序列长度始终保持不变,但是当从低层块到高层块时,序列的长度通过沿着序列维度执行某种类型的池化来减少。Decoder里,为了从减少长度的编码器输出中恢复完整的序列,需要执行上采样。

DeLighT模型简化了注意力与FFN,FFN复杂度高就是因为先升维再降维,在输入时对数据进行DeLighT transformation,先升维,再降维,计算注意力的操作次数减少了一半。而DeLighT在FFN中则改为先降维再升维,使参数和操作数量减少了16倍。

在原始的transformer中,每个块将前一个块的输出作为输入来计算,有一些研究就对在每个块之间创建更多路径感兴趣。这种用来增强块与块之间连接的改进就是第二类架构层面的改进。
Realformer和Predictive Attention Transformer就复用前一个块的注意力分布信息来分配当前块的注意力,这可以看作是在相邻的块之间创建了一条前向路径。
在原始的Transformer模型中,decoder的cross-attention模块仅利用encoder的最终输出,因此误差信号必须沿着encoder的深度传递。这使得深层次的Transformer更容易受到优化问题的影响(例如,梯度消失 )。还有Transparent Attention机制在每个cross-attention模块将每层encoder输出进行加权求和,相当于多了跨层路径,这有效地缩短了误差信号到encoder中每一层的路径,利于梯度反向传播,从而优化了深层次的 Transformer 模型。

与大多数神经模型一样,原始的Transformer 使用固定计算程序来处理每个输入。一些研究者想到根据输入来决定计算时间,即将自适应计算时间(ACT)引入Transformer模型。此类修改可能会带来以下优势:
①对困难样本的特征细化。对于难以处理的数据,浅层表示可能不足以完成手头的任务。应该进行更多计算来获得更深入、更精细的表示。
②提高处理简单样本的效率。在处理简单的示例时,浅层表示可能足以完成任务。在这种情况下,使用减少的计算时间来提取简单样本的特征,将会提高计算效率。
ACT的思路是设计一些条件判断结构,自适应的选择是否使用某些模块。如图就是三种经典的ACT范例。

图a添加了一个动态停止机制,计算每个符号在每个时间步 的停止概率。如果符号的停止概率大于预定义的阈值,则符号的表示将在随后的时间步长中保持不变。当所有符号停止或达到预定义的最大步长时,循环停止。
图b在每个自注意力和前馈神经网络层添加一个门控模块来决定是否跳过当前层,作者还引入了一个辅助损失函数,让模型能够调整门控模块,使实际计算成本与可用计算预算相匹配。
图c与图a使用的动态停止机制类似,有一条工作线专门用于调整每个输入的层数以实现良好的速度-精度权衡,这称为提前退出机制。一种常用的技术是在每一层添加一个内部分类器,并联合训练所有分类器。这些方法的核心是在每一层决定是否退出的标准。
第三种方法是分治法,Self-attention对序列长度在计算上的复杂度是二次函数,会显着限制一些下游任务的性能。除了第一部分中介绍的技术,另一种处理长序列的有效方法是使用分治策略,即将输入序列分解为可以由Transformer或Transformer模块有效处理的更细段。这些技术可以被理解为Transformer模型的包装器,其中Transformer作为一个基本组件,可重用于处理不同的输入段。

如图是两种具有代表性的方法,recurrent transformer和hierarchical transformer。recurrent Transformer模型思路是将长序列分割为多个短序列,维护一个缓存记忆来集成历史信息。在处理一段文本时,网络从缓存中读取作为附加输入。处理完成后,网络通过简单地复制隐藏状态或使用更复杂的机制来写入缓存。
Hierarchical Transformers将输入分解为更细粒度的元素。这些元素首先被送到低层的Transformer,产生输出表示,然后聚合由更高层次的Transformer处理。这类方法可以理解为一个层次抽象的过程,构成图b金字塔结构。

尽管Transformer架构取得了成功,但人们可能会质疑当前的 Transformer架构是否是最佳的。有趣的是,有几项研究探索了Transformer的替代架构,比如调整层之间的顺序。evolved transformer采用神经架构搜索 来寻找更好的 Transformer替代方案,左图是原始的transformer和evolved transformer自动搜索出来的结构的对比,右图是transformer和evolved transformer的性能的对比,可以看出evolved transformer在所有尺度上都表现出比 Transformer 更强的性能。
以上就是架构层面的改进,transformer为了提高它的泛化性,还可以通过大量数据的预训练 来改进。
transformer 不对数据的结构做出任何假设。一方面,这有效地使Transformer成为一种非常通用的架构,具有捕获不同范围依赖关系的潜力。另一方面,这使得Transformer在数据有限时容易过拟合。缓解此问题的一种方法是在大型语料库上预训练Transformer模型。这些模型是使用各种自我监督的目标进行预训练的,例如,根据上下文预测被遮住的单词。在对模型进行预训练后,可以简单地在下游数据集上对其进行微调,而不是从头开始训练模型。知名的预训练模型包括:
只训练encoder:一些工作使用 Transformer encoder作为其主干架构。典型的BERT利用掩码语言建模 (MLM) 和下一句预测 (NSP)作为自监督训练目标。RoBERTa进一步调整了 BERT的训练并删除了NSP目标,因为它被发现会损害下游任务的性能。
只训练decoder:一些研究侧重于对transformer decoder进行预训练。例如,GPT 系列直接用一个language modeling任务来做预训练,就是给你前面几个词,预测下一个词。
Encoder和decoder一起训练:也有采用 Transformer encoder-decoder作为整体架构的 PTM。这样做的好处是,诱导模型具备执行自然语言理解和生成的能力。比如T5训练完整的Transformer,也是基于预测输入语句中被屏蔽的词汇。训练完成后,在下游任务上进行精调,使用特定任务的文本前缀就可以完成不同的任务,比如给一个translate前缀,T5就可以做翻译,给一个summarize前缀,T5可以做摘要,给一个cola前缀,T5可以判断一个英文句子在语法上是不是可接受的。

下面再来介绍一下Transformer的应用。Transformer最初是为机器翻译而设计的,但由于其灵活的架构,已被广泛应用于 NLP 之外的各个领域,包括 CV 和音频处理。
在自然语言处理领域,transformer及其变体在机器翻译、语言建模、命名实体识别等方面得到广泛探索和应用。
在计算机视觉领域,Transformer 也适用于各种视觉任务,例如图像分类、目标识别、图像生成、视频处理
在音频应用领域。 Transformer 还可以扩展到语音识别、语音合成、语音增强和音乐生成等应用。
另外由于其灵活的架构,Transformer 还被应用于各种多模式场景,例如,视觉问答、视觉常识推理、字幕生成、语音到文本翻译和文本到图像生成。

总结一下,这篇综述对 X-former 进行了全面概述,并提出了一个新的分类法。现有的大部分工作都是从效率、泛化和应用等不同角度对 Transformer 进行了改进。改进包括设计轻量级架构、预训练等。尽管X-former 已经证明了它们在各种任务中的能力,但挑战仍然存在。除了当前的关注点(例如效率和泛化)之外,Transformer 的进一步改进可能在于以下几个方向:
(1)理论分析。 Transformer 的架构已被证明能够支持具有足够参数的大规模训练数据集。许多工作表明,Transformer 具有比 CNN 和 RNN 更大的容量,因此具有处理大量训练数据的能力,当在足够的数据上进行训练时,它通常比 CNN 或 RNN 具有更好的性能。一个直观的解释是 Transformer 对数据结构的先验假设很少,因此比 CNN 和 RNN 更灵活。然而,理论原因尚不清楚,以后的研究需要对Transformer能力进行一些理论分析。
(2)更好的超越attention的全局交互机制。 Transformer 的一个主要优点是使用注意力机制来模拟输入数据中节点之间的全局依赖关系。然而,许多研究表明,对于大多数节点来说,完全注意是不必要的。在某种程度上,无法区分地计算所有节点的注意力是低效的。因此,在有效地建模全局交互方面仍有很大的改进空间。
(3)多模态数据统一框架。在许多应用场景中,集成多模态数据对于提高任务性能是有用且必要的。此外,通用人工智能还需要能够捕捉不同模态的语义关系。由于 Transformer 在文本、图像、视频和音频方面取得了巨大的成功,我们有机会构建一个统一的框架,更好地捕捉多模态数据之间的内在联系。然而,数据模态内和跨模态的注意力的设计仍有待改进。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值