前言
论文地址:https://aclanthology.org/2020.eamt-1.5.pdf
前人工作&存在问题
先前的UNMT方法都是在高资源的语言对上评估,没有实际意义。
前人UNMT的主要框架:
- Initialization:
- 在单词级别,使用cross-lingual词嵌入初始化;
- 在句子级别,使用cross-lingual的序列训练初始化的整个encoder-decoder对模型初始化
- DAE:初始化后,BT之前,模型需要、但缺少reorder(attention层对齐)和generate(decoder生成)的能力。所以一般使用DAE。DAE损失函数的权重随着训练而减小。而目前的一些预训练框架直接对整个encoder-decoder进行预训练,缓解了这一问题。
本文贡献
本文探讨了以下问题:
- UNMT的单语数量的影响
- UNMT的语种相似度的影响
- UNMT的域相似度的影响
具体方法
使用XLM,encoder端移除了language embedding。首先进行pretrain,然后进行UNMT的训练,分为三个情景:
- 无监督机器翻译(U)
- 有监督机器翻译(S)
- 半监督机器翻译(SEMI):在有监督翻译之后,再利用BT,继续训练
具体实验
U vs S vs SEMI
如图1所示,结论如下:
- de< - >en和ru < - >en中的source和target更为相似,UNMT能训练,其它三个语言对在字母表、词形学、词序上有很大差异,UNMT差;
- SEMI使用了少量的bilingual就能超过U;
对于UNMT而言,单语语料的规格需要多大才有效?
如图2所示,结论如下:
- UNMT只需要20M左右的单语就能达到比较好的结果,更大的单语用处不大
- 因为de-en比起ru-en更为相似,所以单语的数量没有语言的相似重要
如果两端单语数量很不平衡,有什么影响?
如图3所示,实线是控制target端数量为20M,然后不断增大source端的数据量,并使用oversample来解决不平衡。得到结论如下:
- 一端单语数据的极端多不会带来好处
如果两端单语来自不同的域,有什么影响?(单语语料不像双语语料,source和target的单语语料往往属于不同的域。)
如图4所示,结论如下:
- domain mismatch影响很大
如图5所示,结论如下:
- 计算数据量很大,但来自不同的年份,依然比不过来自相同年份,数据量很小的情形,进一步说明domain mismatch影响很大
初始化重要,还是UNMT的训练重要?
如图6所示,结论如下:
- 在一个坏的初始化下(init 10K),UNMT使用再多的单语数据性能也不好;相反情况下,UNMT只需要使用1M的单语数据,就已经可以基本达到最好的结果。
定性样例(qualitative example)分析
如图7所示,主要暴露了以下问题:
- 复制问题:文章把它归结于encoder没有完成很好的跨语言建模,使得decoder认出了encoder端语言的语种,然后翻译出了相同的语种,甚至是copy过来了。理想的情况是: decoder依赖的语种信息完全来自于decoder端的language embedding或者是language specific token等信息。文中的一个改进方法是: 移除了encoder端的language embedding。当然复制问题还可能来源于:1. 差的初始化;2. DAE,因为DAE本身是让decoder去生成和encoder相同语种的句子
- 词义误识别问题:模型识别出了vier是一个数字(four),但翻译成了eight。可用subword modeling\orthographic features等方法来解决。(?)
心得总结
- 大规模单语数量不会带来很大的增益,相反,语种更加相似、域更加适应、好的预训练初始化,效果更加明显。
- 在有少量bilingual语言的情况下,优先使用SEMI。
- 接下来的研究方向:
- 探索更好的预训练初始化方式,理想情况是,模型对语种、域不可知(agnostic);
- 探索更好的UNMT训练方式:差的预训练初始化方法会使得BT出的样本具有很大的噪声,试着过滤掉差的样本