P48 · 注意力与 Transformer
Transformer(下)
1这节解决什么问题
编码器把原文变成一组带上下文的表示,接下来怎么一个词一个词地写出译文?训练时又怎么做到同时算?
2一句话讲清
解码器自己接自己的输出往下写;训练时用「遮住未来」让它一次算完所有位置,真正生成时只能一步步来。
3通俗解释
- 生成:先给一个「开始」符号,得到词表上每个词的概率,取最大或按概率抽一个;把它接到后面,再生成下一个;直到生成「结束」。
- 解码器的自注意力和编码器一样,只多一条「遮住未来」:算某个位置时,后面还没写出来的词一律不许看。不遮的话,训练时它等于在抄答案。
- 交叉参考是解码器提问、编码器提供材料:解码器拿当前位置去和原文每个位置比对,决定这一步该参考原文的哪几个词。写一个词就重新查一次。
- 训练时把标准答案的前半段当输入,让它预测下一个词,这叫教师强制。因为有「遮住未来」,一次就能把所有位置的错一起算出来。真正生成时没有标准答案,只能用自己的输出,训练和实际用的输入不完全一样,这叫曝光偏差。
4一个例子
讲义例子
讲义用一张树状的分支图说明为什么不能把所有可能都试一遍:每一步都有很多候选,几步下来组合就爆炸了。贪心地每步取最大概率,快,但一步选错后面全歪。束搜索是折中:同时留几条最有希望的开头,边走边淘汰,最后挑整体概率最高的一条。它比贪心稳一些,但留的条数有限,也不保证全局最好。
5常见误区
- 以为教师强制就是生成方法。它只用于训练;真正生成时没有标准答案,必须自己接自己的输出。
- 以为交叉参考里「提问」的是编码器。反了:解码器提问,编码器提供材料。
- 以为「遮住未来」和「遮住补齐的无效位置」是一回事。前者遮的是还没生成的词,只用于解码器;后者遮的是为了让一批句子等长而补的空位。
6和相邻几节的关系
P47 的编码器输出就是这里交叉参考的材料来源;P36 的「比对—按比重混合」是所有注意力的内核;P38 的循环网络序列到序列是「压成一个」的旧方案。
730 秒回顾
自回归地写,直到结束;遮住未来才能在训练时一次算完;交叉参考是解码器问、编码器答,写一个词查一次;训练用标准答案、生成用自己的输出,两者有落差;束搜索是有限宽度的折中。
8小自测
先自己答,再点开对答案。
1. 训练时去掉「遮住未来」,会发生什么?
算某个位置时它能看到后面的标准答案,等于抄答案:训练损失会很好看,但真正生成时没有未来词可看,行为完全对不上,质量会崩。
2. 交叉参考里,谁提问、谁提供材料?写一个词要查几次?
解码器提问,编码器提供材料;每写一个词就查一次,所以同一段原文会被反复参考,每次重点可能不同。
9来源
来源与说明(点开可查)
基于对应官方讲义整理并做复习补充,不是视频逐字稿;本页不标注视频时间点。
对应讲义页码:seq2seq_v9.pdf 第 22–59 页