Transformer: A Foundational Blueprint for Sequence Modelinghttps://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→DETransformer (大型)28.42.3⋅10192.3 \cdot 10^{19}2.3⋅1019相比同类混合模型提升 2.0 BLEUEN→\rightarrow→FRTransformer (大型)41.82.3⋅10192.3 \cdot 10^{19}2.3⋅1019单模型达到 SOTA新的基准点工程学洞察:计算效率:Transformer 在保证模型质量的同时极大地降低了训练所需的浮点运算次数FLOPs与早期的最佳模型如 GNMT RL Ensemble:1.1⋅10211.1 \cdot 10^{21}1.1⋅1021FLOPs相比效率提升巨大。泛化能力:模型成功地泛化到英语成分句法分析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(xSublayer(x))\mathrm{LayerNorm}(x\mathrm{Sublayer}(x))LayerNorm(xSublayer(x))。维度统一性:所有子层的输出维度均标准化为dmodel512d_{\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(dk​​QKT​)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其中, headiAttention(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/dmodel​pos​)PE(pos,2i1)cos⁡(pos100002i/dmodel)\mathrm{PE}_{(pos,2i1)}\cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)PE(pos,2i1)​cos(100002i/dmodel​pos​)设计哲学:选用周期性的正弦/余弦函数是基于一个关键假设模型可以容易地从这些函数中学习出相对位置 (Relative Position) 的信息。具体来说PEposk\mathrm{PE}_{posk}PEposk​可以写成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(log⁡k(n))O(\log_k(n))O(logk​(n))结论:极低的路径长度O(1)O(1)O(1)是自注意力架构能够大规模并行化的根本数学保证。