2024.3.12 Attention(注意力机制)
## 怎么做注意力
我(查询对象Q),这张图(被查询对象V)
如:我看这张图,第一眼,我就会去判断哪些东西对我而言更重要,哪些有更不重要(去计算Q和V里的事物的重要度)
重要度计算,其实是不是就是相似度计算(更接近)
Q,$K =k_1,k_2,\cdots,k_N$,(图中所有事物的一个列表)我们一般使用点乘的方式——>求内积
通过点乘的方法计算Q和K里的每一个事物的相似度,就可以拿到Q和$k_1$的相似值$s_1$,Q和$k_2$的相似值$s_2$,Q和$k_n$的相似值$s_n$
做一层$softmax(a_1,a_2,\cdots,a_n)$就可以得到概率$(a_1,a_2,\cdots,a_n)$
为什么要除以$\sqrt{d_k}$:$d_k$一般是头数(如词向量维度为8)
减少数据之间的差距(例如:80,20--->0.8,0.2 80/8,20/8------>10,2.5------>0.1,0.025
softmax:不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。
进而就可以找出哪个对Q而言更重要了
最终我们还得进行一个汇总,当使用Q查询结束了后,Q已经失去了它的使用价值,我们最终还是要拿到这张图片,只不过现在的这张图片多了一些信息(对我而言重要的和不重要的信息)
接下来
$(a_1,a_2,\cdots,a_n)(v_1,v_2,\cdots,v_n)=(a_1v_1,a_2v_2,\cdots,a_nv_n)$
针对计算出来的权重$a_i$ ,对 V中的所有 values 进行加权求和计算,得到 Attention 向量:
一般K=V,在tranformer里,K!=V是可以的,但是K和V之间一定具有某种联系,这样的QK点乘才能指导V哪些不重要,哪些重要
标签:重要,哪些,Attention,cdots,相似,机制,注意力 From: https://www.cnblogs.com/adam-yyds/p/18068741