title: “ERNIE: Enhanced Representation through Knowledge Integration,Yu Sun 2020 【word represatation+BERT+MASKED stages】”
subtitle: “”
date: 2021-1-18
author: “xuqiurong”
tag:
- language representation
-
摘要:我们提出了一个新的语言表达模型,名为ERNIE(Enhanced Representation through Knowledge Integration)。通过知识masking策略学习语言表达,包括entity-lavel masking和phrase-level masking. 实体级策略遮蔽通常由多个单词组成。短语级策略遮蔽整个短语,而整个短语是由多个单词组成的概念单元。
在五个自然语言处理任务上得到了SOTA结果,任务包含natural language processing, semantic similarity, named entity recognition, sentiment analisis, question answering.特别是在完形填空测试中有更强大的知识推理能力。
介绍:这是一篇关于language representation pre-training的文章。
大多数研究中,(ELMO,GPT,BERT…),是通过上下文预测缺失的单词来建立表征模型的。这些模型没有考虑句子中的先验知识。
我们的模型中,a prase or a entity看做one unit,一个单元中的所有word会同时被masked.
我们的贡献是:介绍了一个新的语言模型学习过程,这个模型遮蔽了prases and entities单元,从而从这些单元中隐式的学习句法和语义信息。
在多个NLP任务上取得了SOTA的性能。
Related Work
Context-independent Representation
上下文独立的word embedding方法比如Word2Vec,Glove,通常有几百维,他们为词汇表中每一个单词生成一个word embedding.
Context-aware Representation
但是,一个词在上下文中可以有完全不同的意义。
上下文感知的word embedding方法比如:ELMO,GPT,BERT,MT-DNN,GPT-2。
ELMO将传统的word embedding研究推广到不同的广度,他们建议从语言模型中提取上下文敏感的特征。
GPT通过调整transformer来增强上下文敏感的嵌入。
BERT使用两个不同的预训练任务进行语言建模,BERT随机遮蔽句子中一定比例的单词,并学习预测这些遮蔽词。另外学会了预测两个句子是不是相邻,这个任务尝试对传统语言模型不能捕获的两个句子之间的关系建模。
Heterogeneous Data
异构数据
语义编码器在异构无监督数据上预训练可以提高transfer learning的性能。
The Method
本章详细介绍ERNIE和它的具体实现。首先介绍模型的tranformer encoder, 然后介绍knowledge integration方法。
Transformer Encoder
ERNIE使用multi-layer Transformer作为基本编码器。和GPT,BERT,XLM等模型是一样的。Transformer通过self-attention可以捕获句子中的上下文信息,并且生成一系列上下文embedding。
对于中文语料,我们在CJK Unicode范围中在每个字符周围添加空格。用WordPiece来标记中文句子。对于一个给定的token,其输入表示是通过相应的token, segment, position embedding相加来构造的**(???)**。每个序列的第一个token是特殊的分类embedding (???)。
解释:WordPiece字面理解是把word拆成piece一片一片,其实就是这个意思。WordPiece的一种主要的实现方式叫做BPE(Byte-Pair Encoding)双字节编码。
BPE的过程可以理解为把一个单词再拆分,使得我们的此表会变得精简,并且寓意更加清晰。
比如"loved",“loving”,“loves"这三个单词。其实本身的语义都是“爱”的意思,但是如果我们以单词为单位,那它们就算不一样的词,在英语中不同后缀的词非常的多,就会使得词表变的很大,训练速度变慢,训练的效果也不是太好。
BPE算法通过训练,能够把上面的3个单词拆分成"lov”,“ed”,“ing”,"es"几部分,这样可以把词的本身的意思和时态分开,有效的减少了词表的数量。
BPE的大概训练过程:首先将词分成一个一个的字符,然后在词的范围内统计字符对出现的次数,每次将次数最多的字符对保存起来,直到循环次数结束。
参考例子理解
Knowledge Integration
我们使用先验知识增强我们的预训练语言模型。和直接添加知识embedding不同,我们提出多阶段知识遮蔽策略来集成phrase and entity level 知识到语言表达。
一个句子不同level的知识表达如图2.
-
Basic-Level Masking
第一阶段是使用基本级遮蔽,他把一个句子当做一个基本的语言单元序列,对于英语来说,基本的语言单元是一个单词,对于中文,一个基本的语言单元是一个文字。在训练过程中,我们随机遮蔽句子15%的units, 用句子中其他基本单元作为输入,然后训练一个transformer预测遮蔽的units。基于基本级遮蔽,我们得到一个基本的单词表达。因为它是训练在一个随机遮蔽的基本语义单元,高级语义知识很难建模。 -
Phrase-Level Masking
第二阶段采用短语级遮蔽。短语是指一组单词/文字一起作为一个概念单元,对于英语来说,我们使用词汇分析和分块工具来获取句子中的短语边界,并且使用一些语言依赖分割工具来获取其他余元中的单词/短语信息,比如中文。在短语级遮蔽阶段,我们也使用基本语言单元作为训练输入,不像随机基本单元遮蔽,这次我们在句子中随机挑选一些短语,遮蔽和预测同一个短语中的所有基本单元。 -
Entity_Level Masking
第三个阶段是实体级遮蔽。命名实体包括persons, locations, organizations, products…,可以用一个适当的名字表示,它可以是抽象的,也可以是物理存在的,通常实体包含句子中的重要信息。像在短语遮蔽阶段一样,我们首先**分析(怎么分析的???)**句子中的命名实体,然后遮蔽和预测实体中所有有slots。经过三个阶段的学习,一个单词的表示被丰富的语义信息增强。
Experiments
ERNIE和BERT有相同的模型大小,便于比较。ERNIE使用12 encoder layer, 178 hidden units,12 attention heads.
异构语料预训练
本文采用异构语料进行预训练,我们绘制混合的语料Chinese Wikipedia, Baidu Baike, Baidu news, Baidu Tieba. 句子的数量是21M, 51M, 47M, 54M。
NLP任务上的实验
- NLI
XNLI语料是MultiNLI语料库的众包集合,成对的标注被翻译为14种语言,包括中文,labels包括:矛盾,中性,蕴含,我们遵循BERT中的中文实验。 - Semantic Similarity
大规模中文问题匹配语料库(LCQMC)旨在识别两个句子是不是有相同的意图。数据集中的没对句子都与一个二进制label关联,表明这两个句子有相同的意图,任务可以形式化为预测二进制标签。 - NER
MSRA-NER数据集用于NER任务,其中的实体包类型包括person, place, organization,…,这个任务可以看做是序列标注任务。 - Sentiment Analysis
ChnSentiCorp是判断句子感情的数据集,它包括几个领域的评论比如,宾馆,书籍,电子计算机,这个任务的目标是判断一个句子是正面的还是负面的。 - 检索问答问题
NLPPCC-DBQA数据集是选择相应问题的答案,评估方法包括MRR和F1分数。
实验结果
可以看出ERNIE的效果在所有的任务上优胜于BERT,而且在XNIL,MSRA-NER,ChnSentiCorp,nlpcc-dbqa,大约提高了1%的精确度。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210118152121363.png#pic_center ==500x)
Summary
模型的encoder h部分个BERT是一样的。
模型不是直接将embedding喂入模型,而是分三个阶段masked,增强语义信息。
分析命名实体的时候怎么分析的??? 上一个阶段训练出的单词表达怎么用于下一个阶段???