一、概念
1、什么是Transformer?
Transformer 是一种深度学习模型,最早由 Vaswani 等人在 2017 年提出,专门用于处理序列数据(如自然语言、时间序列等)的任务。Transformer 通过引入 自注意力机制(Self-Attention Mechanism) 来捕捉序列中不同位置之间的依赖关系,并通过并行处理大大提高了训练效率。
2、Transformer的提出解决了什么问题?
(1)长距离依赖问题
传统的循环神经网络(RNN)和长短期记忆网络(LSTM)在处理长序列时会面临捕捉长距离依赖的困难。因为这些模型是逐步处理序列的,信息需要通过每个时间步传播,当序列长度较长时,前面输入的信息在后续步骤中容易被淡化或遗失。这导致模型在处理长序列时表现不佳。
Transformer 的自注意力机制可以让每个位置的输入直接与整个序列的所有其他位置建立联系,而无需逐步传递信息。通过这种方式,Transformer有效解决了长距离依赖问题,能够在整个序列中捕捉全局信息。
(2) 并行处理问题
RNN 和 LSTM 等序列模型依赖于顺序计算,必须一步一步地处理序列中的每个元素。这种逐步处理限制了模型的并行计算能力,导致训练速度较慢,尤其是当输入序列很长时。
Transformer 的设计允许模型同时处理输入序列的所有位置,利用矩阵运算来并行计算,从而大幅提高了训练和推理的效率。这一特性使得 Transformer 能够处理大规模数据集,适应更复杂的任务。
(3) 消除长时间依赖的梯度消失和爆炸问题
在 RNN 结构中,长序列训练常常会遇到梯度消失或梯度爆炸的问题,尤其是当输入序列很长时,前面的时间步和后面的时间步之间的梯度可能变得极小或极大,使得模型难以有效训练。
Transformer 的自注意力机制通过全局计算序列中每个位置的依赖关系,避免了通过逐步传递信息的方式,因此消除了在长序列中训练时容易出现的梯度消失或梯度爆炸问题。
(4)捕捉序列中多层次信息
传统的 RNN 和 LSTM 由于顺序处理的限制,往往难以同时捕捉到序列中多个层次或不同粒度的上下文信息。
Transformer 的多头注意力机制(Multi-Head Attention)使得模型可以从不同的子空间同时关注序列中的不同位置,这提高了模型的表达能力,帮助它更好地理解序列中的复杂关系。
(5)处理长序列时的计算成本
在处理长序列时,RNN、LSTM 等模型由于其顺序计算的特点,计算复杂度较高。而全连接注意力机制(如早期的全连接注意力模型)虽然能捕捉到序列中的长距离依赖,但计算复杂度随着序列长度的增加而呈现平方级别的增长。
Transformer 通过引入 分块注意力 和 局部注意力 的改进(如Swin Transformer等),有效降低了处理长序列时的计算复杂度,使其在长序列任务中的计算成本得到控制。
二、整体框架介绍
1、整体结构:
在机器翻译应用中,它输入一种语言,通过一个编码组件和一个解码组件后输出对应的另一种语言。
2、编码组件和解码组件:
其中,编码组件是一堆编码器,解码组件是一堆相同数量的解码器。如下图所示:
3、编码器大框架:
编码器的结构完全相同(但它们不共享权重)。每个编码器分为两个子层: