Transformer学习(2):自注意力机制

回顾

注意力机制

在这里插入图片描述

自注意力机制

在这里插入图片描述

自注意力机制中同样包含QKV,但它们是同源(Q≈K≈V),也就是来自相同的输入数据X,X可以分为 ( x 1 , x 2 , . . , x n ) (x_1,x_2,..,x_n) (x1,x2,..,xn)
而通过输入嵌入层(input embedding) ( x 1 , x 2 , . . , x n ) (x_1,x_2,..,x_n) (x1,x2,..,xn)变为 ( a 1 , a 2 , . . , a n ) (a_1,a_2,..,a_n) (a1,a2,..,an)这些向量,通过X来寻找X中的关键点。

而对于每个 a i a_i ai都会有对应 q i , k i , v i q_i,k_i,v_i qi,ki,vi,Q不再是共用的。
Q = { q 1 , q 2 , . . . , q n } ; K = { k 1 , k 2 , . . . , k n } ; V = { v 1 , v 2 , . . . , v n } Q = \{q_1,q_2,...,q_n\};K = \{k_1,k_2,...,k_n\};V = \{v_1,v_2,...,v_n\} Q={q1,q2,...,qn};K={k1,k2,...,kn};V={v1,v2,...,vn}

在自注意力机制中,以输入数据X自身中的 x i x_i xi作为查询对象(注意力机制中的Q),自身的其他 x x x作为被查询对象V。也就是自己作为查询与被查询对象。

计算过程

① 计算QKV:
要得到QKV,则需要使用三个参数 W Q , W K , W V W_Q,W_K,W_V WQ,WK,WV这三个参数都是可训练的,而且所有 a a a共享。
公式:
q i = a i ∗ W Q q_i = a_i*W_Q qi=aiWQ
k i = a i ∗ W K k_i = a_i*W_K ki=aiWK
v i = a i ∗ W V v_i = a_i*W_V vi=aiWV

在这里插入图片描述
而这个计算过程可以写为矩阵乘法,实现并行计算。
在这里插入图片描述
② 计算Q与K相似度(概率)
每个 q i q_i qi都有一次作为查询对象,所有的 k k k计算与其的相似度(与它相同的概率)
计算相似度的方法与注意力机制是相同,都是q与k进行点乘与scale得到相似度,其中 d k d_k dk为k的尺寸,也就是向量 k k k包含多少个数据
在这里插入图片描述

计算过程如图所示,每个 q i q_i qi都计算与所有 k k k的相似度
,
计算过程也可以表示为矩阵运算
在这里插入图片描述

③ 汇总权重,得到包含注意力信息的结果
计算出Q与K的相似度,也就是得到了对于 q i q_i qi,各个 v i v_i vi的权重
最后将得到的权重 a ^ \widehat{a} a 与每个 v i v_i vi进行点乘运算再将结果相加,就可以得到包含了对于 q i q_i qil来说哪些重要与不重要的数据 b i b_i bi,然后用 b i b_i bi来代替 a i a_i ai
在这里插入图片描述
计算过程也可以转换为矩阵运算
在这里插入图片描述

与注意力机制的不同

注意力机制是一个很宽泛(宏大)的一个概念,QKV 相乘就是注意力,但是他没有规定 QKV是怎么来的,他只规定 QKV 怎么做
Q 可以是任何一个东西,V 也是任何一个东西, K往往是等同于 V 的(同源),K和 V 不同源不相等可不可以。

而自注意力机制,特别狭隘,属于注意力机制的,注意力机制包括自注意力机制的,他不仅规定了 QKV 同源,而且固定了 QKV 的做法,规定了QKV是如何得到的。

总结

自注意力机制是规定了数据自身来作为查询对象与被查询对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值