1. 引言
在深度学习的发展历程中,注意力机制(Attention Mechanism)与 Transformer 架构的提出具有里程碑式的意义。从最初作为循环神经网络(RNN)的辅助增强模块,到后来独立成为主流架构,这一演进过程深刻改变了自然语言处理、计算机视觉等多个领域的研究范式。本文将系统梳理从注意力机制到 Transformer 的完整发展脉络。
2. 注意力机制的起源与动机
注意力机制的思想最早可以追溯到人类视觉系统的研究。人类在观察图像时,并不会均匀地关注所有区域,而是会将有限的注意力资源集中在关键部位。这一认知科学中的概念,在 2014 年被引入到神经机器翻译领域,成为解决长序列建模问题的重要突破口。
在传统的序列到序列(Seq2Seq)模型中,编码器将整个输入序列压缩成一个固定长度的上下文向量,解码器再基于该向量逐步生成输出。这种设计存在一个明显缺陷:当输入序列较长时,早期信息会在压缩过程中大量丢失,导致翻译质量显著下降。注意力机制正是为了解决这一瓶颈而提出的。
3. 注意力机制的核心原理
3.1 注意力机制
注意力机制的本质是让解码器在生成每个输出时,能够动态地"关注"输入序列中与之最相关的部分,而不是依赖单一的固定向量。其核心计算过程可以概括为以下三个步骤:
四个步骤:
① 计算相似度
查询 Q 与每个键 K 做点积(或加性注意力等),得到"Q 有多关注该词"的分数。
② 缩放
除以 √dk(dk 为键的维度)。防止点积过大导致 softmax 梯度消失(点积随维度线性增长,数值变大后 softmax 会饱和)。
③ softmax 归一化
把分数变成总和为 1 的权重分布 a。
④ 加权求和
用权重 a 对值 V 加权求和,得到"融合了上下文"的输出向量。
这种机制使得模型在翻译"我 爱 中国"时,生成"China"一词能够重点关注"中国"对应的编码状态,而不是被整个句子的平均信息所干扰。注意力权重也因此具有了一定的可解释性,研究者可以直观地看到模型在每一步关注了输入的哪些部分。
3.2 自注意力机制
当Q、K、V 全部来自同一个输入序列 X(各自经过不同的线性变换 WQ、WK、WV):
5. 从 RNN 到 Transformer 的跨越
尽管注意力机制显著提升了 RNN 类模型的性能,但 RNN 本身的顺序计算特性仍然限制了训练效率。每个时间步的隐状态必须依赖前一步的计算结果,这使得长序列的训练难以并行化,也容易在反向传播中出现梯度消失或梯度爆炸问题。
2017 年,Google 团队发表了论文《Attention Is All You Need》,提出了 Transformer 架构。这一架构彻底抛弃了循环和卷积结构,完全基于注意力机制构建。Transformer 的提出并非一蹴而就,而是建立在多头注意力、位置编码、残差连接与层归一化等一系列关键设计之上。
6. Transformer 的核心组件
6.1 多头注意力机制
多头注意力是 Transformer 的核心创新之一。它将查询、键、值向量分别投影到多个不同的子空间,在每个子空间中独立执行注意力计算,最后将结果拼接并再次投影。这种设计让模型能够同时关注不同位置、不同表示子空间的信息,极大地增强了模型的表达能力。
多头注意力:并行做h 组不同的注意力(每组用不同的 WQ,WK,WV,即不同的"视角"),再把结果拼接、线性变换。类比:卷积神经网络里的多个卷积核——每个核提取一种特征。
6.2 位置编码
由于 Transformer 不再具有循环结构,模型本身无法感知输入序列的顺序信息。为此,研究者引入了位置编码,将位置信息以正弦函数或可学习参数的形式叠加到输入向量上,使模型能够区分不同位置的词语。
6.3 残差连接与层归一化
为了训练更深层的网络,Transformer 在每个子层之后都添加了残差连接,并配合层归一化技术。这一设计有效缓解了深层网络训练中的梯度消失问题,使得模型可以堆叠到数十层而保持稳定训练。
6.4 前馈神经网络
在注意力子层之后,Transformer 还包含一个逐位置的前馈神经网络,对每个位置的表示进行非线性变换,进一步提取特征。整个编码器和解码器均由上述子层堆叠而成。
7. Transformer 的架构总览
Transformer 整体采用编码器-解码器结构。编码器由多个相同的层堆叠而成,每层包含多头自注意力子层和前馈网络子层;解码器在此基础上额外增加了掩码自注意力子层,以及用于关注编码器输出的交叉注意力子层。
这种架构带来了两个显著优势:一是完全并行化的训练方式,大幅提升了训练速度;二是长距离依赖建模能力显著增强,任意两个位置之间的交互路径长度仅为常数,有效缓解了 RNN 中信息传递衰减的问题。