Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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

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

全球存在着几千种语言,这就对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

百分点科技
百分点科技

百分点科技是领先的数据科学基础平台及数据智能应用提供商,以“用数据科学构建更智能的世界”为使命,为企业和政府提供端到端的场景化解决方案。我们会定期与您分享百分点科技在数据科学及数据智能领域的实践经验、心得,以及我们对前沿趋势的洞见。

工程深度迁移学习NLP
1
相关数据
基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

词性标注技术

词性标注是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

欠采样技术

欠采样是信号处理学中的一种采样技术,也叫带通采样(bandpass sampling),是一种以低于其奈奎斯特采样定理(采样频率两倍高于被采样频率)的采样率对带通滤波信号进行采样且仍然能够重建信号的技术。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

特征抽取技术

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

深度迁移学习技术

在深度迁移学习中,首先在与需要解决问题的类似问题中训练神经网络模型,然后将来自训练模型的一个或多个层用于训练需要解决问题的新模型中。

情感分类技术

情感分类是对带有感情色彩的主观性文本进行分析、推理的过程,即分析对说话人的态度,倾向正面,还是反面。

句子分类技术

句子分类是文本分类的子任务,是指在句子层面的文本分类任务。

推荐文章
暂无评论
暂无评论~