Bert系列学习之Transformer(一)

目录

1、BERT任务目标概述

2、传统解决方案遇到的问题

2.1 传统的RNN

2.2 传统的word2vec

3、注意力机制的作用

3.1 Transformer架构

3.2 Attention机制

3.3 self-attention 计算方法

4、Multi-head 的作用

5、堆叠多层Encoder

6、位置信息编码

7、LayerNorm 与 残差连接

8、Transformer的Decoder


 

 


1、BERT任务目标概述

Bert系列学习之Transformer(一)


2、传统解决方案遇到的问题

2.1 传统的RNN

Bert系列学习之Transformer(一)

 

Bert系列学习之Transformer(一)

  •  RNN 无法并行计算

2.2 传统的word2vec

Bert系列学习之Transformer(一)

  • 缺点:词向量预训练好后就固定了,同一个词在不同语境中意义不同

3、注意力机制的作用

3.1 Transformer架构

Bert系列学习之Transformer(一)

3.2 Attention机制

 Bert系列学习之Transformer(一)

 

Bert系列学习之Transformer(一)

如上图,如何区分it所指代的关系?

It会和句子中所有词相互融合考虑,最后转换为其他词的权重分配,从而让计算机理解it所指代的词。

3.3 self-attention 计算方法

Bert系列学习之Transformer(一)

  • Bert系列学习之Transformer(一)Bert系列学习之Transformer(一) 是随机初始化的矩阵

Bert系列学习之Transformer(一)

  • 每个词都有自己的q,k,v向量,拼接在一起构成了Q,K, V
  • 每个词的 Bert系列学习之Transformer(一) 都去查询(做内积)其所在上下文(句子)的其他词,并把查询结果进行softmax得到权重系数
  • 每个词的表达向量v按照上述计算的权重系数加权求和,得到该词的表达 Bert系列学习之Transformer(一)

Bert系列学习之Transformer(一)

 

Bert系列学习之Transformer(一)

 

  • Q 的第 Bert系列学习之Transformer(一) 行表示第 Bert系列学习之Transformer(一) 个词的查询向量 Bert系列学习之Transformer(一)
  • 分母 为根号 Bert系列学习之Transformer(一),是为了避免由于向量维度高,导致结果偏大带来的不合理的影响

 

Bert系列学习之Transformer(一)

  • 每个词都与序列其他所有词进行求内积,得分大的表示权重系数大,当前词受到权重大的词的影响较大。

Bert系列学习之Transformer(一)

  • 优点:每个词的向量编码表示都是独立计算的,可以使用矩阵运算进行并行计算

4、Multi-head 的作用

Bert系列学习之Transformer(一)

Bert系列学习之Transformer(一)

Bert系列学习之Transformer(一)

Bert系列学习之Transformer(一)

  • Multi-head 类似CNN中的多个卷积核,用于提取多组不同的特征

5、堆叠多层Encoder

Bert系列学习之Transformer(一)

6、位置信息编码

Bert系列学习之Transformer(一)

7、LayerNorm 与 残差连接

 

Bert系列学习之Transformer(一)

  • 残差网络的意义在于:并非经过Add、LayerNorm后结果一定好,残差网络使得模型有保留输入状态的能力。达到“经过该层后结果至少不比输入差”
  • 归一化:加速训练收敛,一定程度上防止网络梯度消失

8、Transformer的Decoder

Bert系列学习之Transformer(一)

Bert系列学习之Transformer(一)

  • 加入Mask机制:对于Decoder,当前输入词只知道之前的词,后面的词并不知道,所以当前词之与前面的词进行self-attention,之后的词被隐藏起来
  • Encoder末端输出作为Decoder的部分输入
  • 除了上述两点,其他部分Decoder与Encoder一致