M4-008M4: Sequences & TransformersSeq2Seq & Attention OriginsEasy
Mastery:

Seq2Seq & Attention Origins: 解释 Bahdanau 注意力的计算流程。

📐 Mathematical Definition
et,i=v⊤tanh⁡(Wsst−1+Whhi);αt,i=eet,i∑jeet,j;ct=∑iαt,ihie_{t,i}=v^{\top}\tanh(W_s s_{t-1}+W_h h_i);\quad \alpha_{t,i}=\frac{e^{e_{t,i}}}{\sum_j e^{e_{t,j}}};\quad c_t=\sum_i\alpha_{t,i}h_i
⚡ Executive Summary
Core Concept: 解码器每步用当前状态与全部编码器状态算相似度、softmax 得权重、加权求和得上下文向量,再与解码状态拼接生成。

📌 Key Takeaways

  • •
    加性(additive)注意力:用一层 MLP 算 query-key 相似度
  • •
    权重 α 是对源位置的分布(可解释为对齐)
  • •
    上下文向量 c_t 每步重新计算(动态)

📐 Mathematical Derivations

数学机理:<strong>Bahdanau 注意力(2015)</strong> 是注意力机制的最早形式,计算流程为:(1) 编码器用<strong>双向 RNN</strong> 得到每个源位置 i 的隐状态 h_i=[h⃗_i;h⃖_i](保留全序列,不再压缩成单一向量);(2) 解码器在第 t 步,用<strong>上一步的解码状态 s_{t−1}</strong> 作为 query,与每个 h_i 计算<strong>加性对齐分数</strong> e_{t,i}=vᵀtanh(W_s s_{t−1}+W_h h_i)——注意这里用一层 MLP 把 query 与 key 投影到同一空间后相加再激活,故称 <strong>additive attention</strong>;(3) 对分数做 softmax 得权重 α_{t,i}=softmax_i(e_{t,i}),构成一个'源位置的分布';(4) <strong>加权求和</strong>得上下文向量 c_t=Σ_i α_{t,i}h_i;(5) 把 c_t 与 s_{t−1}(及上一步输出 y_{t−1})拼接,输入解码 RNN 得到新状态 s_t,再经输出层生成 y_t。<strong>与 Luong 注意力(2015)的差异</strong>:Luong 用<strong>乘性/点积</strong>形式 e_{t,i}=s_tᵀW h_i(或直接点积),计算更高效(可用矩阵乘批量实现)、参数更少;Bahdanau 的加性形式在 query/key 维度不同或需更强非线性时更灵活。实践中点积注意力因效率成为主流(Transformer 即用点积),加性注意力在维度不匹配或小规模场景仍有使用。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>对齐的可解释性</strong>——α_{t,i} 天然可视为'第 t 个输出 token 关注哪个源 token',可视化后常呈现近似对角线的对齐(翻译中尤其明显);但要注意:注意力权重<strong>不等于</strong>因果解释(Jain & Wallace 2019 质疑其可解释性),因为多头与后续层会混合信息。② <strong>对瓶颈的解决</strong>——解码器每步可访问<strong>全部</strong>源位置(O(1) 路径),且权重动态依内容计算,故长句性能不再随长度崩塌;这是注意力最本质的贡献。③ <strong>计算复杂度</strong>——Bahdanau 注意力需对每个 (t,i) 算一次 MLP,复杂度 O(T_s·T_t·d);点积形式可用矩阵乘把复杂度降到一次大矩阵运算,这是 Transformer 高效的关键前提。④ <strong>从注意力到 Transformer</strong>——Transformer 的 Q/K/V 抽象即源于此:query=解码状态、key/value=编码状态;当 query、key、value 都来自同一序列时即 <strong>self-attention</strong>。理解 Bahdanau 注意力是理解 Transformer 的必经之路。⑤ <strong>与硬对齐的对比</strong>——传统统计机器翻译用硬对齐(离散、不可微);注意力是'软对齐',可微、可端到端训练(见下一题)。⑥ <strong>面试要点</strong>——被问'Bahdanau 注意力怎么算',应能写出<strong>五步流程 + 加性分数公式</strong>;被追问'与 Luong/Transformer 的差异',答'加性 MLP vs 点积',并说明'点积可用矩阵乘批量计算'是 Transformer 选它的原因。
⚠️ Common Interview Pitfalls
  • ✕
    把注意力权重当作严格的因果解释
  • ✕
    混淆加性(Bahdanau)与乘性(Luong)注意力的公式
🎯 Interviewer Follow-ups
  • ?
    Bahdanau(加性)与 Luong(乘性/点积)注意力的差异?
  • ?
    注意力权重能直接当对齐解释吗?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM4-007: Seq2Seq & Attention Origins: 解释 Seq2Seq 架构与它的信息瓶颈。📋Back to BankNext →M4-009: Seq2Seq & Attention Origins: 为什么说注意力是'可微的软对齐'?