论文笔记:Towards Zero Unknown Word in Neural Machine Translation
摘要:
NMT由于考虑到计算的复杂度,因此都使用一个受限词表,这样会导致很多单词成了词表外的OOV词,而这种OOV词在翻译时很难处理并且打破了句子结构,增加了语句的歧义性,为了解决这个问题,提出了一种新的替换-翻译-恢复的方法。
1).在替换阶段,集外词由单语数据中学到的相似的集内词替换。
2).在翻译和恢复阶段,将会使用替换集外词后的双语语料模型进行翻译。
3).最后替换单词的翻译结果将会被替换前的单词代替。
1.introduction
大多数NMT将源端和目标端词典限制在30k到80k的高频词,将所有的rare word转换为UNK,一个很明显的问题是:
1).如果源端词是OOV或者它的翻译的词是OOV,这个模型在测试阶段很难为这个词生成合适的翻译结果。
2).让rare words变为毫无意义的unk将会增加句子的歧义,这就会使一部分结构相同部分单词不同但都是OOV的句子出现一样的翻译结果。
举例:
为了解决这个问题,我们提出了一种新颖的基于相似度替换rare word的方法,
具体做法:
1).在训练阶段,首先引出由双语语料产生的词对齐,每个无论是源端还是目标端包含rare word的词对齐对儿将会被具有相似意义的in-vocabulary words代替(这个相似模型是从一个很大的单语语料中学到的)。
2).然后我们使用替换了OOV词的双语语料来训练NMT模型
3).在测试阶段,输入句子中的rare word会被具有相似意义的in-vocabulary word代替,并且后后处理阶段,翻译中的单词将会被恢复成之前的OOV单词。
2.NMT以及未登录词的影响
2.1 NMT
根据上式中Z的计算,
我们需要遍历目标端的每一个in-vocabulary words来计算每一个non-linear transformation,再把它们加和,因此计算的复杂度将会随着目标端词典的大小成比例增长。所以鉴于训练复杂度问题,必须控制词典大小,所以我们也必须通过别的方式解决未登录词问题。
2.2 未登录词的影响
1).NMT不能学习到rare words的翻译,因为所有的rarewords都被代替成了unk。
2).rare words 的存在增加了句子的歧义性,因此也为其他剩余的in-vocabulary的单词的翻译增加了难度。
3.用相似词代替未登录词
训练阶段:
1).在训练阶段,我们首先从单语语料中学习到相似性模型,它被用来评估单词之间的相似性。
2).其次,我们需要从双语语料中为句子学习单词级别的对齐,同时,我们可以从双语对齐语料中获得词汇翻译表。我们在实验中为每个单词只保留了最高概率的翻译结果,这样,有rare-words的对齐词对将会被它们的相似词代替。
3).最后,我们通过最新的双语语料学习NMT模型。
测试阶段,
1)、存在rare words的测试句子首先会被相似的in-vocabulary代替。
2)、替换后的句子将会从训练好的NMT模型中得到翻译结果。
3)、最后,通过使用词汇翻译模型,那些rare words的翻译将会被替换回,从而获得最终的翻译结果。
3.1 替换词的情况
文章中只替换one to one mapping以及rare words对齐到null的情况。
包括:
1)unk to unk:源端和目标端单词都为unk,这时对源端和目标端都要进行相似词替换
2)unk to common:只有源端单词为unk,只对源端单词利用相似词替换,目标端保持不变
3)common to common:源端和目标端单词都是in-vocabulary的单词,此时不做替换
4)common to unk:只有目标端单词为unk,此时只对目标端做替换
5)unk to null或者null to unk:源端和目标端单词并没有和任何单词对齐,此时我们将未登录词直接从句子中移除。
3.2 相似性模型
如上所述,给定一个rare words,我们通过计算这个单词和其他近义词之间的余弦相似度找到最相似的词来对它进行替换。
然而因为word vectors和词汇翻译表都是从数据中学到的,这种替换方式将会对原始的翻译对有一些不恰当的替换,
比如:中国红十字会为新疆灾区募集善款。 和“善款”最相似的单词是“筹募”,然而如果把它用“筹募”代替,“筹募”和它前面的“募集”又是近义词,这样替换后替换后的句子就不和语法了。
另外:
未登录词“discord”,由lexical translation model给出的近义词是“divorce”,这就导致了错误的翻译。
为了解决上述问题,我们提出通过相似性模型提供更多的候选词,并从中这些候选词中选择一个符合上下文的最相似词。
替换单词位置分别往前或往后看两个单词,照顾到上下文来获得分数,分数高的,就是符合上下文的相似替换词。用这个方法找到最合适的替换词的步骤如下:
1).首先,找到源端rare word的topN相似词。
2).其次,将每个源端候选词和他的翻译加入候选列表中。
3).最后,用双向语言模型为这些候选单词排名,选出排名最高的来替换原始的翻译词对。
另外:
作为一种重新排名候选词对的候选方法,我们也可以联合考虑双语词对的相似性。
通过这种计算方式,只有和原始词对的源端和目标端都相似的翻译词对才能被选择出来作为候选词对。
3.3 恢复rare words的翻译
为了减少对齐错误带来的影响,我们基于词汇翻译表添加了一个如下限制条件:
当一个目标单词ej和一个被替换后的源端单词ci对齐的时候,这个翻译对将会在translation table中查找到,我们将会把ej用原始的源端单词代替,否则,ej将会被在输出端保留。
作者在中英翻译对任务上做了实验,bleu值有了很大的提升。
目前还存在两种情况的未登录词暂未被解决:
第一种是复杂对齐情况下的未登录词问题,
“文号”这类单词,应该基于短语替换而不是基于词语,然而怎么找到短语的候选短语仍然是一个问题。
想法:分词,分成词和短语,针对词和短语分别采用两种替换方式?
另一种 没处理好的未登录词是和相似度模型相关的,因为速度和效率的考虑,在单语语料中出现次数低于5次的单词我们也没有为它训练词向量,因此在单语语料中没出现或者出现次数很小的单词,我们并不能为它找到相似词。但是根据调查,这些rare words属于一些命名实体,我们可以根据这些实体的type labels而不是相似词来替换它们。