self-attention中的QKV机制

之前有写过attention和transformer的理解,但是对于self attention中的qkv一直理解的不够透彻,直到今天看了李宏毅的视频才理解,所以记录一下。
所谓QKV也就是Q(Query),K(Key),V(Value)

首先回顾一下self-attention做的是什么:

  1. 所谓自注意力,也就是说我们有一个序列X,然后我们想要算出X对X自己的注意力,也即X中的每个时间点与其余时间点的相关性(在注意力机制中表现为相似性),从而得到一个注意力矩阵。
  2. 算出注意力矩阵后再将之用在序列X上来得到各个时间点的加权和,也即将其余各个时间点的信息都融合到了各个时间点中。

所以怎么办到这一点呢?这就是QKV的用处所在:

  1. 所谓的QKV本质上是代表了三个独立的矩阵,他们都是我们原本的序列X做了不同的线性变换之后的结果,都可以作为X的代表。
  2. 然后为了得到注意力矩阵,我们肯定是先需要两个X的代表矩阵,因为计算相似度至少要有两个向量才可以计算,因此Q和K就是用于这个工作的。计算相似度有很多方式,可以直接做点乘,也可以用个MLP来计算。然后再将结果经过一个softmax来保证输出的是attention weight,也即保证和为1,否则用这个attention matrix的时候数据的scale会不断的变化。
  3. 得到了attention matrix之后要做的就是将这个weight用在X上,也即我们剩下的那个vector V身上。做法就是将attention matrix和V相乘求和即可得到最终结果。

参考链接:B站-李宏毅2020深度学习
推荐阅读:知乎-超详细图解Self-Attention

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值