模型介绍
尽管原有的BERT模型可以在上百种语言上进行预训练,语言之间的信息并不是互通的,不同的语言模型之间没有共享知识。Facebook的XLM模型克服了信息不互通的难题,将不同语言放在一起采用新的训练目标进行训练,从而让模型能够掌握更多的跨语言信息。这种跨语言模型的一个显著优点是,对于预训练后的后续任务(比如文本分类或者翻译等任务),训练语料较为稀少的语言可以利用在其他语料上学习到的信息。
训练XLM使用两种方式:
- 无监督学习方式,仅仅依赖于各种语言的语料文本。
- 监督学习方式,使用平行语料的一个新的跨域语言模型。
通过XLM将任何句子编码到一个共享的embedding空间。之前很多工作达到这样的效果都需要大量的平行语料,也就是类似于翻译语料的东西。但是发现有些人提出的无监督机器翻译,不使用平行语料也可以获得较高的BLEU。所以XLM也借鉴了这种思想。
模型改进
XLM的三个重要组成部分:CLM、MLM和TLM。前两个使用的是单语数据monolingual data(无监督学习);后一个使用的是平行语料(parallel sentences)也就是需要通过监督的方式学习。
共享子词(subword)词汇表
所有语言通过BPE(Byte Pair Encoding)创建共享词典,这样共享了各种字符或者一些恰当的发音。学习BPE的时候,通过一定的概率在各个语言的数据集上采样。然后将采样的这些句子串联起来。每一种语言的采样概率如下:
为了减轻不同语言语料频率的不均衡给BPE带来的影响,训练样本从新的分布中进行采样。在下图中选取alpha=0.5,可以提高训练预料较少的语言出现的频率,这可以防止小语种在BPE的过程中直接被切割成单个字符。
翻译语言模型(TLM)
CLM和MLM都是无监督学习方式,但是当存在平行语料时候,使用他们并不合适。这时候就需要翻译语言模型TLM(Translation Language Modeling),TLM的引入可以提高XLM的效果。本文的TLM是MLM的一个扩展。我们将翻译语料对连接,然后在源语言和目标语言中均做随机mask。如下图:
如果预测英语中的mask,模型既可以关注周围的英文单词,也可以关注法语的翻译,这样可以使得模型将英语和法语对齐。并且在预测某个MASK英语单词时候,如果英文信息不足以预测出这个单词,法语上下文可以辅助预测。为了便于对齐,mask法语时候,我们会对其中位置进行错开。
跨语言模型(Cross-lingual Language Models)
XLM的训练如果是纯无监督方式则使用CLM、MLM。使用batch size为64,每个句子由连续的256个字符组成。每个batch的数据采样自同一种语言,采样概率公式和上面的一样,只是α=0.7。
XLM如果是有监督方式则是MLM结合TLM或者CLM结合TLM。