Lecture 05 · 决定保留源位置以后,每一步怎样读取?

R30 · 决定保留源位置以后,每一步怎样读取?

源序反转仍能改善固定摘要系统,说明最初的错译尚未定位。本页试另一项选择:保留整组源位置,看看每个目标步骤怎样重新取得所需信息。

状态 b0

图中保留同一中文源句的六个位置表示;目标侧只有BOS。先比较这一组可再次访问的来源与先前的整体摘要接口。

同一给予事件固定六个源位置表示(可包含上下文)我h1昨天h2给了h3她h4一本h5书h6源表示不随目标步骤重算携带本次读取需求当前解码状态 s₀已知前缀:BOS?·······

状态 b3

s₀与六个源表示共同进入scorer,新出现的是六个匹配分数。先辨认分数对应源位置,尚未形成词概率。

同一给予事件固定六个源位置表示(可包含上下文)我h1-0.36昨天h2-3.51给了h3-2.53她h4-3.00一本h5-2.81书h6-2.53源表示不随目标步骤重算携带本次读取需求当前解码状态 s₀eᵢⱼ = a(sᵢ₋₁, hⱼ)已知前缀:BOS?·······

状态 b4

分数变为沿六个源位置归一化的权重;每行和为一。较大权重决定某个源表示在汇总中贡献多少。

同一给予事件固定六个源位置表示(可包含上下文)我h1-0.360.70昨天h2-3.510.03给了h3-2.530.08她h4-3.000.05一本h5-2.810.06书h6-2.530.08源表示不随目标步骤重算携带本次读取需求当前解码状态 s₀eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1已知前缀:BOS?·······

状态 b5

同一组权重乘上源向量并相加,形成context。沿汇入箭头观察多份内容怎样成为一份内部向量。

同一给予事件固定六个源位置表示(可包含上下文)我h1-0.360.70昨天h2-3.510.03给了h3-2.530.08她h4-3.000.05一本h5-2.810.06书h6-2.530.08源表示不随目标步骤重算携带本次读取需求当前解码状态 s₀eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.96, 0.39)内部向量 → 解码 / 词表预测已知前缀:BOS?·······

状态 b6

context接入解码与词表头后,本步选择I。读取来源的权重和输出英文词的概率在这里接成两段不同计算。

同一给予事件固定六个源位置表示(可包含上下文)我h1-0.360.70昨天h2-3.510.03给了h3-2.530.08她h4-3.000.05一本h5-2.810.06书h6-2.530.08源表示不随目标步骤重算携带本次读取需求当前解码状态 s₀eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.96, 0.39)内部向量 → 解码 / 词表预测已知前缀:BOSI·······

状态 b7

I被接回前缀,当前状态更新,再预测gave。上方来源保持不动,需重新计算的是这一轮匹配与读出。

同一给予事件固定六个源位置表示(可包含上下文)我h1-2.530.08昨天h2-3.220.04给了h3-0.390.68她h4-2.530.08一本h5-3.000.05书h6-2.660.07源表示不随目标步骤重算携带本次读取需求当前解码状态 s₁eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.99, 0.96)内部向量 → 解码 / 词表预测已知前缀:BOS IIgave······

状态 b1

前缀已经是I gave,当前预测her。沿本步权重、context和词表头读完一次闭环,观察接收者信息在哪里进入预测。

此步前缀只有I gave;待预测的her不能先作为本步输入。

同一给予事件固定六个源位置表示(可包含上下文)我h1-3.000.05昨天h2-3.510.03给了h3-2.530.08她h4-0.360.70一本h5-2.810.06书h6-2.530.08源表示不随目标步骤重算携带本次读取需求当前解码状态 s₂eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (1.61, 0.39)内部向量 → 解码 / 词表预测已知前缀:BOS I gaveIgaveher·····

状态 b8

her已在前缀中,当前预测a。目标轴向前推进一格,上一输出成为下一步已知输入。

同一给予事件固定六个源位置表示(可包含上下文)我h1-3.220.04昨天h2-3.910.02给了h3-2.810.06她h4-2.530.08一本h5-0.480.62书h6-1.710.18源表示不随目标步骤重算携带本次读取需求当前解码状态 s₃eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.44, 1.68)内部向量 → 解码 / 词表预测已知前缀:BOS I gave herIgavehera····

状态 b9

前缀为I gave her a,当前预测book。新的需求仍访问同一组源位置。

同一给予事件固定六个源位置表示(可包含上下文)我h1-3.510.03昨天h2-3.910.02给了h3-3.000.05她h4-2.530.08一本h5-2.120.12书h6-0.360.70源表示不随目标步骤重算携带本次读取需求当前解码状态 s₄eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.94, 1.71)内部向量 → 解码 / 词表预测已知前缀:BOS I gave her aIgaveherabook···

状态 b2

前缀已走过her、a、book,现在才预测yesterday。源位置未变,当前状态和读取分配改变,说明需求可以随目标位置更新。

同一给予事件固定六个源位置表示(可包含上下文)我h1-3.220.04昨天h2-0.330.72给了h3-2.660.07她h4-3.000.05一本h5-3.000.05书h6-2.660.07源表示不随目标步骤重算携带本次读取需求当前解码状态 s₅eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.28, 1.03)内部向量 → 解码 / 词表预测已知前缀:BOS I gave her a bookIgaveherabookyesterday··

状态 b10

yesterday加入前缀后预测句号;标点也是序列中的一个输出步骤。

同一给予事件固定六个源位置表示(可包含上下文)我h1-2.300.10昨天h2-2.300.10给了h3-1.900.15她h4-1.900.15一本h5-1.610.20书h6-1.200.30源表示不随目标步骤重算携带本次读取需求当前解码状态 s₆eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.85, 1.25)内部向量 → 解码 / 词表预测已知前缀:BOS I gave her a book yesterdayIgaveherabookyesterday.·

状态 b11

句号之后预测EOS并停止。八个目标位置与八次读取一一对应,完整序列没有跳过中间词。

同一给予事件固定六个源位置表示(可包含上下文)我h1-1.900.15昨天h2-1.900.15给了h3-1.900.15她h4-1.900.15一本h5-1.610.20书h6-1.610.20源表示不随目标步骤重算携带本次读取需求当前解码状态 s₇eᵢⱼ = a(sᵢ₋₁, hⱼ)源轴 softmax:Σα = 1context = (0.80, 1.10)内部向量 → 解码 / 词表预测已知前缀:BOS I gave her a book yesterday .Igaveherabookyesterday.EOS

公式与算例详情

每次预测重新读取源句

固定表示 encoder–decoder 把源侧信息集中到一个整体向量。动态 attention 保留一组源位置表示 $h_1,\ldots,h_n$;每当解码器要产生下一项,便根据当前目标侧状态重新计算一组权重,再汇总源信息。预测 her 与预测 yesterday,允许形成不同的读取分布。

在 Bahdanau 的模型中,源表示来自双向 RNN,因而一个位置的表示也包含周围语境。箭头指向“她”不意味着其向量只存储“她”这个孤立词。对于第 $i$ 个输出,原式使用上一解码状态与源表示计算 $e_{ij}=a(s_{i-1},h_j)$,再得到 $c_i=\sum_j\alpha_{ij}h_j$。$c_i$ 参与后续解码与预测,并不是直接选出的目标词。

图中的六个源位置、中英语对与读取权重均为教学构造。切换目标前缀时,源句与这组编码表示保持不变;变化的是当前需求与读取分布。它们帮助说明后续 Q/K/V 的角色,不能作为模型已经修正错译或学会对齐的证据。R34 再单独阅读历史模型的真实热图。

参考与采用

  • 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

原课页采用记录:M18 一次完整 attention。页码均按PDF物理页计。

继续学习

如果仍不清楚“读到她”怎样参与写出 her,读从读取到词预测中“读取之后,系统怎样决定写 her”,并沿书稿的同一目标前缀追踪源表示、当前需求与输出。CLS 02“2 · 匹配、汇总,再预测下一词”把这条链接完整;LAB 02“E · 只改 q 或只改 V,分别会改变什么?”用于检查来源权重与词表概率的区别,不能把手工箭头当训练结果。