详细介绍百度ERNIE:通过知识集成增强表示

news2024/11/24 0:21:23

文章目录

    • 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。我们还证实,知识整合和异构数据的预训练都能使模型获得更好的语言表现。在未来,我们将把其他类型的知识整合到语义表示模型中,例如使用句法解析或来自其他任务的弱监督信号。此外,我们还将在其他语言中验证这一想法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python自动化:桌面壁纸下载器,满足你对桌面壁纸的无限畅想!

随着计算机性能的提升,人们对计算机个性化的要求也越来越高了,自己使用的计算机当然要设置成自己喜欢的风格! 对于桌面壁纸有着强烈要求的朋友们有福了,推荐一个微软免费畅玩无限高清壁纸的官网。 https://cn.bing.com/images/t…

深入学习数组

目录 一、一维数组 1、数组的创建和初始化 2、一维数组的使用 3、*一维数组在内存中的存储 二、二维数组 1、二维数组的创建和初始化 2、二维数组的使用 3、*二维数组在内存中的存储 三、数组越界 一、一维数组 1、数组的创建和初始化 数组是一组相同类型元素的集合。 数组…

UNIAPP实战项目笔记42 购物车页面新增收货地址

UNIAPP实战项目笔记42 购物车页面新增收货地址 设置新增收货地址页面布局和功能 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 用到了vuex的状态机,具体位置见目录结构 代码 my-add-path.vue 页面部分 my-add-path.vue 设置页面布局 用到了vuex的状态机 <te…

steam搬砖副业,月入2万+,内含全套讲解

Steam平台是一款国外知名的数字游戏社交平台&#xff0c;steam游戏平台起初只是一个整合游戏的下载平台&#xff0c;随着软件的发展&#xff0c;逐渐演变为了游戏社交平台&#xff0c;steam是世界上目前最大的游戏平台之一&#xff0c;而「网易BUFF」是一款由网易公司推出&…

Unity3D简陋版跑酷游戏

目录 功能演示 功能简介 制作步骤 功能演示 链接&#xff1a;https://pan.baidu.com/s/1E_2JXWlVJNf3S5l-dH2UuQ提取码&#xff1a;dm5e 视频教学:Unity3D大作业 超级简陋版的跑酷游戏_哔哩哔哩_bilibili 功能简介 本次跑酷游戏主要从跑道&#xff0c;UI设计&#xff0c;…

[附源码]java毕业设计小区宠物管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MyBatis--获取参数值

MyBatis获取参数值的两种方式 &#xff1a; ${} 和 #{} ${}的本质是字符串 &#xff0c;#{}的本质是占位符赋值 ${}使用字符串拼接的方式拼接sql &#xff0c;若为字符串类型或日期类型的字段进行赋值时&#xff0c;需要手动加单引号。 #{}使用占位符赋值的方式拼接sql &#x…

[附源码]java毕业设计小锅米线点餐管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Spring Cloud实战】Spring Cloud Bus消息总线

gitee地址&#xff1a;https://gitee.com/javaxiaobear/spring-cloud_study.git 在线阅读地址&#xff1a;https://javaxiaobear.gitee.io/ 1、概述 Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改&#xff08;例如配置更改&#xff09;或其…

15.PyQt5中的事件系统之事件(QEvent)简介

PyQt5中的事件系统 一、什么是Qt中的事件 事件&#xff08;event&#xff09;是由窗口系统或者Qt自身产生的事情或动作的通称。当用户按下或者松开键盘或鼠标的按键时&#xff0c;就可以产生一个键盘或者鼠标事件&#xff1b;当某个窗口第一次显示的时候&#xff0c;就会产生一…

Pytorch的入门操作(二)

2、Pytorch 2.1 Pytorch的介绍和安装 目标&#xff1a; 知道如何安装Pytorch 2.1.1 Pytorch的介绍 Pytorch是Facebook发布的深度学习框架&#xff0c;由其易用性&#xff0c;友好性&#xff0c;深受广大用户青睐 2.1.2 Pytorch的版本 2.1.3 Pytorch的安装 安装地址介绍&…

Matlab论文插图绘制模板第65期—带等高线的曲面图(Surfc)

在之前的文章中&#xff0c;分享了Matlab曲面图的绘制模板&#xff1a; 这一次&#xff0c;再来分享一下带等高线的曲面图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab论文插图绘制模板系列&#xff0c;旨在降低大家使用Matlab进行科研绘图的门槛…

【数据结构与算法】最小生成树与最短路径

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;数据结构与算法 &#x1f320; 首发时间&#xff1a;2022年11月21日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43e…

棋盘覆盖问题(Java)

文章目录棋盘覆盖问题&#xff08;Java&#xff09;1、问题描述2、算法设计思路3、代码实现4、复杂度分析5、参考棋盘覆盖问题&#xff08;Java&#xff09; 1、问题描述 在一个2k2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个…

D. Radio Towers(斐波那契+逆元)

Problem - 1452D - Codeforces 在一条坐标线上有n2个城镇&#xff0c;编号从0到n1。第i个城镇位于第i点。 你在1,2,......,n个镇上各建一座无线电塔&#xff0c;概率为12&#xff08;这些事件是独立的&#xff09;。之后&#xff0c;你想把每个塔的信号功率设置为1到n的某个整…

OpenGL 透明度

目录 一.OpenGL 透明度 1.IOS Object-C 版本1.Windows OpenGL ES 版本2.Windows OpenGL 版本 二.OpenGL 透明度 GLSL Shader三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 &…

轻松使用TomCat、Maven和Servlet

文章目录TomcatTomcat下载启动Tomcat启动Tomcat失败的原因使用TomcatMaven创建Maven项目Maven依赖管理Servlet1.创建Maven项目2.引入依赖3.构建目录结构4.编写Servlet代码5.程序打包6.程序部署7.验证程序使用IDEA上Tomcat插件简化步骤5和步骤6Tomcat Tomcat 就是基于 Java 实现…

单点登录等功能该用 Keycloak 这种开源框架实现吗?

Keycloak 是一个开源软件产品&#xff0c;旨在为现代的应用程序和服务&#xff0c;提供包含身份管理和访问管理功能的单点登录工具。 开源软件虽然能够定制和修改源代码&#xff0c;还可以降低开发成本&#xff0c;但是 Keycloak 实现起来还是有不少问题&#xff1a; 用户迁移…

python实现五子棋游戏(pygame版)(附零基础学习资料)

前言 使用python实现pygame版的五子棋游戏&#xff1b; 环境&#xff1a;Windows系统python3.8.0 &#xff08;文末送读者福利&#xff09; 游戏规则&#xff1a; 1、分两位棋手对战&#xff0c;默认黑棋先下&#xff1b;当在棋盘点击左键&#xff0c;即在该位置绘制黑棋&a…

APT 攻击溯源方法

概述&#xff1a; 当今世界正值百年未有之大变局&#xff0c;网络空间成为继陆、海、空、天之后的第五大疆域&#xff0c;安全威胁也随之延伸至网络空间。没有网络安全就没有国家安全&#xff0c;在新时代网络空间安全已经上升至国家安全的高度。高级持续性威胁(Advanced Pers…