从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(简单记忆)

1.Word Embedding

从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(简单记忆)_第1张图片

什么是语言模型?

为了能够量化地衡量哪个句子更像一句人话,可以设计如上图所示函数,核心函数P的思想是根据句子里面前面的一系列前导单词预测后面跟哪个单词的概率大小(理论上除了上文之外,也可以引入单词的下文联合起来预测单词出现概率)。句子里面每个单词都有个根据上文预测自己的过程,把所有这些单词的产生概率乘起来,数值越大代表这越像一句人话。

CBOW(多对一)与Skip-Gram模型(一对多)

缺点:word embedding无法区分多义词的不同语义

2.从Word Embedding到ELMO

ELMO是“Embedding from Language Models”的简称;()Deep contextualized word representation);ELMO的本质思想是:我事先用语言模型学好一个单词的Word Embedding,此时多义词无法区分,不过这没关系。在我实际使用Word Embedding的时候,单词已经具备了特定的上下文了,这个时候我可以根据上下文单词的语义去调整单词的Word Embedding表示,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。所以ELMO本身是个根据当前上下文对Word Embedding动态调整的思路。

从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(简单记忆)_第2张图片

ELMO采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的Word Embedding作为新特征补充到下游任务中。上图展示的是其预训练过程,它的网络结构采用了双层双向LSTM,目前语言模型训练的任务目标是根据单词  的上下文去正确预测单词  ,  之前的单词序列Context-before称为上文,之后的单词序列Context-after称为下文。图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外  的上文Context-before;右端的逆向双层LSTM代表反方向编码器,输入的是从右到左的逆序的句子下文Context-after;每个编码器的深度都是两层LSTM叠加。这个网络结构其实在NLP中是很常用的。使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络,如果训练好这个网络后,输入一个新句子  ,句子中每个单词都能得到对应的三个Embedding:最底层是单词的Word Embedding,往上走是第一层双向LSTM中对应单词位置的Embedding,这层编码单词的句法信息更多一些;再往上走是第二层LSTM中对应单词位置的Embedding,这层编码单词的语义信息更多一些。也就是说,ELMO的预训练过程不仅仅学会单词的Word Embedding,还学会了一个双层双向的LSTM网络结构,而这两者后面都有用。

缺点:*在特征抽取器选择方面,LSTM弱于Transformer;

          *ELMO采取双向拼接这种融合特征的能力可能比Bert一体化的融合特征方式弱

3.从Word Embedding到GPT

GPT是“Generative Pre-Training”的简称,GPT也采用两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段通过Fine-tuning的模式解决下游任务。其实和ELMO是类似的,主要不同在于两点:首先,特征抽取器不是用的RNN,而是用的Transformer,GPT的预训练虽然仍然是以语言模型作为目标任务,但是采用的是单向的语言模型,所谓“单向”的含义是指:语言模型训练的任务目标是根据  单词的上下文去正确预测单词  ,ELMO在做语言模型预训练的时候,预测单词  同时使用了上文和下文,而GPT则只采用Context-before这个单词的上文来进行预测,而抛开了下文。

缺点:语言模型是单向的

4.Bert模型

Bert采用和GPT完全相同的两阶段模型,首先是语言模型预训练;其次是使用Fine-Tuning模式解决下游任务。和GPT的最主要不同在于在预训练阶段采用了类似ELMO的双向语言模型,第二阶段,Fine-Tuning阶段,这个阶段的做法和GPT是一样的。

详细参见:

https://zhuanlan.zhihu.com/p/49271699

你可能感兴趣的:(nlp)