Sequence to Sequence Learning with Neural Networks(2014)— 深度精读

📄 原文:arXiv:1409.3215 · PDF

用一个多层 LSTM 把变长输入编码成固定维向量,再用另一个 LSTM 从该向量解码出变长输出——第一个在大规模翻译任务上直接击败短语级 SMT 的纯神经系统。

一句话定位

seq2seq 确立了「encoder-decoder」这一通用端到端序列映射范式:任何「序列到序列」问题(翻译、问答、摘要)都可交给两个 RNN,几乎不需对结构做假设。

核心贡献

  1. Encoder-Decoder 框架:一个 LSTM 逐词读入源句得到最后隐状态 v(固定维「句向量」),另一个 LSTM 以 v 为初始隐状态、按 LSTM-LM 方式自回归生成目标句,用 <EOS> 标记定义任意长度序列的分布。
  2. 两个独立 LSTM:编码器与解码器不共享参数,几乎不增计算却增容量,且天然支持多语言对联合训练。
  3. 源句反转(key trick):把源句词序倒转(目标句不变),使源/目标对应词的「最小时间滞后」大幅缩短,引入大量短程依赖,让 SGD 更易建立源-目标间的联系——这是本文最关键的工程发现。
  4. 深层 LSTM:用 4 层 LSTM,作者发现每加一层困惑度降近 10%。

架构 / 方法细节

  • 规模:4 层 × 每层 1000 个 cell + 1000 维词嵌入;源词表 160k、目标词表 80k,OOV 用 UNK。句子被压成 8000 个实数(4 层 × 2 × 1000)。总参数 384M,其中纯循环连接 64M(编/解码器各 32M)。
  • 训练:均匀初始化 [-0.08, 0.08];SGD 无 momentum,固定 lr=0.7,5 个 epoch 后每半 epoch 学习率减半,共 7.5 epoch;batch=128;梯度裁剪阈值 5(s=‖g‖₂>5 时缩放);同长度句放同一 batch 得 2× 加速。
  • 解码:left-to-right beam search;即使 beam=1 也表现不错,beam=2 已获大部分收益。
  • 数据:WMT’14 En→Fr,12M 句对(348M 法语词 / 304M 英语词)。
  • 并行:8-GPU 机器,每层 LSTM 一块 GPU,另 4 块并行 softmax(各乘 1000×20000 矩阵),达 6300 词/秒,训练约 10 天。

关键结果(真实数字)

  • 直接翻译:5 个反转 LSTM 集成 + beam=12,BLEU 34.81,首次超过短语级 SMT 基线 33.30(且受 80k 词表 OOV 惩罚)。
  • 反转效果:测试困惑度 5.8→4.7,BLEU 25.9→30.6(单模型),是最大单项增益来源。
  • 重排序:用 LSTM 对 SMT 的 1000-best 重打分,BLEU 36.5,逼近当时最佳 37.0(相差 0.5)。
  • 长句:<35 词无退化,最长句仅轻微退化,推翻了「RNN 处理不了长句」的普遍担忧。
  • 句表示:PCA 显示隐状态按语义聚类,对词序敏感、对主动/被动语态相对不变。

为什么是里程碑

  • 确立 encoder-decoder 端到端范式,成为神经机器翻译(NMT)、语音、摘要的通用骨架。
  • 直接催生了 attention 机制(Bahdanau 2014 正是为解决固定向量瓶颈),进而通向 Transformer。
  • 证明「最小假设 + 大数据 + 简单模型」可击败精心工程化的统计系统。

关联