Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。

ERNIE 1.0

ERNIE全称为Enhanced language Representation with Informative Entities,为了让模型学习到海量文本中蕴含的现在知识,百度提出了ERNIE模型,该模型通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示。

预训练模型ERNIE

创新点

多阶段的知识掩盖策略

为了增强预训练语言模型,ERNIE中使用了一种多阶段的知识掩码策略,也就是在Bert使用的基本级别掩码策略的基础上添加了两种掩码策略(实体级别策略和短语级别策略)。经过改进后,相比与Bert模型,ERNIE模型可以潜在的学习到更长的语义依赖是其更具有泛化性。

基本级别策略:即Bert中使用的掩码策略。在训练过程中,会随机掩盖15%的单词和汉字,并训练一个transformer模型去预测被掩盖的单词和汉字。

短语级别策略:使用词法分析和分块工具获取句子中短语的边界,然后随机掩盖一些有多个字短语,再预测被被掩盖的短语。

实体级别策略:首先分析句子中的实体(如人名、位置等),然后掩盖随机掩盖一些实体,然后训练模型预测这些实体。

预训练模型ERNIE
预训练模型ERNIE

采用多源语料进行预训练

百度百科语料:包含正式语言撰写的文章

百度新闻语料:提供了最新的电影名、演员名、球队名等

百度贴吧语料:其中的帖子可以看作对话,往往具有相同回复的提问语义相似,基于这一假设,ERINE采用DLM(Dialogue Language Model)建模。进一步提升模型的语义表示能力。

ERNIE 2.0

ERNIE 2.0在1.0的基础上加入了更多的预训练任务,预训练任务分为三类:词法类的任务、语法类的任务和语义类的任务。模型持续的学习这些预训练任务,从而学习到词法、结构、语义等多个维度知识,大幅提升了语义理解水平。这样再去处理下游的任务效果能得到明显的提升。

预训练模型ERNIE

创新点

Task Embedding

在1.0版本Embedding层的基础上加入了Task Embedding,Task Embedding记录了task id,用于区分每个任务。

词法层

知识掩码任务:基于多阶段的知识掩盖策略,预测被掩盖的内容

预训练模型ERNIE

结构层

句子排序任务:输入三个句子,三句话的顺序打乱,模型预测从所有可能顺序的组合中正确的一个排列顺序组合,从而学习到句子之间的逻辑顺序和时间顺序。

句子距离任务:输入任意两个句子,模型预测这两个句子是非相邻、是否属于同一篇文章,从而判断两个句子的语义是否紧密、是否属于同一个话题。

预训练模型ERNIE

语义层

逻辑关系预测任务:句子之间的连词一般表示了句子之间的逻辑关系,该任务使用句子间的连词进行无监督的逻辑关系分类,从而建模的细粒度语义。

预训练模型ERNIE

持续多任务学习

如果在训练的每一个阶段只通过一个预训练任务训练模型的话,会很容易忘记在前面的任务中学习到的知识;但如果将所有的任务一起学习的话,那每次训练前就必须要制度好所有的预训练任务,而且每当有新任务加入时,需要从头学习。2.0版本中使用了一种新的连续训练任务的方式,每当有新的预训练任务加入时,使用之前学习到的参数初始化模型,并同时训练新加入的任务和原来的任务,这样就可以随时加入新任务,并且不会忘记先前学习到的知识。

预训练模型ERNIE

预训练模型ERNIE