文章目录
- ERNIE简介
- 相关工作
- 采用矢量表示单词 ,上下文无关的表示
- 采用上下文来预测丢失的单词,没有考虑先验知识
- 采用异构数据
- ERNIE的详细实现
- Transformer编码器
- 知识整合
- 基本级别掩码
- 短语级别掩码
- 实体级别掩码
- 实验
- 异构语料库预训练
- DLM(对话语言模型)
- 中文NLP任务的实验
- 1.自然语言推理
- 2.语义相似性
- 3.命名实体识别
- 4.情感分析
- 5.检索问题回答
- 实验结果
- 消融实验
- 知识掩蔽策略的效果
- DLM的效果
- Cloze测试(完形填空)
- 结论
百度提出的ERNIE模型主要是针对BERT在中文NLP任务中表现不够好提出的改进。对于中文,bert使用的基于字的处理,在mask时掩盖的也仅仅是一个单字。
ERNIE的核心点在于在训练的过程中加入了实体级屏蔽和短语级屏蔽。还有就是引入了一个对话语言模型(DLM)无监督任务,通过预测Query和Response的关系来完计算损失值。
实体级策略屏蔽了通常由多个词组成的实体。
短语级策略掩盖了整个短语,该短语由几个词组成,是一个概念单位。
实验结果表明,ERNIE优于其他基线方法,在五个中文自然语言处理任务上取得了最先进的结果,包括自然语言推理、语义相似度、命名实体识别、情感分析和问答。我们还证明ERNIE在完形填空测试中具有更强大的知识推理能力。
ERNIE简介
语言表征预训练已被证明对改善许多自然语言处理任务很有效,如命名实体识别、情感分析和问题回答。为了得到可靠的词表征,神经语言模型被设计为学习词的共现性,然后用无监督学习获得词嵌入。
Word2Vec和Glove中的方法将单词表示为向量,其中相似的单词具有相似的单词表示。这些单词表征为其他深度学习模型中的单词向量提供了一个初始化。
最近,很多工作,如Cove、Elmo、GPT和BERT通过不同的策略改进了单词表示,这已被证明对下游自然语言处理任务更有效。这些研究中的绝大多数都是通过上下文预测缺失的单词来对其表示建模,这些工作并不考虑句子中的先验知识。
例如,在 "哈利波特是J.K.罗琳写的一系列幻想小说 "这个句子中,哈利波特是一个小说名,而J. K.罗琳是作者。模型很容易通过实体内部的单词搭配预测实体Harry Potter中缺失的单词,而不需要借助于长的语境。该模型不能根据Harry Potter和J.K.Rowling之间的关系来预测Harry Potter。直观的是,如果模型学习更多的先验知识,模型可以获得更可靠的语言表示。
本文提出了一个叫做ERNIE(通过知识整合增强表示)的模型,它使用了知识屏蔽策略。除了基本的屏蔽策略外,我们还使用了两种知识策略:短语级策略和实体级策略,以便从这些单元中隐性地学习句法和语义信息。我们把一个短语或一个实体作为一个单元,它通常由几个词组成。在单词表征训练中,同一单元中的所有单词都被屏蔽,而不是只有一个单词或字符被屏蔽。
通过这种方式,在训练过程中隐含地学习了短语和实体的先验知识。 ERNIE没有直接添加知识嵌入,而是隐性地学习了知识信息和较长的语义依赖信息,如实体之间的关系、实体的属性和事件的类型,以指导词的嵌入学习。 这可以使该模型具有更好的通用性和适应性。
为了降低模型的训练成本,ERNIE在异质中文数据上进行了预训练,然后应用于5个中文NLP任务。ERNIE在所有这些任务中都取得了最先进的结果。另外一个关于cloze测试的实验表明,ERNIE比其他强大的基线方法有更好的知识推理能力。
相关工作
采用矢量表示单词 ,上下文无关的表示
词表征作为连续向量由来已久。Bengio在2003年提出了一个非常流行的估计神经网络语言模型(NNLM)的模型结构,其中一个带有线性投影层和非线性隐藏层的前馈神经网络被用来学习词向量表示。通过使用大量的无标签数据来预训练语言模型,可以有效地学习一般的语言表征。传统的方法侧重于与语境无关的词嵌入。
Word2Vec和Glove等方法将大量的文本语料库作为输入,并产生一个词向量,通常有几百个维度。它们为词汇表中的每个词生成一个单一的词嵌入表示。
采用上下文来预测丢失的单词,没有考虑先验知识
然而,一个词在语境中可以有完全不同的意义或含义。Skip-thought提出了一种无监督学习通用的、分布式句子编码器的方法。Cove表明,在各种常见的NLP任务上,添加这些上下文向量比只使用无监督的单词和字符向量提高了性能。ULMFit提出了一种有效的迁移学习方法,可以应用于NLP的任何任务。 ELMo沿着不同的维度概括了传统的单词嵌入研究。他们提议从语言模型中提取上下文敏感的特征。GPT通过调整Transformer加强了上下文敏感嵌入。
BERT使用两种不同的训练任务进行语言建模。BERT随机地屏蔽句子中一定比例的单词,并学习预测这些被屏蔽的单词。 此外,BERT学习预测两个句子是否相邻。这个任务试图对两个句子之间的关系进行建模,而这是传统的语言模型所不能捕捉到的。 因此,这种特殊的预训练方案帮助BERT在各种关键的NLP数据集(如GLUE和SQUAD等)以较大的优势胜过最先进的技术。
其他一些研究人员试图基于这些模型添加更多信息。MT-DNN结合预训练学习和多任务学习来提高GLUE中几个不同任务的表现。 GPT-2在预训练过程中加入了任务信息,并使他们的模型适应于zero-shot任务。XLM在预训练过程中添加语言嵌入,在跨语言任务中取得了更好的结果。
采用异构数据
在异质无监督数据上预训练的语义编码器可以提高迁移学习的性能。通用句子编码器采用了来自维基百科、网络新闻、网络QA页面和讨论区的异质性训练数据。基于响应预测的句子编码器得益于来自Reddit对话的查询-响应对数据。XLM将平行语料库引入BERT,与屏蔽语言模型任务联合训练。使用在异质数据上预训练的Transformer模型,XLM在监督/无监督的MT任务和分类任务上显示出巨大的性能增益。
ERNIE的详细实现
Transformer编码器
图1:BERT和ERNIE之间的不同掩蔽策略
ERNIE使用多层Transformer作为基本编码器,就像之前的预训练模型,如GPT、BERT和XLM。Transformer可以通过self-attention捕捉句子中每个token的上下文信息,并生成一连串的上下文嵌入。
对于中文语料,我们在中日韩Unicode范围内的每一个字符周围添加空格,并使用WordPiece对中文句子进行标记。对于一个给定的标记,它的输入表征是由相应的标记、段和位置嵌入相加而构建的。每个序列的第一个标记是特殊的分类嵌入([CLS])。
知识整合
我们使用先前的知识来增强我们的预训练语言模型。我们没有直接添加知识嵌入,而是提出了一个多阶段的知识屏蔽策略,将短语和实体层面的知识整合到语言表述中。 图2中描述了不同层次的知识掩蔽。
图2:句子的不同掩蔽级别
基本级别掩码
第一个学习阶段是使用基本级别掩码,它将一个句子视为基本语言单位的序列,对于英语来说,基本语言单位是单词,而对于汉语来说,基本语言单位是汉字。
在训练过程中,我们随机屏蔽15%的基本语言单位,并使用句子中的其他基本单位作为输入,然后训练一个Transformer来预测屏蔽单位。基于基本级别的掩码,我们可以得到一个基本的单词表示。因为它是在基本语义单位的随机掩码上训练的,所以高水平的语义知识很难被完全建模。
短语级别掩码
第二阶段是采用短语级别掩码。短语是一小群单词或字符一起作为一个概念单位。对于英语,我们使用词法分析和分块工具来获得句子中短语的边界,并使用一些与语言相关的分割工具来获得其他语言(如中文)的词/短语信息。
在短语级屏蔽阶段,我们也使用基本语言单位作为训练输入,与随机基本单位掩码不同,这次我们在句子中随机选择几个短语,屏蔽并预测同一短语中的所有基本单位。在这个阶段,短语信息被编码到单词嵌入中。
实体级别掩码
第三个阶段是实体级别掩码。 实体名称包括人、地点、组织、产品等,这些都可以用专有名词来表示。它可以是抽象的,也可以是实际存在的。通常情况下,实体在句子中包含重要的信息。 与短语掩码阶段一样,我们首先分析句子中命名的实体,然后屏蔽并预测实体中的所有槽。
经过三个阶段的学习,我们得到了一个由更丰富的语义信息所增强的词汇表达。
实验
ERNIE具有与BERT-base相同的模型大小,以便于比较。ERNIE使用12个编码器层,768个隐藏单元和12个注意头。
异构语料库预训练
ERNIE采用异质语料库进行预训练。我们抽取了混合语料库中文维基百科、百度百科、百度新闻和百度贴吧。句子的数量分别为21M、51M、47M、54M。
百度百科包含了用正式语言编写的百科全书文章,作为语言建模的有力基础。百度新闻提供有关电影名称、演员名称、足球队名称等最新信息。百度贴吧是一个类似于Reddits的开放式讨论区,每个帖子都可以被视为一个对话线程。贴吧语料库被用于我们的DLM任务,这将在下一节讨论。
我们对汉字进行繁体到简体的转换,并对英文字母进行大写到小写的转换。我们的模型使用了17,964个unicode字符的共享词汇。
DLM(对话语言模型)
对话数据对语义表示很重要,因为同一答复的相应查询语义往往是相似的。ERNIE在DLM(对话语言模型)任务上对查询-回复对话结构进行建模。
如图3所示,我们的方法引入了对话嵌入来识别对话中的角色,这与通用句子编码器的方法不同。
图3:对话语言模型。源句:[cls] How [mask] are you [sep] 8 . [sep] Where is your [mask] ?[sep]. 目标句子(预测的词):old,8,hometown)
ERNIE的对话嵌入所扮演的角色与BERT中的标记类型嵌入相同,只是ERNIE也可以表示多轮对话(例如QRQ,QRR,QQR,其中Q和R分别代表 "查询 "和 “回应”)。
像BERT中的MLM一样,应用掩码来强制模型预测以查询和回应为条件的缺失词。此外,我们通过用随机选择的句子替换查询或回应来产生虚假样本。
DLM任务帮助ERNIE学习对话中的隐含关系,这也增强了模型学习语义表征的能力。DLM任务的模型结构与MLM任务的结构兼容,因此它与MLM任务交替进行预训练。
中文NLP任务的实验
ERNIE被应用于5个中文NLP任务,包括自然语言推理、语义相似度、命名实体识别、情感分析和问题回答。
1.自然语言推理
跨语言自然语言推理(XNLI)语料库是MultiNLI语料库的一个众包集合。 这些对子都有文本导出的注释,并被翻译成包括中文在内的14种语言。标签包含矛盾、中性和蕴涵的内容。
2.语义相似性
大型中文问题匹配模型(LCQMC)旨在识别两个句子是否具有相同的意图。 数据集中的每一对句子都与一个二进制标签相关联,表明这两个句子是否有相同的意图,该任务可以被形式化为预测二进制标签。
3.命名实体识别
MSRA-NER数据集是为命名实体识别而设计的,它由微软亚洲研究院发布。
实体包含几种类型,包括人名、地名、组织名称等。这个任务可以被看作是一个序列标签任务。
4.情感分析
ChnSentiCorp(Song-bo)是一个数据集,旨在判断一个句子的情感。它包括几个领域的评论,如酒店、书籍和电子计算机。这个任务的目标是判断句子是积极还是消极的。
5.检索问题回答
NLPCC-DBQA数据集的目标是选择相应问题的答案。这个数据集的评价方法包括MRR和F1得分。
实验结果
表1给出了5个汉语NLP任务的测试结果。可以看出,ERNIE在所有任务上的表现都优于BERT,在这些中文NLP任务上创造了新的最先进的结果。在XNLI、MSRA-NER、ChnSentiCorp和NLPCC-DBQA任务中,ERNIE比BERT获得了超过1%的绝对准确率。
表1:5个主要汉语NLP任务的测试结果
消融实验
为了更好地理解ERNIE,我们在本节中对ERNIE的每个策略进行了消融实验。
知识掩蔽策略的效果
我们从整个语料库中抽取10%的训练数据来验证知识掩蔽策略的有效性。结果如表2所示。我们可以看到,在基线词级屏蔽的基础上增加短语级屏蔽可以提高模型的性能。在此基础上,我们增加了实体级屏蔽策略,模型的性能得到了进一步提高。此外,结果还显示,在预训练数据集规模大10倍的情况下,在XNLI测试集上实现了0.8%的性能提升。
表2:不同屏蔽策略和数据集大小下的XNLI性能
DLM的效果
消融实验也在DLM任务中进行。我们使用所有训练语料的10%,以不同的比例来说明DLM任务对XNLI开发集的贡献。我们在这些数据集上从头开始预训练ERNIE,并报告5次随机重启微调对XNLI任务的平均结果。详细的实验设置和开发集结果见表3,我们可以看到,在这个DLM任务上,开发/测试的准确率提高了0.7%/1.0%。
表3:在对话语言模型上的XNLI微调性能
Cloze测试(完形填空)
为了验证ERNIE的知识学习能力,我们使用了几个完形填空测试样本来检验该模型。在实验中,名字实体被从段落中删除,模型需要推断出它是什么。图4中显示了一些案例。我们比较了BERT和ERNIE的预测。
表4:完形填空测试
在案例1中,BERT试图复制上下文中出现的名字,而ERNIE记住了文章中提到的关系知识。在案例2和案例5中,BERT可以根据上下文成功地学习模式,因此正确地预测了命名实体的类型,但未能用正确的实体填入槽中,相反,ERNIE可以用正确的实体填入槽中。 在案例3、4、6中,BERT用几个与感官有关的字符填入槽中,但很难预测语义概念。除了案例4,ERNIE预测了正确的实体。虽然ERNIE在案例4中预测了错误的实体,但它能正确地预测语义类型,并在槽中填入一个澳大利亚城市的字符。总之,这些案例表明,ERNIE在基于上下文的知识推理中表现得更好。
结论
在本文中,我们提出了一种新的方法,将知识整合到预训练的语言模型中。在5个中文语言处理任务上的实验表明,ERNIE在所有这些任务中都优于BERT。我们还证实,知识整合和异构数据的预训练都能使模型获得更好的语言表现。在未来,我们将把其他类型的知识整合到语义表示模型中,例如使用句法解析或来自其他任务的弱监督信号。此外,我们还将在其他语言中验证这一想法。