【论文集合】机器翻译NMT中数据打分和数据选择的经典方法

根据Survey of Data-Selection Methods in Statistical Machine Translation的总结,MT中的数据选择分类图如下:

【论文集合】机器翻译NMT中数据打分和数据选择的经典方法

 

 

 

 

使用场景 数据使用的场景决定了选择什么样的数据,及该方法要解决什么问题。

Improve Quality:Domain Improvement、Unhelpful Data Reduction、Noise Reduction

Limited Resources:Training Resources、Deployment Resources、Human Labeling Resources

评估方法

特征结合

问题定义

句子打分函数

上下文无关(depend on nothing but the candidate sentences in question):语言模型、对齐模型、其他

依赖上下文(depend on the selected pool):语言模型、短语表、解码器、n元统计信息

选择算法

依据阈值过滤

贪心搜索

子模块最优化

主动学习

Batch Model Learning

  

下面是一些经典的论文的总结,供个人学习用,写的不当的地方请轻喷~

 

Dynamic Data Selection for Neural Machine Translation 2017 静态数据选择

最初源自Moore-Lewis 2010的数据选择方法——交叉熵之差CED:用in domain\general domain 源端语料分别训练语言模型,再计算候选句子的in domain和general domain交叉熵之差,越低表示离in domain越近离general越远。(其中的语言模型可以是n gram语言模型或者LSTM等等)

上面方法的source、target双语变种 Axelrod 2011:源端的CED+目标端的CED

文章中用的双语的变种,语言模型是LSTM

动态数据选择

sampling

按照上述静态数据选择的方法给训练集中的句子对打分,排序;

把上述CED分数标准化到0-1之间,生成新的分数CED‘,离in domain越近的,CED‘分数越高(1 - 最大最小归一化的结果);

再把CED‘的分数归一化为权重;

每个epoch按照权重采样,不重复采样,分数高的句子会被多次采样

gradual fine-tuning

依照fine tune的灵感,先在general 数据集G上训,再在in domain数据上微调:本文逐步减小训练集G的大小,比如每两个epoch换一次数据,选的数据是上一轮排名靠前的60%——1、2个epoch在整个G上训练;3、4epoch选择在G中静态数据分数排名靠前的60%,总量是0.6*|G|;第5、6epoch选择3、4个epoch中静态数据分数排名靠前的60%,总量是0.6*0.6*|G|。。。

 

结果是LSTM 好于n gram、gradual fine-tuning好于sampling

 

Boost neural machine translation 2017

翻译PPL高的句子结构复杂,更难翻译,NMT应该花时间关注更难的句子。句子按翻译的ppl排序。

实验策略:

boost——在original基础上加入10%高ppl的句子;

reduce——去掉20%低ppl排名的句子,即保留80%高ppl的翻译句子。依次保留整个训练集中高ppl的100%-80%-64%-100%-80%-64%-100%-...。(此方法结果最好)

bootstrap——random resampling 100%,从original中再次sampling,所以有些低ppl的或者高的会消失/重复出现

Dynamic Sentence Sampling for Efficient Training of Neural Machine Translation 2018

zhang 17(即上篇)的文章用sentence-level training cost作为衡量句子翻译质量的手段,训练损失越小代表模型把句子学的好,缺点有两个:训练损失小的句子继续训练可能还可以提升;如果训练数据不断变小,但是这些被移除句子中包含的知识可能在NMT的训练过程中逐渐被丢弃掉。

这篇文章用句子两次迭代的训练损失之差(the differences between the training costs of two iterations)作为句子翻译质量能否被提升的衡量标准。越小表示这句话的损失不太可能变化,所以这句话继续训练对NMT没有帮助:

  (上一次的训练损失 - 该次训练损失)/ 上一次的训练损失 = 该次的dif

  dif(差异度)可能是正值,也可能是负值。所以要最大最小归一化到【0,1】之间 = criterion

实验方法:

weighted sampling WS——上述criterion值转换为归一化的概率分布,按照权重子采样整个训练集的80%(不重复采样)作为下一iteration的训练集,训练目标函数也会更新为在选的的子训练集上。一个句子可能在一个子采样的过程中没有被选择,但是在下一个子采样的过程中,由于被选择句子的criterion都发生了变化,未被选择的句子的criterion不变,因此weight也会发生变化,所以该句子仍有可能被选择到。

review mechanisim RM——选择的80% top-ranked数据组成了

[公式]

 ,未被选择的20%数据组成了 

[公式]

 ,

[公式]

中的数据在训练中也就无法被选择了。而且

[公式]

会随着训练过程越来越大,因此可能导致一些信息丢失。为了避免这个问题,论文引入了一个参数 

[公式]

 ,比如为10%,则表示采样 

[公式]

 中10%的数据进行复习。损失函数中会由

[公式]

[公式]

[公式]

两部分组成。

【论文集合】机器翻译NMT中数据打分和数据选择的经典方法

(该方法效果更好)

在极大数据集的训练中还提到可以采用小部分已经训练的和未训练过的句子相似度作为采样句子的一个标准。

 

Feature Decay Algorithms for Neural Machine Translation 2018

是一种transductive data selection method ,最初用在SMT中有很好的效果,现在把它用在NMT中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfpxy.html