Attention Is All You Need论文解读
🧠 Transformer: A Foundational Blueprint for Sequence Modeling
https://arxiv.org/html/1706.03762
摘要 (Abstract): 本文提出 Transformer 模型,一个革命性的序列转换模型。它完全摒弃了传统的循环(RNN)和卷积(CNN)层结构,仅依靠自注意力(Self-Attention)机制进行信息捕获。此设计极大地提升了模型并行训练的能力,从而实现了在机器翻译乃至更广泛序列任务(如自然语言理解)上达到领先的性能(State-of-the-Art, SOTA)。
核心思想: 通过将序列依赖建模转变为全局、平行的注意力计算,模型能够以 O(1)O(1)O(1) 的路径长度捕获远距离依赖,从而解决了RNNs固有的梯度衰减和顺序计算瓶颈。
Ⅰ. 性能与工程优势分析 (Performance and Engineering Advantage)
Transformer 最核心的优势在于其计算范式的转变:从序列依赖到并行依赖。
1. WMT 2014 性能指标对比 (Key Benchmark Results)
| 任务 (Task) | 评估模型 (Model) | BLEU 分数 (Score) | 训练成本 (FLOPs) | 关键提升 (Improvement Notes) |
|---|---|---|---|---|
| EN →\rightarrow→ DE | Transformer (大型) | 28.4 | 2.3⋅10192.3 \cdot 10^{19}2.3⋅1019 | 相比同类混合模型提升 > 2.0 BLEU |
| EN →\rightarrow→ FR | Transformer (大型) | 41.8 | 2.3⋅10192.3 \cdot 10^{19}2.3⋅1019 | 单模型达到 SOTA(新的基准点) |
工程学洞察:
- 计算效率: Transformer 在保证模型质量的同时,极大地降低了训练所需的浮点运算次数(FLOPs),与早期的最佳模型(如 GNMT + RL Ensemble: 1.1⋅10211.1 \cdot 10^{21}1.1⋅1021 FLOPs)相比,效率提升巨大。
- 泛化能力: 模型成功地泛化到英语成分句法分析(Constituency Parsing)等任务,展现出卓越的鲁棒性。
Ⅱ. 深度模型架构解析 (In-Depth Model Architecture)
Transformer 维持了经典的 编码器-解码器 (Encoder-Decoder) 架构,但所有的核心组件均被注意力机制重构,消除了所有递归或顺序计算。
1. 编码器堆栈 (Encoder Stack)
- 层数 (N): 6 层结构。
- 每层组件 (Components →2\rightarrow 2→2 个):
- 多头自注意力机制 (Multi-Head Self-Attention): 允许序列中的任一位置(Query)同时关注输入序列中的所有其他位置(Key/Value)。
- 位置全连接前馈网络 (Position-wise FFN): 独立且相同的全连接网络,作用于每个位置的输出。
- 内部结构 (Structure): 每一子层均通过残差连接 (Residual Connection) 和层归一化 (Layer Normalization) 进行稳定化处理:LayerNorm(x+Sublayer(x))\mathrm{LayerNorm}(x+\mathrm{Sublayer}(x))LayerNorm(x+Sublayer(x))。
- 维度统一性: 所有子层的输出维度均标准化为 dmodel=512d_{\text{model}}=512dmodel=512(基础模型配置)。
2. 解码器堆栈 (Decoder Stack)
- 层数 (N): 6 层结构。
- 每层组件 (Components →3\rightarrow 3→3 个):
- 掩码多头自注意力 (Masked Multi-Head Self-Attention): 关键点,为保持自回归特性,此层机制阻止了当前位置关注到未来的信息。
- 编码器-解码器注意力 (Encoder-Decoder Attention): 这是一个跨模态交互层。其 Query 来自于前一个 Decoder 层;而 Key 和 Value 则来自于整个 Encoder 的输出。这机制确保了解码器可以利用编码器提供的完整源上下文进行对齐。
- 位置全连接前馈网络 (Position-wise FFN)。
Ⅲ. 核心机制详解 (Core Mechanism Deep Dive)
1. 注意力机制 (The Attention Function)
注意力函数定义了如何使用查询 (Q\mathbf{Q}Q) 与键/值对 (K,V\mathbf{K}, \mathbf{V}K,V) 交互,输出加权聚合的信息。
A. 缩放点积注意力 (Scaled Dot-Product Attention, SPD)
Attention(Q,K,V)=softmax(QKTdk)V(1)\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^{T}}{\sqrt{d_{k}}}\right)V \quad (1)Attention(Q,K,V)=softmax(dkQKT)V(1)
- dk\sqrt{d_k}dk 的作用: 将点积结果除以 dk\sqrt{d_k}dk(键向量维度),是为了防止点积结果过大,从而将 softmax 函数的输入值过大,造成训练梯度消失。
B. 多头注意力 (Multi-Head Attention)
它不使用单个巨大的注意力函数,而是并行地执行 hhh 个不同的注意力函数,每个头使用不同的线性投影矩阵 (WiQ,WiK,WiVW^Q_i, W^K_i, W^V_iWiQ,WiK,WiV)。
MultiHead(Q,K,V)=Concat(head1,...,headh)WO\mathrm{MultiHead}(Q,K,V) = \mathrm{Concat}(\mathrm{head}_1,...,\mathrm{head}_h)W^OMultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中, headi=Attention(QWiQ,KWiK,VWiV)\text{其中, } \mathrm{head}_i = \mathrm{Attention}(QW^Q_i,KW^K_i,VW^V_i)其中, headi=Attention(QWiQ,KWiK,VWiV)
- 科学意义: 这种方法使得模型可以从不同的表示子空间(representation subspaces)中联合地捕获信息,极大地增强了模型的表征能力。
2. 位置编码 (Positional Encoding, PE)
由于 Transformer 缺乏 RNN/CNN 固有的顺序捕捉能力,必须显式地将词汇的绝对或相对位置信息注入到输入嵌入层。
建议的实现方案: 采用正弦 (Sinusoidal) 和余弦 (Cosinusoidal) 函数生成编码,其公式为:
PE(pos,2i)=sin(pos100002i/dmodel)\mathrm{PE}_{(pos,2i)}=\sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)PE(pos,2i)=sin(100002i/dmodelpos)
PE(pos,2i+1)=cos(pos100002i/dmodel)\mathrm{PE}_{(pos,2i+1)}=\cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)PE(pos,2i+1)=cos(100002i/dmodelpos)
- 设计哲学: 选用周期性的正弦/余弦函数是基于一个关键假设:模型可以容易地从这些函数中学习出相对位置 (Relative Position) 的信息。具体来说,PEpos+k\mathrm{PE}_{pos+k}PEpos+k 可以写成 PEpos\mathrm{PE}_{pos}PEpos 的线性函数形式。
Ⅳ. 理论复杂度对比 (Complexity Analysis Table)
Transformer 通过 O(1)O(1)O(1) 的路径长度,彻底解决了顺序计算限制下的问题。
| Layer Type | 单层复杂度 (Complexity per Layer) | 运算依赖性 (Sequential Dependency) | 最大路径长度 (Maximum Path Length) |
|---|---|---|---|
| 自注意力 | O(n2⋅d)O(n^2 \cdot d)O(n2⋅d) | O(1)O(1)O(1) | O(1)O(1)O(1) |
| 循环网络 (RNN) | O(n⋅d2)O(n \cdot d^2)O(n⋅d2) | O(n)O(n)O(n) | O(n)O(n)O(n) |
| 卷积网络 (CNN) | O(k⋅n⋅d2)O(k \cdot n \cdot d^2)O(k⋅n⋅d2) | O(1)O(1)O(1) | O(logk(n))O(\log_k(n))O(logk(n)) |
结论: 极低的路径长度 O(1)O(1)O(1) 是自注意力架构能够大规模并行化的根本数学保证。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)