ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?

2021-04-29 23:02:29  阅读:683  来源: 互联网

标签:向量 ht Attention 通俗易懂 打野 得到 序列 输入


说一下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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有