XLM: 跨语言的Bert

微信扫一扫,分享到朋友圈

XLM: 跨语言的Bert

最近要开始使用Transformer去做一些事情了,特地把与此相关的知识点记录下来,构建相关的、完整的知识结构体系,

以下是要写的文章,本文是这个系列的第十四篇:

动机

Bert在预训练语言模型上被广泛应用,但是现在主要的研究都集中在英文上,在跨语言的场景下,Bert的训练能不能带来提升呢?答案几乎是肯定的,就看怎么做了。

论文[1]提出了两种方法来训练跨语言的语言模型:

  • 无监督学习,仅依赖于单语言数据。

  • 有监督学习,依赖于双语平行语料。

共享sub-word词表

不管是有监督还是无监督的方法,都需要让多语言共享一个词表,如果是词语直接混合的话,那么随着语言数目的增多,词表的增长会很大。不过好在Bert模型的词表本身就是sub-word的,通过Byte Pair Encoding(BPE)方法进行学习可以得到一个较为合适且合理的词表。

BPE需要迭代多次获得最后的词表结果。所以会有两个缺点:

  • 如果语料过大,会导致BPE的运行较为耗时。

  • 稀有语言往往语料较少,可能导致BPE最后的结果中无法有足够的该语言的sub-word。

因此,采用了一种采样的方式来生成一个子数据集,然后在这个子数据集上去运行BPE算法。采样的概率公式如下,p是每种语言在总语料中的概率,q则是采样概率,从公式中可以看出,q是p经过指数归一化之后的结果,一般情况下,会将alpha设为0.5。

alpha越低,越倾向于出现频次较低的语言。

训练语言模型的目标

论文中使用的训练语言模型的目标有三种:

  • CLM, Casual Language Modeling。自回归式的,即GPT式的学习方式,使用Transformer的Decoder部分。

  • MLM, Masked Language Modeling。Bert式的学习方式,把其中15%的token遮挡住,作为预测目标。区别就是Bert中因为有Next Sentence Prediction,所以是两个句子拼起来。而在论文[1]中使用的则是连续的一整个句子,按照长度256截断。

  • TLM, Translated Language Modeling。和MLM类似,只不过输入是两个语言的句子拼接起来。另外,position embedding要重置,即目标语言和源语言的位置embedding应该都是从头开始。

MLM和TLM的输入输出如下图:

在训练的时候,依然会使用类似于学习词表时的采样方法,只不过alpha设为0.7。

模型预训练

首先,模型在一个预先处理好的Wiki数据上进行了预训练,使用的设置包括:

  • MLM, 在单语言训练数据

  • MLM + TLM,除了单语言训练数据外,还有平行语料来训练TLM。

实验效果

XNLI分类实验

在XNLI数据集上进行了实验,XNLI是十五个语言的文本分类数据集。预训练好的模型在XNLI的英文语料上进行fine-tune,然后在15个语言上进行评测。为了和之前的论文可以比较,还做了两个baseline:

  • TRANSLATE-TRAIN: 将XNLI中的英文语料翻译到XNLI上某个的语言,然后在翻译后的语料上进行微调和测试。

  • TRANSLATE-TEST: 仍然将模型在英文上进行问题,然后将XNLI的某个语言翻译到英文,然后再测试。

可以看到,MLM + TLM的方式会比MLM要好很多,另外,在翻译后的语言上进行微调还可以达到更好的效果。

无监督机器翻译

用预训练好的模型来初始化翻译模型,可以达到更好的效果。EMB是只用预训练好的embedding来初始化翻译模型的embedding。另外,翻译模型的Encoder-Decoder都可以使用XLM来初始化,这样就有了九种组合设计,即Encoder和Decoder可以分别使用随机初始化,CLM预训练、MLM预训练三种方式初始化。

有监督机器翻译

类似于无监督的实验,Encoder和Decoder都使用MLM预训练的模型来做初始化。

Low-Resource语言模型

XLM还有助于语料较少的语言上的语言模型构建,如下图所示,用Nepali + English + Hindi的语料训练得到的语言模型比Nepali自己得到的要好很多。

总结与思考

从上面的实验可知,XLM可以在三个方面带来提升:

  • 跨语言文本分类问题上所使用的sentence-encoder的更好的初始化方法。

  • 机器翻译问题的更好的初始化方法

  • 低资源语言上构建语言模型的更好的方法。

另外,从实验上看,对于机器翻译问题,模型的初始化是非常重要的一个方面。

参考

  • [1]. Lample, Guillaume, and Alexis Conneau. “Cross-lingual language model pretraining.” arXiv preprint arXiv:1901.07291 (2019).

欢迎加入预训练模型交流群

进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注 预训练模型

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

阅读至此了,分享、点赞、在看三选一吧:pray:

微信扫一扫,分享到朋友圈

XLM: 跨语言的Bert

Android隐私API合规策略及检测方法

上一篇

日本整治网曝!日本网暴施暴者个人信息可公开

下一篇

你也可能喜欢

XLM: 跨语言的Bert

长按储存图像,分享给朋友