Transformer学习(3):多头自注意力机制Multi-Head Self-Attention

回顾

自注意力机制

在这里插入图片描述

多头自注意力机制

多头自注意力机制可以理解为由多个自注意力模块,也就是自注意力头(head)组成
每个head都有自己的QKV矩阵来进行自注意力计算
在这里插入图片描述

计算过程

① 得到各个head所需的QKV:
计算过程中会将原本的 q i , k i , v i q_i,k_i,v_i qi,ki,vi分为多份,分配到对应的head中,一般会均分QKV的向量,这样每个head有了所需的QKV数据,以此每个head都可以使用自注意力机制

下图是有2个head的情况,可以看到将 q , k , v q,k,v q,k,v都均分为了2份,变为 q i , j , k i , j , v i , j q_{i,j},k_{i,j},v_{i,j} qi,j,ki,j,vi,j,其中 i i i代表属于哪个 a a a j j j代表属于哪个head。
在这里插入图片描述在这里插入图片描述
② 各个head执行自注意力操作
分配完成后,就可以在每个head中执行自注意力机制,就可以得到各个head中 a a a的替代 b i , j b_{i,j} bi,j,其中 i i i代表属于哪个 a a a j j j代表属于哪个head。
在这里插入图片描述
③ 拼接各个head的结果
然后将来自同一个 a a a B = { b i , 1 , b i , 2 , . . . , b i , k } B=\{b_{i,1},b_{i,2},...,b_{i,k}\} B={bi,1,bi,2,...,bi,k}进行拼接(Concat)。
在这里插入图片描述
④ 融合结果:
将拼接后的结果进行融合得到 b 1 , b 2 b1,b2 b1,b2
在这里插入图片描述
其中 W o Wo Wo可训练的参数,其大小为 d m o d e l ∗ d m o d e l d_{model}*d_{model} dmodeldmodel,而 d m o d e l d_{model} dmodel q , k , v q,k,v q,k,v原本的尺寸。这里 d m o d e l d_{model} dmodel=4
在这里插入图片描述

为什么要使用多头

  1. 增加模型的学习能力和表达力:通过多个注意力头,模型可以学习到更丰富的上下文信息,每个头可能关注输入的不同特征,这些特征综合起来可以更全面地理解和处理输入序列。
  2. 提高模型性能:实验证明,多头注意力机制相较于单头注意力,往往能带来性能提升。这是因为模型可以通过并行处理和集成多个注意力头的结果,从不同角度捕捉数据的多样性,增强了模型对复杂序列任务的理解和泛化能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值