本材料说明:【论文声称】=作者观点或叙事框架;【实验支持】=论文中有数据支撑;【解读者推断】=精读者推理,论文未明说。所有数字均复述自 arXiv 版原文,未做外部验证。
| 摘要短语 | 对应论文章节 | 对应精读章节 |
|---|---|---|
| "主流序列转换模型基于复杂 RNN/CNN……最优模型还要加注意力" | §1、§2 Background | 第二章 §2.3 失效模式 |
| "完全基于注意力、彻底抛弃循环与卷积" | §3 Model Architecture | 第三、四章 |
| "更平行、训练时间显著更短" | §4 Why Self-Attention、§5 Training | 第五章 |
| "WMT14 英德 28.4 BLEU,超最佳结果(含集成)逾 2 BLEU" | §6.1 Table 2 | 第六章 §6.1 |
| "英法 41.8 BLEU 单模型 SOTA,8 GPU 训 3.5 天" | §6.1 | 第六章 §6.1–6.2 |
| "成功应用于英文成分句法分析,泛化性好" | §6.3 Table 4 | 第六章 §6.3(略读) |
| # | 声称的贡献 | 证据强度预评 |
|---|---|---|
| 1 | 首个完全依赖自注意力的序列转换模型,翻译质量 SOTA 且训练成本低一个量级 | 强实验支撑 Table 2 质量与 FLOPs 双坐标 |
| 2 | 缩放点积注意力+多头机制是有效设计 | 消融支撑 Table 3 行 (A)(B),但"为什么多头好"无机理解释 |
| 3 | 正弦位置编码可用,且可能利于外推更长序列 | 主张为主 与学习式编码"几乎相同"(行E),外推性未实测 |
| 4 | 自注意力在复杂度/并行度/路径长度三方面优于 RNN/CNN | 理论对比表 Table 1 是复杂度分析而非端到端实验 |
| 5 | 注意力头呈现可解释的句法/语义行为 | 个例展示 附录仅数张可视化,无系统量化 |
必读主线:§3.2 注意力公式 → §4 Why Self-Attention(Table 1)→ §6.1 主结果。这条线覆盖机制、动机、证据三层。
可跳读支线:§5.3 优化器细节、§6.3 句法分析。跳过的代价:综合考核中"warmup 学习率"答辩题与"泛化到非翻译任务"的讨论将失去支撑;主线上不受影响。
依赖提示:枢纽概念是缩放因子 1/√dk——它连接 softmax 梯度、点积方差论证与消融行 (B) 三处内容,值得慢读。
来源:论文 §3 Model Architecture(§3.1–§3.5)。"解读者补充"处已标注。
RNN 把计算绑定在序列位置上:ht 依赖 ht−1,训练样本内天然不可并行,长句下显存限制跨样本 batch,顺序计算的约束无法靠工程技巧根除【论文声称,§1】。ByteNet/ConvS2S 用卷积换来了并行,但两个远距离位置的信号交互需要 O(n) 或 O(logkn) 层运算,长程依赖难学【§2】。已有的注意力机制又都寄生于 RNN 之上。失效模式总结:要么不能并行(RNN),要么路径太长(CNN),注意力从未被允许独立挑大梁。
类比:多头注意力像一个翻译小组:每个成员(头)带着自己的"关注滤镜"通读全句(各自的 WQ,WK,WV 投影),各写一份摘要(64 维 headi),最后拼接成稿再统一润色(Concat 后乘 WO)。
类比在哪里失效:小组成员有分工沟通,而八个头之间零通信,只在拼接后线性混合;且"头=语法角色"的拟人化解读缺乏因果证据——附录的可视化只是个例展示。【解读者观点】
公式 (1):缩放点积注意力
| 符号 | 它是什么 | 直觉 |
|---|---|---|
| Q ∈ ℝn×d_k | 查询矩阵(n 个位置 × dk 维) | "我在找什么" |
| K ∈ ℝm×d_k | 键矩阵(m 个位置) | "我有什么标签可被检索" |
| V ∈ ℝm×d_v | 值矩阵 | "命中后被取走的实际内容" |
| QKᵀ ∈ ℝn×m | 全部查询-键点积 | 相似度打分表 |
| √dk | 缩放因子 | 防大点积把 softmax 推进梯度极小的饱和区 |
| softmax(·) | 沿 m 维(键方向)归一化 | 每个查询对 m 个位置的权重和为 1 |
维度流【解读者补充】:输出 ∈ ℝn×d_v——行数由查询决定、列数由值决定,与键数 m 无关;这就是解码器可以"每步查全部编码器位置"的形状基础。选择点积而非加性注意力的理由:可走高度优化的矩阵乘法,实践上更快更省空间【论文声称,§3.2.1】。
缩放的方差论证(脚注1):设 q、k 各分量为均值 0、方差 1 的独立随机变量,则 q·k=Σqiki 均值 0、方差 dk——dk=64 时点积标准差约 ±8,输入 softmax 后极易落入饱和区、梯度极小;除以 √dk 使方差回到 1。前提提醒:"分量独立同分布且单位方差"是理想化假设,真实网络中不严格成立,此论证只定标不定界。【解读者推断】
多头公式
| 符号 | 它是什么 | 直觉 |
|---|---|---|
| WiQ/K/V ∈ ℝd_model×d_k/d_v | 每个头自己的投影 | 给每个头独立的子空间视角 |
| WO ∈ ℝh·d_v×d_model | 输出投影 | 把 8×64=512 维拼接压回 512 |
关键数量关系(巧合但基石,解读者强调):h·dk=8×64=512=dmodel,所以多头的总计算量与"单头全维注意力"相当——多头不是靠堆算力买来的,而是同一笔预算换了花法(论文 §3.2.2 原话 "similar to that of single-head attention with full dimensionality")。
FFN(公式2)与位置编码
波长从 2π 到 10000·2π 几何级数展开;作者假设任意固定偏移 k 的 PEpos+k 可表示为 PEpos 的线性函数,便于学相对位置【论文声称】。嵌入层与 pre-softmax 变换共享同一权重矩阵,嵌入需乘 √dmodel(§3.4)。每个子层套 LayerNorm(x + Sublayer(x));解码器自注意力加掩码(非法位置置 −∞)保证自回归性质。
费米估算(解读者补充,目标 ≈65M):
① 共享词表嵌入:37000×512≈18.9M;② 每层四个投影 WQ/K/V/O 各 512×512≈0.26M,共 1.05M;③ FFN:512×2048×2≈2.10M;④ 编码器层 ≈3.15M×6=18.9M;⑤ 解码器层多一组交叉注意力投影 ≈(3.15+0.79)M×6≈23.6M;⑥ 输出偏置等忽略。
合计 ≈18.9+18.9+23.6 ≈ 61.4M,与论文 Table 3 的 65M 同量级(差值来自未计入的 LayerNorm 参数、偏置与舍入)——对账通过。顺带发现:词表嵌入占了近三分之一参数,这是共享嵌入(§3.4)的动机之一。
误读一:"Attention is all you need" 意思是不需要 FFN 和嵌入。 每层还有 position-wise FFN(参数量的大头之一)、残差、LayerNorm、两种嵌入。标题的修辞对象是"循环与卷积",不是其他组件。
误读二:"多头注意力比单头计算量大得多。" 因为 dk=dmodel/h,总 FLOPs 基本持平(见 2.5 节);多头的收益是表示子空间多样性,不是容量增加。
误读三:"自注意力在任何序列长度下都比 RNN 快。" Table 1 注明条件:仅当 n<d 时自注意力每层复杂度更低;机器翻译句级任务满足,长文档不满足——论文为此提出 restricted self-attention(邻域 r)作为未来方案。
【实验支持】base 模型 BLEU 27.3 已超所有已发表模型与集成(Table 2);【论文声称】正弦编码"可能让模型外推到训练时未见过的长度"——未做任何外推实验,属纯假设;【解读者推断】缩放因子的方差论证是事后合理化,真正起作用的可能是稳定训练初期的 softmax 饱和。
一句话记住本节:把"按时间步递推"换成"一次矩阵乘法里所有位置互相检索"——QKᵀ 打分、softmax 归一、V 加权求和,八个小头平分 512 维预算,训练从数周缩到 3.5 天。
闭卷自检:我能写出注意力公式的每个张量形状吗?为什么除 √dk?三种注意力用法中 Q/K/V 各来自哪里?解码器如何防止偷看未来?
来源:论文 §4 Why Self-Attention。三个考量:每层计算复杂度、可并行的最小顺序操作数、长程依赖的最大路径长度。
| 层类型 | 每层复杂度 | 最小顺序操作 | 最大路径长度 |
|---|---|---|---|
| 自注意力 | O(n²·d) | O(1) | O(1) |
| 循环(RNN) | O(n·d²) | O(n) | O(n) |
| 卷积 | O(k·n·d²) | O(1) | O(logk(n)) |
| 受限自注意力 | O(r·n·d) | O(1) | O(n/r) |
验证复杂度比:自注意力/循环 = n/d。WMT 任务用 word-piece/BPE 子词,句子级 n 通常几十、d=512 ⇒ n≪d,自注意力便宜一个量级【实验支持的适用域陈述】。卷积比 RNN 贵约 k 倍;可分离卷积降到 O(k·n·d + n·d²)——即便 k=n 也恰好等于"自注意力+逐位置前馈"的组合成本,而这正是本模型的构成【论文声称,§4 末段原话逻辑】。
顺带的好处:注意力分布可检查,附录展示了跟随长距离依存("making…more difficult")与指代消解("its"的第 5、6 头)的个例【个例证据,勿过度推广】。
误读:"Table 1 是实验结果。" 它是大 O 复杂度分析表,不含任何实测数字;"更快"的实证来自 §5 的训练时间与 §6.1 的成本列。
误读:"平均化注意力是无代价的。" §2 明确承认:注意力对加权位置取平均会降低有效分辨率(reduced effective resolution),多头正是为补偿这一缺陷设计的——收益与代价在同一篇论文里成对出现。
一句话记住本节:自注意力用 O(n²·d) 的算力,同时买到 O(1) 的串行深度和 O(1) 的信息通路——只要 n<d,这笔交易全面优于 RNN/CNN。
来源:论文 §5 Training、§6.1 Machine Translation。数据:英德 WMT14 约 450 万句对,BPE 共享词表约 37000 token;英法 3600 万句,32000 word-piece 词表。批处理按近似长度组句,每批约 25000 源 token+25000 目标 token。硬件:单机 8×P100;base 每步 0.4 秒训 100K 步(12 小时);big 每步 1.0 秒训 300K 步(3.5 天)。优化器:Adam β₁=0.9、β₂=0.98、ε=10⁻⁹;lr 公式:
正则:残差 dropout Pdrop=0.1(big 英法亦为 0.1,Table 3 底行 big 用 0.3——注意两处口径:正文 §6.1 说英法 big 用 0.1 而非 0.3,Table 3 的 big 行标注 Pdrop=0.3 为其默认变体设置);label smoothing εls=0.1,论文明言它伤害困惑度但提升准确率与 BLEU。推理:base 平均最后 5 个 checkpoint、big 平均最后 20 个(间隔 10 分钟);beam size 4、长度惩罚 α=0.6;最大输出长 = 输入长 +50。
在 step=warmup=4000 处两支相等:lrate = 512^(−0.5) × 4000^(−0.5) = (1/22.63)×(1/63.25) ≈ 6.98×10⁻⁴。前 4000 步线性升温到此峰值,此后按 step^(−0.5) 衰减——例如 step=100000 时 lr≈6.98e-4×√(4000/100000)≈1.4×10⁻⁴。warmup 存在的原因论文未解释【解读者观点】:一般归因于初期 Adam 二阶矩估计不稳、大 lr 会摧毁尚未成形的注意力模式。
| 模型 | EN-DE BLEU | EN-FR BLEU | EN-DE 训练 FLOPs | EN-FR 训练 FLOPs |
|---|---|---|---|---|
| ByteNet | 23.75 | — | — | — |
| Deep-Att + PosUnk | — | 39.2 | — | 1.0×10²⁰ |
| GNMT + RL | 24.6 | 39.92 | 2.3×10¹⁹ | 1.4×10²⁰ |
| ConvS2S | 25.16 | 40.46 | 9.6×10¹⁸ | 1.5×10²⁰ |
| MoE | 26.03 | 40.56 | 2.0×10¹⁹ | 1.2×10²⁰ |
| GNMT + RL Ensemble | 26.30 | 41.16 | 1.8×10²⁰ | 1.1×10²¹ |
| ConvS2S Ensemble | 26.36 | 41.29 | 7.7×10¹⁹ | 1.2×10²¹ |
| Transformer (base) | 27.3 | 38.1 | 3.3×10¹⁸ | — |
| Transformer (big) | 28.4 | 41.8 | 2.3×10¹⁹ | — |
对账成功:28.4 − 26.36(最佳集成)= 2.04 ≥ "over 2 BLEU" ✓。成本优势:base 3.3×10¹⁸ 是 ConvS2S 单模型 9.6×10¹⁸ 的 34%、GNMT 集成的 1.8%。一处文内不一致:摘要与 Table 2 均记 EN-FR big 为 41.8,但 §6.1 正文写作 "achieves a BLEU score of 41.0"——arXiv 各版本间的已知出入,正文数字疑为笔误,引用时应以表格为准并注明此冲突。【解读者核对发现】
误读一:"base 模型 38.1 BLEU 说明它不行。" 相反,27.3(EN-DE)已超过此前一切单模型与集成;38.1 只是 EN-FR 上 big 才能刷新 SOTA——两个语向的竞争烈度不同,不能跨列比较。
误读二:"FLOPs 列是精确计量。" 是"时间 × 卡数 × 标称算力"的三连乘估算(脚注2 给了 K80~P100 四档系数),不同论文的估法未必一致,跨表比较只有量级意义。
误读三:"label smoothing 是免费午餐。" 论文明说它使 perplexity 变差——BLEU 提升是以概率校准为代价换取的,做生成式语言建模评估时不能照搬该设置。
一句话记住本节:4000 步 warmup 到约 7×10⁻⁴ 再平方根衰减,8 张 P100 上 3.5 天——big 模型 EN-DE 28.4、EN-FR 41.8,双双刷新 SOTA 且训练成本比对手低几倍到一个量级。
闭卷自检:我能默写 lr 调度公式并算出峰值吗?base 与 big 各训多少步?"label smoothing 伤什么、利什么"?checkpoint 平均用几个?
| 变体 | 配置 | dev PPL | dev BLEU | params ×10⁶ |
|---|---|---|---|---|
| base | N=6, d_model=512, d_ff=2048, h=8, dk=dv=64, drop .1, ε_ls .1 | 4.92 | 25.8 | 65 |
| (A) h=1 | dk=dv=512 | 5.29 | 24.9 | — |
| (A) h=4 | dk=dv=128 | 5.00 | 25.5 | — |
| (A) h=16 | 32 | 4.91 | 25.8 | — |
| (A) h=32 | 16 | 5.01 | 25.4 | — |
| (B) 小 key | dk=16 / 32 | 5.16 / 5.01 | 25.1 / 25.4 | — |
| (C) 模型大小 | d_model=1024 等 / 缩小版 | 4.66 / ~5.19 | 26.0 / 25.3 | 168 / 53~90 系列 |
| (D) 正则开关 | drop 0.0 / 0.2;ε_ls 0.0 / 0.2 | 5.77 / 4.95;4.67 / 5.47 | 24.6 / 25.5;25.3 / 25.7 | — |
| (E) 学习式位置编码 | 替代正弦 | 4.92 | 25.7 | — |
| big | d_model=1024, h=16, drop 0.3 | 4.33 | 26.4 | 213 |
头数的倒 U 形【实验支持】:单头比最佳设置差 0.9 BLEU(24.9 vs 25.8),头太多(32)也回落(25.4)——"多头有用"与"多多益善"是两个命题,本文支持前者。
key 太小受伤【实验支持】:dk=16 时 BLEU 25.1。作者由此推测"判断兼容性并不容易,比点积更复杂的兼容函数可能有益"【论文声称,属猜想】。
误读一:"行(E)证明正弦编码更好。" 数字几乎相同(25.7 vs 25.8),只能证明不可区分;"外推更长序列"的优势纯属假设,全文无测试。
误读二:"dev 集 BLEU 26.4 与测试集 28.4 可以混引。" Table 3 是 newstest2013 开发集、无 checkpoint 平均;Table 2 是 newstest2014 测试集、含平均与调好的 beam 参数——坐标系不同。
4 层、d_model=1024 的 Transformer:WSJ-only 成分句法 F1=91.3(胜过 BerkeleyParser 的 90.4,仅次于 RNNG 91.7);半监督(1700 万句)92.7。推理配置:beam 21、α=0.3、最大输出长=输入+300。意义:架构不做任何任务特化即可在结构化预测上接近专用系统【实验支持】。
一句话记住本节:8 个头、64 维 key 是甜点位;更大更好、dropout 必需;正弦与学习式位置编码打成平手——而这套"没调过参"的架构顺手就能做句法分析,通用性初现。
闭卷自检:单头损失多少 BLEU?哪个变体证明"兼容函数不易学"?big 与 base 的参数量各是多少?
论文最强的牌恰在第二坐标轴:训练成本 3.3×10¹⁸ FLOPs(base)比所有对手低 3–60 倍,12 小时/8 GPU 的墙钟时间是可复现性的巨大红利【实验支持,估算口径】。缺失的轴:推理延迟与吞吐(自回归解码的每步开销未报);显存占用;长序列下的表现退化。
| 贡献 | 预评 | 读后修正 | 理由 |
|---|---|---|---|
| SOTA 质量+低成本训练 | 强实验支撑 | 维持 ★★★ | 质量与 FLOPs 双轴同时改善,且 base 单模型即超旧集成 |
| 多头+缩放点积有效 | 消融支撑 | 维持 ★★ | 有效果消融无机理解释,头数甜点位未探明 |
| 正弦编码可外推 | 只是主张 | 维持 ★ | 与学习式打平(行E),外推零实验 |
| 三考量优于 RNN/CNN | 理论对比 | 维持 ★★ | Table 1 是复杂度分析;"更快"的实测仅在 n<d 工作点成立 |
| 注意力可解释性 | 个例展示 | 维持 ★★ | 数张可视化,无量化协议 |