通俗易懂: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值。
通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?_第1张图片

和这个图表现出的一样。QKV这种可以算作Attention机制中最基本的思想。

示例1 Self-Attention之打野捉上单被反杀了怎么办

大部分人在讲Attention时都会讲到Self-Attention,毕竟这也是经典了。
而当我们打游戏出现打野来上被他反杀这种现象时,我们的第一反应是:在NLP中,我们能否通过语言理解去做到,这个他指的是上单还是打野?
通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?_第2张图片

那么在Self-Attention中的做法是:
1、根据这个句子得到打野、上、他的embedding,在下图表示为 e 1 、 e 2 、 e 3 e_{1}、e_{2}、e_{3} e1e2e3
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} K1K2计算相似程度即Attention值,得到 A 1 , 3 、 A 2 , 3 A_{1,3}、A_{2,3} A1,3A2,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中的Q、K、V是什么?怎么得到Q、K、V?_第3张图片

红色方框所做到的是,通过一个Attention网络,得到用户对哪些观看过的电影更感兴趣。我们取出红色方块的下半部分(Local encoder),这部分是该模型中Attention的核心。
通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?_第4张图片

我们知道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 向量则包括了用户对哪些观看过的电影更感兴趣的信息。
通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?_第5张图片

结果可以理解为最近的观看的电影通常很重要,以前观看的电影也偶尔会很重要。

你可能感兴趣的:(人工智能,深度学习,算法,attention,推荐系统)