博文

Attention is all you need

图片
 Transformer Part 1 Multihead Attention and the self attention           self attention是一种参照Global attention生成一种注意力机制,他依旧沿用先前的思想在计算每个输出时参考所有的输入信息,但与Global attention不同的是在Global attention中查询向量q是由上一层循环神经网络的输出与上一层的隐藏层经过叠加获得得向量,也即该层的隐藏层,对于self attention而言我们的查询向量q仅与当前位置的输入向量有关(通过当前位置的输入向量进行线性变换获得)。关于向量k和向量v同样也是,在Global attention中关键字向量k和内容向量v相同都是通过该位置上的输入向量与上一层的隐藏层叠加获得的,也就是本层的隐藏层,但对于self attention 而言关键字向量k和向量v则分别通过各自的权重对该位置的输入进行线性变换后获得。 以图中的token a2为例:        它产生一个query,每个query都去和别的token的key做“ 某种方式 ”的计算,得到的结果我们称为attention score(即为图中的   )。则一共得到四个attention score(attention score又可以被称为attention weight)。        将这四个score分别乘上每个token的value,我们会得到四个抽取信息完毕的向量。        将这四个向量相加,就是最终a2过attention模型后所产生的结果b2。 下图描述了产生query(q),key(k)和value(v)的过程: 一般来说,   和   都同样使用k_dim,   使用v_dim。k_dim和v_dim不一定要相等,但在transformer的原始论文中,采用的策略是,设num_heads为self-attention的头数,则: 计算attention score: 总结一...