1.注意力(我们人的关注点、区分重要不重要)
看上面这张图,肯定首先关注的是婴儿的脸部,文本的标题以及文章的首句等位置。为什么?因为红色区域表明视觉系统更加关注的目标。注意力机制就是这么来的。
2.实现原理(让机器和我们人类一样)
2.1Q、K、V是什么?啥意思?
(1)Query(查询)(Q):查询向量用于获取与其他向量的相关性。在注意力机制中,Query表示我们关注的目标或需要进行比较的向量。
(2)Key(键)(K):键向量用于计算Query和Value之间的相似性。在注意力机制中,Key用于衡量Query与其他向量之间的关联程度。
(3)Value(值)(V):值向量包含了需要根据Query进行加权聚合的信息。在注意力机制中,Value表示我们希望根据Query的重要性来加权聚合的向量。
这是相关的解释,看完和没看一样。通俗的说:Q是查询对象,V是被查对象,K看上面的解释。
2.2上图的解释
重要度计算(计算QV里事物的重要性)—>相似度计算(点乘 求内积F(Q,K))—>s1,s2,s3,s4(通过点乘求内积的方式计算Q,K里的每个事物的相似度,就可以得到Q和K的相似值是s1,s2,s3,s4)—>经过一个标准化操作(softmax函数),得到了表示不同K重要性的权重a1,a2,a3,a4 —>
V= (v1,v2,v3,v4 )
(a1,a2,a3,a4) *+ (v1,v2,v3,v4) = (a1*v1 + a2*v2 + a3*v3 + a4*v4) = V'=(v'1,v'2,v'3,v'4)
得到的V',这就包含了哪些重要哪些不重要的信息,此时原来的K和V'一定是有联系的。
总结:注意力机制通过计算Query和Key之间的相似性,来决定在对值V进行加权聚合时分配多少注意力。具体而言,通过计算Query和Key的点积,然后经过一个标准化操作(例如softmax函数),得到了表示不同Key重要性的权重。然后,将这些权重与对应的Value进行加权求和,得到最终的表示。
3.举例说明
Q是一个看中颜值的女生,关注颜值。
K是一个男生的各方面的体征,身高、肤色、发型、颜值、穿搭等等。
V就是这个男生本身。
首先女生的注意力是在颜值上。所以Q就是女生决定对男生的哪一个体征给予更多的关注。
而K包括了很多的体征,所以K,Q做点乘求内积,判断男生的每个体征与Q之间的相关性。
利用这些相关性,最后,女生可以将男生的体征加权聚合,最终形成女生在看到男生时在感知上的整体体验。