学习
实践
活动
专区
工具
TVP
写文章
专栏首页mathor三种Cross-lingual模型 (XLM, XLM-R, mBART)详解

三种Cross-lingual模型 (XLM, XLM-R, mBART)详解

本文将详述三种Cross-lingual模型,按照其在Arxiv上发表论文的时间,分别是XLM(2019/1/22)XLM-R(2019/11/5)mBART(2020/1/22),有意思的是这三篇文章均出自FaceBook,他们是不是对跨语言模型有什么执念?

XLM (Cross-lingual Language Model Pretraining)

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

文章提出3个预训练任务,其中2个仅需要单语种数据集(无监督方式),另一个需要平行语料(有监督方式)

Shared sub-word vocabulary

假设有N个语种,对应的语料记为\{C_i\}_{i=1,2,...,N}C_i中的句子数量用n_i表示

作者的所做的实验中,所有的语种共用一个字典,该字典是用Byte Pair Encoding(BPE)构建的。共享的内容包括相同的字母、符号token如数字符号、专有名词。这种共享字典的方式能够显著的提升不同语种在嵌入空间的对齐效果。本文在单语料库中从随机多项式分布中采样句子进行BPE学习。为了保证语料平衡,句子的采样的概率如下:

q_i=\frac{p^\alpha_i}{\sum_{j=1}^Np^\alpha_j}\;\;\;\;\;with\;\;\;\;\;p_i=\frac{n_i}{\sum_{k=1}^Nn_k}

其中\alpha=0.5。使用这种概率函数进行抽样,可以提高训练语料较少的语言出现的频率,同时可以避免小语种在BPE的过程中直接被切割成单个字符

注:很多博客直接把这个公式往这一贴就草草了事,下面我会讲解一下这个公式

假设现在有三个语种的语料C_1,C_2,C_3,他们对应的句子数分别为n_1=100,n_2=190,n_3=10

那么

$$ p_1=\frac{100}{300}=\frac{1}{3}, \ p_1^\alpha \approx 0.57\\ p_2=\frac{190}{300}=\frac{19}{30}, \ p_2^\alpha \approx 0.79\\ p_3=\frac{10}{300}=\frac{1}{30}, \ p_3^\alpha \approx 0.18 \\ q_1=\frac{0.57}{1.54}\approx 0.37 \\ q_2 = \frac{0.79}{1.54} \approx 0.51\\ q_3 = \frac{0.18}{1.54} \approx 0.11\\ $$

可能读者看到这个概率没什么感觉,假设单纯的使用句子数的比例p进行采样,可以到看C_1被采样的概率是C_3的10倍。但是如果使用q概率进行采样,C_1被采样的概率仅是C_3的3倍多,虽然C_3被采样的概率从数值上来看仍然很小,但是相对来看,小语料被采样的概率确实是提升了

Pre-training tasks

作者提出了三种预训练任务:CLM、MLM和TLM,下面分别介绍:

CLM (Causal Language Modeling)

文中的因果语言建模 (CLM) 任务其实是一个Transformer语言模型,该模型被训练来对给定句子预测后一个单词的概率P(w_t\mid w_1,...,w_{t-1},\theta)

MLM (Masked Language Modeling)

就是你知道的BERT的MASK任务,稍微有一些不同的是,论文使用由任意数量的句子(每个句子截断256个token)组成的文本流,而不是BERT中仅两个句子组成的文本对。并且为了平衡高频词与低频词之间的差异,在遮住词的时候采用了与上文所述的重采样类似的方法

TLM (Translation Language Modeling)

CLM和MLM都是无监督的,只需要单语数据,如何设计一个针对平行语料的有监督任务呢?翻译任务就是个不错的选择。论文提出一种新的翻译语言建模方法 (TLM) 来提高跨语言训练的效果。TLM的实际上是MLM的扩展,TLM不考虑单语种的文本流, 而是将并行的翻译句对拼接起来

如上图所示,在source句子和target句子中都随机mask一些词。当要预测英语句子中被mask的词时,模型首先需要从英语句子的上下文入手,特别地,如果模型仅通过英语句子不足以推断出被mask的单词时,还能够注意到对应法语的翻译内容。这就能够引导模型将英语和法语的表征进行对齐

我们还注意到上图Position embeddings与传统PE有些不一样。具体来说,在target句子的部分,位置编码需要重置。同时,无论是这三个预训练任务中的哪一个,我们都会额外输入一个Language embeddings给模型

Cross-lingual Language Models

跨语言预训练模型由CLM与MLMMLM与TLM结合的模型组成

对于CLM与MLM的组合,文本训练模型的过程中,每个batch包含64个句子流,每个句子流由256个token组成。每次迭代,一个batch来自于同一语种的句子,句子的采样概率与sub-word vocabulary采样的概率函数设计方式一样,只不过其中的\alpha变为0.7

对于TLM和MLM的组合,训练时需要在这两个任务交替进行,并用类似的方法采样翻译的句对

Experiences & Results

Cross-lingual classification

对于跨语言文本分类,论文采用模型的最后一层第一个token的输出作为后续线性分类器的输入。首先用MLM任务在各个语言的单语语料上进行训练(也有加上额外的平行语料进行TLM训练的部分),然后再用英文训练集进行fine-tune,最后在XNLI多语种数据集上进行评估,结果如下表所示

注:XNLI的任务是判断两个来自相同语言的句子之间是否有Entailment, Contradict或Natural的关系

Unsupervised Machine Translation (UMT)

无监督机器翻译用的比较多的方法是去噪自编码器+循环翻译。具体来说,对于英译德这个任务,搭建起Encoder-Decoder模型之后,可以用英文文本加上噪声,输入Encoder,然后Decoder出一个德文伪数据,再将该德文伪数据输入Encoder,我们希望Decoder输出的是原始的无噪声英文文本,有一种AutoEncoder的感觉在里面(English->Devon->English)

在该论文中,其实就是用CLM或MLM去初始化Encoder和Decoder,下表展示了用不同初始化方法的结果

Supervised Machine Translation (SMT)

下表展示了几种不同预训练方式的结果

  • Sennrich et al.:这是之前的SOTA
  • ro -> en:这个是使用单向的数据进行fine-tune
  • ro <-> en:这个是使用双向的数据进行fine-tune
  • ro <-> en + BT:用双向的数据进行fine-tune,同时进行Back-Translation(先从A->B生成B的伪数据,然后再翻译回A)
Unsupervised cross-lingual word embeddings

这里主要是验证无监督情况下生成的多语Embedding的准确(优秀)程度,具体方法是验证各种源单词与其翻译对应的词之间的距离,结果如下表

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


XLM-R (Unsupervised Cross-lingual Representation Learning at Scale)

XLM-R全称叫做XLM-RoBERTa,为了更好的理解这个模型,请先花5分钟阅读一下RoBERTa概述这篇文章

XLM-R的改进

  1. 在XLM和RoBERTa中使用的跨语言方法的基础上(所以,本质就是XLM+RoBERTa,没有其他了),在新模型中增加了语种数量训练数据集的数量,具体来说使用超过2TB预处理过的CommonCrawl数据集,以自监督的方式训练跨语言表征
  2. 在fine-tuning期间,基于多语言模型的能力来使用多语言的标注数据,以提升下游任务的性能
  3. 调整了模型的参数,以抵消以下不利因素:使用跨语言迁移来将模型扩展到更多的语言时限制了模型理解每种语言的能力。我们的参数更改包括在训练和词汇构建过程中对低资源语言进行上采样,生成更大的共享词汇表,以及将整体模型增加到5.5亿参数量

Masked Language Models

XLM-R的模型主体还是Transformer,训练目标是多语种的MLM,基本和XLM一样。作者从每个语种的语料中采样出文本,再预测出被Mask的tokens。从各语种采样的方法与XLM中相同,只是重新设置\alpha=0.3。另一个与XLM不同的是,文本不使用Language Embeddings。本文的词典大小是250k,训练了两个模型:

  • XLM-R_{Base}(L= 12, H = 768, A = 12, 270M params)
  • XLM-R(L = 24, H = 1024, A = 16, 550M params)

Scaling to a hundred languages

XLM-R的预训练基于100种语言,下图展示了XLM-R和XLM-100相同的88种语言以及各个语料的大小

Cross-lingual Understading Results

下表展示了在XNLI上进行跨语言分类实验的结果。其中D列表示用于预训练的数据,#M列表示模型数量,#lg表示表示语种数量。可以看出XLM-R以82.4%的平均准确率取得了SOTA

Named Entity Recognition

Question Answering

XNLI: XLM versus BERT

多语言模型常常招致的一个批评是其在单语言任务上的表现往往不好。但是XLM-R的实验结果却令人刮目,竟然可以超越单语种BERT。具体对比结果见下表

注:个人感觉作者这里为了证明比单语言模型好,真是穷极手段。首先并没有用XLM-100,而是用了一个少语种的XLM-7模型。其次,没有和RoBERTa对比,而是和BERT掰手腕,道理我相信大家懂的都懂


mBART (Multilingual Denoising Pre-training for Neural Machine Translation)

mBART看名字就明白其实是multilingual版的BART,如果不了解BART,请先阅读BART详解这篇文章

Pre-train & finetune startegy

下图是这篇论文进行Pre-training和Fine-tuning的方式,其中比较有趣的是Pre-training

Pre-training

这个阶段只需要一种语言即可,Encoder的输入为Masked token,Decoder的输入为Sentences permutation,每个句子结尾都加上end token</s>,并希望这个Transformer能够顺利还原所有的Masked token以及原始句子的顺序,在Decoder输入句子的前面还添加了Language ID作为模型翻译时的Start token

Masked的做法类似BERT,Sentecen permutaion的做法类似ALBERT中的Sentence Order Prediciton (SOP)。另外,Language ID的做法类似CTRL,告诉模型接下来预测的目标语言是什么,总之就是融合了各篇Paper的优点

Fine-tuning

这个阶段就是用来finetune下游多语言任务。作者分别试验了Sentence和Document的翻译,这两个任务的差别只在于文本长短而已,当然,Document的翻译会相对难一些

Data Overview

下表表示在Pre-train阶段使用的训练集,共有25种语言,vocabulary约有250,000个tokens。为了处理样本不均衡的问题,作者使用了upsampling和downsampling(参考XLM),其它的处理方式基本上跟原始的Transformer差不多

Code

Language

Tokens/M

Size/GB

En

English

55608

300.8

Ru

Russian

23408

278.0

Vi

Vietnamese

24757

137.3

Ja

Japanese

530 (*)

69.3

De

German

10297

66.6

Ro

Romanian

10354

61.4

Fr

French

9780

56.8

Fi

Finnish

6730

54.3

Ko

Korean

5644

54.2

Es

Spanish

9374

53.3

Zh

Chinese (Sim)

259 (*)

46.9

It

Italian

4983

30.2

Nl

Dutch

5025

29.3

Ar

Arabic

2869

28.0

Tr

Turkish

2736

20.9

Hi

Hindi

1715

20.2

Cs

Czech

2498

16.3

Lt

Lithuanian

1835

13.7

Lv

Latvian

1198

8.8

Kk

Kazakh

476

6.4

Et

Estonian

843

6.1

Ne

Nepali

237

3.8

Si

Sinhala

243

3.6

Gu

Gujarati

140

1.9

My

Burmese

56

1.6

Evaluation

接下来,作者比较不同语言对于英文的finetune效果,下图表示英语与其他语言的翻译效果,Low/Medium Resource分别表示句子数量小于1M以及介于1~10M。mBART25表示作者在25中语言上进行pretrain的模型;random表示不适用pretrain模型,直接在该语言任务上进行训练。可以发现,不管是哪种翻译任务,mBART25表现都是最好的

接下来,作者在High Resource (>10M) 上进行finetune,共有6种语言,有趣的是,当资料量大于一定程度时(25M以上),单独使用自己的资料集反而表现好一些

最后,作者做了一个有趣的实验。首先finetune 12种语言翻译到英文(X轴),然后直接无差别地在各个语言上互相翻译(Y轴)。有趣的是,除了自己翻译自己表现最好之外(对角线),表现次好的语言都是同一语系的(灰色区域),这表明同一语系内的语言确实有某些共通的特征。另外还有一个有趣的地方,Czech (Cs)翻译到Romanian (Ro)的表现反而比Czech (Cs)翻译回自己表现还要好

Reference

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.wmathor.com/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Multilingual预训练的那些套路

    Multilingual是NLP中的研究热点之一,其中的一个研究方向是如何构建多语言预训练语言模型,实现不同语言的在隐空间的对齐,一个模型支持多语种的NLP任务...

    圆圆的算法笔记
  • Facebook最新语言模型XLM-R:多项任务刷新SOTA,超越单语BERT

    Facebook AI近日发布一个名为XLM-R的新模型,使用100种语言、2.5 TB文本数据进行训练,在四项跨语言理解基准测试中取得了迄今最好的结果。

    新智元
  • 论文领读|面向机器翻译的多语言预训练技术哪家强?最新进展一睹为快!

    本文作者:李上杰, 澜舟科技算法实习生,天津大学硕士一年级,研究方向为多语言机器翻译、无监督机器翻译,邮箱:sj_li@tju.edu.cn。纸上得来终觉浅,绝...

    澜舟科技
  • 覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME

    近日,来自 CMU、谷歌研究院和 DeepMind 的科学家们提出了覆盖四十种语言的大规模多语言多任务基准 XTREME,希望一举解决这个问题。

    机器之心
  • 7 papers|EMNLP 2019最佳论文;Facebook语言模型XLM-R取得SOTA结果;最优学习的85%规则

    论文 1:Specializing Word Embeddings(for Parsing)by Information Bottleneck

    机器之心
  • ICLR 2022 | 减少跨语言表示差异,字节跳动AI Lab通过流形混合增强跨语言迁移

    机器之心发布 字节跳动人工智能实验室、加利福尼亚大学圣塔芭芭拉分校 字节跳动人工智能实验室和加利福尼亚大学圣塔芭芭拉分校的研究者提出了跨语言流形混合(X-Mix...

    机器之心
  • 【源头活水】mBART:多语言翻译预训练模型

    “问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精...

    马上科普尚尚
  • EMNLP 2021 | 百度:多语言预训练模型ERNIE-M

    2021年伊始,百度发布多语言预训练模型ERNIE-M,通过对96门语言的学习,使得一个模型能同时理解96种语言,该项技术在5类典型跨语言理解任务上刷新世界最好...

    NewBeeNLP
  • 复述(paraphrasing):一种简单暴力的预训练方式

    Mike Lewis, Marjan Ghazvininejad, Gargi Ghosh, Armen Aghajanyan, Sida Wang, Luke...

    NewBeeNLP
  • 40种语言、9项推理任务,谷歌发布新的NLP基准测试Xtreme

    目前,全球存在着超过6900种语言,这是自然语言处理研究者们的巨大噩梦。因为大多数语言都是数据稀疏的,研究者找不到足够多的数据来单独训练成熟模型。

    大数据文摘
  • 自然语言处理学术速递[7.28]

    【1】 QA Dataset Explosion: A Taxonomy of NLP Resources for Question Answering an...

    公众号-arXiv每日学术速递
  • 40种语言、9项推理任务,谷歌发布新的NLP基准测试XTREME

    全世界约有6900种语言,但大多数并没有英语这种数据规模,这也导致大多数的NLP基准仅限于英文任务,这大大制约了自然语言处理的多语言发展。

    AI科技评论
  • 由浅入深详解NLP中的Adapter技术

    每天给你送来NLP技术干货! ---- ©作者 | 吴迪 单位 | UCLA 研究方向 | NLP 排版 | PaperWeekly 前言 在现代自然语言处...

    zenRRan
  • 一文读懂!NLP中的Adapter技术

    在现代自然语言处理(NLP)的应用中,使用预训练的表征进行迁移学习是很重要的一个方法。在深度学习开始被应用之后,迁移学习最早出现在使用预训练的特征向量,以及对预...

    NewBeeNLP
  • NAACL 2022 Findings | 字节提出MTG:多语言文本生成数据集

    作者丨陈怡然 论文地址:https://openreview.net/pdf?id=Heggj7GSZ5 网页地址:https://mtg-benchmark...

    AI科技评论
  • 跨越语言障碍!哈工大联合MSRA提出多任务、多模态、多语言的统一预训练模型M3P (CVPR 2021)

    在本文中,作者提出了M3P,一个多任务、多语言、多模态预训练模型 ,通过多任务预训练目标将多语言预训练和多模态预训练结合到一个统一的框架中。M3P的目标是学习通...

    CV君
  • ACL 2021中的25个Transformers模型

    读者朋友们,多多笔记更新啦。最近事情比较杂乱(花式懒),所以停更了一段时间,不过也重构和基本完成了之前构思的Transformer教程,目前也正在内测,期待更好...

    AI部落联盟
  • ACL2021:预训练模型

    How Good is Your Tokenizer? On the Monolingual Performance of Multilingual Lang...

    算法一只狗

扫码关注腾讯云开发者

领取腾讯云代金券