Press "Enter" to skip to content

XLM — 基于BERT的跨语言模型

注意力模型,尤其是BERT模型,已经在NLP领域分类和翻译任务上取得了极具前景的结果。Facebook AI在一篇新论文中提出了一个改良版的BERT模型XLM,在以上两个任务上均取得了SOTA结果。

 

XLM用了一个常见的预处理技术BPE(byte pair encoder字节对编码)以及BERT双语言训练机制来学习不同语言中词与词之间的关系。这个模型在跨语言分类任务(15个语言的句子蕴含任务)上比其他模型取得了更好的效果,并且显着提升了有预训练的机器翻译效果。

 

背景

 

XLM基于几个核心概念:

 

Transformers, Google 在2017年提出的一种能够同时处理输入文本并且学到词语上下文联系的注意力机制。一个 Transformer 包含两部分:一个编码器读入文本输入并且生成每个词的向量表示,一个解码器将向量表示转换成翻译结果文本。更详细的 Transformer 回顾可以看这篇文章: https://jalammar.github.io/illustrated-transformer/

 

普通的Transformer只考虑了每个单词有限的上下文(单词的前几个词),于是在2018年提出的BERT模型在此基础上更进了一步。BERT利用Transformer的编码器学习一个语言模型,通过遮住(舍弃)一些词再试着去预测这些词。这使得模型可以学习全篇内容,也就是被遮住词的前序和后续词。

 

因为在注意力模块中所有词都是同时处理的,所以模型还需要考虑额外的位置信息。模型网络通过给每个token加一个基于位置的固定值(例如正弦函数),可以成功学习到token间的联系,这一步叫位置编码。可以看这篇我们对BERT的总结: https://www.lyrn.ai/2018/11/07/explained-bert-state-of-the-art-language-model-for-nlp/

 

2018年Lample et al.提出了将Transformer 和基于短语的统计机器翻译技术(PBSMT)相结合的模型。后者给出了不同语言中短语的概率表。这篇论文中另一个重要概念是反向翻译,也就是把句子翻译成目标语言句再翻回原句。这让我们可以用单一语言作为训练集,比有监督的双语言训练集量更大也更常见。Lample et al.得出的一个结论是token的初始化嵌入对于模型最终的成功来说至关重要,尤其对反向翻译来说。他在文中用了一个简单的词嵌入方法FastText,他们认为更有效的语言模型能够进一步提升他们的模型结果。

 

XLM模型工作原理

 

这篇论文提出了两个创新点:一个是用BERT训练多语言文本分类、另一个是用BERT初始化机器翻译模型。

 

BERT进行跨语言文本分类

 

尽管BERT的训练语料超过100种语言,它的模型本身并没有针对多语言进行优化——大多数词汇没有在语言间共享,因此能学到的跨语言知识是很有限的。针对这一点,XLM模型在以下方面修正了BERT:

 

首先,XLM的模型输入用了字节对编码(BPE)而不是用字符或词语。BPE把输入按所有语言中最常见的词片段(sub-words)进行切分,以此来增加跨语言共享的词汇。这是一个常见的预处理算法,关于BPE可以看这篇总结: https://www.lyrn.ai/2019/01/06/massively-multilingual-sentence-embeddings-for-zero-shot-transfer/#appendix-a-bpe

 

其次,XLM以下面两个方式升级了BERT的模型结构:

 

 

XLM的每个训练样本包含含义相同语言不同的两条句子,而不是像BERT中一条样本仅来自同一语言。BERT的目标是预测被遮住的token。XLM模型中,我们可以对每组句子,用一个语言的上下文信息去预测另一个语言被遮住的token。因为句子对中不同的随机词语会被遮住,模型可以利用翻译信息去预测token。

 

模型也接受语言ID和不同语言token的顺序信息,也就是位置编码。这些新的元数据能帮模型学习到不同语言的token间关系。

 

 

升级版的BERT模型被称作翻译语言模型(TLM),普通BERT模型+BPE输入被称作有掩码语言模型(MLM)。

 

完整的模型同时训练了MLM和TLM,并且在两者之间进行交替训练。

 

 

上图:类似BERT的单语言模型MLM, 和跨语言模型TLM进行对比。来源:XLM

 

为了评估模型效果,这篇论文在句子蕴含(句子对关系分类)任务上测试了模型。论文使用了XNLI数据集,数据集中句子来自15个语言。模型在所有配置上都比当下着名模型,比如Artetxe et al.和BERT效果要更好。配置包括模型仅在英语数据上训练其他数据预测(Zero-Shot零样本学习),其他语言翻英语(Translate-Train),英语翻其他语言(Translate-Test)。这些结果都取得了当前SOTA结果。

 

 

在不同的训练、测试集配置上对比模型和其他模型在XNLI数据集上的准确率。每一列代表一种语言。来源:XLM

 

用MLM初始化翻译模型

 

这篇论文提出了BERT的又一贡献,更确切的说是MLM模型:MLM可以作为更好的初始化技术,用来改进Lample et al. 的翻译模型。token初始化不用FastText,而改用MLM,结果再传到翻译模型中。

 

在编码和解码阶段均用该方法进行token初始化,翻译模型(使用Transformer的模型)的翻译质量提升了7 BLEU。具体见下表。

 

 

不同初始化方法的翻译结果。CLM表示因果语言模型(Causal Language Modeling),不用掩码技术,每一个词是基于前序词来预测的。来源:XLM

 

提示:这篇论文同时显示跨语言模型对于学习一个语料匮乏的小语种是非常有用的,通过BPE算法,他们可以利用其它语言的数据,尤其是相近语言。这个结论和Artetxe et al.的结论相似。(我们的总结可以看这里)

 

计算因素

 

BERT模型在PyTorch框架下的实现,以及预训练模型可以在此处找到: https://github.com/facebookresearch/XLM

 

我们使用Volta显卡训练,语言模型64卡,翻译任务8卡,训练时间并未指定。具体的实现细节可以在论文的5.1和5.2节中找到。

 

结论

 

正如近期许多研究所示,本文也展示了语言模型和迁移学习的强大功能,特别是BERT,能够在许多NLP任务上提高性能。通过简单高效的微调,BERT的性能可以超过其他跨语言分类模型,并显着改善翻译模型。
有趣的是,本文中使用的翻译模型和用于初始化的MLM模型都基于Transformer。可以推断在将来,我们应该能够看到更多这样的组合应用,比如,将新的Transformer-XL用于初始化。

 

Be First to Comment

发表回复

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