Press "Enter" to skip to content

Facebook AI Research的XLM模型:将BERT扩展成跨语言模型

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

近年来,预训练语言模型的出现极大地推动了自然语言处理领域的发展。相较于普通的词向量,诸如ELMo, GPT, BERT将上下文信息也编码到词向量以及文本向量中,从而收获了比普通词向量更强的表达能力,在一定程度上也减轻了在文本表示中词语歧义性、多义性所带来的问题。

 

而在今年年初,Facebook AI Research发布了他们的XLM模型,在原有的BERT模型上进行了预训练目标升级,成功地将BERT扩展成了跨语言模型,并在跨语言数据集上取得了很好的成果。

 

尽管原有的BERT模型可以在上百种语言上进行预训练,语言之间的信息并不是互通的,不同的语言模型之间没有共享知识。Facebook的XLM模型克服了信息不互通的难题,将不同语言放在一起采用新的训练目标进行训练,从而让模型能够掌握更多的跨语言信息。这种跨语言模型的一个显着优点是,对于预训练后的后续任务(比如文本分类或者翻译等任务),训练语料较为稀少的语言可以利用在其他语料上学习到的信息。

 

在数据预处理方面,Facebook使用了BPE(Byte Pair Encoding)对所有15种训练语言进行了切割。这对于在字母表上有很多重叠的语言,比如English-French和Nepali-Hindi,在alignment上有很大的提升效果。

 

为了减轻不同语言语料频率的不均衡给BPE带来的影响,训练样本从新的分布中进行采样。在下图中选取alpha=0.5,可以提高训练预料较少的语言出现的频率,这可以防止小语种在BPE的过程中直接被切割成单个字符。

 

 

在论文中,Facebook采用了三种语言模型:

 

CLM(Casual Language Modeling)

 

MLM(Masked Language Modeling)

 

TLM(Translation Language Modeling)

 

其中最有成效的XLM是MLM与TLM的结合。

 

CLM的做法是直接使用Transformer来预测下一个词,是传统的语言模型的做法。

 

– MLM的做法和BERT基本一致:对于输入的语句,按一定概率(15%)遮住一些词,在模型的末尾预测这些被遮住的词。在这里,Facebook和Google的BERT做法的差别是,他们使用了任意数量的句子拼接,并取256个词阶段,而非BERT原本使用的两个句子。类似地,为了平衡高频词低频词之间的差异,在遮住词的时候采用了与上文所述的重采样类似的方法。

 

在TLM中,输入的是两个意思相同语言不同的句子(比如“I ate an apple”和“我吃了一个苹果”),用句子分隔符拼接起来,整体作为模型的输入。然后再按照一定概率遮住一些词,再去预测这些词。MLM的训练方法,可以让模型利用其上下文信息预测被遮住的词。而TLM则是让模型不仅能利用这句话本身的上下文信息,而且同时能利用不同语言的翻译的信息,来预测被遮住的词。这样,模型就可以将跨语言信息编码到表征向量中。在XLM中,TLM和MLM交替训练,其中MLM的部分每次输入的一个batch内只包含一种语言。

 

 

除此之外,在XLM模型中,对于原来BERT中使用的Transformer也进行了改动,以更好地适用在跨语言场景下。在表示词相对句子位置的Positional Embedding中,TLM对拼接后的句子进行了位置重置,也就是接在后面的翻译句子的词下标重新从0开始计数。另外,在Positional Embedding的基础上加入了Language Embedding,用来区分不同语言的输入。

 

模型细节

 

在模型的细节方面,XLM模型采用了具有1024 hidden units, 8-head的多层(12层,机器翻译6层)Transformer以及GELU激活层,词汇表大小是95k。同时XLM模型使用了16位浮点数压缩模型空间,加快训练速度。

 

预训练数据集

 

在预训练数据集上,Facebook使用了WikiExtractor得到的Wikipedia语料作为CLM和MLM的训练预料。对于TLM,Facebook使用了与MultiUN/IIT Bombay corpus/EUBookshop/OpenSubtitles等与英语有对照数据的数据集。其中,中文、日文和泰文使用了相对应的Tokenizer进行了切词。其他语言则统一使用Moses。

 

预训练效果

 

在预训练效果上,使用平行语料(意思相同语言不同的句子对),可以降低Perplexity指数。下图中,因为Nepali和Hindi之间字母表上有很大重叠,语言关系比较近,而跟英语之间则关系不大,所以引入英语对于Nepali带来的提升没有引入Hindi带来的提升多。

 

 

论文中选择了跨语言文本分类和机器翻译作为预训练之后的下游任务。

 

跨语言文本分类

 

对于跨语言文本分类,论文采用模型的最后一层的第一个输出向量作为后续线性分类器的输入,在英语的训练预料上进行拟合,然后在所有15个语言上做测试。使用的数据集是XNLI(Cross-Lingual Natural Language Inference),其中Natural Language Inference的任务是判断两个来自相同语言的句子之间是否有Entailment, Contradict或者Natural的关系。XNLI数据集包含近40万条英语训练预料和上千条测试数据。

 

无监督机器翻译

 

对于无监督机器翻译,相比于之前的其他工作所用的预训练跨语言词向量,Facebook使用了完整的预训练编码器解码器作为后续训练的初始设定。

 

 

上图是模型在文本分类(XNLI数据集)上的表现。其中TRANSLATE-TRAIN是通过将所有的英语训练语料翻译成其他语言;TRANSLATE-TEST是将测试集翻译成英语。可以看到XLM模型相较于之前的模型有很显着的提升。

 

 

上图是模型在无监督机器翻译上的表现

 

 

上图是模型在监督机器翻译任务上的表现

 

在无监督和监督机器翻译任务上,MLM也表现出了很好的效果。

 

Facebook将从XLM中得到的跨语言词向量与之前的工作作比较,XLM的表现非常出色。

 

 

XLM模型的代码公开在 https://github.com/facebookresearch/XLM .

 

原文 Lample, Guillaume, and Alexis Conneau. “Cross-lingual Language Model Pretraining.” arXiv preprint arXiv:1901.07291(2019).

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注