论文笔记:Bridging the Gap between Training and Inference for Neural Machine Translation

Motivation

1.训练过程中基于ground truth进行预测,但推理过程中,整个句子都由模型生成,predicted words被fed到模型,可能会造成错误积累。
2.过度纠正问题。

Method

oracle word: 预测词中的ground truth(要自己选出来)
y j − 1 o r a c l e 与 y j − 1 ∗ y^{oracle}_{j-1}与y^*_{j-1} yj1oracleyj1应该要相似或者是同义词。

训练过程中,同时将oracle word和ground truth作为上下文feed到Decoder。

===>如何找到oracle word?

方法一:词级别的贪心搜索

找加了Gumble Noise之后的概率最高。

方法二:句级别的oracle

利用bleu作为度量,采用一个beam search得到前K好的句子,然后对于 j j j步,选择Oracle Sentence第j-1个词作为oracle word,问题:如何确保Oracle Sentence和reference的句子长度一致?

解决方法:
Force Decoding:
(1)还没到 ∣ y ∗ ∣ |y^*| y就有 < E O S > <EOS>出现在best时,选次好的。
(2)已经到 ∣ y ∗ ∣ |y^*| y了,直接加 < E O S > <EOS>

感觉比较暴力,那这个方法得到的oracle word和对应位置的ground truth一定是对应的吗?能不能利用attention机制的思想,全部计算出来后,算attention值来得到oracle word?

你可能感兴趣的:(论文笔记)