当前位置:   article > 正文

Google BERT理解_decorder和encorder的模型

decorder和encorder的模型

论文:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》

一、模型介绍

BERT采用了双向Transformer Encoder来作为语言模型(《Attention is all you need》论文中的transformer结构),采用了两种预训练方法:

1)Masked LM(随机mask 15%的token)

2)Next Sentence Prediction(预测下一个句子)

二、模型对比

1)BERT:采用了Transformer Encoder,如图中所示,通过前后全部时刻的输入来计算每个时刻attention值

2)OpenAI GPT: 采用了Transformer Encoder,但区别在于OpenAI GPT为单向语言模型,仅通过当前时刻之前的输入来计算每个时刻的attention值

3)ELMo:分别训练前向语言模型与后向语言模型,将其联合表示(即两个单向lstm的拼接)

对比来看,BERT的效果更好,能够捕捉全文信息。

三、Input Embedding

首先介绍模型的输入,如下图所示,输入为三个embedding的求和,分别是:

1)Token embedding:词向量

2)Segment Embedding:区分不同句子的标志(预训练中需要预测是否为下一个句子)

3)Position Embedding :单词的位置信息

四、预训练

1. Task #1: Masked LM

为了训练双向特征,这里采用了Masked Language Model的预训练方法,随机mask句子中的部分token,然后训练模型来预测被去掉的token。

具体操作是:

随机mask语料中15%的token,然后将masked token 位置输出的final hidden vectors送入softmax,来预测masked token。

这里也有一个小trick,如果都用标记[MASK]代替token会影响模型,所以在随机mask的时候采用以下策略:

1)80%的单词用[MASK]token来代替

my dog is hairy → my dog is [MASK]

2)10%单词用任意的词来进行代替

my dog is hairy → my dog is apple

3)10%单词不变

my dog is hairy → my dog is hairy

2. Task 2#: Next Sentence Prediction

为了让模型捕捉两个句子的联系,这里增加了Next Sentence Prediction的预训练方法,即给出两个句子A和B,B有一半的可能性是A的下一句话,训练模型来预测B是不是A的下一句话。

训练模型,使模型具备理解长序列上下文的联系的能力。

五、预训练的模型

1)BERT-Base: L = 12, H = 768, A = 12, Total parameters = 110M

2)BERT-Large: L = 24, H = 1024, A = 16, Total parameters = 340M

L为Transformer层数,H为Transformer维度,A表示Heads的数量,Total parameters 为参数大小。

六、任务微调

比如(a)sequence-level的分类任务,取第一个[CLS]token的隐层输出,输入softmax,做class label分类。

七、总结

BERT被称为NLP领域里程碑式的突破,在11项NLP任务中达到了state-of-art,它主要结构为双向Transformer结构,并通过两个预训练任务来进行模型的训练。可以捕捉长距离的上下文信息。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/704120
推荐阅读
相关标签
  

闽ICP备14008679号