【DeepLearning】由involution中的Group引发的self-attention以及Multi-head复习

引起:

involution:

 G-Group这是个啥?

 

 我已经晕了,听师兄说这个H就是Group。。。不说了,先复习self-attention

self-attention:

Attention最核心的公式如下:

 很难理解是吧,看下面的公式:

先抛开Q,K,V不谈,最初的公式是张这样的。

向量的内积代表啥,XXT又代表什么?

向量的内积代表的是两个向量的夹角,表征一个向量在另外一个向量上的投影。

XXT下面有一个实例:自己看吧

新向量的意义是什么?

是行向量 早 在自己和其他两个向量上的投影,那投影值的大小有什么意义呢?

投影值大,说明两个向量的相关度高。

更近一步,这个向量是词向量,词向量之间的相关度高代表什么?代表关注A词的时候,应该给B词更多的关注。

那softmax代表什么?

softmax有什么意义?

归一化

结合实例来看,softmax后数字和为1了。

那最后的X是什么意思?

“早”向量的softmax向量与X的内积得到了一个新的“早”向量,这个新的行向量就是原来的“早”向量经过注意力机制加权求和后的表示

Q V K 矩阵:

像QKV这样的,向量查询,信息查询,查询值,都是通过向量X经过线性变化得到的,本质都是X的线性变换。

为什么不直接使用X而要对其进行线性变换?

为了提高模型的拟合能力,矩阵W是可以训练的,起到一个缓冲作用。

不打字了,直接照搬了:

以上来自某乎大佬的博客:超详细图解Self-Attention - 知乎 (zhihu.com)

 Multi-Head Attention:

老规矩,上公式:

Muti-Head怎么来的?

对于同一个文本,一个Attention获得一个表示空间,如果多个Attention,则可以获得多个不同的表示空间。

将h个head产生的Attention矩阵连接在一起后进行一次线性变换,使得输出的multi-head矩阵和输入矩阵的shape一样。 下面是结构图:

实例:
1:linear

对 Thinking Machines进行multi-head Attention计算。下图中矩阵X的第一行表示Thinking的词向量,第二行表示Machines的词向量, X dot W0Q/K/V 得到Q/K/V

2:Scaled Dot-Product Attention

每一个head都要进行attention计算,由于有8头attention,会得到8个矩阵(2*3)。softmax对矩阵的每一行进行作用。

3:concat +  linear

由于Multi-Head Attention后面可能紧跟前馈神经网络(或者RNN、CNN等),而这些网络接受的是单个矩阵向量,而不是8个矩阵。所以把8个矩阵连接在一起(维度2*(8*3)=2*24)然后再与一个矩阵(24*4)相乘,最后压缩成一个矩阵(维度2*4)。

4:最后一整个框图来表示计算过程:

Multi-Head来自某乎大佬:

Multi-Head Attention - 知乎 (zhihu.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值