Lecture 05 · 学会读取以后,回到同一次选择

R37 · 学会读取以后,回到同一次选择

真实对齐图显示了模型如何分配读取,却没有回答它怎样学会这样读。本页先接回译文训练,再用新机制重新审视最初那条错译。

状态 b0

任务前向链已从源表示和前缀状态连到正确词loss。沿箭头找到读取结果如何影响最终词概率,红色反传尚未出现。

译文目标,怎样训练“此刻读哪里”?源位置表示h₁ … h₆ → K / V合法语言前缀解码状态 → qₜ匹配与归一化eₜ → αₜ加权读取cₜ = Σ αₜⱼvⱼKQα源内容 V词表预测 → 正确词 loss成对译文提供监督;不需要额外给定逐词对齐标签。

状态 b1

红色路径从loss经预测、汇总和匹配回到模型。普通译文监督可以训练读操作,无需先给每对词标注对齐。

译文目标,怎样训练“此刻读哪里”?源位置表示h₁ … h₆ → K / V合法语言前缀解码状态 → qₜ匹配与归一化eₜ → αₜ加权读取cₜ = Σ αₜⱼvⱼKQα源内容 V词表预测 → 正确词 loss任务误差回传到读取、匹配、源表示与解码状态。

状态 b3

原her/him错译重新出现;两个合法前缀对应接收者和时间的不同需求。用刚学的接口重新解释自己的选择,仍保留源序或搜索等其他原因。

图中箭头表达待验证的读取需求,不能当作新实测对齐或当前错译已修复的证据。

我昨天给了她一本书。候选错译:I gave him a book yesterday . EOS教学构造回到原系统:把一个固定摘要,改成可按需访问的位置表示。我昨天给了她一本书编码后保存 h₁ … h₆;每次输出重新算 αₜ。前缀 I gave → 接收者需求前缀 I gave her a book → 时间需求值得试:不同目标位置可重读不同源信息;训练误差能调整这条通路。

状态 b4

四格把源序正/反与摘要/动态读取分开。先看哪些条件被固定,再找一个能区分接口收益与其他改动的观察。

我昨天给了她一本书。候选错译:I gave him a book yesterday . EOS教学构造下一次实验:在同一数据与评测上,分开改变源序和读取接口。固定摘要逐位置读取源句正序训练与评测训练与评测源句反转训练与评测训练与评测固定:编码器方向、数据、训练预算、解码评分与 beam;多种子配对。比较:长距接收者错误率、正确词 NLL、质量/成本;旧路线相当且更省就保留。

状态 b2

当所有value相同,改变权重仍得到同一context。观察这一特殊情形,区分存在可微路径与这条路径梯度一定非零。

译文监督 → 学会打分与汇总;没有逐格对齐标签源表示 / 当前状态score → αcontext c预测 → loss前向:按当前状态匹配,再将源表示加权送入预测。从 c 分两路:源表示 ← ∂L/∂c → α → score → 打分参数∂L/∂eⱼ = αⱼ · (∂L/∂c)ᵀ(vⱼ − c)所有 V 相同 → 这一路 score 梯度为 0;其他梯度仍可能存在。

状态 b5

展开loss到context再到score的导数。value与当前汇总在损失敏感方向上的差异,决定调整该分数能产生多大局部影响。

译文监督 → 学会打分与汇总;没有逐格对齐标签源表示 / 当前状态score → αcontext c预测 → loss前向:按当前状态匹配,再将源表示加权送入预测。从 c 分两路:源表示 ← ∂L/∂c → α → score → 打分参数∂L/∂eⱼ = αⱼ · (∂L/∂c)ᵀ(vⱼ − c)

公式与算例详情

从机制返回同一次研究选择

固定摘要把源句压成一次条件;逐位置接口保存一组编码表示,按每个合法前缀的需求重新读取。任务误差能训练读操作,这说明接口有可学习的用途,没有证明它会修好当前错译。源序反转改善和强固定向量的长句表现仍支持继续旧路线。

下一步做源序(正/反)×接口(固定摘要/动态读取)的2×2。固定编码器方向、深度、隐藏宽度、数据切分、tokenizer、优化器与训练token预算、EOS/长度评分规则和beam;配对种子,另报告等参数预算敏感性。主要观察受控接收者词对的teacher-forced正确词NLL与分距错误率;另外报告自由生成BLEU及推理成本。先控制搜索,以免把搜索差距误作条件信息缺失。若动态读取没有可复现收益而代价更大,保留旧路线。若改善只在反转条件出现,也不能把全部改进归于读取接口。

局部梯度细式与其他路径

原始神经机器翻译系统可以用目标译文的条件似然联合训练编码器、解码器和对齐网络。即使没有逐词对齐标签,输出损失也会经预测层传回 context,再传到 value、权重和 scorer 参数。学习目标提供的是“这句译文预测得怎样”,并没有直接规定热图每格应有多亮。

对一次读取 $c=\sum_j\alpha_jv_j$,若 $g=\partial L/\partial c$,则 $\partial L/\partial e_j=\alpha_j g^{\mathsf T}(v_j-c)$。当某个 value 与当前汇总在损失敏感方向上不同,改变它的权重便可能改变损失。若所有 value 恰好相同,这次输出不依赖权重,来自这次 c 路径的 score 梯度为零。

attention 权重和本次读取的向量是当前输入下的激活,scorer 与编码、预测网络的参数才在训练中更新。后续采用投影式 Q/K/V 时,这一区别表现为 Q、K、V 与 $W_Q,W_K,W_V$ 的区别;不能把后者倒写为 Bahdanau 原式。一次随机 forward 能验证计算和维度,不能证明模型学会了有效对齐。

参考与采用

  • 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
  • Sequence to Sequence Learning · v1:在当时证据与资源条件下比较研究路线;细节与口径见本页说明。 复核位置:指定原版本的结构、设置与结果表
  • Learning to Align and Translate · v1:在当时证据与资源条件下比较研究路线;细节与口径见本页说明。 复核位置:指定原版本的结构、设置与结果表

原课页采用记录:M18 一次完整 attention、M22 矩阵与读取对应。页码均按PDF物理页计。

继续学习

若问题是“没有对齐标签,误差怎样教读取”,读从读取到词预测的“译文误差怎样教会读取”,并用局部梯度式检查所有 value 相同时为何这条 score 梯度为零;CLS 02“4 · 没有人工对齐标签,读取怎么学”承接这一步。若问题是“是否值得更换接口”,改读2014 年的翻译路线选择,在LAB 02“D/E · 固定源序,比较两种读取接口”及受控实验设计核对源序×接口、等参数预算敏感性和改判条件。数值求导与训练能力是两项检查。