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(一)_第1张图片


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

2.1 传统的RNN

Bert系列学习之Transformer(一)_第2张图片

 

Bert系列学习之Transformer(一)_第3张图片

  •  RNN 无法并行计算

2.2 传统的word2vec

Bert系列学习之Transformer(一)_第4张图片

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

3、注意力机制的作用

3.1 Transformer架构

Bert系列学习之Transformer(一)_第5张图片

3.2 Attention机制

 Bert系列学习之Transformer(一)_第6张图片

 

Bert系列学习之Transformer(一)_第7张图片

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

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

3.3 self-attention 计算方法

Bert系列学习之Transformer(一)_第8张图片

  • {\color{Green} }W^Q \ \ W^K \ \ W^V 是随机初始化的矩阵

Bert系列学习之Transformer(一)_第9张图片

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

Bert系列学习之Transformer(一)_第10张图片

 

Bert系列学习之Transformer(一)_第11张图片

 

  • Q 的第 i 行表示第 i 个词的查询向量 q_i
  • 分母 为根号 d_k,是为了避免由于向量维度高,导致结果偏大带来的不合理的影响

 

Bert系列学习之Transformer(一)_第12张图片

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

Bert系列学习之Transformer(一)_第13张图片

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

4、Multi-head 的作用

Bert系列学习之Transformer(一)_第14张图片

Bert系列学习之Transformer(一)_第15张图片

Bert系列学习之Transformer(一)_第16张图片

Bert系列学习之Transformer(一)_第17张图片

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

5、堆叠多层Encoder

Bert系列学习之Transformer(一)_第18张图片

6、位置信息编码

Bert系列学习之Transformer(一)_第19张图片

7、LayerNorm 与 残差连接

 

Bert系列学习之Transformer(一)_第20张图片

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

8、Transformer的Decoder

Bert系列学习之Transformer(一)_第21张图片

Bert系列学习之Transformer(一)_第22张图片

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

你可能感兴趣的:(NLP)