「Teacher forcing」
如果我们能够在每一步的预测时,让老师来指导一下,即提示一下上一个词的正确答案,decoder就可以快速步入正轨,训练过程也可以更快收敛。因此大家把这种方法称为teacher forcing。所以,这种操作的目的就是为了使得训练过程更容易。
缺点:(1)预测(inference stage)时我们没有老师给你做标记了!纯靠自己很可能挂掉。
(2)对于NMT任务来说,不可能保证某种语言中的每一个词在另一种语言中都有对应的词语 【1】。(3)强制词语对应消除了语义相似的其他翻译结果,扼杀了翻译的多样性,(4)Overcorrect 问题 【1】,解释如下:
1. 待生成句的Reference为: "We should comply with the rule."
2. 模型在解码阶段中途预测出来:"We should abide"
3. 然而Teacher-forcing技术把第三个ground-truth "comply" 作为第四步的输入。那么模型根据以往学习的pattern,有可能在第四步预测到的是 "comply with"
4. 模型最终的生成变成了 "We should abide with"
5. 事实上,"abide with" 用法是不正确的,但是由于ground-truth "comply" 的干扰,模型处于矫枉过正的状态,生成了不通顺的语句。
「Free running」/「Student forcing」 一步错,步步错。这样会导致训练时的累积损失太大(「误差爆炸」问题,exposure bias),训练起来就很费劲。
为了兼得二者优势,规避二者劣势
提出更好的办法、更常用的办法,是老师只给适量的引导,学生也积极学习。即我们设置一个概率p,每一步,以概率p靠自己上一步的输入来预测,以概率1-p根据老师的提示来预测,这种方法称为「计划采样」[2]&