1.ERNIE1.0
ERNIE(Enhanced Representation through Knowledge Integration) 是百度基于BERT开发的NLP模型。ERNIE使用了更多的语料,除维基百科等数据集外,还使用了中文维基百科,百度百科,百度新闻,百度贴吧数据集。该模型的参数: L = 12,H = 768,A = 12 (BERT BASE)。
ERNIE实现了实体级别的Mask,实体级别的连续Mask改变了训练Task,而BERT是基于单字的Mask,其区别如下图所示:
ERNIE的实体级别的Mask包括单字、实体和短语等三个级别,实现字粒度的输入:
使用不同级别的Mask效果如下:
ERNIE还采用了Dialog embedding,输入层使用多轮对话修改NSP任务(random replace 构造负样本)
2.ERNIE2.0
2.1 整体框架
随后百度使用Reddit和搜索数据扩充了数据集,提出多任务持续学习训练框架并构建三种类型的无监督任务,但保持参数与BERT一致,建立ERNIE2.0。其整体框架如下:
1)连续多任务学习不遗忘之前的训练结果;多任务高效的进行训练;使用上一任务的参数,并且新旧任务一起训练;将每个任务分成多次迭代,框架完成不同迭代的训练自动分配
2)多任务训练
Sentence level loss & word level loss;每个任务有独立的loss function, sentence task 可以和word task 一起训练
2.2 模型结构
ERNIE2.0基于三种类型的无监督任务进行训练,其模型结构如下:
1)词法级别预训练任务(MASK LM)
Knowledge Masking Task(ERNIE 1.0):学习当前和全局依赖
Capitalization Prediction Task:大写用于专名识别等,小写也可用在其他任务
Token-Document Relation Prediction Task:token存在段落A中是否token会在文档的段落B中出现
2)语言结构级别预训练任务(NSP)
Sentence Reordering Task:文档中的句子打乱(分成1到m段,shuffle),识别正确顺序
Sentence Distance Task:句子间的距离,3分类任务
0 :相连的句子
1:同一文档中不相连的句子
2:两篇文档间的句子
3)语法级别预训练任务(NSP)
Discourse Relation Task:计算两句间的语义与修辞关系IR
Relevance Task:短文本信息检索关系(百度的核心)
Query-title (搜索数据)
0:搜索并点击(需求,服务业务场景)
1:搜索并展现(先验,相关性)
2:无关,随机替换(不想关)
2.3 连续多任务学习的效果
参考资料
[3]ERNIE 2.0
[4]ERNIE源码