Bert系列学习之Transformer(一)
目录
1、BERT任务目标概述
2、传统解决方案遇到的问题
2.1 传统的RNN
- RNN 无法并行计算
2.2 传统的word2vec
- 缺点:词向量预训练好后就固定了,同一个词在不同语境中意义不同
3、注意力机制的作用
3.1 Transformer架构
3.2 Attention机制
如上图,如何区分it所指代的关系?
It会和句子中所有词相互融合考虑,最后转换为其他词的权重分配,从而让计算机理解it所指代的词。
3.3 self-attention 计算方法
- 是随机初始化的矩阵
- 每个词都有自己的q,k,v向量,拼接在一起构成了Q,K, V
- 每个词的 都去查询(做内积)其所在上下文(句子)的其他词,并把查询结果进行softmax得到权重系数
- 每个词的表达向量v按照上述计算的权重系数加权求和,得到该词的表达
- Q 的第 行表示第 个词的查询向量
- 分母 为根号 ,是为了避免由于向量维度高,导致结果偏大带来的不合理的影响
- 每个词都与序列其他所有词进行求内积,得分大的表示权重系数大,当前词受到权重大的词的影响较大。
- 优点:每个词的向量编码表示都是独立计算的,可以使用矩阵运算进行并行计算
4、Multi-head 的作用
- Multi-head 类似CNN中的多个卷积核,用于提取多组不同的特征
5、堆叠多层Encoder
6、位置信息编码
7、LayerNorm 与 残差连接
- 残差网络的意义在于:并非经过Add、LayerNorm后结果一定好,残差网络使得模型有保留输入状态的能力。达到“经过该层后结果至少不比输入差”
- 归一化:加速训练收敛,一定程度上防止网络梯度消失
8、Transformer的Decoder
- 加入Mask机制:对于Decoder,当前输入词只知道之前的词,后面的词并不知道,所以当前词之与前面的词进行self-attention,之后的词被隐藏起来
- Encoder末端输出作为Decoder的部分输入
- 除了上述两点,其他部分Decoder与Encoder一致