文档介绍:自然语言处理近来主要成果
——从ELMo到Transformer再到Bert
C
ontents
目录
01
02
B是自然语言中经常出现的现象,也是语言灵活性和高效性的一种体现。
多义词对Word Embedding来说有什么负面影响?如下图所示,比如多义词Bank,有两个常用含义,但是Word Embedding在对bank这个单词进行编码的时候,是区分不开这两个含义的。因为它们尽管上下文环境中出现的单词不同,但是在用语言模型训练的时候,不论什么上下文的句子经过word2vec,都是预测相同的单词bank,而同一个单词占的是同一行的参数空间,这导致两种不同的上下文信息都会编码到相同的word embedding空间里去。所以word embedding无法区分多义词的不同语义,这就是它的一个比较严重的问题。
01
ELMo
PART
ELMo简介——优势和步骤
ELMo
PART
01
ELMo的两个优势:
(1)ELMo能够学****到词汇用法的复杂性,比如语法、语义。
(2)ELMo能够学****不同上下文情况下的词汇多义性。
ELMo的两个步骤:
ELMO采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的Word Embedding作为新特征补充到下游任务中。
该阶段在大文本语料库上预训练了一个深度双向语言模型(biLM),然后把根据它的内部状态学到的函数作为词向量。
ELMo:预训练阶段
ELMo
PART
01
预训练阶段——双层双向模型
ELMo
PART
01
下图展示的是预训练过程。它的网络结构采用了双层双向LSTM,目前语言模型训练的任务目标是根据单词 Wi 的上下文去正确预测单词 Wi ,Wi 之前的单词序列Context-before称为上文,之后的单词序列Context-after称为下文。
图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外 Wi 的上文Context-before;右端的逆向双层LSTM代表反方向编码器,输入的是从右到左的逆序的句子下文Context-after;每个编码器的深度都是两层LSTM叠加。
预训练阶段——结果
ELMo
PART
01
这个网络结构其实在NLP中是很常用的,使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络。如果训练好这个网络后,输入一个新句子 Snew ,句子中每个单词都能得到对应的三个Embedding:
Embedding;
,这层编码单词的句法信息更多一些;
,这层编码单词的语义信息更多一些。
也就是说,ELMO的预训练过程不仅仅学会单词的Word Embedding,还学会了一个双层双向的LSTM网络结构,而这两者后面都有用。
在上一阶段中,我们训练好的网络结构,如何给下游任务使用呢?在本阶段我们以SQuAD(斯坦福问答数据库)问题为例,来说明ELMo模型在下游任务中的使用。
下游任务的使用
ELMo
PART
01
下游任务的使用——QA问题
ELMo
PART
01
在QA问题中,对于问句X,我们可以先将句子X作为预训练好的ELMO网络的输入,这样句子X中每个单词在ELMO网络中都能获得对应的三个Embedding,之后给予这三个Embedding中的每一个Embedding一个权重s,这个权重可以在下游任务调整时学****得来,根据各自权重累加求和,将三个Embedding整合成一个。然后将整合后的这个作为X句在自己任务的那个网络结构中对应单词的输入,以此作为补充的新特征给下游任务Embedding使用。对于上图所示下游任务QA中的回答句子Y来说也是如此处理。因为ELMO给下游提供的是每个单词的特征形式,所以这一类预训练的方法被称为“Feature-based Pre-Training”。
ELMo效果——应用于6个NLP任务
ELMo
PART
01
文章对QA问题,文本蕴涵问题,语义角色标注问题,共指消解问题,命名实体抽取问题,情绪分析问题这六个NLP任务进行了ELMo模型的嵌入,最终得到的效果都要比原模型有所提高。
02
Bert
目前效果