中科院计算所副研究员冯洋:神经机器翻译的训练改进和解码提速

将门创投
关注

2. 可导的序列级目标

接下来介绍如果解决词级匹配的对于好一点的匹配和差的匹配一视同仁的问题。

这个是我们在EMNLP 2018上所做的工作。通过使用可导的序列级目标来解决词级匹配的问题。

首先介绍一下传统的序列级损失函数。传统的序列级损失函数基本上都是基于N-gram正确率的损失函数,比如,BLEU,GLEU等等。计算方法为,命中n-gram的个数/总共的n-gram的个数(candidate),其中n-gram的个数为其每个词语出现频次的乘积。

直接使用BLEU不可到的原因是因为操作中有argmax,为了使其可导,我们使用token的预测概率,而非使用argmax。这个方法和直接用BLEU作为Score,然后reinforce算法直接训练对比有啥优势?由于reinforce算法的方差比较大,所以在训练的时候是很难收敛的。而使用传统的梯度下降的方法,训练过程就会平稳的多。

这里是3-gram的例子,其中output是概率最高的词,3-gram概率的是由独立Token的输出概率相乘得到结果,然后求和会得到The total probabilistic count of 3-grams。将匹配上的3-gram的概率拿出来求和作为分子,Total probabilistic count作为分母,计算得到 Precision of 3-grams。这就是我们的loss。

这个例子用来展示整个的训练过程,这里需要注意的一点就是,和传统的teacher forcing方式不同,这里当前步输入的为上一步预测的结果(贪心搜索得到的结果),而不是ground truth的值。剩下的就是按照上页slides介绍的来计算loss。对于loss采用传统的梯度下降算法即可。下面贴的是在数据集上的结果。

从结果中可以看出,2-gram比4-gram的效果要好,这里我们给出的解释是,过多的使用自己生成的去计算的话,会存在一定程度上的错误累积。

在训练的时候,也是可以通过teacher forcing的方式来训练的,但是从图中可以看出,teacherforcing的方式收敛的比较快,但是效果不如greedy search的方式好。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存