Bert模型的面试版原理总结

Bert为什么这么火

Bert的核心是一个叫transformers的结构,在这个模型中有一个更好的表达的词。官方有预训练模型。
序列网络模型,输入是一个序列,输出是一个序列,里面有编码器解码器,Bert里最核心的架构是transformers,因为传统的RNN是串行的,所以Transformer在串行的基础上引入并行,加快运算速度。
处理并行的那部分就是注意力机制(self-attention机制),它把需要强调的词自动的给予更大的权重。

Bert在与之前的传统词向量转换word2vec模型相比,Bert加入了上下文进行分析,不同的词在不同的语境中表达的意思不一样,让词之间有更好的解释性。

Attention机制,就是如何让计算机去注意到哪些关键特征和信息,是模型的任务目标。在Bert里不是人为的给权重而是计算机自动的基于上下文给权重,就是self-attention。其原理为,对一句话中的一个词编码(word embedding),不是孤立的对这一个词进行编码,而是把一句话中的所以词的占比进行分析,一个词融合了整个句子信息,当前的上下文语境融入到这一个词向量中。

Bert中的self-attention机制

self-attention

  1. embedding,经过编码后得到向量。
  2. 想得到当前词语上下文的关系,可以当作是加权。
  3. 构建三个矩阵,Queries、Keys、Values,分别查询当前词和其他词的关系,以及特征向量的表达。

计算: q与k内积表示多匹配,内积越大,相关性越高,关系越近。得到的结果做softmax就是上下文的结果,softmax就是将分值转换成概率,为了防止内积方差过大,刨除向量维度造成的影响。

  1. self-attention做的是矩阵乘法,就是一个句子的词全部一起算出来,这个就是并行加速。

Q、K、V矩阵

Q:查询的,词之间的关系
K:等被查的
V:实际的特征信息
q*k 和内积有关,相关程度。内积越大,相关性越高,关系越近。

softmax

分值转化:exp映射,归一化。先做exp再normarization。输出值转换为范围在[0, 1]和为1的概率分布。
Bert中的softmax
softmax后乘上他的value。一个词和这个句子中的所有词做这个操作最后加起来,得到最终的分数。

Attention整体计算流程

  1. 每个词的Q会跟每一个K计算得分
  2. softmax后就得到整个加权结果
  3. 此时每一个词看的不只是它前面的序列而是整个输入序列
  4. 同一时间计算出所有词的表示结果

Multi-head机制

每个self-attention后有多头机制。
用multi-headed机制综合多个特征,拼在一起进行个降维。不一样的注意力机制得到的特征向量表达也不同。

● 通过不同的head得到多个特征表达
● 将所有特征拼接在一起
● 可以通过再一层全连接来降维
Multi-head机制
multi-head机制在Bert中的位置

位置编码(Positional Encoding)

为了让模型捕捉到单词的顺序信息,添加位置编码向量信息(POSITIONAL ENCODING),位置编码向量不需要训练,它有一个规则的产生方式。

在偶数位置,使用正弦编码,在奇数位置,使用余弦编码。最后把这个Positional Encoding与embedding的值相加,作为输入送到下一层。

Layer Normalization

在transformer中,每一个子层(self-attetion,ffnn)之后都会接一个残差模块,并且有一个Layer normalization。
Layer Normalization
Normalization的目的,那就是把输入转化成均值为0方差为1的数据。在把数据送入激活函数之前进行normalization(归一化),因为不希望输入数据落在激活函数的饱和区。

Decoder层

以上为Encoder的部分,把句子向量化,特征转化。
在Decoder的部分,应用到Mask技术。

mask 表示掩码,它对某些值进行掩盖,使其在参数更新时不产生效果。Transformer 模型里面涉及两种 mask,分别是 padding mask 和 sequence mask。

其中,padding mask 在所有的 scaled dot-product attention 里面都需要用到,而 sequence mask 只有在 decoder 的 self-attention 里面用到。

输出层

decoder层结束后,在结尾再添加一个全连接层和softmax层。假如我们的词典是1k个词,那最终softmax会输入1k个词的概率,概率值最大的对应的词就是我们最终的结果。

Reference

废柴当自强 一文读懂BERT(原理篇)
Bert论文
Bilibili 2019 NLP(自然语言处理)之Bert课程

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值