通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?
作者:互联网
说一下Attention中的QKV是什么,再举点例子说明QKV怎么得到。还是结合例子明白的快。
Attention中Q、K、V是什么?
首先Attention的任务是获取局部关注的信息。Attention的引入让我们知道输入数据中,哪些地方更值得关注。
对于Q(uery)、K(ey)、V(alue)的解释,知其然而知其所以然。
首先Q、K、V都源于输入特征本身,是根据输入特征产生的向量,但目前我们现在无需关注是如何产生这组向量的。
V可以看做表示单个输入特征的向量。当我们直接把一组V输入到网络中进行训练,那这个网络就是没有引入Attention的网络。但如果引入Attention,需要将这组V分别乘以一组权重W(Q,K),那么就可以做到关注局部的输入特征。
W(Q,K)是什么?W(Q,K)是计算Q、K之间的相似度。常见的方式有dot-product attention和additive attention,前者是点积运算,后者是通过一个hidden layer的网络计算。
即:V是表示输入特征的向量,Q、K是计算Attention权重的特征向量。它们都是由输入特征得到的。Attention(Q,K,V)是根据关注程度对V乘以相应权重。
Attention机制中的Q,K,V即是,我们对当前的Query和所有的Key计算相似度,将这个相似度值通过Softmax层进行得到一组权重,根据这组权重与对应Value的乘积求和得到Attention下的Value值。
和这个图表现出的一样。QKV这种可以算作Attention机制中最基本的思想。
示例1 Self-Attention之打野捉上单被反杀了怎么办
大部分人在讲Attention时都会讲到Self-Attention,毕竟这也是经典了。
而当我们打游戏出现打野来上被他反杀这种现象时,我们的第一反应是:在NLP中,我们能否通过语言理解去做到,这个他指的是上单还是打野?
那么在Self-Attention中的做法是:
1、根据这个句子得到打野、上、他的embedding,在下图表示为
e
1
、
e
2
、
e
3
e_{1}、e_{2}、e_{3}
e1、e2、e3 。
2、将e通过不同的线性变换Q、K、V。(注意理解:所有的e到Q或K或V都采取相同的线性变换,而e到Q和K和V采取不同的线性变换。)实际上这里把Q、K、V都看做与e一样的话可能更好理解。
3、根据
Q
3
Q_{3}
Q3分别与
K
1
、
K
2
K_{1}、K_{2}
K1、K2计算相似程度即Attention值,得到
A
1
,
3
、
A
2
,
3
A_{1,3}、A_{2,3}
A1,3、A2,3。
4、
A
t
t
e
n
t
i
o
n
V
3
=
(
A
1
,
3
+
A
2
,
3
+
1
)
⋅
V
3
Attention V_{3}=(A_{1,3}+A_{2,3}+1)\cdot V _{3}
AttentionV3=(A1,3+A2,3+1)⋅V3。
A
t
t
e
n
t
i
o
n
V
3
Attention V_{3}
AttentionV3向量中包括了这样的信息:他更可能指代上单,而不是打野。
总结:这里的Q、K、V是根据单词embedding的线性变换得到的。
图有点丑抱歉!
示例2 推荐系统之NASR——我们更关注哪些用户历史数据
用电影这个事例来解释:在一个人的观影生涯中,观看影片的顺序是比较重要的。当推荐系统对某人推荐电影时,这一点就很重要了:我们有这个人观影数据,该怎么判断他看过的哪些电影对他当前的偏好影响最大?
下图是NASR的模型,但我们只需要关注到Attention的部分(红色方框)。
红色方框所做到的是,通过一个Attention网络,得到用户对哪些观看过的电影更感兴趣。我们取出红色方块的下半部分(Local encoder),这部分是该模型中Attention的核心。
我们知道RNN网络可以对序列进行建模。这里的Attention即是:通过RNN网络获得整个序列的建模ht,然后计算ht与hi(i=1,2,3…)的相似度,再而计算相应Attention权重。
这里的Q:整个序列向量ht。K:部分序列(1~i)向量hi 。V:部分序列(1~i)向量hi。
如果hi与ht相似度高,代表序列(1~i)在整个序列建模中起到了重要的作用。
得到的Attention V 向量则包括了用户对哪些观看过的电影更感兴趣的信息。
结果可以理解为最近的观看的电影通常很重要,以前观看的电影也偶尔会很重要。
标签:向量,ht,Attention,通俗易懂,打野,得到,序列,输入 来源: https://blog.csdn.net/weixin_44371912/article/details/116278561