深度解析transformer(总结精华)
参考原博客:https://wmathor.com/index.php/archives/1438/
—
Encoder
1.Embedding
矩阵行表示有多少个次,列表示dimension(embedding的维度)
2. Positional Encoding
结论:随着维度方向增大,sin\cos的震幅会越来越平缓。
结论:随着维度增大,振幅会越来越平缓
2. Self Attention Mechanism
x1/x2/x3/…/xm表示word,q乘每个ki做softmax后,作为该word观察到各个word的权重。
C和x的维度一模一样
Q是nxd矩阵,K是nxd矩阵
self-attetion的计算复杂度:
为什么要除根号d?防止输入softmax的数过大,偏导数接近0,梯度消失
注意:Padding Mask
每个batch-size里面的维度应该是同样的
3.Add&Normalization![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5991ed1dbea1c3fa0bf886190bd10962.png)
X_embedding就是浅绿色那个x1(X_position+X_word-embedding)
4.Feedforward
Decoder
1.Masked Self-Attention
前面的词看不到后面的