重新梳理Attention Is All You Need(Transformer模型): Attention=距离,权重,概率;Multi-Head attention;RNN

Attention并非transformer原创,但是transformer把Attention置为核心地位,取得了巨大的成功!我来尝试理解并介绍一下Attention注意机制。

Attention的目的是:提取特征,获得权重。

Attention是什么:提取特征(权重)的手段。

比如:给定一张图片,人类大脑很快就会把注意力放在最具辨识度的部分。换句话就是提取了最主要的信息。

相比于之前的RNN(循环神经网络),目标都是一样提取特征,获得权重,但是Attention明显技高一筹。

RNN(循环神经网络):

明显看得出,RNN是串行的,Y2依赖X1,Yn依赖Xn-1。字符越长,预测结果越差。比如直接输入一本书,一个网页,所有的字符都是依次串行操作,速度慢;文章越长,预测(权重)就越差。

Attention注意力机制:

每一个词都跟后面所有的次做attention运算,如下图,your跟所有的词做运算,your,cat,is,a, lovely,cat。cat再跟所有的词做一遍运算。

主要优点:

1,这样可以并行运算,互不干扰,充分利用GPU并行计算的能力。运算速度比RNN快很多。

2,特征提取能力特别强。样本越大,比如一本书,一个网页,算的attention权重就越精确,预测结果就越好。

因此给GPT准备了海量的互联网数据,可以提高预测结果。

Attention怎么算呢?如何理解 Query,Key,Value?

如何理解Query,key,Value呢?

query是一个问题。Key和Value是配对。

举例:

Key=身高        Value=体重

k1 = 160           v1= 50

k2 = 170           v2 = 60

k3 = 180            v3 = 70

请问Query = 175,对应体重多少?Attention就会在3组数据来拟合期望的体重。

设a(q,ki)来表示Q到K的距离,权重,概率,则体重预测值f(q)

f(q) = a(q,k1)v1+a(q,k2)v2+a(q,k3)v3

从这里我们就能看出来attention == 距离,权重,概率。

这样类比,就推导出下面的公式,和右边的图片是一回事儿。

softmax:常用于神经网络的输出层,以将原始的输出值转化为概率分布,从而使得每个类别的概率值在0到1之间,并且所有类别的概率之和为1。这使得Softmax函数特别适用于多类分类问题,其中模型需要预测输入样本属于多个可能类别中的哪一个。

当Q=K=V,称为Self-attention自注意。

Multi-Head attention如何理解多头注意力?

这也是个神奇的做法。假如一个文字张量的长度为512,把这512平均分为8份,每份64;把拆分后的QKV,分别与自己的权重W做矩阵乘法,然后运算attention;算完之后,再把attention结果连接在一起变成multi-head attention,如下图所示。

查了资料,说是这里的权重矩阵 (W) 是通过模型训练学习得到的。

Masked Multi-Head attention如何理解 掩码多头注意力?

首先这个是在decoder里面,因为输出是一个字跟着一个字,挨个预测的。将来的字符还没出现,需要mask盖住。不像encoder,直接把一本书灌进去,每个字都能看到前前后后所有的字。

接下来,decoder出现了一个字之后,又把前面encoder的结果当做K,V跟masked MHA的输出当做Q再做一次运算,预测出下一个字的权重。

如下图所示:

把2个模块放一起,如下图所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ankie(资深技术项目经理)

打赏就是赞赏,感谢你的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值