1. Transformer架构的背景与动机
在深度学习领域,尤其是自然语言处理(NLP)任务中,序列建模一直是核心问题。传统的循环神经网络(RNN)及其变体(如LSTM和GRU)在处理序列数据时表现出色,但随着研究的深入,这些模型的局限性逐渐显现:
-
难以并行化计算
RNN及其变体需要按顺序处理序列中的每个元素,这使得模型无法充分利用现代硬件(如GPU和TPU)的并行计算能力。例如,在处理长文本时,RNN需要逐词计算,导致训练速度缓慢。 -
长距离依赖问题
RNN在处理长序列时,容易出现梯度消失或梯度爆炸的问题。这种现象使得模型难以捕捉序列中的长距离依赖关系。例如,在处理长文本时,模型可能无法有效地关联句子开头和结尾的信息。 -
固定长度的上下文窗口
RNN的上下文信息传递依赖于隐藏状态,其大小是固定的。这限制了模型对全局信息的感知能力,导致其在处理复杂语义任务时表现不佳。 -
训练效率低
RNN的逐词处理方式使得模型在训练时难以利用并行化技术,导致训练时间长,难以扩展到大规模数据集。
为了解决这些问题,2017年,Vaswani等人在论文《Attention is All You Need》中提出了一种全新的架构——Transformer。该架构完全摒弃了RNN,转而使用基于注意力机制(Attention Mechanism)的结构,显著提升了模型的性能和效率。Transformer架构的核心在于其独特的自注意力机制(Self-Attention)和多头注意力机制(Multi-Head Attention),这些机制使得模型能够并行处理序列,并且能够捕捉长距离依赖关系。
2. Transformer架构的核心技术
Transformer架构是一种典型的编码器-解码器(Encoder-Decoder)结构,广泛应用于机器翻译、文本生成等任务。编码器将输入序列编码为上下文表示,解码器则根据编码器的输出生成目标序列。Transformer架构的核心在于其独特的注意力机制和模块化设计。
2.1 编码器(Encoder)
编码器由多个相同的层(通常称为“编码器层”)堆叠而成,每一层都包含两个主要模块:
-
多头自注意力机制(Multi-Head Self-Attention)
自注意力机制允许模型在计算某个词的表示时,同时考虑输入序列中所有其他词的信息。具体来说,自注意力机制通过计算“查询”(Query)、“键”(Key)和“值”(Value)之间的点积相似度,动态地分配权重,从而捕捉序列中的全局依赖关系。多头注意力机制进一步扩展了这一思想,通过将输入分割成多个“头”(Head),分别计算注意力,然后将结果拼接起来,从而能够捕捉不同子空间中的特征。这种设计使得模型能够从多个角度学习数据的特征,提高了模型的表达能力和泛化能力。数学公式:
假设输入序列为 (X=[x1,x2,…,xn](X = [x_1, x_2, \dots, x_n](X=[x1,x2,…,xn]),则自注意力的计算公式为:
[Attention(Q,K,V)=softmax(QKTdk)V[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V[Attention(Q,K,V)=softmax(

3万+

被折叠的 条评论
为什么被折叠?



