BERT简述 学习笔记

参考文章:【NLP】Google BERT模型原理详解 - 知乎

1.BERT模型

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LMNext Sentence Prediction两种方法分别捕捉词语和句子级别的representation。

增强encoder所产生向量

其中:

  • Token Embeddings是词向量,第一个单词是CLS标志,可以用于之后的分类任务
  • Segment Embeddings用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务
  • Position Embeddings和之前文章中的Transformer不一样,不是三角函数而是学习出来的

之前的方法中,position embeddings中所用的相对方法(既是该词与其他词的相对距离)是使用三角函数算出来的。

Mask:

在输入句子中随机mask15%的词,然后让模型来预测,此时增加模型对该词上下文的相关性理解。

例如在上面的句子中,我们随机mask掉dog,likes,然后我们在embedding阶段的时候是可以的出来该两个词的根据上下文的预测结果,然后根据这个预测结果来训练模型,增加模型理解上下文的能力。

Next Sentence Prediction:

通过随机的选取一些句子,可以是连续的也可以是不连续的,在pre-trainning阶段对其进行训练,连续的结果为1,不连续的结果为0,以此来训练出模型中对句子连续关系的适应性。

mask与next sentence prediction相结合,可以学习到一个很好的pre-trainning的模型。

Fine-tunning

分类:对于sequence-level的分类任务,BERT直接取第一个[CLS]token的final hidden state,加一层权重后softmax预测label proba:

例如取[CLS]token的final hidden state往后加全连接层做分类任务,用分类标注的数据fine-tunning bert 中的参数和全连接层中的数据。

至于为什么取第一个[CLS]token的final hidden state是因为其他词的final hidden state中都带有对这个词的理解,而对[CLS]token他是没有意思的,所以他的表示直接便是句子的意思的理解。

其他的预测任务有其对应的调整,如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值