Transformer中的Q,K,V

Query,Key,Value的概念取自于信息检索系统,举个简单的搜索的例子来说。当你在某电商平台搜索某件商品(年轻女士冬季穿的红色薄款羽绒服)时,你在搜索引擎上输入的内容便是Query,然后搜索引擎根据Query为你匹配Key(例如商品的种类,颜色,描述等),然后根据Query和Key的相似度得到匹配的内容(Value)。
来源:https://zhuanlan.zhihu.com/p/48508221

目录

Q,K,V

​编辑多头注意力机制


Q,K,V

可以参考下图,每一个单词都有QKV这三个向量,这里运用了注意力机制,也有是会去求其他单词和该单词的匹配度,那Q表示的就是与我这个单词相匹配的单词的属性,K就表示我这个单词的本身的属性,V表示的是我这个单词的包含的信息本身。

这三个向量都是对embedding线性运算得到的,其实就是一个矩阵乘法。参考第一张图。

 注意力Attention机制的最核心的公式为:softmax(\tfrac{QK^T}{\sqrt{d_{k}}})V。Transformer论文中将这个Attention公式描述为:Scaled Dot-Product Attention。其中,Q为Query、K为Key、V为Value。Q、K、V是从哪儿来的呢?Q、K、V其实都是从同样的输入矩阵X线性变换而来的。我们可以简单理解成:

Q=XW^Q\\ K=XW^K\\ V=XW^V\\ 

用图片演示为: 

X分别乘以三个矩阵,生成Q、K、V矩阵

其中W^QW^KW^V和是三个可训练的参数矩阵。输入矩阵X分别与W^QW^KW^V相乘,生成QKV,相当于经历了一次线性变换。Attention不直接使用X,而是使用经过矩阵乘法生成的这三个矩阵,因为使用三个可训练的参数矩阵,可增强模型的拟合能力。 

 QK^T经过MatMul,生成了相似度矩阵。对相似度矩阵每个元素除以\sqrt{d_{k}}d_{k}K的维度大小。这个除法被称为Scale。当d_{k}很大时,QK^T的乘法结果方差变大,进行Scale可以使方差变小,训练时梯度更新更稳定。

 国外博主的计算流程:

多头注意力机制

为了增强拟合性能,Transformer对Attention继续扩展,提出了多头注意力(Multiple Head Attention)。刚才我们已经理解了QKV、是输入XW^QW^KW^V分别相乘得到的,W^QW^KW^V可训练的参数矩阵。现在,对于同样的输入X,我们定义多组不同的W^QW^KW^V,比如W^Q_0W^K_0W^V_0W^Q_1W^K_1W^V_1和,每组分别计算生成不同的QKV最后学习到不同的参数。

如下图:

 Transformer论文中给出的多头注意力图示:

参考:注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 (zhihu.com) 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值