关于BERT的理解

Bert:Bidirectional Encoder Representation from Transformers(深度双向预训练Transformer)

在这里插入图片描述
Bert是基于Transfomer的深度双向语言表征模型,利用了Transformer结构构造了一个多层双向的Encoder网络。主要特征是所有层都结合上下文语境进行预训练。
OpenAI GPT:采用的是Transformer的Decoder,每个时刻的计算只能依据前面时刻输入的监督型单向语言模型。
ELMO:采用的是LSTM,采用的是门限技术,控制记忆门和遗忘门,这个模型可以学习到语言前后的语义,但是输出依赖于前面的输入,决定了ELMO的网络层数不会太多,会造成大量耗时,决定了提取的特征有限。
Pre-Training:Bert基于Transformer的深度双向语言表征能力的Encoder网络,一次性读取整个文本序列,结合上下文预训练一个大量数据集,构成一个预训练的通用模型
Fine-tuning:Bert是一个用Transformer的Encoder层作为特征提取器的深度双向预训练的语言模型。这是通过google词汇预训练的一个无监督模型;是一个通用模型,在完成训练后,通过特定的下游任务,加上线性叠加层和softmax进行分类、翻译、问答等监督任务;
在这里插入图片描述

Bert预训练

在这里插入图片描述

Bert的输入相比较其它模型,采用了三个Embedding相加的方式:

bert中的三个embedding主要包括:词的Embedding(Token Embedding),位置Embedding(表示每个词的相对位置或绝对位置),句子Embedding(表示这个词所在的句子位置),将三个Embedding求和之后传输到下一层。

Token Embeddings
  • 针对单个字符构成为本的细粒度Token Embeddings,在输入句子进行embedding之前,需要先将两个特殊字符:开头[cls]和结尾[sep]加入到句子中
  • bert在处理英文文本时只需要30522个词,Token Embeddings层会将每个词转换为786维的向量;
    在这里插入图片描述
Segment Embedding
  • bert处理句子对的分类任务时,判断两个句子的依据
  • segement层有两种向量表示,前一个向量把0赋值给第一个句子的每个Token,后一个向量把1复制给每个Token。问答系统任务是要预测下一个句子,因此输入的是关联的句子对。分类只有一个句子,segment embeddings全部就为0
    在这里插入图片描述
Position Embedding

- 在Transformer的encoder中,只是考虑了词意,不考虑位置信号,同一个词在不同的句子位置中表现的意义不相同,但是encoder过程中向量包含的意思相同,为了避免这种情况,因此需要对每个词向量中加入位置信息(相对位置和绝对位置),保证不同位置的相同词含义不相同
在这里插入图片描述
注:BERT的最长序列是512个Token,长度超过512会被截取,模型的输入是将Token Embeddings + Segment Embeddings + Position Embeddings 求和得到的一个Embeddings作为模型的输入。

Bert中预训练的两个任务:

任务一: Masked language Model-随机遮住部分的Token,模型通过上下文去预测这个masked的词,通过调整模型参数使得预测的正确率尽可能大;
任务二: 在数据集中抽取两个句子A和B,以及负采样的方法采集其他句子,判断B是否是A的下一句;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值