Transformer学习
需要训练的矩阵
- Q:Query,要去查询的单词矩阵
- K:Key,等着被查的单词矩阵
- V:Value,实际的特征信息
self-Attention整体计算流程
- 每个词的Q会跟每个其他词的K计算得分Score
- 将Score用Softmax后得到整体加权结果(Softmax之后的比例乘上该词的V,最终的结果是所有词的加权结果之和【z1=0.88v1+0.12v2】)
- 此时每个词看的不只是它前面的序列而是整个输入序列
- 同一时间计算出所有词的表示结果
multi-header机制(8)
- 通过不同的header得到多个特征表达
- 将所有的特征拼接到一起
- 可以通过再一层全连接来降维(乘上全连接矩阵)
multi-header结果
- 不同的注意力结果
- 得到的特征向量表达也不同
堆叠多层self-attention
多层self-attention,计算方法相同
位置信息表达
在self-attention中每个词都会考虑整个序列的加权,所以其出现位置并不会对结果产生什么影响,相当于放哪都无所谓,但是这跟实际就有些不符合了,我们希望模型能对位置有额外的认识。
embedding with time signal = positional encoding(位置信息编码矩阵,余玄或者正玄) + embeddings
Add与Normalize残差连接
使得训练更稳定。残差连接,F(x)+ x 。F(x)与 x比较 ,训练后的特征与原来的特征进行比较,至少不比原来差。
Decoder
Attention计算不同 self-attention与encoder-decoder-self-attention(encoder的K、V,decoder的Q)
加入Mask机制,前面有的能用,后面mask的不用
最终输出结果
得到最终预测结果(Softmax中概率最大的词)
损失函数cross-entropy交叉熵函数