结论
#1.在attention中q 和 k 的维度相同
在计算a1,i的时候
q1和ki做点乘积
模型中计算attention用的就是
Scaled Dot-Product Attention
#2 d_k=64 在计算attention的时候注意 d_k=64最好要能开根号,16,25,36,49,64,81(在模型训练的时候梯度会更加明显)
为什么要除以根号d(点积,会随着维度的增加而增加,用根号d来平衡)
#3 softmax
当 dim=0 时,是对每一维度相同位置的数值进行softmax运算;
当 dim=1 时,是对某一维度的列进行softmax运算;
当 dim=2 或 -1 时,是对某一维度的行进行softmax运算;(模型中的dim=2)
a1,i 输入是256存在 8个头每个头的维度是64
计算出来的a1,i经过一个softmax(按行运算),然后乘以d_v=64
输入的维度为线性转化之后的维度,d_model=256
此处的输入向量应该是词嵌入空间里的词向量(第一层)
1.d_k=64, d_model=256, d_v=64,(k和v选取可以开根号的数值,模型训练的时候梯度会更加明显)
输入一个256维度的词向量,d_k=64,d_v=64,n_head 8,64*8=512 (q和k的维度相同)
query”,(8头即为64*8,q1,q2,q3,q4,q5,q6,q7,q8,8个矩阵)(q要match其他人)
“key”,(to be matched)
“value”(被提取)
1.x1*q1=wq1
2.q1对k1做attention(得到a1,1,q1,k2=a1,2)
用的是ScaledDotProductAttention
是什么向量呢?有什么用呢(有助于计算attention得分)
训练的参数是这三个权重矩阵