Transformer学习
传世经典1706.03762 Money is all you need(雾)Money is all I need(确信)
左侧编码,右侧解码,多头自注意力由多个自注意力组成。Add 表示残差连接,用于防止网络退化。Norm用于对每一层的激活值进行归一化。
输入
Transformer 中单词的输入表示 x由单词 Embedding 和位置 Embedding 相加得到。

Input Embedding:单词的 Embedding 有很多种方式可以获取,例如可以采用 Word2Vec、Glove 等算法预训练得到,也可以在 Transformer 中训练得到。
Position Encoding:位置 Embedding 用 PE表示,在Transformer中的计算公式为:

self-attention

输入 (Q, K, V):Q (Query): 查询向量,K (Key): 键向量,V (Value): 值向量
-
Matmul1:计算 矩阵和 矩阵的转置 () 的矩阵乘积:$$Q K^T$$,积的结果代表了查询和键之间的相似度,得到注意力分数矩阵。这个矩阵的每一行代表一个特定的 Query 向量与所有 Key 向量的相似度得分。
-
Scale:将注意力分数除以 √dₖ,防止点积结果过大导致softmax梯度消失。
-
Mask (opt.):在解码器中用于掩盖后续位置的信息,确保当前位置只能关注之前的位置。防止模型“作弊”,确保它只能访问在当前位置之前或允许访问的信息。
-
SoftMax:注意力权重归一化(按行归一化,毕竟是相似度在归一化嘛)
-
Matmul2:将注意力权重与值向量 V 相乘
最后就得到了我们的传世经典:

Q:突然发现一个问题,X是怎么转化为Q,K,V的?
翻了翻相关博客大概是:从X乘线性矩阵WQ,WK,WV计算得到Q,K,V,这三个矩阵都是可训练的
第一次看论文忘了时间,很天才有趣的想法,挺有意思,但今天就到这里早点回去吧