Attention 就是对三个 矩阵的运算, Q, K, V
图示: 三个矩阵的如 Fig.1所示
如何获取这三个矩阵向量呢?首先 得到 单词的词向量,然后 和 同一套参数 矩阵做乘法,便得到了 每个单词的 所对应的三个矩阵。
补充一下, transform 当中是如何实现 attention的:hidden_states shape 为: batch_size * sequence_length * embedding_size[768]
![]()
拿上面的例子来说: 如何计算 attention value呢?( 下面是计算 Thinking 对 Machines 的 attention 的value。)
以下是 Q,K,V 的计算方法
刚刚有提到 是一套参数,在transform 当中有个 Multi-Head Attention, 此时 三个矩阵是多套的。
多个 Attention 的输出,进行合并,得到一个输出值。
补充 Transformer 当中 encoder 的 结构图
参考视频