Capturing document context inside sentence-level neural machine translation models with self-traininghttps://arxiv.org/pdf/2003.05259.pdf (未开源)
句子级NMT已经接近人类水平,但是通过翻译单个句子来翻译文档会导致有歧义但语法上有效的文本。而文档级NMT受到的关注较少,且效果落后于句子级。大多数文档级方法是在几个源或目标句子上捕获文档上下文,需要在并行文档级语料库上从零开始训练特定的NMT模型。
作者提出了一种在解码时将上下文加入预训练的句子级NMT的模型,不需要在并行文档级语料库上训练。从左到右处理每个文档,每次一个句子,根据句子级NMT生成的翻译对其进行 self-train。这个过程强化了模型所做的选择,因此更有可能在文档的其他句子中做出同样的选择。
对于一篇需要翻译的文档D,由n个源句 组成。给定一个训练好的句子级NMT模型 (可以是RNN或Transformer),使用之前的翻译 和源句X得到每个目标词 的模型条件分布:
解码时使用贪婪或 beam search 得到最大化的 。
Self-training
首先将文档D中的第一个源句X1翻译成目标句Y1,然后用句子对(X1, Y1)对模型进行自训练,使给定X1、生成的Y1中每个单词的概率最大化。该自训练过程以权值衰减的方式对固定数量的steps进行梯度下降,权值衰减使权值的更新值更接近于原始值。对文档中其余的句子重复相同的更新过程。
Multi-pass self-training
由于文档是从左到右顺序处理的,为了利用整个文档的全局信息,且进一步强化模型对所有生成句所做的选择,使用多次自训练,即从左到右对文档进行多次处理,同时继续对模型进行自训练。
Oracle self-training to upper bound performance
由于生成的句子可能会含有一些错误,而自训练会强化这些错误,从而损害模型对文档中未处理的句子的性能。为了隔离不佳翻译的影响并估计性能的上限,以真实翻译为目标来评估自训练过程——oracle self-training,类似语言模型中的动态评估方法。在multi-pass self-training中不使用oracle,因为这会使它记住文档中每个句子的正确翻译并重新生成它。
实验结果
Investigating an approach for low resource language dataset creation, curation and classification: Setswana and Sepedi
学到一种数据增强方法:使用 doc2vec 相似度增强具有上下文关系的 w2v
https://arxiv.org/pdf/2003.04986.pdf