Unsupervised Cross-lingual Representation Learning at Scale
作者:Alexis Conneau、Kartikay Khandelwal 等(Facebook AI)
论文地址:
https://static.aminer.cn/misc/pdf/1911.02116.pdf
论文代码:
https://github.com/pytorch/fairseq
摘要
本文的XLM-R(XLM-RoBERTa)证明了使用大规模多语言预训练的模型可以显著提高跨语言迁移任务的性能。XLM-R在技术上等同于XLM+RoBERTa,在数据上使用100种语言、2.5TB文本数(CommonCrawl项目爬取的)进行训练。
战绩如下:
XLM-R在四个跨语言理解基准测试中取得了迄今为止最好的结果。这4个任务包括了跨语言的分类、序列标注和问答。
(1)在XNLI跨语言自然语言推理数据集上的平均准确率,高于多语言BERT(mBERT)13.8%,分别高出此前先进结果 Unicoder (Huang et al., 2019) 和 XLM (MLM+TLM) 4.7% 和 5%。
(2)在Facebook最近推出的[MLQA问题回答数据集](https://ai.facebook.com/blog/mlqa-evaluating-cross-lingual-extractive-question-answering/)上,XLM-R在平均F1得分和准确率上分别比mBERT高出12.3%和10.6%。XLM-R比此前最先进模型在F1上高出了8.4%。
(3)在NER数据集的平均F1得分上,XLM-R比此前最先进模型高出了2.1%。
(4)XLM-R模型在低资源数据上的表现如下:
在XNLI的Swahili 上,XLM-R在准确率上比mBERT高出11.8%
在XNLI的Urdu 上,XLM-R在准确率上比mBERT高出9.2%
此外,本文还对提升模型性能的关键因素进行了详细的实证评估,主要包括:
正向迁移和能力稀释(capacity dilution)之间的权衡
高资源语言和低资源语言在语料尺度上的权衡
最终,本文的XLM-R模型首次实现了在不牺牲每种语言性能的情况下进行多语言建模。
介绍
跨语言理解领域的早期工作已经证明多语言遮蔽语言模型(multilingual masked language models) 在跨语言理解方面的有效性,但是诸如XLM和multilingual BERT这样的模型(都在Wikipedia上预训练)在学习低资源语言的有用表征方面仍然能力有限。
本文首先在规模上对多语言模型的利弊和局限性进行了全面的分析。在实验中我们衡量了高资源和低资源语言之间的权衡以及数据抽样率和词典大小的影响。实验结果表明在固定模型参数下对语言数量的权衡:在一定程度上,更多的语言可以提高低资源语言的跨语言性能,超过这个临近点后,在单语和跨语言基准测试上的整体性能将下降。这种现象称为"多语言诅咒"(curse of multilinguality)。通过简单地增大模型,可以有效地缓解多语言诅咒。然而,我们认为,这仍然是未来跨语言理解(XLU)系统的一个重要限制。
相比于 XLM 和 mBERT,XLM-R有以下几个方面改进:
(1)在XLM和RoBERTa中使用的跨语言方法的基础上(所以,方法上就是XLM+RoBERTa,没有其他了),在新模型中增加了语种数量和训练数据集的数量,具体来说使用超过2TB的已经预处理过的CommonCrawl数据集,以自监督的方式训练跨语言表征。这包括为低资源语言生成新的未标记语料库,并将用于这些语言的训练数据量扩大2个数量级。
(2)在fine-tuning期间,基于多语言模型的能力来使用多语言的标注数据,以提升下游任务的性能。这使我们的模型能够在跨语言基准测试中获得state-of-the-art的结果,同时超过了单语言BERT模型在每种语言上的性能。
(3)调整了模型的参数,以抵消以下不利因素:使用跨语言迁移来将模型扩展到更多的语言时限制了模型理解每种语言的能力。我们的参数更改包括在训练和词汇构建过程中对低资源语言进行上采样,生成更大的共享词汇表,以及将整体模型增加到5.5亿参数量。
模型和数据
Masked Language Models:
XLM-R的模型主体还是Transformer,训练目标是多语种的MLM objective,基本和XLM一样。我们从每个语种中采样出文本,再预测出被masked掉的tokens。我们用带有 unigram 语言模型的model Sentence Piece 对原始文本数据进行 Sentence Piece 。从各语种中采样出batches的方法与XLM中相同,只是本文这里的$\alpha=0.3$。另一个与XLM不同的是,本文不使用语言嵌入。本文的词典大小是250k,训练了两个模型:$XLM-R_{Base}$ (L= 12, H = 768, A = 12, 270M params ) 和 $XLM-R$(L = 24, H = 1024, A = 16, 550M params)。更详细的模型细节可以参考原始论文的附件B。
Scaling to a hundred languages:
XLM-R的预训练是基于100种语言,Figure 1 展示了XLM-R和XLM-100相同的88种语言:
Figure 1:Wiki-100语料(用以训练XLM-100)和CC-100语料(用以训练XLM-R)的数据量对比情况。其中二者有88个共用语种,CC-100的数据是高出Wiki-100几个量级的,特别是在低资源语种上。
另外从Figure 1 也可以看出训练数据集的规模也大幅度扩增了。
评测
评测过程使用以下4个benchmarks:
(1)Cross-lingual Natural Language Inference(XNLI)
(2)Named Entity Recognition
(3)Cross-lingual Question Answering
(4)GLUE Benchmark
结果与分析
1.多语言Masked Language Models
过往的跨语言模型如mBERT和XLM都是集中分析固定预训练模型在下游任务中的性能。本文这里分析大规模多语种预训练模型的重要影响因素。
Transfer-dilutio之间的权衡和多语言诅咒:
对于一个固定大小的模型,即模型参数量固定,随着参与训练的语种数量的增加,模型在每个语种上的性能表现会下降。虽然低资源语言的性能可以通过在预训练中添加类似的高资源语言来提高,但是总体下游性能受到这种“能力稀释”(capacity dilution)的影响。正向迁移和能力稀释之间需要做一个权衡。Figure 2 中展示了语种数量和模型能力稀释之间的实验结果。
当语种数量在7~15种时,模型确实能够从多个语种中收益,即迁移能力是正向的。这种收益对于低资源语种更为显著。超过这一点,多语言的诅咒就开始了,并降低了所有语言的性能。特别地,对比从XLM-7到XLM-100的模型,XNLI整体准确性从71.8%下降到67.7%。这种趋势在更大的 CommonCrawl 语料上也是一样的。
上述的情况在模型小的时候会愈加突出。在Wikipedia Data上依次训练 730 和 100 个语种。随着语种数量的增加,我们将Transformer的隐层维度分别从768、960扩大到1152。Figure 3 可以看出扩大模型使得XLM-30 差不多与XLM-7不分伯仲,如此看来通过扩大模型似乎是可以解决多模型诅咒问题的。但是我们再来看XLM-100,即使扩大模型也难以拯救其颓势。其能力稀释更可能源于词典的稀释,在Wikipedia中我们使用的固定词典大小是150k。
High-resource/Low-resource上采样率的权衡:
跨语言模型由几个参数控制:
(1)训练集大小
(2)共享的subword 词典大小
(3)对每个语种训练集的采样率
我们这里探讨高资源语种(English 和 French)、 低资源语种(Swahili 和 Swahili)的采样率对于XLM-100(在Wikipedia上预训练)的影响。(PS:我们在构建 subword 词典上也观测到类似的趋势。)
采样率的影响结果见于 Figure 4:
可以看出,对于高资源的语种,采样率越高,结果性能越高,而低资源语种则是一定程度上采样率越低,结果性能越好。为了兼顾整体性能,最终选择采样率值为0.3。即对于XLM-R,选用的采样率也是0.3。
模型大小和词典大小的重要性:
XLM-100(在Wikipedia上预训练)使用不同的共享词典,从Figure 5 可以看出,扩增共享词典确实可以提升性能。
固定模型大小下,当词典从32k变大到256k时,XNLI的平均准确率上升了2.8%。这表明多语言模型,可以从分配较高比例参数的嵌入层中获益(词典变大,在模型大小固定的前提下,则嵌入层也变大,获得更多的参数),即使这会缩小Transformer的大小。为了简单起见和算力上的考虑,本文这里对于XLM-R统一采用250k大小的词典。
用大规模数据集进行训练的重要性:
Figure 6 展示了同一个BERT_{base}模型在CC语料上的训练结果能够全面超过基于Wikipedia的模型。
Figure 6:Wikipedia和CommonCrawl的对比:XLM-7在CC语料上训练能够取得更好的性能,特别是对于低资源语种
另外,更大规模的训练也可以提升性能,在Figure 7 可以看出增大batch size带来的性能提升。
Figure 7:大规模训练的影响,在原始数据上BPE和SPM tokenization的影响
从Figure 7中可以看出Sentence Piece model(SMP)并没有明显逊色于BPE,为简单起见,本文选用SMP进行multilingual tokenization。
2.跨语言理解的实验结果
XNLI:
Table 1 展示了在 XNLI 上进行跨语言分类的实验结果:
Table 1:跨语言分类结果。这里记录了15种XNLI语言分类的准确性和平均准确性。其中 D 列表示用于预训练的数据,模型数量记为#M,语种数量记为#lg。XLM-R的结果是5个seed的平均值。可以看出,使用多语种训练集的translate-train-all方法后,XLM-R以82%的平均准确率取得了当下的SOTA。该结果也超出此前的跨语言迁移模型。
NER:
XLM-R 和 mBERT 在CoNLL-2002和CoNLL-2003数据集上的实验结果如 Table 2 所示:
Table 2:在NER数据集CoNLL-2002 andCoNLL-2003上的实验结果(F1值为指标)
问答:
MLQA跨语言问答benchmark的实验结果如 Table 3 所示:
Table 3:在MLQA问答数据集上的结果,该数据集以F1和 EM(精准匹配)得分为指标
3.多语言 Vs 单语种
GLUE:XLM-R versus RoBERTa
Table 4 展示了 XLM-R、BERT 和 RoBERTa 在GLUE上的实验结果:
Table 4:GLUE dev 数据集的实验结果。同时将XLM-R与Bert_large、XLNet和Roberta在英文GLUE基准上进行比较
可以看出,XLM-R超出BERT_{large}1.3%,达到接近XLNet_{large}的性能。此时的XLM-R仅逊色于RoBERTa 1.3%。在未来有希望通过缓解多语言诅咒和模型能力稀释从而进一步缩减二者差距。这些结果证明使用从多个语种中学习到的单一模型依旧可以对每个语种的下游任务保持较强的性能结果。
XNLI: XLM versus BERT
多语言模型常常招致的一个批评是其性能低于同行的单语种模型。本文这里的实验结果确实令人刮目,竟然可以超越单语种BERT。具体对比结果参见 Table 5:
Table 5:多语种 Vs. 单语种模型。在7个语种上,对比了单语种模型BERT-BASE和多语种模型XLM。单语种和多语种分别选用40k和150k大小的词典。
如果单从跨语种迁移上来看的话,单语种的BERT确实超过XLM-7,具体体现在Wikipedia 和 CC数据集的平均准确率上分别超出1.6% 和 1.3%。但是如果充分利用多语种训练(translate-train-all)和多语种训练集,XLM-7是可以反超BERT。在CC数据集上,XLM-7在7种语言上的平均准确率是80%,而BERT在CC数据集上训练后只能取得77.5%的准确率。这说明,多语种模型的潜力在多语种数据集上得到开发,且在一定程度上可以克服模型能力稀释问题,从而获得更好的整体性能。
4.在低资源语种上的表现
继续看 Table 5, 可以看出在低资源语种Swahili 和 Urdu 上基于Wikipedia数据集的BERT表现与模型随机初始化差不多,而使用CC数据集预训练后可以直接提升大概10个点。这证实了我们的假设,即mBERT和XLM-100严重依赖于跨语言迁移能力,但不像XLM-R那样对低资源语言进行建模。具体地说,在XLM模型的translate-train-all设置中,对于Swahili和Urdu语种,使用CC数据集相比于使用Wikipedia数据集性能最大提升分别为7%和4.8%。
总结
本文提出了XLM-R,在2.5TB、100个语种数据集上预训练,并在多个跨语言benchmark上刷新了记录。XLM-R在跨语言分类、序列标注和问答任务上以较大优势超过mBERT和XLM,可喜!同时探讨了高资源和低资源语种之间的平衡,多语言诅咒问题,模型核心超参数的重要影响。
PS:本文并没有令人虎躯一震的技术惊喜,仅仅是XLM+RoBERTa。其他的就是超级大的数据量堆砌出来的,~~有钱真好~~,说错了,数据多,真好!