Bert 结构详解

Bert 结构详解

1 Bert 模型结构
Bert 结构详解_第1张图片
图1,我们导入bert 14 分类model,并且打印出模型结构。
https://blog.csdn.net/frank_zhaojianbo/article/details/107547338?spm=1001.2014.3001.5501

Bert 结构详解_第2张图片
                图2

图 2 是BertForSequenceClassification 模型的结构,可以看出 bert Model 有两大部分组成,embeddings 和 encoder。上面我们已经介绍过了transformer,Bert的结构就是 transformer encoder 的结构。 下面我们分别介绍embeddings 和 encoder。
2 bert embedding 层

Bert 结构详解_第3张图片

                图3
由图3 可以看出, word_embeddings 转换器 输入维度是 21128 ,输出维度是 768,21128就是bert字典的大小。 由于max_length 取了512,positional_embeddings 转换器的输入维度是512,它要给每个字加上位置信息。Bert 中token type 只有0 和1,因此,token_type_embeddings 转换器输入为2维。最后 我们把word embedding,positional embedding 和 token_type_embedding 进行向量相加,把最后结果进行 layer Normalization。
3 bert encoder
Bert 结构详解_第4张图片
                图4
如图4 bert encoder 主要分为两部分,自注意力和前馈神经网络。

3.1 bert attention
3.1.1什么是查询向量、键向量和值向量向量?
Bert 结构详解_第5张图片
Bert 结构详解_第6张图片

                图5
在这里插入图片描述Bert 结构详解_第7张图片
                图6
Bert 结构详解_第8张图片
Bert 结构详解_第9张图片
                图7
在这里插入图片描述
3.1.2通过矩阵运算实现自注意力机制
在这里插入图片描述
Bert 结构详解_第10张图片
                图8

在这里插入图片描述
Bert 结构详解_第11张图片
                图9

3.1.3 多头注意力
Bert base 使用的是 12 heads attention,multi head attention扩展了模型专注于不同位置的能力。

Bert 结构详解_第12张图片

                图10

使用 multi head attention,我们为每个头保持独立的查询、键、值权重矩阵。我们使用X乘以WQ/WK/WV 矩阵来产生查询、键、值权值矩阵。

Bert 结构详解_第13张图片

                图11

图 11 与上面自注意力机制计算相同,只需要进行12次不同的权重矩阵运算,我们就可以的到12个不同的Z矩阵。
在这里插入图片描述

                图12

最后把 12个矩阵拼接成一个矩阵

3.1.4 bert多头注意力
Bert 结构详解_第14张图片

                图13

图13 我们再对照一下BertSelfAttention结构。Linear(in_features=768, out_features=768, bias=True) 其实就是query_weight ,key_weight, value_weight 矩阵。Bert base 使用的是 12 heads attention,其query,key,value是64维度。12*64 = 768,这正好和 in_features, out_features 和 embedding size维度想对应。
Bert 结构详解_第15张图片
                        图14

图14 经过attentions 后Z矩阵和input embeddings 求和归一。
3.2 前馈神经网络
Bert 结构详解_第16张图片

                        图15
图15 我们把图14 的结果输入到前馈神经网络中,将其结果和输入求和归一。其输出的结果作为下一个bert layer 的输入。
Bert 结构详解_第17张图片                         图16
图16 大家可以对照bert encoder 和 代码看一下。

4 任务层
Bert 结构详解_第18张图片

                图17
图17 这个模型是bert 14 分类任务,因此最后 连接了一个 Linear 层,输入768 维度,输出14维度。

你可能感兴趣的:(bert,transformer,深度学习)