Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
ERNIE 1.0
ERNIE全称为Enhanced language Representation with Informative Entities,为了让模型学习到海量文本中蕴含的现在知识,百度提出了ERNIE模型,该模型通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示。
创新点
多阶段的知识掩盖策略
为了增强预训练语言模型,ERNIE中使用了一种多阶段的知识掩码策略,也就是在Bert使用的基本级别掩码策略的基础上添加了两种掩码策略(实体级别策略和短语级别策略)。经过改进后,相比与Bert模型,ERNIE模型可以潜在的学习到更长的语义依赖是其更具有泛化性。
基本级别策略:即Bert中使用的掩码策略。在训练过程中,会随机掩盖15%的单词和汉字,并训练一个transformer模型去预测被掩盖的单词和汉字。
短语级别策略:使用词法分析和分块工具获取句子中短语的边界,然后随机掩盖一些有多个字短语,再预测被被掩盖的短语。
实体级别策略:首先分析句子中的实体(如人名、位置等),然后掩盖随机掩盖一些实体,然后训练模型预测这些实体。
采用多源语料进行预训练
百度百科语料:包含正式语言撰写的文章
百度新闻语料:提供了最新的电影名、演员名、球队名等
百度贴吧语料:其中的帖子可以看作对话,往往具有相同回复的提问语义相似,基于这一假设,ERINE采用DLM(Dialogue Language Model)建模。进一步提升模型的语义表示能力。
ERNIE 2.0
ERNIE 2.0在1.0的基础上加入了更多的预训练任务,预训练任务分为三类:词法类的任务、语法类的任务和语义类的任务。模型持续的学习这些预训练任务,从而学习到词法、结构、语义等多个维度知识,大幅提升了语义理解水平。这样再去处理下游的任务效果能得到明显的提升。
创新点
Task Embedding
在1.0版本Embedding层的基础上加入了Task Embedding,Task Embedding记录了task id,用于区分每个任务。
词法层
知识掩码任务:基于多阶段的知识掩盖策略,预测被掩盖的内容
结构层
句子排序任务:输入三个句子,三句话的顺序打乱,模型预测从所有可能顺序的组合中正确的一个排列顺序组合,从而学习到句子之间的逻辑顺序和时间顺序。
句子距离任务:输入任意两个句子,模型预测这两个句子是非相邻、是否属于同一篇文章,从而判断两个句子的语义是否紧密、是否属于同一个话题。
语义层
逻辑关系预测任务:句子之间的连词一般表示了句子之间的逻辑关系,该任务使用句子间的连词进行无监督的逻辑关系分类,从而建模的细粒度语义。
持续多任务学习
如果在训练的每一个阶段只通过一个预训练任务训练模型的话,会很容易忘记在前面的任务中学习到的知识;但如果将所有的任务一起学习的话,那每次训练前就必须要制度好所有的预训练任务,而且每当有新任务加入时,需要从头学习。2.0版本中使用了一种新的连续训练任务的方式,每当有新的预训练任务加入时,使用之前学习到的参数初始化模型,并同时训练新加入的任务和原来的任务,这样就可以随时加入新任务,并且不会忘记先前学习到的知识。