← 总目录 / 板块一 · 模型的范式变迁
板块一 · 模型的范式变迁

第3篇 · Seq2Seq 与注意力(两文合读)

一对双子星:前者确立了"编码成向量再解码"的范式,后者亲手指出它的死穴并埋下Transformer的第一颗种子。
① Sequence to Sequence Learning with Neural Networks · Sutskever, Vinyals, Le(Google)· arXiv:1409.3215 ② Neural Machine Translation by Jointly Learning to Align and Translate · Bahdanau, Cho, Bengio(蒙特利尔大学)· arXiv:1409.0473 · 均2014
全文获取与核验声明:两篇论文全文均已通过arXiv官方HTML版获取,正文数字全部来自原文,未做外部验证。个别图表型数据(如BLEU随句长变化的曲线细节)以文字转述为准。

第1章 全局大图:两篇论文如何互为答案

【解读者导读】把这两文放读是本站清单的刻意安排:Sutskever等人的seq2seq(下称LSTM文)证明了"一个LSTM编码、另一个LSTM解码"能直接翻译并逼近SMT;Bahdanau等人的注意力文(下称RNNsearch文)则从LSTM文引用的同一组证据出发——Cho等人报告的"长句性能崩塌"——诊断出病根是固定长度向量瓶颈,并用软对齐开出处方。LSTM文用"反转源句序"这个训练技巧绕开了长句问题;RNNsearch文用架构级创新根治了它。两条路线在同一年、同一份数据集(WMT'14英法)上正面相遇:LSTM文的表1甚至直接列了RNNsearch的28.45分作为对照。

1.1 摘要拆解对照表(LSTM文)

摘要短语(意译)对应论文章节本页章节
"多层LSTM把输入序列映射为定维向量,另一深层LSTM从该向量解码目标序列"§2 模型第2章
"WMT'14英法任务全测试集BLEU 34.8,OOV词受罚"§3.6 结果第4章
"LSTM在长句上没有困难"§3.7第4章
"短语式SMT基线为33.3;用LSTM重排其1000个候选升至36.5"§3.6 表2第4章
"反转所有源句词序显著提升性能,因其引入大量短期依赖"§3.3第3章

1.2 摘要拆解对照表(RNNsearch文)

摘要短语(意译)对应论文章节本页章节
"现有神经机器翻译多属编解码家族,把源句压入定长向量"§2 背景第5章
"我们猜想定长向量是性能瓶颈,提出让模型自动(软)搜索源句相关部分"§3 核心方法第6章
"英法翻译上与最先进短语系统相当"§5.1第7章
"定性分析显示模型找到的软对齐符合直觉"§5.2第7章

1.3 贡献与证据强度预评

#贡献预评
L1LSTM文:纯神经网络直译首次在大规模MT任务上明显超过短语式SMT基线(33.00 vs 33.30接近、34.81超过)强实验支撑
L2LSTM文:反转源句词序大幅提升性能(困惑度5.8→4.7,BLEU 25.9→30.6)有消融
L3LSTM文:句子向量表示按语义聚类、对语态变换不敏感仅PCA可视化
A1RNNsearch文:定长向量是长句崩塌的根源(架构性诊断)有对比实验支撑
A2RNNsearch文:软对齐机制使RNNsearch-50在50词以上句子无性能衰减主实验+曲线
A3RNNsearch文:学到的对齐与语言学直觉一致定性案例展示

1.4 推荐阅读路线

必读主线:第2章 → 第3章 → 第5章 → 第6章 → 第7章。可跳读:第4章的工程细节(8卡并行、beam表),跳过的代价是无法完成综合考核的数字总对账题。建议顺序:先读LSTM文建立范式,带着"定长向量够不够"的疑问进入RNNsearch文。

第2章 LSTM文·模型:两个LSTM与一个EOS符号

来源:论文§1–§2。

2.1 学习目标

学完本章你应能:写出条件概率分解公式并说明v的角色;说出模型与朴素方案的三个差异及各自理由;解释<EOS>为什么是变长输出的关键。

2.2 失效模式先行

DNN强大但只能处理固定维度的输入输出。翻译、语音、问答天然是变长到变长的映射——这就是要治的病。更早的尝试(Kalchbrenner & Blunsom用CNN编码,丢失词序;Cho et al.只用于重排候选)各有残缺。

2.3 公式手术

p(y₁,…,yT′ | x₁,…,xT) = ∏t=1T′ p(yt | v, y₁,…,yt−1)
符号它是什么直觉
x₁…xT输入词序列(反向读入!)原料
v输入LSTM最后隐状态,8000维实数向量"整句话被压缩成的记忆胶囊"
yt输出词,softmax于80k词汇表逐词吐出的译文
<EOS>句末符,两端都有让模型能定义"任意长度序列"上的分布

三个关键设计【实验支持】:①编码/解码用两个独立LSTM——参数更多而计算代价可忽略,且天然支持多语言对共享;②用4层深LSTM——每加深一层困惑度约降10%;③反转源句——见第3章。张量形状流:词one-hot(160k或80k) → 嵌入1000维 → 每层1000单元×4层 → 顶层隐状态拼接出8000维的v(4层×1000×双向?不——是两个4层LSTM各贡献4000维状态,共8000维,【解读者按"384M参数、8000维状态"推算】)。

2.4 手算验证:384M参数解剖

论文给出:总参数384M,其中64M为"纯递归连接"(编码器32M+解码器32M)。【解读者对账】每个LSTM层含4个门的权重:层间输入侧4×1000×1000=4M+递归侧4M=8M;单侧4层=32M;两侧合计恰为64M ✓。再看词相关参数:输入嵌入160k×1000≈160M+输出嵌入80k×1000≈80M+输出投影1000×80k≈80M=320M;320M+64M=384M ✓ 与论文总数严丝合缝。这次对账说明:所谓384M里,83%的钱花在词表矩阵上,真正"LSTM本体"只有六分之一——大词汇表才是当年的显存大户。

2.5 常见误读

误读1:"解码器就是语言模型。" 差别在于条件里有v:它是"以整句含义为开头条件的语言模型"。类比:给同一位译者塞一张小抄(v),他写出的译文才连贯。类比失效处:小抄是固定容量的——这正是RNNsearch文攻击的点。

误读2:"8000维状态=8000维嵌入。" v是4层×1000维状态的组合表示,不是某个单一嵌入层的输出。

一句话记住本章:seq2seq = 编码器把句子酿成一颗"记忆胶囊",解码器是吃了这颗胶囊的语言模型。

第3章 LSTM文·神来之笔:为什么把句子倒过来读

来源:论文§3.3(数字均出自原文)。

3.1 学习目标

学完本章你应能:复述反转技巧的四组数字;用"最小时间滞后"解释其机理;举出该技巧可能失效的语言对。

3.2 数字先行

【实验支持】反转源句后:测试困惑度 5.8 → 4.7;解码翻译BLEU 25.9 → 30.6。提升近5个BLEU点,来自一次零成本的数据变换——这是全文最反直觉的结果,作者自承没有完整解释。

3.3 机理解释与类比

作者假说:把"a b c"反转成"c b a"后,c紧邻译文的α,b fairly close to β……源句开头与译文开头在时间轴上贴近,最小时间 lag 大幅缩短,SGD更容易在输入输出之间"建立通信"。注意作者强调:平均距离不变,缩短的是最早那几步的距离——梯度不必穿过整句话才能碰到第一个有用的信号。【解读者推断】这在今天的话语体系里就是"改善梯度的信用分配路径",与后续研究中"训练初期信号可达性决定成败"的观察一致。

类比:接力赛交接棒——原方案第一棒要跑完全程才能交棒;反转后第一棒起跑线就在下一棒旁边。失效处:对语序高度自由的语言对(如德语动词远置结构),"首词对首词"的假设减弱;且作者承认这只是一种假说而非证明——论文原文写明"we do not have a complete explanation"。

3.4 变式思考

作者推测标准RNN在非反转任务上训不动、但在反转后应可训练(未实验验证)。【解读者观点】这类"改问题表述而非改模型"的思路,是本文比具体数字更值得继承的遗产。

3.5 分级自测题

  1. L1反转前后两组指标分别是多少?
    显示答案困惑度5.8→4.7;解码BLEU 25.9→30.6。
  2. L2若把目标句也一起反转,预期效果如何?
    参考答案破坏收益:目标必须从左到右生成,反转目标句意味着模型要先预测句尾再倒着生成,与解码流程冲突;且源-目标首部邻近性同样可以达成但解码端无法利用。评分要点:抓住"平均距离不变、首部滞后才是关键"。
  3. L3"反转提升性能证明LSTM记忆力不足"——找出此论述的两处错误。
    参考答案①机理是优化问题(梯度通信距离)而非记忆容量问题,作者明确说反转后的LSTM反而更好地利用了记忆(长句表现更好);②若真是容量不足,反转不应改变任何东西,因为信息总量相同。评分要点:区分优化难度与容量两个概念。

第4章 LSTM文·实验全景:数字总账

来源:论文§3.1–3.6(全部数字出自原文)。

4.1 数据与训练配置

WMT'14英法,选用的干净子集:1200万句对,法语348M词、英语304M词;源词汇表160k、目标80k,OOV统一替换UNK。训练:SGD无动量,学习率0.7,5个epoch后每半个epoch减半,共7.5个epoch;batch=128;参数初始化U[−0.08, 0.08];梯度范数超5时缩放至5。并行化:单GPU约1700词/秒太慢 → 8-GPU机器(4块GPU各跑一层LSTM+4块GPU分摊softmax,每块负责一个1000×20000矩阵乘),达6300词/秒,训练约十天。

4.2 主结果表(直译)

方法测试BLEU (ntst14)
Bahdanau et al.(RNNsearch-50*)28.45
SMT基线33.30
单个正向LSTM,beam 1226.17
单个反转LSTM,beam 1230.59
5个反转LSTM集成,beam 133.00
2个反转LSTM集成,beam 1233.27
5个反转LSTM集成,beam 234.50
5个反转LSTM集成,beam 1234.81

重排(rescoring)路线:SMT基线33.30 → 单正向35.61 → 单反转35.85 → 5反转集成36.5(此前最好公开成绩37.0);1000-best列表的神谕重排上限约45。

数字对账(解读者执行):摘要称"34.8",表中最优34.81 ✓;"提升基线3.2 BLEU":36.5−33.30=3.2 ✓;"距37.0差0.5":37.0−36.5=0.5 ✓。另注意一个微妙口径:34.81是在80k词汇表惩罚OOV的不利条件下取得的,而对手词汇无限制——这是作者刻意强调的公平性姿态。

4.3 长句表现与句向量分析

【实验支持】按句长排序评估:35词以内无退化,最长句仅有轻微下降——这与Cho等人和RNNsearch文引用的"长句崩塌"形成有趣反差,作者的归因正是反转技巧改善了记忆利用。PCA可视化:句向量按词序聚类(bag-of-words难以捕捉),主动/被动语态互换的句子位置接近。

4.4 批判性阅读:这张表该怎么防忽悠

4.5 分级自测题

  1. L18-GPU机器如何分工?达到多少词/秒?
    显示答案4块GPU各承载一层LSTM,另外4块分摊softmax(每块乘一个1000×20000矩阵);6300词/秒(英法合计),batch 128。
  2. L2为什么说"集成5模型beam2比单模型beam12便宜"?算一笔账。
    参考答案每步扩展数:集成方案5×2=10个假设 vs 单模型12个;且集成各成员前向可并行。故计算量更低还拿到34.50 vs 26.17的悬殊差距。要点:会算"成员数×beam宽"这笔乘法。
  3. L3有人引用"seq2seq BLEU 34.8超过了当时一切统计机器翻译系统"。指出错误。
    参考答案34.81超过的是33.30的短语式基线;当时最好的WMT'14系统为37.0,seq2seq直译并未超过它;重排模式36.5也只是"接近"。错误根源是把"best direct translation by NN"偷换成了"best overall"。
  4. L4综合§2与§3:从"384M参数、8000维状态、160k/80k词表"三个数字出发,预测这篇论文必须解决哪些工程问题。
    参考答案160k/80k词表→词矩阵占320M→softmax与嵌入是大头→需8卡分摊softmax;8000维状态→深层LSTM串行依赖→层间GPU流水线;384M参数×1200万句→单GPU 1700词/秒不够→并行化+按句长组batch省2倍计算。每个数字都逼出一类系统工程。

第5章 RNNsearch文·病理诊断:定长向量的三宗罪

来源:论文§1–§2.1。

5.1 学习目标

学完本章你应能:写出基本编解码框架的两个方程;引用Cho et al.的证据说明长句崩塌;说出"压缩进定长向量"为何随句长恶化。

5.2 病理描述

基本框架:编码器 ht=f(xt, ht−1),上下文 c=q({h₁,…,hTx})(常取c=hTx);解码器 p(y)=∏p(yt|{y₁..yt−1}, c)。病灶:【论文声称+Cho et al.实证】无论源句多长都要压进同一个固定维度的c,句长超过训练分布时信息必然溢出,性能急剧下降。直觉类比:让一个人听完整段话、只许记在一张便签上、然后凭便签翻译全文——句子越长便签越不够写。类比失效处:真实瓶颈不是"纸太小"这么均匀,而是RNN隐状态天然偏袒近期输入,句首信息被系统性稀释——是"偏心"而不只是"容量"。

一句话记住本章:LSTM文的成功掩盖了一个架构级赌注——"一句话值得一个向量";RNNsearch文公开质疑这个赌注。

第6章 RNNsearch文·处方:软对齐(注意力的诞生时刻)

来源:论文§3(全部公式出自原文)。

6.1 学习目标

学完本章你应能:默写e、α、c三级公式链;解释为什么用si−1而不是si算能量;手算注意力模块的计算复杂度增量。

6.2 公式手术:一条链看懂注意力

eij = a(si−1, hj) = va tanh(Wasi−1 + Uahj) → αij = exp(eij)/Σkexp(eik) → ci = Σj αij hj → p(yi|…) = g(yi−1, si, ci)
符号形状直觉
hj=[h⃗j; h⃖j]2000维(两个1000维BiRNN方向拼接)第j个源词的"带上下文的注释",既知过去又知未来
eij标量译文第i位与源句第j位的匹配打分
αij概率分布(对j softmax)此刻的目光落在哪里的"软"指针
ci2000维期望注释——按注视强度加权平均
va, Wa, Uan′维/n′×n/n′×2n,n′=1000一个小MLP打分器,与全网联合训练

三个关键洞察:①对齐不再是潜在变量而是可直接求导的软权重——传统SMT要对齐模型单独训练,这里梯度自由流过;②αij可解读为yi对齐xj的概率,ci对齐分布下的期望注释;③用si−1(生成yi之前的状态)打分,保证目光决策先于落笔——因果顺序正确。

6.3 工程账单

缓解:定长瓶颈消失,信息分布在整条注释序列上按需取用。新增:每句每步要对Tx个位置各跑一次打分MLP,复杂度O(Tx×Ty)——作者明言这在15–40词的翻译场景"缺点不严重",但对其他任务可能是硬伤(他们特意与Graves 2013的单调高斯核对齐对比:那种方法便宜却不能远程重排)。优化细节【实验支持】:Uahj与i无关,可预计算摊销成本。欠债:二次复杂度与"每步全览"的浪费——这笔债直到Transformer时代用多头/稀疏化等方式偿还了一半,至今仍在偿还。

6.4 手算验证:注意力模块多大

【解读者按附录A尺寸计算】打分MLP参数:Wa(1000×1000)+Ua(1000×2000)+va(1000) ≈ 3M参数,相对全模型是零头;但计算次数是Tx×Ty级别的额外tanh——花小钱买来了长句鲁棒性,性价比极高。

6.5 常见误读

误读1:"注意力=可解释性。" α热图"与直觉一致"是定性观察【A3仅为案例展示】,不能当作因果解释证据——后世研究已多次警示注意力权重≠归因。

误读2:"BiRNN是为了更强表达。" 它是为注意力服务的:注释hj必须包含前后文,否则"看一眼h_j"拿不到足够信息——双向化是软对齐成立的前提组件。

误读3:"RNNsearch完全取代了LSTM文的技巧。" 两文正交:一个改训练数据分布,一个改信息通路;后来的GNMT两者都用。

一句话记住本章:注意力 = 每写一个词之前,先用一个小网络给源句每个位置打分、softmax成目光分布、按分布调取加权笔记。

第7章 RNNsearch文·实验与批判

来源:论文§4–§5、附录A/B(全部数字出自原文)。

7.1 设置速览

WMT'14英法:原始850M词(Europarl 61M+news commentary 5.5M+UN 421M+爬取90M+272.5M),经数据选择降为348M词;双语文本各取30k高频词短表,其余映射UNK;开发集=news-test2012+2013,测试集=news-test2014(3003句)。模型命名:RNNencdec-30/50(基础编解码,限30/50词)、RNNsearch-30/50(本文模型)。规模:隐藏n=1000、嵌入m=620、maxout层l=500、对齐n′=1000;GRU门控单元+maxout深输出。训练:minibatch 80句、Adadelta(ε=10⁻⁶、ρ=0.95)、梯度范数裁剪至≤1、按长度排序组batch减少填充浪费、每模型约5天(RNNsearch-50*加练至252小时)。

7.2 主结果表(BLEU)

模型全部句子无UNK子集∘
RNNencdec-3013.9324.19
RNNsearch-3021.5031.44
RNNencdec-5017.8226.71
RNNsearch-5026.7534.16
RNNsearch-50*28.4536.15
Moses(短语式SMT)33.3035.63

【实验支持】三个层次的结论:①所有配对下RNNsearch>RNNencdec(21.50 vs 13.93;26.75 vs 17.82);②无UNK子集上RNNsearch-50*的36.15超过Moses的35.63,而Moses额外用了418M词单语语料;③长句曲线上RNNencdecl随句长骤降,RNNsearch-50在50词以上仍无衰减。

数字对账(解读者执行):LSTM文表1引"Bahdanau et al. 28.45"与本表RNNsearch-50*全句分28.45 ✓ 两文交叉一致。"RNNsearch-30胜过RNNencdec-50":21.50>17.82 ✓——注意力带来的增益大于单纯延长训练句长的增益,这是支持架构主张的关键对照。

7.3 定性分析:两个经典案例

①非单调重排:[European Economic Area]→[zone économique européenne],模型先把zone跳回对齐Area,再逐词回看补齐整个短语——硬对齐做不到的"跳跃+回扫"。②软对齐消歧:[the man]→[l'homme],法语冠词缩合取决于后面名词的性数,硬对齐会把the孤立地映射错,软窗口同时看到man才能选对l'。

7.4 批判性阅读

7.5 分级自测题

  1. L1RNNsearch-50*在无UNK子集上的BLEU是多少?超过Moses多少?
    显示答案36.15 vs 35.63,高0.52分。
  2. L2若源句T_x=40、译文T_y=40,注意力打分要算多少次?相对无注意力模型多了哪一类开销?
    显示答案e_ij共40×40=1600次MLP前向;新增的是逐目标步对全源句的打分开销(可用预计算U_a h_j部分摊销),无注意力模型每步开销与T_x无关。
  3. L3构造一个软对齐优于硬对齐的具体翻译情形(不许用论文原例)。
    参考答案+评分标准例:中文"把字句"中动词后置成分与英文宾语的远距离对应;或德语框形结构中可分动词前缀与句尾动词的分离对应。评分要点:①情形确实需要"一处译文依赖多个分散源词"或"非单调对应";②说明硬对齐失败的具体机制。
  4. L4综合两文:同样是解决长句问题,"反转源句"与"注意力"分别押注在哪类资源上?从两文的实验证据比较两条路线的可扩展性。
    参考答案反转押注优化可行性(缩短梯度路径),保持O(T)计算与定长记忆,上限仍是8000维胶囊的信息容量;注意力押注计算量(O(T²)),换取容量随句长线性增长的注释序列。证据:LSTM文35词内无退化(反转有效但天花板存在);RNNsearch-50在50词以上无衰减且RNNsearch-30胜过RNNencdec-50(架构级更彻底)。历史裁决:注意力路线通向Transformer。评分要点:资源类别+各自证据+可扩展性判断三点齐全。

第8章 综合考核(毕业关)

  1. L4重建因果链:仅凭"348M词训练集、80k词表、BLEU 33.30基线"三条信息,分别推演LSTM文与RNNsearch文各自必须优先解决的问题有何不同。
    参考答案LSTM文(Google视角):大词表→softmax与嵌入吃掉83%参数→并行化softmax;基线33.30→目标是直译逼近→需要集成与beam搜索榨性能。RNNsearch文(学界视角):算力有限(5天/模型)→模型要小而巧→3M参数的打分器;同样基线→无法拼数据拼算力→必须在架构上找非对称优势(长句)。同一条数据,两种约束条件推出两种论文。
  2. L4数字总对账(跨两文):核对以下五组数字的一致性与口径差异:(a)348M词;(b)33.30;(c)28.45;(d)训练天数/小时;(e)梯度裁剪阈值。
    参考答案(a)两文同为348M词(同源于Schwenk的选择子集),口径一致✓;(b)LSTM文的SMT基线33.30与RNNsearch文Moses的33.30同源同脚本,可比✓;(c)LSTM文引用的28.45=RNNsearch-50*全句分✓;(d)LSTM文约十天(8 GPU),RNNsearch约5天/113–252小时(单GPU TITAN BLACK/Quadro K-6000)——算力口径不同,不可直接比快慢;(e)LSTM文裁剪阈值5,RNNsearch文阈值1——超参不同属正常差异,但跨文迁移超参时要警惕。易错点:(d)(e)是"数字都在但不构成矛盾"的情形,对账不等于处处要求相等。
  3. L4设计决策答辩(四连):①两LSTM而非单LSTM;②反转源句;③BiRNN编码器;④软对齐而非硬对齐——各答"为什么、不这样会怎样、论据够不够"。
    参考答案要点①参数翻倍近乎免费+多语言对共享,论据充分;②缩短最小滞后,论据是消融数字但机理自认未证透;③注释需含双侧上下文否则注意力无从取材,论据充分(结构性论证);④软对齐可微、免训练独立对齐模型、天然处理长短不一,论据充分且被长句曲线证实;硬对齐(如Graves单调核)不能远程重排。每条满分需三问俱全。
  4. L4证据审计:回看1.3节七条预评并逐条修正。
    参考答案L1维持强支撑(34.81>33.30且有消融:单模型26.17/30.59→集成的阶梯清晰);L2维持(5.8→4.7、25.9→30.6两组消融);L3降权:仅PCA图无定量指标;A1维持且加强(RNNsearch-30>RNNencdec-50是最有力的对照);A2维持强支撑(长句曲线);A3维持"仅定性";补充新发现:LSTM文的评测脚本敏感性(37.0 vs 35.8)提示所有跨系统比较都应降半信。

第9章 延伸:这对双子星通向哪里

【解读者观点】三年后Attention Is All You Need把RNNsearch的软对齐推广为唯一的信息通路、并用LSTM文的多层堆叠与大规模数据配方,同时抛弃了两者的递归骨架——两篇2014年的论文分别贡献了Transformer的"灵魂"(注意力)与"身体"(深栈序列建模)。今天大模型的上下文窗口,本质上就是那张α热图的工业化后代。动手练习建议:①手算T_x=T_y=60时的注意力打分次数并与RNNcell调用次数比较;②实现一个玩具版加性注意力并可视化α矩阵;③把LSTM文的"按长度组batch省2倍"复现为实验测量。