注意力机制的本质|Self-Attention|Transformer|QKV矩阵

Attention Is All You Need

                                                                -Ashish Vaswani

 


 

1.Self-Attention是个啥,自己注意自己?

2.Q、K、V又是什么?

3.为什么它们要叫query、key、value,它们有什么关系?

先来看一个问题,假设现在有一个键值对(Python字典)

自然地,推断其体重在43~48之间,但是还需要定量计算体重预测值。

由于57到56、58的距离一样,所以一种方法是取它们对应体重的平均值。

因为57距离56、58最近,我们自然会非常“注意”它们,所以分给它们的注意力权重各为0.5。不过没有用上其它的(Key,Value),似乎应该调整一下注意力权重,但权重如何计算? 

假设用a(q,k)来表示q与k对应的注意力权重,则体重预测值f(q)为

a是任意能刻画相关性的函微,但需要归一化,我们以高斯核(注意力分数)为例(包括softmax函数) 。

通过这种方式我们就可以求得体重估计值,这也就是注意力机制(Attention)。

 所以把上面的q叫做query(请求),k叫做key(键),v叫做value(值) 。

q、k、v都为多维的情况也是类似的 ——假设现在给出的q是二维的

 

由于q1和k1都是二维向量 

注意力分数a(q,ki)可以是以下几种

 以点积模型为例

q2也是类似的,不再赘述

为了方便,用矩阵来表示

 

 为了缓解梯度消失的问题,还会除以一个特征维度

把这一系列操作形象地称为缩放点积注意力模型(scaled dot-product attention) 

 

4.如果Q、K、V是同一个矩阵会发生什么? 

没错,那就是自注意力(Self-Attention)

 

用X来表示这个矩阵

则可以表示为如下式子

 但在实际运用中可能会对X先做不同的线性变换再输入,比如(Transformer)模型

 

这可能是因为X转换空间后能更加专注注意力的学习。 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值