注意力机制:序列对齐新方法
Dzmitry Bahdanau 等人提出注意力机制,解决序列到序列模型的长距离依赖问题。
事件概述
2014年,Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 发表了具有开创性的论文,在神经机器翻译中引入了注意力机制。传统的序列到序列模型需要将整个输入序列压缩成固定长度的向量,导致长句子翻译质量下降。注意力机制允许解码器在每个时间步"关注"输入序列的不同部分,动态选择相关信息。这一创新大幅提升了机器翻译质量,并为后来的 Transformer 架构奠定了核心概念基础。
深度学习笔记
背景、原理、影响与要点,一次读懂这个事件
背景与脉络
2014 年前,神经机器翻译把整句压成固定长度向量,解码器据此生成译文;Sutskever 等人的 seq2seq 在 WMT'14 英译法达 34.8 BLEU,但须颠倒源句、长句性能骤降,瓶颈正是该向量难承长句信息。同年 9 月,蒙特利尔的 Bahdanau、Cho 与 Bengio 在 arXiv 提交注意力机制论文(ICLR 2015),提出:解码器生成每个词时动态回顾源句相关部分,而非依赖单一压缩向量,成为 Transformer 的源头。
核心要点
- 1注意力机制让解码器为每一个目标词计算一个独立的上下文向量,而非复用同一个固定向量。
- 2对齐(alignment)与翻译被放进同一个可微分网络联合学习,不再依赖外部词对齐工具。
- 3采用加性(additive)打分函数:用一个小型前馈网络对解码器状态与每个源位置打分。
- 4编码器改用双向 RNN,使每个位置的标注同时包含前后文信息。
- 5在长句翻译上明显优于无注意力的 seq2seq,质量逼近基于短语的统计机器翻译。
- 6它是自注意力与 Transformer 的思想源头,被称为"加性注意力"。
原理与技术细节
传统 seq2seq 把源句编码成单个向量 c;Bahdanau 改为保留编码器在各时间步的隐藏状态序列(标注 h_1…h_Tx)。生成第 i 个目标词时,模型先用对齐模型 e_ij = a(s_{i-1}, h_j) 给每个源位置打分(a 是一个可训练的前馈网络),再用 softmax 归一化成权重 α_ij,最后加权求和得到上下文向量 c_i = Σ α_ij h_j。直观地说,这就是"翻译每个词时,模型自己决定该看源句哪些位置"。因为打分与权重都是可微的(软对齐),梯度可以直接回传到对齐过程;而双向 RNN 让每个 h_j 同时包含前后文。与后来 Luong 的乘性(点积)注意力不同,Bahdanau 用的是加性注意力。
影响与后续
注意力机制迅速成为序列建模的标准组件,并被推广到图像描述、语音识别、阅读理解等任务。它最重要的遗产是把"动态读取上下文"从 RNN 的附属品,提升为可独立运作的核心运算;三年后 Transformer 干脆去掉循环,让注意力成为整个架构的主角。其局限在于仍依附于 RNN、计算随序列长度平方增长,且加性打分比后来的点积注意力更慢——但这些都被 Transformer 的并行化设计解决。
学习要点
- 固定长度向量是早期神经翻译的信息瓶颈,长句尤其受影响。
- 注意力本质是"为当前决策动态分配输入的权重",与具体任务无关。
- 软对齐可微,因此对齐可以与翻译端到端联合训练。
- 许多里程碑式想法最初是为解决小问题而生,后来才成为通用范式。
术语表
在生成每个输出时,按可学习权重动态聚焦输入相关部分、而非依赖单一压缩表示的机制。
Bahdanau 提出的注意力打分方式,用一个小型前馈网络计算查询与键的匹配分数。
以连续权重覆盖所有输入位置的可微对齐,使梯度能流过对齐过程。