R33 · 换打分方式,保留的是同一个读取接口
刚才为目标词读取另一句话;现在让bank读取本句的money。先辨认哪些计算可以沿用,哪些只是打分盒子内部的不同选择。
状态 b0
bank提供query、money提供key,两种scorer处理同一对角色。观察改变发生在匹配函数内部,后续读取接口仍相同。
bank/money的位置表示用于说明接口,本图没有提供受训词义消歧的测量。
状态 b2
两种匹配结果都接回源轴softmax与value汇总。需求和来源现在都在本句;下一步只需把这种操作重复给每个查询位置。
状态 b1
在线性拼接反例中,query项对本行每列都是同一常数。将它从softmax分子分母约去,便看见需求为何不再改变读取。
公式与算例详情
需求怎样进入匹配分数
画面让同一句中的 bank 提出需求、money 提供候选来源;这是为比较接口给出的例子,不是消歧模型的训练结果。常见加性 attention 用 $e_{ij}=v_a^{\mathsf T}\tanh(W_q q_i+W_k k_j+b)$ 计算匹配。Bahdanau 原文中的 query 来源是上一解码状态,key/value 的角色由源注释向量承担;此处用 QKV 角色语言帮助比较,不把 2017 年的全部投影写法倒写成其原式。点积 attention 则以 $q_i^{\mathsf T}k_j$ 为基本 score,Transformer 使用缩放后的点积。
为什么加性网络中的非线性不能随意删掉?若写成 $e_{ij}=a^{\mathsf T}q_i+b^{\mathsf T}k_j$,对固定 query 的一行而言,$a^{\mathsf T}q_i$ 对所有 j 都相同。softmax 满足 $\operatorname{softmax}(z+c\mathbf1)=\operatorname{softmax}(z)$,于是 query 的影响恰好抵消,读取分配不再随 query 改变。含 tanh 的联合变换不会一般性地分解成这种公共常数与 key 项之和。
点积 scorer 本身具有 q 与 k 的乘性相互作用。两种打分随后都可以接同样的 softmax 与加权汇总。attention 的完整计算也包含 softmax 非线性,不能说它“完全没有非线性”,更不能以此作为 FFN 的唯一理由。
参考与采用
- Bahdanau et al. · Align and Translate:动态软对齐的机制与特定英法翻译设置中的长度证据。 复核位置:v7, 2016-05-19;ICLR 2015;§2.2 Eq.4–6、§4.2、§5.1 Figure 2;首次提交 2014-09-01
- Vaswani et al. · Attention Is All You Need:原始 encoder–decoder Transformer:信息来源、并行性、路径和代价。 复核位置:§3、Table 1/2;本轮核对v7 PDF;首次提交2017-06-12
原课页采用记录:M18 一次完整 attention、M19 匹配与传递内容。页码均按PDF物理页计。
继续学习
若疑问是“删去 tanh 后为何不再随 query 改变”,读从读取到词预测的“scorer 改的是匹配规则,轴不能跟着混乱”,对照公共常数抵消的推导。在LAB 02 E 段保持相同 q/K/V 与 softmax 轴,比较加性、点积与纯线性拼接的分数;要检查的是 query 是否能改变相对匹配,而不是两套分数的数值尺度是否相同。