语言模型的一些总结

模型可以分为自回归模型和自编码模型

1 自回归模型(Autoregressive model   AR模型):是统计上一种处理时间序列的方法,用同一个变数例如x的之前各期的数据,也就是x1---xt-1来预测xt的表现,并假设他们为一线性关系。

根据上文内容预测下一个可能跟随的单词,即从左到右的语言模型任务。GPT  ELMO就是典型的自回归语言模型,ELMO尽管看上去上下文都利用到了,但是本质上仍然是自回归语言模型,这个与模型具体怎么实现有关系。ELMO尽管做了两个方向,但分别是两个方向的自回归语言模型,然后把lstm的两个方向的隐节点拼接在一起,来体现双向语言模型这个事情的。所以其实是两个自回归模型以一定的权重将各自方向的向量进行了加权平均值。所以本质上是一个自回归语言模型。

缺点:只能利用上文  或者下文的信息,不能同时利用上下文的信息。就像ELMO貌似是双向,但也仅仅是简单的权重平均值,所以效果并不是特别好。他的优点和下游任务有关系,比如生成式任务,比如文本摘要  等在实际生成内容的时候,就是从左到右。自回归ml天然匹配这个过程。而bert这个DAE模型,再生成类任务过程中,就面临训练过程和应用过程不一致的问题。

2  自编码模型以及改良版的DAE  

对于高纬度的问题,出现的线性学习的pca降维度方法仅仅适用于线性效果比较好的数据。自动编码器是指原始输入经过加权输入input  映射sigmoid 再对反向加权映射回来。

自回归模型只能根据上文预测下一个单词,或者根据下文预测前面的单词。相比而言,bert通过杂输入x中随机mask掉一部分单词,然后预训练过程的主要任务之一为根据上下文来预测mask掉的单词。这是一种典型的Denosing  autoencoder思路。

 

 自编码模型的过程很有趣,他没有使用数据标签来计算误差,所以是无监督学习,其次利用神经网络的双赢层的方式。简单粗暴地提取特征。

为了缓和autoencoder容易过拟合的问题,一个办法是再输入中加入随机噪音。对于输入的处理为以一定的概率再输入中加入随机噪音。以这丢失的数据去计算,并将于原始做误差迭代,这样,网路就学习了这个破损的数据。

 

上图中画×的破损数据作用有两点:

1  通过与非破损数据训练的对比,破损的数据训练出来的weight噪音非常小。降噪因此出名,

2  破损数据一定程度上减轻了训练数据与预测数据的代沟。被擦掉的破损数在一定程度上比较接近测试数据。

 3   bert与DAE MLM的关系

bert是一种基于Transformer  encoder来构建的一种模型,它整个的构架其实是基于DAE  。这部分在bert文章中叫做MLM。MLM严格意义上并不是语言模型,因为整个训练过程并不是利用语言模型来训练。bert随机把一些单词的maks标签来代替,并接着预测mask整个单词。过程其实是DAE的过程。bert主要有两种训练好的模型,分别是6层的coder的bert-small和12层的bert-large。

bert的缺点是不能用来生成数据。

4  bert中b代表 bidirection双向   

              e 代表encoder编码器,transformer中的encoder  

    r  代表representation 词表征

              t   transformer是bert的核心元素

bert中的双向主要体现在mlm训练过程中预测mask是利用到上下文环境,这个主要由transformer的encoder来决定的。

对于模型,输入的是一个被挖空了的句子,而由于transformer的特性,他是会注意到所有的单词,这就导致了模型会根据挖空的上下文来进行预测,这就体现了双向表示,说明bert是一个双向的语言模型。

 

5  bert模型结构参数

bert是基于transformer的模型,但是bert只用到了transformer的encoder部分,多层transformer也就是多个encoder堆叠,googlt发布了两个版本的bert,一个是base版本,一个large版本

base版本   Layer12  Hidder768   attentionhead12    totalparameters  101M

large版本   Layer24  Hidder1024 attentionhead16    totalparameters   340M

 

posted @ 2021-04-28 12:32  大大的海棠湾  阅读(455)  评论(0)    收藏  举报