加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-06-30 22:19:07 所属栏目:大数据 来源:站长网
导读:副标题#e# 全球存在着几千种语言,这就对NLP研究者带来了巨大的难题,因为在一个语种上训练的模型往往在另外一个语种上完全无效,而且目前的NLP研究以英语为主,很多其他语种上面临着标注语料严重不足的困境。在跨语种NLP研究方面,业界已经做了不少研究,
副标题[/!--empirenews.page--]

全球存在着几千种语言,这就对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加入没考虑过的位置信息。

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

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

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

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的效果。

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

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

四、XLM

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读