Sutskever 30 #11:让 attention 算得快一点

从 #10 留下的尾巴说起 #10 Pointer Networks 结尾留了一句:2015 年 attention 沿两条线继续长——一条是 Pointer Networks,让 attention 直接当输出;另一条是 Luong,让 attention 算得更便宜。 这一篇走第二条。 Bahdanau 2014 把 attention 接进了 NMT,效果好。但 attention 这一步本身是有成本的。每生成一个目标词,decoder 都要对 encoder 的所有位置打一遍分。源句 50 个词,decoder 生成 50 个词,光是算 score 就要 2500 次。 每一次 score 怎么算,决定了这件事到底贵不贵。 Bahdanau 的算分方式 Bahdanau 用的是加性形式: $$e_{ij} = v^\top \tanh(W s_{i-1} + U h_j)$$s 是 decoder 的上一步状态,h 是 encoder 第 j 个位置的 annotation。 这里面有三组参数:W(把 s 投到打分空间)、U(把 h 投到打分空间)、v(把打分空间压成一个标量)。算一次 score 要做两次矩阵乘、一个 tanh、一个内积。 ...

April 25, 2026