XLM来自于Facebook ai的论文《Cross-lingual Language Model Pretraining》。目前多数语言模型都是单语义(monolingual)模型,比如BERT、XLNET、google的T5等等。期望有一种语言模型可以实现多种语言的融合,然后在一种语言训练模型,通过XLM迁移到其他语言上。比如标注语料较多的英语,我们训练好EN-》DE的翻译模型,但是,像印地语这种比较少见的语言怎么训练它到DE的翻译呢?这种情况下通过XLM就可以实现印地语到英语的迁移,然后再翻译到DE的模型。

以上是XLM一个大致的描述。训练XLM使用两种方式:
1、无监督学习方式,仅仅依赖于各种语言的预料文本。
2、监督学习方式,使用平行语料的一个新的跨域语言模型。

我们通过XLM将任何句子编码到一个共享的embedding空间。之前很多工作达到这样的效果都需要大量的平行语料,也就是类似于翻译语料的东西。但是发现有些人提出的无监督机器翻译,不使用平行语料也可以获得较高的BLEU。所以XLM也借鉴了这种思想。

接下来介绍XLM的三个重要组成部分:
其中的两个完全无监督方式学习,其中的一个需要平行语料(parallel sentences)也就是需要通过监督的方式学习。如果无特殊说明,我们默认有N中语言 { C i } , i = 1... N {\{C_i\},i=1...N} {Ci},i=1...Nn i n_i ni代表 C i C_i Ci中句子的数量。

1、共享分词词典
所有语言通过BPE(Byte Pair Encoding)创建共享词典,这样共享了一些词或者一些恰当的发音。学习BPE的时候,通过一定的概率在各个语言的数据集上采样。然后将采样的这些句子串联起来。每一种语言的采样概率如下:

上面的 α = 0.5 \alpha=0.5 α=0.5,按照上面采样增加了低资源语言的tokens数量,避免了字典向高资源语言偏移。

2、因果语言模型(CLM)
CLM模型就是通过前面的序列预测当前词出现的概率。公式: P ( w t ∣ w 1 , . . . w t − 1 , θ ) P(w_t|w_1,...w_t-1,\theta) P(wtw1,...wt1,θ)

3、掩码语言模型(MLM)
这个任务和BERT的处理方式类似,仍然是随机掩盖句子中15%的token,80%的时间使用[MASK]掩盖,10%的时间从字典中随机挑选一个词,10%的时间保持不变。与BERT不同的是,输入不再是一个句子对,而是一个256的长句子,去除了BERT的NSP任务。

4、翻译语言模型(TLM)
CLM和MLM都是无监督学习方式,但是当存在平行语料时候,使用他们并不合适。这时候就需要翻译语言模型TLM(Translation Language Modeling),TLM的引入可以提高XLM的效果。本文的TLM是MLM的一个扩展。我们将翻译语料对连接,然后在源语言和目标语言中均做随机mask。如下图:

如上图所示,如果预测英语中的mask,模型既可以关注周围的英文单词,也可以关注法语的翻译,这样可以使得模型将英语和法语对齐。并且在预测某个MASK英语单词时候,如果英文信息不足以预测出这个单词,法语上下文可以辅助预测。为了便于对齐,mask法语时候,我们会对其中位置进行错开。

5、跨域语言模型(XLM)
XLM的训练如果是纯无监督方式则,使用CLM、MLM。使用batch size为64,每个句子由连续的256个字符组成。每个batch的数据采样自同一种语言,采样概率公式和1中的类似,只是 α = 0.7 \alpha=0.7 α=0.7
XLM使用有监督方式则是MLM结合TLM或者CLM结合TLM。

以上是XLM中使用到的关键技术。
Facebook的最新论文《Unsupervised Cross-lingual Representation Learning at Scale》中使用RoBERTa,其中相对于本文的改进就是MLM那块,一个是使用了动态masking技术。把预训练的数据复制10份,每一份都随机选择15%的Tokens进行Masking,也就是说,同样的一句话有10种不同的mask方式。
另一个是每次输入连续的多个句子,直到最大长度512。
还有就是batch size增加到了8k。
使用更大容量的多语言文本数据集CommonCrawl data。训练时间更久。在各种迁移任务上又获得了state-of-art的效果。

接下来看看XLM怎么应用:
1、跨语言分类
首先看在多语言分类上的表现,这里使用数据集XNLI,它里面有15种不同的语言,包括英语、法语、西班牙语、德语、希腊语、保加利亚语、俄语、土耳其语、阿拉伯语、越南语、泰语、中文、印地语、斯瓦希里语和乌尔都语。数据集中的部分示例如下:

这里的fine-tuning与bert的调优类似。取预训练模型最后一层的第一个隐状态送入线性分类器。我们首先利用XLM在英语NLI训练数据集上进行调优,然后我们在其他语言上测试。测试结果如下:

这个表显示了两种类型的结果:无监督地利用单语义语料和利用平行语料的有监督MLM结合TLM。做了两种baseline:TRANSLATE-TRAIN这一个是英语NLI训练数据集翻译成每种NLI,TRANSLATE-TEST是每个待测试的数据集翻译成英文。这里我们和mBert(multilingual BERT)做对比。
最后一组是衡量跨语言迁移的效果,这里以Conneau的模型作为baseline。可以看到XLM均获得比较高的提升。

2、无监督机器翻译
无监督机器翻译做了三组:
英语-》法语;
英语-〉德语;
英语-》罗马尼亚语。
训练方法跟Lample提出方法一样。与仅查找词向量表不同,我们使用跨语言模型初始化整个模型。对于编码器和解码器,我们考虑使用不同方式的初始化方法:CLM预训练,MLM预训练,随机初始化。这样的话就有九种对比实验。以使用跨语言词向量(EMB)作为baseline。

3、监督学习翻译
监督学习对比了罗马尼亚语和英语的翻译效果。
分为三组:
罗马尼亚语翻译成英文
罗马尼亚语与英文互翻
使用反向翻译技术的罗马尼亚语与英语翻译,模型在训练语言模型时候使用单语语料。

4、低资源语言模型
这里以尼泊尔语为例,这种语言在维基数据上只有100K句话,大约是海地语的6倍。Nepali和Hindi之间字母表上有很大重叠,语言关系比较近,而跟英语之间则关系不大,所以引入英语对于Nepali带来的提升没有引入Hindi带来的提升多。

5、无监督跨域词嵌入

这里对比了三种方法:MUSE(facebook在2017年提出的一种语言模型)、Concat、XLM。三种评估方法:词翻译之间的cosine相似度、L2距离。还有一种新的评估跨语言cosine相似度方法SemEval’17。实验发现XLM表现依然非常好。

项目地址:https://github.com/facebookresearch/XLM

跨域预训练语言模型(XLM)相关推荐

  1. 《预训练周刊》第33期:艾伦AI研究所等 | 预训练语言模型的高效分层域适应

    No.33 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了9篇预训练相关的论文,涉及词汇迁移.常识问答.多模态训练.层次训练.对比学习.图像分割.图文模型.蛋白 ...

  2. 《预训练周刊》第7期:傅立叶图像变换器解析、阿里达摩院发布最大中文预训练语言模型PLUG

    No.07 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 ‍‍‍超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第7期 ...

  3. 【赠书】如何掌握好自然语言处理中的预训练语言模型?你需要读这本书

    ‍‍ 预训练语言模型属于人工智能领域中自然语言处理领域的一个细分,是自然语言处理领域的重要突破,得到了越来越广泛的关注,相关研究者和从业人员在实际应用的过程中,亟需一本理论翔实.代码细节充分的参考书. ...

  4. 预训练语言模型fine-tuning近期进展概述

    近年来,迁移学习改变了自然语言处理领域的范式,对预训练语言模型(PLM)进行微调(fine-tuning)已经成为了新的范式.本文主要梳理了近期的预训练语言模型做fine-tuning的进展. ‍‍‍ ...

  5. TiBERT:藏语预训练语言模型——中文翻译

    TiBERT--藏语预训练语言模型 摘要 ​ 预训练语言模型在大规模无标签文本上进行训练,可以在许多不同的下游任务中获得最先进的结果.然而,目前的预训练语言模型主要集中在汉语和英语领域.对于藏语这样的 ...

  6. 面向神经代码智能(NCI,Neural Code Intelligence)的预训练语言模型综述

    面向神经代码智能的预训练语言模型综述 reference: https://arxiv.org/pdf/2212.10079v1.pdf Abstract ​ 随着现代软件的复杂性不断升级,软件工程已 ...

  7. 机器推理文本+视觉,跨模态预训练新进展

    作者 | 李根.段楠.周明 来源 | 微软研究院AI头条(ID:MSRAsia) [导读]机器推理要求利用已有的知识和推断技术对未见过的输入信息作出判断,在自然语言处理领域中非常重要.本文将介绍微软亚 ...

  8. 西湖大学蓝振忠:预训练语言模型的前沿发展趋势

    蓝振忠,西湖大学助理教授 报告 | 蓝振忠 撰文 | 沈磊贤 我的报告主题为<预训练语言模型的前沿发展趋势>,主要从以下三个方面展开: ‍1.为什么全网络预训练模型如此重要? 2.为什么语 ...

  9. 《预训练周刊》第13期:CPM-2:大规模经济高效的预训练语言模型、变换器作为编程语言...

    No.13 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第13期&l ...

最新文章

  1. 做好职业规划:做自己的船长
  2. Struts源码研究 - Bean-Message标签篇
  3. 软件调试学习笔记(七)—— 单步步入单步步过
  4. python numpy np.convolve()函数(返回两个一维序列的离散线性卷积)
  5. 计算机类高职院校课题,高职院校公共计算机类课程体系构建的教改研究
  6. fhq_treap || BZOJ 3223: Tyvj 1729 文艺平衡树 || Luogu P3391 【模板】文艺平衡树(Splay)...
  7. 服务器Ubuntu Import Error:cannot import name main
  8. HDU 3564 Another LIS
  9. java系列4:数组初始化(省略格式)
  10. 年会季来临,年会会场管理一招搞定!
  11. appium文件夹下无.bin文件_手把手教你Win10应用商店文件夹无权限访问怎么处理
  12. 安装Linux系统后无法启动win,安装Win10 CentOS7双系统后无法启动Win10系统怎么办
  13. 解决 No utmpx entry. You must exec login from the lowest level shell.
  14. 马哥2019python全套视频-马哥Python60集全套视频网盘链接免费分享
  15. 撤销excel工作表保护
  16. mysql登录框万能密码_网站登录万能密码
  17. 警惕|这类人千万不要转行学IT
  18. 【打开CMD的方法】
  19. Word UVA - 517 状态压缩 暴力搜索
  20. NAS实现家用服务器

热门文章

  1. 汉字-字母-字节-位之间的转换
  2. 前端学习当中的一些js案例
  3. .NETCore MVC上传图片
  4. JAVA 两个变量值的交换
  5. 企业里只有8种人,谁是有用的?
  6. Java 获取当前时间并且格式化
  7. linux没有可用的缓冲区空间,linux – 连接时“没有可用的缓冲区空间”
  8. 为什么嵌入html中的php代码浏览器打的时侯会被注释掉
  9. Python 命名规则
  10. python字典输出_Python 字典的输出和排序