Transformer中的注意力机制

Self-Attention自注意力机制

Attention的计算公式如下所示。

假设输入数据为x1和x2,首先通过Input Embedding层将其映射到更高的维度上,得到a1和a2。然后分别将a1和a2通过Wq、Wk和Wv三个参数矩阵生成各自对应的qkv,即q1、k1、v1和q2、k2、v2(Wq、Wk和Wv对于所有的的a都是相同的)。

其中qkv的计算公式如下所示,均为矩阵乘法。

求解qkv的过程可以并行化计算(a直接进“行”拼接)

然后进行match操作,即用a1的q1分别和其他ai的ki进行计算(包括a1的q1与自己的k1进行计算),然后再用a2的q2和其他ai的ki进行计算……直到将所有a的q都与其他ai的ki进行了计算。计算公式如下,其中d表示k的维度(本例中k的维度为2,因此d=2)

然后分别将每个a得到的所有α进行Soft-max处理,得到新的α,新的α表示的就是v的权重

此过程也可以并行化进行(其中q直接进“行”拼接,k转置之后进行“列”拼接

之后让每个ai的所有新α与对应的v相乘,再将结果相加得到bi,即

此计算过程也可以并行化进行计算。

至此,Attention的计算公式完成。于是可以把Self-Attention抽象成一个模块,输入a得到b。

Multi-Head Attention多头注意力机制

1个head的情况。

对于多个head的情况,求每个输入的qkv的过程和self-Attention是一样的,不同之处是求完每个输入的qkv之后,要根据head的数量对所求得的qkv进行拆分。

然后再将得到的所有qkv进行划分,分到不同的head下

然后对每一个head执行self-Attention中的操作

然后再将每个head得到的结果进行拼接。

之后通过一个参数矩阵Wo得到最终的b。

Position REncoding位置编码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值