参考:Transformer模型详解(图解最完整版) - 知乎
注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 - 知乎
0.为什么使用三个可训练的参数矩阵生成Q K V因为,他们可以增强模型的拟合能力呗!
其中,WQ,WK和WV是三个可训练的参数矩阵。输入矩阵X分别与WQ,WK和WV相乘,生成Q、K和V,相当于经历了一次线性变换。Attention不直接使用X,而是使用经过矩阵乘法生成的这三个矩阵,因为使用三个可训练的参数矩阵,可增强模型的拟合能力。

就是词嵌入和位置嵌入的加和。
2.将向量矩阵传入N个编码块(N可以为6!),之后得到句子所有单词的编码信息矩阵 C。如下图。单词向量矩阵用 Xn×d 表示, n 是句子中单词个数,d 是表示向量的维度 (论文中 d=512)。每一个 Encoder block 输出的矩阵维度与输入完全一致。
3.如下图:【目前不太理解!】

4.自注意力机制

5.

上图是 Self-Attention 的结构,在计算的时候需要用到矩阵Q(查询),K(键值),V(值)。在实际中,Self-Attention 接收的是输入(单词的表示向量x组成的矩阵X) 或者上一个 Encoder block 的输出。而Q,K,V正是通过 Self-Attention 的输入进行线性变换得到的。
Softmax(QK)就是求权重的体现:如何理解attention中的Q,K,V? - 知乎
注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 - 知乎
Q、K可以求出注意力权重配比值!
我们知道,向量点积的值可以表征词与词之间的相似性,而此处的“整个序列”包括The这个词自己(再一次强调这是Self-Attention)。
所以最后输出的词的表示,其“主要成分”就主要地包含它自身和跟它相似的词的表示,其他无关的词的表示对应的权重就会比较低。


Add指 X+MultiHeadAttention(X),是一种残差连接,通常用于解决多层网络训练的问题,可以让网络只关注当前差异的部分,在 ResNet 中经常用到:

注意 Mask 操作是在 Self-Attention 的 Softmax 之前使用的,下面用 0 1 2 3 4 5 分别表示 "
下图,就是单词0只能使用单词0的信息,单词1可以使用单词0,1的信息;
也就是只能使用之前的信息。


还是不太懂呀!!