HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

基于深度迁移学习的多语种 NLP 技术原理和实践

  • 2020-07-01
  • 本文字数:6220 字

    阅读完需:约 20 分钟

基于深度迁移学习的多语种NLP技术原理和实践

编者按

百分点是国内最早布局国际市场、并成功探索出一条海外之路的数据智能技术企业,目前百分点已服务海外多个国家,向亚洲、非洲、拉美等多个国家和地区提供国家级数据智能解决方案,帮助当地政府实现数字化和智能化转型,对当地产生深远影响。全球存在着几千种语言,这是自然语言处理研究者们的巨大噩梦,因为大多数语言都是数据稀疏的,研究者找不到足够多的数据来单独训练成熟模型。不同于国内认知智能产品以中文为主,百分点为海外国家提供服务就必须解决多语种 NLP 的难题。本文中我们将会详细介绍目前多语种 NLP 常用的工具、前沿的算法以及百分点在实际业务中的实验结果等。


目录

1. Polyglot 介绍

2. 基于 BERT 的方法

  • Transformer

  • MLM

  • NSP

  • 3. Multilingual BERT

  • 4. XLM

  • 5. XLMR

  • 6. 百分点在实际业务数据上的实验结果

  • 主题分类任务上效果

  • 情感分类任务上的效果

  • NER 任务上的效果

  • 7. 内容总结


全球存在着几千种语言,这就对 NLP 研究者带来了巨大的难题,因为在一个语种上训练的模型往往在另外一个语种上完全无效,而且目前的 NLP 研究以英语为主,很多其他语种上面临着标注语料严重不足的困境。在跨语种 NLP 研究方面,业界已经做了不少研究,比较有代表性的有 polyglot、以及近年来比较火的基于深度迁移学习的 Multilingual BERT、XLM、XLMR 等。

一、Polyglot 介绍

Polyglot 最早是由 AboSamoor 在 2015 年 3 月 16 日在 GitHub 上开源的项目,支持众多语种的分词、实体识别、词性标注、情感分析等任务。


以 NER 任务为例,Polyglot 在实现某个语种的 NER 任务时,其实现方式大致为:首先基于该语种的 Wikipedia 数据训练该语种的分布式词向量;然后根据 Wikipedia 链接结构和 Freebase 属性自动生成 NER 的标注数据;最后把 NER 当做一个 word 级别的分类任务,通过一个浅层的神经网络进行学习。


Polyglot 虽然能实现多语种的多个 NLP 任务,但是在实际应用中的效果并不理想,原因可能有以下几个方面:


a. Polyglot 是通过对多个单语种的数据分别进行对应任务的学习,并不支持跨语种的 NLP 任务;


b. Polyglot 是通过 Wikipedia 链接结构和 Freebase 属性来生成一些 NLP 任务的标注数据,可能存在生成的标注数据质量不高的问题;


c. Polyglot 在一些 NLP 任务中使用的模型是浅层的神经网络,有进一步的提升空间。

二、基于 BERT 的方法

BERT 抛弃了传统的 LSTM,采用特征抽取能力更强的 Transformer 作为编码器,并通过 MLM(Masked Language Model, 遮掩语言模型)和 NSP(Next-Sentence Predict)两个预训练任务,在海量数据上进行学习,相较于普通的语言模型,能够学习到更好的文本表示。BERT 采用 pre-train+fine-tuning 的方式,对于一个具体 NLP 任务,只需对 BERT 预训练阶段学习到的文本表示进行 fine-tuning 就能达 state-of-the-art 的效果。

2.1 Transformer

Transformer 模型是 2018 年 5 月提出的一种新的架构,可以替代传统 RNN 和 CNN,用来实现机器翻译。无论是 RNN 还是 CNN,在处理 NLP 任务时都有缺陷。CNN 是其先天的卷积操作不太适合处理序列化的文本,RNN 是不支持并行化计算,很容易超出内存限制。下图是 transformer 模型的结构,分成左边 encoder 和右边的 decoder,相较于常见的基于 RNN+attention 的 encoder-decoder 之间的 attention,还多出 encoder 和 decoder 内部的 self-attention。每个 attention 都有 multi-head 特征,multi-head attention 将一个词的 vector 切分成 h 个维度,可以从不同的维度学到不同的特征,相较于全体空间放到一起更加合理。最后,通过 position encoding 加入没考虑过的位置信息。



图 1.transformer 结构


BERT 中使用 transformer 的 encoder 部分作为编码器,base 版和 large 版分别使用了 12 层和 24 层的 transformer encoder。



图 2.BERT 结构

2.2 MLM

在 BERT 中,提出了一种叫做 MLM 的真正的双向语言模型。不像传统语言模型那样给定已经出现过的词,去预测下一个词,只能学习单向特征,MLM 是直接把整个句子的一部分词(随机选择)遮掩住(masked),然后让模型利用这些被遮住的词的上下文信息去预测这些被遮住的词。遮掩方法为:有 80%的概率用“[mask]”标记来替换,有 10%的概率用随机采样的一个单词来替换,有 10%的概率不做替换。

2.3 NSP

BERT 另外一个创新是在双向语言模型的基础上增加了一个句子级别的连续性预测任务。这个任务的目标是预测两个句子是否是连续的文本,在训练的时候,输入模型的第二个片段会以 50%的概率从全部文本中随机选取,剩下 50%的概率选取第一个片段的后续的文本。考虑到很多 NLP 任务是句子关系判断任务,单词预测粒度的训练到不了句子关系这个层级,增加这个任务有助于下游句子关系判断任务。

三、Multilingual BERT

Multilingual BERT 即多语言版本的 BERT,其训练数据选择的语言是维基百科数量最多的前 100 种语言。每种语言(不包括用户和 talk 页面)的整个 Wikipedia 转储都用作每种语言的训练数据。但是不同语言的数据量大小变化很大,经过上千个 epoch 的迭代后模型可能会在低资源语种上出现过拟合。为了解决这个问题,采取在创建预训练数据时对数据进行了指数平滑加权的方式,对高资源语言(如英语)将进行欠采样,而低资源语言(如冰岛语)进行过采样。


Multilingual BERT 采取 wordpiece 的分词方式,共形成了 110k 的多语种词汇表,不同语种的词语数量同样采取了类似于训练数据的采样方式。对于中文、日文这样的字符之间没有空格的数据,采取在字符之间添加空格的方式之后进行 wordpiece 分词。


在 XNLI 数据集(MultiNLI 的一个版本,在该版本中,开发集和测试集由翻译人员翻译成 15 种语言,而训练集的翻译由机器翻译进行)上 Multilingual BERT 达到了 SOTA 的效果。



图 3.Multilingual BERT 在 XNLI 上的效果


上面实验结果的前两行是来自 XNLI 论文的基线,后面四行是使用 Multilingual BERT 得到的结果。mBERT-Translate Train 是指将训练集从英语翻译成其它语种,所以训练和测试都是用其它语种上进行的。mBERT-Translate Test 是指 XNLI 测试集从其它语种翻译成英语,所以训练和测试都是用英语进行的。Zero Shot 是指对 mBERT 通过英语数据集进行微调,然后在其它语种的数据集中进行测试,整个过程中不涉及到翻译。

四、XLM

XLM 是 Facebook 提出的基于 BERT 进行优化的跨语言模型。尽管 Multilingual BERT 在超过 100 种语言上进行预训练,但它的模型本身并没有针对多语种进行过多优化,大多数词汇没有在不同语种间共享,因此能学到的跨语种知识比较有限。XLM 在以下几点对 Multilingual BERT 进行了优化:


a. XLM 的每个训练样本包含了来源于不同语种但意思相同的两个句子,而 BERT 中一条样本仅来自同一语言。BERT 的目标是预测被 masked 的 token,而 XLM 模型中可以用一个语言的上下文信息去预测另一个语言被 masked 的 token。


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


XLM 中这种升级版的 MLM 模型被称作 TLM(Translation Language Model, 翻译语言模型)。XLM 在预训练时同时训练了 MLM 和 TLM,并且在两者之间进行交替训练,这种训练方式能够更好的学习到不同语种的 token 之间的关联关系。在跨语种分类任务(XNLI)上 XLM 比其他模型取得了更好的效果,并且显著提升了有监督和无监督的机器翻译效果。

五、XLMR

XLMR(XLM-RoBERTa)同是 Facebook 的研究成果,它融合了更多的语种更大的数据量(包括缺乏标签的的低资源语言和未标记的数据集),改进了以前的多语言方法 Multilingual BERT,进一步提升了跨语言理解的性能。同 BERT 一样,XLMR 使用 transformer 作为编码器,预训练任务为 MLM。XLMR 主要的优化点有三个:


a. 在 XLM 和 RoBERTa 中使用的跨语言方法的基础上,增加了语言数量和训练集的规模,用超过 2TB 的已经过处理的 CommonCrawl 数据以自我监督的方式训练跨语言表示。这包括为低资源语言生成新的未标记语料库,并将用于这些语言的训练数据量扩大两个数量级。下图是用于 XLM 的 Wiki 语料库和用于 XLMR 的 CommonCrawl 语料库中出现的 88 种语言的数据量,可以看到 CommonCrawl 数据量更大,尤其是对于低资源语种。



图 4.XLMR 和 XLM 的训练数据对比


b. 在 fine-tuning 阶段,利用多语言模型的能力来使用多种语言的标记数据,以改进下游任务的性能。使得模型能够在跨语言基准测试中获得 state-of-the-art 的结果。


c. 使用跨语言迁移来将模型扩展到更多的语言时限制了模型理解每种语言的能力,XLMR 调整了模型的参数以抵消这种缺陷。XLMR 的参数更改包括在训练和词汇构建过程中对低资源语言进行上采样,生成更大的共享词汇表,以及将整体模型容量增加到 5.5 亿参数。


XLMR 在多个跨语言理解基准测试中取得了 SOTA 的效果,相较于 Multilingual BERT,在 XNLI 数据集上的平均准确率提高了 13.8%,在 MLQA 数据集上的平均 F1 得分提高了 12.3%,在 NER 数据集上的平均 F1 得分提高了 2.1%。XLMR 在低资源语种上的提升更为明显,相对于 XLM,在 XNLI 数据集上,斯瓦希里语提升了 11.8%,乌尔都语提升了 9.2%。

六、百分点在实际业务数据上的实验结果

先明确两个概念,单语种任务:训练集和测试集为相同语种,跨语种任务:训练集和测试集为不同语种。

6.1 主题分类任务上效果

模型训练集(数据量)测试集(数据量)指标(F1)
XLMR-base英语(1w)英语(1w)0.716
法语(1w)0.674
泰语(1w)0.648
mBERT-base英语(1w)英语(1w)0.700
法语(1w)0.627
泰语(1w)0.465


主题分类是判断一段文本是属于政治、军事等 10 个类别中哪一个。实验中分别使用 XLMR 和 Multilingual BERT 在 1w 的英语数据上进行训练,然后在英语、法语、泰语各 1 万的数据上进行测试。可以看到无论是单语种任务还是跨语种任务上,XLMR 的效果都优于 Multilingual BERT,跨语种任务上的优势更明显。

6.2 情感分类任务上的效果

模型训练集(数据量)测试集(数据量)效果(F1)
XLMR-base法语(9k)法语(1.5k)0.738
阿语(586)0.591
阿语(2.5k)阿语(586)0.726
法语(1.5k)0.425
mBERT-base法语(9k)法语(1.5k)0.758
阿语(586)0.496
阿语(2.5k)阿语(586)0.716
法语(1.5k)0.364


情感分类任务是判断一段文本所表达的情感是正面、负面或中立。实验中分别对 XLMR 和 BERT 做了单语种任务的对比和跨语种任务的对比,可以看到在单语种任务中 BERT 和 XLMR 的效果差别不明显,而在跨语种任务中 XLMR 明显优于 Multilingual BERT。

6.3 NER 任务上的效果

模型训练集(数据量)测试集(数据量)指标(F1)
XLMR-base法语(5w)法语(3.4w)0.897
阿语(4k)0.525
mBERT-base法语(5w)法语(3.4w)0.916
阿语(4k)0.568


NER 任务是抽取一段文本中实体,实体包括人名、地名、机构名。在该实验中,XLMR 表现一般,不管是单语种任务还是跨语种任务上,效果比 Multilingual BERT 要略差一些。

七、内容总结

Multilingual BERT 使用特征抽取能力更强的 transformer 作为编码器,通过 MLM 和 NSP 在超过 100 种语言上进行预训练,但它的模型本身并没有针对多语种进行过多优化。而 XLM 对 Multilingual BERT 进行了优化,主要是增加了 TML 预训练任务,使模型能学习到多语种 token 之间的关联关系。XLMR 结合了 XLM 和 RoBERTa 的优势,采用了更大的训练集,并且对低资源语种进行了优化,在 XNLI、NER CoNLL-2003、跨语种问答 MLQA 等任务上,效果均优于 Multilingual BERT,尤其是在 Swahili、Urdu 等低资源语种上效果提升显著。


在百分点实际业务数据的测试中,目前已经在英语、法语、阿语等常规语种上进行测试,无论是单语种任务还是跨语种任务,整体来看 XLMR 的效果要优于 Multilingual BERT。想要实现在一种语种上进行模型训练,然后直接在另外一种语种上进行预测这样的跨语种迁移,仍需要相关领域进一步深入的探索。


Google 近期发布了一个用于测试模型跨语种性能的基准测试 Xtreme,包括了对 12 种语言家族的 40 种语言进行句子分类、句子检索、问答等 9 项任务。在 Xtreme 的实验中,先进的多语言模型如 XLMR 在大多数现有的英语任务中已达到或接近人类的水平,但在其它语言尤其是非拉丁语言的表现上仍然存在巨大差距。这也表明,跨语言迁移的研究潜力很大。不过随着 Xtreme 的发布,跨语种 NLP 的研究肯定也会加速,一些激动人心的模型也会不断出现,让我们共同期待。


参考资料


[1] https://github.com/google-research/bert/blob/master/multilingual.md


[2] https://static.aminer.cn/misc/pdf/1911.02116.pdf


[3] https://www.lyrn.ai/2019/02/11/xlm-cross-lingual-language-model/


[4] https://arxiv.org/pdf/1410.3791v1


[5] https://github.com/google-research/xtreme


本文转载自公众号百分点(ID:baifendian_com)。


原文链接


https://mp.weixin.qq.com/s/ekXCHAvo1PiOerhNBWUQrg


2020-07-01 14:052079

评论

发布
暂无评论
发现更多内容

研发效能 | DevOps如何改变游戏公司工作方式?

龙智—DevSecOps解决方案

DevOps 游戏开发

KaiwuDB 成为中国信通院数据库应用创新实验室-汽车行业工作组副组长单位

KaiwuDB

车联网 KaiwuDB 数据库行业标准制定 汽车工作组

KgCaptcha验证码实现笔记

宙哈哈

Python html 验证码

Web2D工业组态工具软件——Sovit2D

2D3D前端可视化开发

web组态 组态编辑器 工业组态软件 web组态软件 2D组态

软件测试/测试开发丨Web自动化测试中显式等待与隐式等待该怎么用

测试人

软件测试 自动化测试 测试开发

华大北斗高精度芯片助力上汽名爵MG7智能驾驶

江湖老铁

开源轻量级 IM 框架 MobileIMSDK 的微信小程序端已发布!

JackJiang

网络编程 IM 即时通讯IM

龙智被SmartBear评为2022年“最具动力营销团队”

龙智—DevSecOps解决方案

自动化测试 UI测试 UI测试自动测试

教你如何通过CodeArts IDE插件调用API,高效合成语音

华为云开发者联盟

云计算 开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

KgCaptcha验证的那些事

宙哈哈

php Python html 验证码

龙智荣获Perforce公司颁发的2022年度销售与技术两项大奖

龙智—DevSecOps解决方案

版本控制

版本控制 | 告别繁琐,P4VJS带来全新的Diff体验

龙智—DevSecOps解决方案

版本控制 版本管理

免费可商用开源GPT模型问世,50G权重直接下载,性能不输GPT-3

Openlab_cosmoplat

开源项目 开源社区

2023 - Dubbo 谷歌编程之夏报名启动了!

阿里巴巴云原生

阿里云 云原生 dubbo

没有设计师?没问题!Spring+OpenAI让你也能生成漂亮的图片!

Java你猿哥

Java spring maven API

PHP短信验证码防刷方案

宙哈哈

php html 图片验证码

聊聊接口文档的事儿

京茶吉鹿

接口文档 Knife4j swagger2

机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等

汀丶人工智能

人工智能 数据挖掘 机器学习 LightGBM

户外LED显示屏对恶劣环境的防护措施!

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏

以 100GB SSB 性能测试为例,通过 ByteHouse 云数仓开启你的数据分析之路

字节跳动数据平台

大数据 数据仓库 云原生 数据仓库服务 云数仓

一种元数据同步的方法

KaiwuDB

数据复制 KaiwuDB 元数据同步

Atlassian Server用户新选择 | 迁移到数据中心版前,您需要做这些准备(2)

龙智—DevSecOps解决方案

Atlassian Atlassian 云版 数据中心版 server版

〖产品思维训练白宝书 - 认知篇②〗- 破局高手都具备的一种底层认知就是产品思维

哈哥撩编程

#产品思维

慕了!17年阿里架构师把Spring Boot的精髓都总结出来了

Java你猿哥

Java spring Spring Boot Spring MVC Java工程师

HummerRisk 使用教程:镜像检测

HummerCloud

镜像安全 云原生安全

ES和MongoDB:一次别开生面的比较

Java你猿哥

数据库 mongodb elasticsearch ES API

如何打造企业专属A/B平台?火山引擎DataTester开放平台技术揭秘

字节跳动数据平台

大数据 AB testing实战 开放平台 企业号 4 月 PK 榜 企业增长

DAMS大会 | 博睿数据分享《一体化智能可观测平台建设之路》

博睿数据

可观测性 智能运维 博睿数据 Bonree ONE

集成华为运动健康服务干货总览

HarmonyOS SDK

HMS Core

2023 年“和鲸杯”辽宁省普通高等学校本科大学生计算机设计竞赛启动会顺利召开

ModelWhale

大数据 人才培养 数据科学 数据思维 数据竞赛

网站上的视频资源被偷偷转载了...

为自己带盐

知识产权 ffmpeg HLS openssl

基于深度迁移学习的多语种NLP技术原理和实践_开源_百分点认知智能实验室_InfoQ精选文章