一.ElMO

背景:Word2vec,glove和fasttext虽然能表示语义和语法信息,但是并不能够区分一词多义

网络建构:

机器学习 语义模型 常用的语义模型_多义

 

 两个单向的LSTM进行拼接,把每层拼接的中间结果之和作为输出

Q:为啥不用BI-LSTM?

避免传播前后向未来要预测的信息

 原理与损失函数:

前向模型:

机器学习 语义模型 常用的语义模型_多义_02

 后向模型:

机器学习 语义模型 常用的语义模型_数据_03

 

 目标函数最大化:

机器学习 语义模型 常用的语义模型_机器学习 语义模型_04

 

 

词向量的表示基于当前的句子上下文

高层LSTM:捕捉上下文的词特征(语义)

底层LSTM:捕捉句法层次信息(语法)

优点:

解决了一词多义
在一些任务上有提升

缺点:

LSTM串行,训练成本大
LSTM对长距离的提取特征不如Transformer

Elmo是对特征进行拼接,没有Bert对特征进行融合效果好

 

二. GPT1

背景:

深度学习需要大量标注数据:通过未标记数据的语言模型+少量标注数据解决这个问题

方法:
半监督方法处理语言理解任务
使用非监督预训练+监督微调

框架:

机器学习 语义模型 常用的语义模型_多义_05

 

框架类似于decoder(除去了encoder-decoder-Multihead Attention),或者说带有Mask的attention

核心思路:

无监督训练:

本质是使用语言模型,前k个词去预测后面的词的最大概率

机器学习 语义模型 常用的语义模型_机器学习 语义模型_06

1.position的权重和输入word embeding的权重(乘以U矩阵)相加

2.同时经过n层transformer

3.最终最大化word embeding和最终层隐藏层对P(u)的预测结果

 

机器学习 语义模型 常用的语义模型_机器学习 语义模型_07

有监督微调:

训练在x输入下y的预测概率:

wy为y的embeding,h为最终隐藏层的向量

机器学习 语义模型 常用的语义模型_语言模型_08

机器学习 语义模型 常用的语义模型_数据_09

 最终整个训练目标是使预训练的损失和微调的损失降到最小:

 

机器学习 语义模型 常用的语义模型_机器学习 语义模型_10

 

 Q:怎么预测?

 如图所示,输入的语句有 Start + text + Extract,则经过transformer后的Extract向量作为输出,经过linear层和softmax层去进行判断

缺点:

是个单向的语言模型(mask),只用前面的词训练后面的词。

 

三.Roberta  vs  Bert

1.Bert的mask是静态,即是每一轮mask的位置都是相同的,而Roberta的每一轮mask是动态的

2.去掉了NSP任务,Roberta任务Nsp任务没什么用,而且使用句子对浪费了输入空间大小

3.Roberta使用了更多的数据,更大的batch size,更长时间去训练

 

四.ALBert vs Bert

1.减少了参数,词表v到隐藏层h的中间,插入了较小的维度E,是V*H的训练量变成了V*E + E*H

2.共享所有层参数,每轮的Attention和FFN都是一样

3.Sop任务替换了NSP任务,负样本换成了句子对的逆序

4.Albert的预测是n-gram片段

5.对比于Bert large的参数:H:1024->4096,L:24->12,也就是说从Bert有深又窄的模型变为又宽又浅的模型

6.bert训练的时候采用了加速机制:90%的句子长度是128;而Albert中90%的句子长度是512