热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ERNIE:EnhancedRepresentationthroughKnowledgeIntegration(百度)论文翻译

paper:https:arxiv.orgpdf1904.09223.pdfcode:https:github.comPaddlePaddleLARKtreedevelopERNI

paper:https://arxiv.org/pdf/1904.09223.pdf

code:https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE


文前总结

ERNIE相比于BERT,做出了如下改进:

1.mask策略。BERT只使用了字级别的随机masking,但是ERNIE使用了字、实体、短语三个级别的masking,旨在使模型学习到更多高级的语义。

2.中文异构数据预训练。对异构无监督数据进行预训练的语义编码器可以提高迁移学习性能。百度构建了混合语料库——中文Wikepedia,百度百科,百度新闻和百度贴吧。

3.对话语言模型。DLM任务可帮助ERNIE学习对话中的隐式关系,这也增强了模型学习语义表示的能力。


0.摘要

我们提出了一种新的语言表示模型,该模型称为ERNIE(通过知识集成的增强表示)。 受到BERT掩盖策略的启发(Devlin等人,2018),ERNIE被设计为学习通过知识掩盖策略增强的语言表示,其中包括实体级掩盖和短语级掩盖。 实体级策略可掩盖通常由多个单词组成的实体。 短语级策略掩盖了整个短语,该短语由几个词组成,作为一个概念单元。 实验结果表明,ERNIE优于其他基准方法,在五个自然语言处理任务(包括自然语言推理,语义相似性,命名实体识别,情感分析和问题解答)上取得了最新的最新成果。 我们还证明ERNIE在完形填空测试中具有更强大的知识推理能力。


1.简介

事实证明,语言表示预训练可以有效地改善许多自然语言处理任务,例如命名实体识别,情感分析和问题解答。 为了获得可靠的单词表示,设计了神经语言模型来学习单词共现,然后在无监督学习的情况下获得单词嵌入。 Word2Vec和Glove中的方法将单词表示为矢量,其中相似的单词具有相似的单词表示形式。 这些单词表示为其他深度学习模型中的单词向量提供了初始化。 最近,Cove,Elmo,GPT和BERT等许多作品通过不同的策略改进了单词表示,这已被证明对于下游自然语言处理任务更为有效。

这些研究中的绝大多数通过仅通过上下文来预测丢失的单词来对表示进行建模。 这些作品没有考虑句子中的先验知识。 例如,在“哈利·波特是由J·罗琳撰写的一系列幻想小说”一句中。 哈利·波特(Harry Potter)是一个新颖的名字,而罗琳(J. K. Rowling)是作家。 该模型很容易通过实体内的单词搭配来预测实体Harry Potter的缺失单词,而无需借助较长的上下文。 该模型无法根据哈利·波特与J·K·罗琳之间的关系预测哈利·波特。 直观的是,如果模型学习了有关先验知识的更多信息,则该模型可以获得更可靠的语言表示。

在本文中,我们提出了一种使用知识掩盖策略的名为ERNIE(通过知识集成的增强表示)的模型。 除了基本的掩蔽策略外,我们还使用两种知识策略:短语级策略和实体级策略。 我们将一个短语或一个实体作为一个单元,通常由多个单词组成。 在单词表示训练期间,同一单元中的所有单词都被屏蔽,而不是仅一个单词或字符被屏蔽。以这种方式,在训练过程中隐式地学习了短语和实体的先验知识。ERNIE没有直接添加知识嵌入的知识,而是隐式地学习了有关知识和较长语义依赖性的信息,例如实体之间的关系,实体的属性和事件的类型,以指导单词嵌入学习。 这可以使模型具有更好的概括性和适应性。

为了减少模型的训练成本,对ERNIE进行了异类中文数据的预训练,然后将其应用于5个中文NLP任务。 ERNIE在所有这些任务上都提供了最新的成果。 完形填空测试的另一个实验表明,与其他强大的基线方法相比,ERNIE具有更好的知识推理能力。

我们的贡献如下:

(1)我们引入了一种新的语言模型学习处理方法,该方法掩盖了诸如短语和实体之类的单元,以便从这些单元隐式地学习语法和语义信息。

(2)ERNIE在各种中文自然语言处理任务上明显优于以前的最新方法。

(3)我们发布了ERNIE和预训练模型的代码。


2 相关工作


2.1 上下文无关的表示

将单词表示为连续向量已有很长的历史。 (Bengio et al,2003)提出了一种非常流行的用于估计神经网络语言模型(NNLM)的模型架构,其中使用具有线性投影层和非线性隐藏层的前馈神经网络来学习词向量表示。

通过使用大量未标记的数据来预训练语言模型,学习通用的语言表示的方法是有效的。 传统方法着重于上下文无关的词嵌入。 诸如Word2Vec(Mikolov等,2013)和Glove(Pennington等,2014)之类的方法将大量文本集作为输入,并产生通常在几百个维度上的词向量。 它们为词汇表中的每个单词生成单个单词嵌入表示。


2.2 情境感知表示

但是,单词在上下文中可能具有完全不同的意义或含义。 Skip-thought(Kiros et al,2015)提出了一种通用的分布式句子编码器的无监督学习方法。 Cove(McCann et al,2017)表明,与在各种常见的NLP任务上仅使用无监督的单词和字符向量相比,添加这些上下文向量可以提高性能。 ULMFit(Howard and Ruder,2018)提出了一种有效的转移学习方法,该方法可以应用于NLP中的任何任务。 ELMo(Peters等人,2018)从不同维度概括了传统单词嵌入研究。 他们建议从语言模型中提取上下文相关的功能。 GPT(Radford等人,2018)通过修改Transformer增强了上下文相关的嵌入。

BERT(Devlin等人,2018)使用两种不同的预训练任务进行语言建模。 BERT随机掩盖句子中一定比例的单词,并学习预测那些被掩盖的单词。 此外,BERT学习预测两个句子是否相邻。 该任务试图对传统语言模型无法捕获的两个句子之间的关系进行建模。 因此,这种特殊的预训练方案可以帮助BERT在各种关键的NLP数据集(例如GLUE(Wang等人,2018)和SQUAD(Rajpurkar等人,2016)等)上大大超越最新技术。

其他一些研究人员尝试根据这些模型添加更多信息。 MT-DNN(Liu等人,2019)结合了预训练学习和多任务学习,以提高GLUE中多个不同任务的绩效(Wang等人,2018)。 GPT-2(Radford等人,2019)将任务信息添加到了预训练过程中,并使他们的模型适应零样本任务。 XLM(Lample and Conneau,2019)在预训练过程中增加了语言嵌入功能,从而在跨语言任务中取得了更好的结果。


2.3 异构数据

对异构无监督数据进行预训练的语义编码器可以提高迁移学习性能。通用句子编码器(Cer等人,2018)采用了来自Wikipedia,网络新闻,Web质量检查页面和讨论论坛的异构训练数据。 基于响应预测的句子编码器(Yang等,2018)受益于从Reddit对话中提取的查询-响应对数据。 XLM(Lample和Conneau,2019年)向BERT引入了并行语料库,它与掩盖语言模型任务一起接受了训练。通过对异构数据进行预训练的Transformer模型,XLM在监督/非监督MT任务和分类任务上显示出巨大的性能提升。


3. 方法论

在本节中,我们将介绍ERNIE及其详细实现。 我们首先描述模型的Tran编码器,然后在3.2节中介绍知识集成方法。 BERT和ERNIE的比较如图1所示。


区别就是BERT是字输入字掩码,ERNIE是字输入词掩码,而这个识别词的过程就是加入知识整合的点。

 


3.1 Transformer编码器

ERNIE使用多层Transformer (Vaswani et al,2017)作为基本编码器,类似于之前的预训练模型,例如GPT,BERT和XLM。 Transformer 可以通过自我关注来捕获句子中每个标记的上下文信息,并生成一系列上下文嵌入。

对于中文语料库,我们在CJK Unicode范围内的每个字符周围添加空格,并使用WordPiece(Wu等人,2016)对中文句子进行标记化。 对于给定的令牌,其输入表示形式是通过将相应的令牌,段和位置嵌入相加来构造的。 每个序列的第一个标记是特殊分类嵌入([CLS])。


3.2 知识整合

我们使用先验知识来增强我们的预训练语言模型。 我们提出了一种多阶段的知识掩盖策略,而不是直接添加知识嵌入,而是将短语和实体级知识集成到语言表示中。 句子的不同掩蔽级别在图2中进行了描述。


 

3.2.1基本级别掩码

第一个学习阶段是使用基本级别掩盖,它将句子作为基本语言单位的序列,对于英语,基本语言单位是单词,对于中文,基本语言单位是汉字。 在训练过程中,我们随机掩盖15%的基本语言单元,并使用句子中的其他基本单元作为输入,并训练一个Transformer来预测掩盖单元。 和BERT一样的操作,基于基本级别的掩码,学习低级语义。

3.2.2 短语级别掩码

第二阶段是采用短语级别的屏蔽。 词组是一小部分单词或字符,一起充当概念单元。 对于英语,我们使用词法分析和分块工具来获取句子中短语的边界,并使用一些依赖于语言的分段工具来获取其他语言(例如中文)的词/短语信息。 在短语级掩码阶段,我们还使用基本语言单元作为训练输入,这与随机基本单元掩码不同,这次我们随机选择句子中的几个短语,掩盖并预测同一短语中的所有基本单元。 在此阶段,短语信息被编码到单词嵌入中。

3.2.3实体级别掩码

第三阶段是实体级屏蔽。 名称实体包含人员,位置,组织,产品等,可以用专有名称表示。 它可以是抽象的,也可以是物理存在的。 通常,实体在句子中包含重要信息。 与短语屏蔽阶段一样,我们首先分析句子中的命名实体,然后屏蔽并预测实体中的所有时隙。 经过三个阶段的学习,获得了通过更丰富的语义信息增强的单词表示。


4 实验

ERNIE was chosen to have the same model size as BERT-base for comparison purposes. ERNIE uses 12 encoder layers, 768 hidden units and 12 attention heads.


4.1异构语料库预训练

ERNIE采用异构语料库进行预训练。我们构建了混合语料库——中国Wikepedia,百度百科,百度新闻和百度贴吧。 句子数分别是21M,51M,47M,54M。 百度百科包含用正式语言编写的百科全书文章,这些文章被用作语言建模的强大基础。 百度新闻提供有关电影名称,演员名称,足球队名称等的最新信息。百度贴吧是一个类似Reddits的开放讨论论坛,每个帖子都可以视为对话话题。 在我们的DLM任务中使用Tieba语料库,这将在下一部分中讨论。

我们对汉字执行从传统到简体的转换,对英文字母执行大写到小写的转换。 我们为模型使用了17,964个unicode字符的共享词汇表。


4.2 对话语言模型


 

对话数据对于语义表示很重要,因为相同答复的相应查询语义通常很相似。 ERNIE在DLM(对话语言模型)任务上对查询-响应对话结构进行建模。如图3所示,我们的方法引入了对话嵌入(dialogue embedding)来识别对话中的角色,这与通用句子编码器的方法不同(Cer等人,2018)。 ERNIE的“对话”嵌入功能与BERT中的令牌类型嵌入功能相同,不同之处在于ERNIE还可以表示多回合对话(例如QRQ,QRR,QQR,其中Q和R分别代表“查询”和“响应”)。像BERT中的MLM一样,使用掩码来强制使模型预测以查询和响应为条件的缺失词。而且,我们通过用随机选择的句子替换查询或响应来生成假样本。该模型旨在判断多回合对话是真实的还是假的。

DLM任务可帮助ERNIE学习对话中的隐式关系,这也增强了模型学习语义表示的能力。DLM任务的模型体系结构与MLM任务的模型体系结构兼容,因此可以通过MLM任务对其进行预训练。


4.3 中文NLP的实验项目

ERNIE被应用于5个中文NLP任务,包括自然语言推理,语义相似性,命名实体识别,情感分析和问答对。

4.3.1 自然语言推理

跨语言自然语言推理(XNLI)语料库(Liu等人,2019)是MultiNLI语料库的众包集合。 两对文字加上文字说明,并被翻译成包括中文在内的14种语言。 标签包含矛盾,中立和包含。 我们遵循BERT中的中文实验(Devlin等,2018)。

4.3.2 语义相似度

大规模中文问题匹配语料库(LCQMC)(Liu等人,2018)旨在识别两个句子是否具有相同的意图。 数据集中的每一对句子都与一个二进制标签相关联,该二进制标签指示两个句子是否共享相同的意图,并且可以将该任务形式化为预测二进制标签。

4.3.3 命名实体识别

MSRA-NER数据集用于命名实体识别,由Microsoft Research Asia发布。 实体包含几种类型,包括人员姓名,地名,组织名称等。 该任务可以看作是序列标记任务。

4.3.4 情感分析

ChnSentiCorp(Song-bo)是一个数据集,旨在判断句子的情感。 它包括酒店,书籍和电子计算机等多个领域的评论。 该任务的目的是判断句子是肯定的还是否定的。

4.3.5 检索问题回答

NLPCC-DBQA数据集(http://tcci.ccf.org.cn/conference/2016/dldoc/evagline2.pdf)的目标是选择相应问题的答案。 该数据集的评估方法包括MRR(Voorhees,2001)和F1得分。


4.4 实验结果


 


4.5 消融研究

为了更好地了解ERNIE,我们将在本节中对ERNIE的每种策略进行消融实验。

4.5.1 知识屏蔽策略的效果


 

我们从整个语料库中抽取10%的训练数据,以验证知识掩盖策略的有效性。 结果显示在表2中。我们可以看到,将短语级掩码添加到基线单词级掩码可以改善模型的性能。 在此基础上,我们添加了实体级屏蔽策略,从而进一步提高了模型的性能。 此外。 结果还显示,使用预训练数据集的大小大10倍,XNLI测试集可实现0.8%的性能提升。

4.5.2 DLM的效果


我们也对DLM任务进行了消融研究。 我们使用不同比例的所有训练语料库的10%来说明DLM任务对XNLI开发集的贡献。 我们对这些数据集从头开始对ERNIE进行了预训练,并从5次随机重新启动微调中报告了XNLI任务的平均结果。 表3给出了详细的实验设置和开发设置结果,我们可以看到,在此DLM任务中,开发/测试精度提高了0.7%/ 1.0%。


4.6 完形填空


 

我们比较了BERT和ERNIE的预测。

在情况1中,BERT尝试复制出现在上下文中的名称,而ERNIE则记住了文章中提到的有关关系的知识。

在情况2和情况5中,BERT可以根据上下文成功学习模式,因此可以正确预测命名的实体类型,但是无法使用正确的实体填充插槽。相反,ERNIE可以使用正确的实体填充插槽。

在情况3、4、6中,BERT用与句子相关的几个字符填充了空位,但是很难预测语义概念。 ERNIE可以预测除情况4之外的正确实体。尽管ERNIE在情况4中预测了错误的实体,但它可以正确地预测语义类型,并用一个澳大利亚城市填充该位置。

总之,这些案例表明ERNIE在基于上下文的知识推理中表现更好。


5 总结

在本文中,我们提出了一种将知识整合到预训练语言模型中的新方法。 对5种中文处理任务的实验表明,在所有这些任务上,我们的方法均优于BERT。 我们还确认,知识整合和对异构数据的预训练都使模型能够获得更好的语言表示。 将来,我们会将其他类型的知识集成到语义表示模型中,例如使用语法分析或来自其他任务的弱监督信号。 此外,我们还将以其他语言验证该想法。



推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 对于前端开发新手而言,理解JavaScript模块加载机制常常是一个挑战。本文将深入解析Node.js中的`require`方法及其与RequireJS之间的区别,并探讨它们在不同场景下的应用。通过对比这两种模块加载方式,读者可以更好地掌握如何在项目中选择合适的模块管理工具。此外,文章还提供了实际示例,帮助读者加深对模块化编程的理解。 ... [详细]
  • 在Java中,一个类可以实现多个接口,但是否能够继承多个类则存在限制。本文探讨了Java中实现多继承的方法及其局限性,详细分析了通过接口、抽象类和组合等技术手段来模拟多继承的策略,并讨论了这些方法的优势和潜在问题。 ... [详细]
  • 决策树在鸢尾花数据集上对不同特征组合的分类效果分析及模型性能比较
    本文探讨了决策树算法在鸢尾花数据集上的应用,分析了不同特征组合对分类效果的影响,并对模型性能进行了详细比较。决策树作为一种层次化的分类方法,通过递归地划分特征空间,形成树状结构,每个节点代表一个特征判断,最终达到分类目的。研究结果表明,不同特征组合对模型性能有显著影响,为实际应用提供了重要参考。 ... [详细]
  • 在探索 Unity Shaders 的过程中,我逐渐意识到掌握 OpenGL 基础知识的重要性。本文将详细介绍 OpenGL 的核心概念和基本操作,帮助读者从零开始理解这一图形编程技术。通过实例和代码解析,我们将深入探讨如何利用 OpenGL 创建高效的图形应用。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。 ... [详细]
  • 软件开发史上最具影响力的十位编程大师(附图解)
    在软件开发领域,有十位编程大师对行业发展产生了深远影响。本文基于国外知名社区的一项评选,通过图文并茂的形式,详细介绍了这十位杰出人物,包括游戏开发先驱John Carmack等,为读者呈现了他们卓越的技术贡献与创新精神。 ... [详细]
  • 本文探讨了如何在 Google Sheets 中通过自定义函数实现 AJAX 调用。具体介绍了编写脚本的方法,以便在电子表格中发起 AJAX 请求,从而实现数据的动态获取与更新。这种方法不仅简化了数据处理流程,还提高了工作效率。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 利用GDAL库在Python中高效读取与处理栅格数据的详细指南 ... [详细]
  • 本文详细解析了RTMP(实时消息传输协议)的中英文规范与标准,提供了中文版和英文版的官方文档链接,便于读者全面了解该协议的技术细节和应用场景。中文版文档地址为:,英文版文档地址为:。通过对比分析,文章深入探讨了RTMP在流媒体传输中的关键特性和优势,帮助技术人员更好地掌握和应用该协议。 ... [详细]
author-avatar
zhou
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有