早上突然看到一篇“机器之心”的文章推送:百度最新提出NLP预训练语言模型 ERNIE(知识增强语义表示模型,Enhanced Representation from kNowledge IntEgration),并声称全面超越 BERT,虽然习惯了标题党,但鉴于正致力于将BERT升级到项目组现有NLP算法能力中,还是忍不住好奇,特地读了一下这篇文章,记录如下:
注:该工作的论文还未公开,只针对该推送文章揣测一二,不足之处望指教;待论文公开之后再详细补充拜读记录。
1. why ERNIE
ERNIE 认为,BERT 在NLP各个应用领域取得了不凡的成绩,主要得益于其使用了大量文本语料进行了无监督预训练:(a) Masked LM,(b) Next Sent Prediction;但 BERT 仍然存在以下缺点:
(1) Masked LM 的建模过程中是以字为单位的,这使得模型很难学习到语义知识单元的完整语义表示,而这一缺点对于中文的 BERT 预训练模型与应用而说尤为明显,文章举例如下:
eg:对于乒 [mask] 球,清明上 [mask] 图,[mask] 颜六色这些词,BERT 模型通过字的搭配,很容易推测出掩码的字信息,但没有显式地对语义概念单元 (如乒乓球、清明上河图) 以及其对应的语义关系进行建模。
(2) 训练语料单一(百科类),且除 Masked LM 外只有 Next Sent Prediction 任务,较为单一。
2. How ERNIE
针对 BERT 模型的不足,ERNIE 做了以下改进:
(1) ERNIE 模型通过建模海量数据中的实体概念等先验语义知识,学习完整概念的语义表示。即在 Masked LM 中通过对词和实体概念等语义单元进行 mask 来预训练模型,使得模型对语义知识单元的表示更贴近真实世界。
ps:文章表示:相较于 BERT 学习原始语言信号,ERNIE 模型在基于字特征输入建模的同时,直接对先验语义知识单元进行建模,增强了模型语义表示能力。(但如何在基于字特征输入的情况下直接对先验语义知识单元进行建模?这应该是 ERNIE 模型的核心,文章并没有给出介绍,这要期待baidu的论文发布后一探究竟了)
文章举例如下:

(2) 引入多源数据语料训练 ERNIE。包括百科类,新闻资讯类、论坛对话类数据来训练模型。尤其是论坛对话语料的引入,文章认为,“对话数据的学习是语义表示的重要途径,往往相同回复对应的 Query 语义相似”。基于该假设,ERINE 采用 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话 Pair 对作为输入,引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss 学习对话的隐式关系,通过该方法建模进一步提升模型语义表示能力。
总结来说,ERNIE 优势在于:
(1) 对实体概念知识的学习来学习真实世界的完整概念的语义表示;
(2) 对训练语料的扩展尤其是论坛对话语料的引入来增强模型的语义表示能力。
3. 实验结果
(1) 填空题实验
将 ERNIE 与 BERT 在填空题实验上进行效果比较,从实验结果来看,ERNIE 对实体概念的学习和推理能力更胜一筹:

(2) 多个公开中文数据集
在语义相似度任务(LCQMC),情感分析任务(ChnSentiCorp),命名实体识别(MSRA-NER),检索问答匹配(NLPCC-DBQA)上均较BERT有约0.3%~1.9%不等范围的提高。
ERNIE Github 项目地址:
https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE
参考文献:
网友评论