【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型

文章目录

  • 一、Self-Attention 各式各样的变型
  • 二、How to make self-attention efficient?
  • 三、Notice
  • 四、Local Attention / Truncated Attention
  • 五、Stride Attention
  • 六、Global Attention
  • 七、Many Different Choices
  • 八、Can we only focus on Critical Parts?
    • 8.1 Clustering
    • 8.2 Learnable Patterns
  • 九、Do we need full attention matrix?
  • 十、Attention Mechanism is three-matrix Multiplication
  • 十一、Do we need Q and K to compute attention?Synthesizer!
  • 十二、Attention-free?
  • 十三、Summary


在看这篇文章之前,我假设你已经了解了自注意力机制和多头自注意力机制的基本原理,如果你还不了解,可以先看看下面链接:
【深度学习】李宏毅2021/2022春深度学习课程笔记 - (Multi-Head)Self-Attention (多头)自注意力机制 + Pytorch代码实现

一、Self-Attention 各式各样的变型

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第1张图片


二、How to make self-attention efficient?

将Key和Query进行点积,可以得到一个N×N的Attention Matrix,但是,当N比较大时,点积的计算量是我们无法承受的

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第2张图片


三、Notice

  • Self-Attention只是神经网络里的一个Module
  • Self-Attention只有当N较大时,才会Dominates整个神经网络的计算过程,也就是说,只有在N较大时,我们去加速Self-Attention才有用
  • Self-Attention的各种加速技术大多数最早都使用在图像处理上。因为在图像处理里,N往往比较大,假设图片为256×256规格,那么N就是 256*256 = 65536

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第3张图片


四、Local Attention / Truncated Attention

加速Attention计算最直觉的想法就是想办法加速Attention Matrix的计算。
Local Attention / Truncated Attention 的思想是,在计算Attention的时候,不利用整个序列的信息,而是只利用当前位置附近的一些信息进行Attention的计算(如下图,只利用了当前位置左右两边的信息进行Attention的计算)。

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第4张图片


五、Stride Attention

和Local Attention / Truncated Attention,Stride Attention 也是只考虑部分信息计算Attention,但不同点在于 Stride Attention 是根据一定的步长去考虑信息计算Attention

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第5张图片


六、Global Attention

如下图所示,只用其中某两个单位去和整个序列(包括自身)的其他单位进行点积计算

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第6张图片


七、Many Different Choices

那么Local Attention、Stride Attention 和Gloal Attention到底用哪个呢?
答案是:可以都用!之前讲过多头注意力机制,只需要在每个头用不同的Attention就可以了呀

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第7张图片

事实上,的确有人这么做了

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第8张图片


八、Can we only focus on Critical Parts?

上面的方法都是通过人工的力量去确定哪些位置要计算Attention,那我们能不能通过Data Based的方法去确定呢?

8.1 Clustering

将Query和Key拼接为一个序列,然后进行聚类

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第9张图片

然后只对属于相同类别的位置进行Attention的计算

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第10张图片

8.2 Learnable Patterns

可以Learning另外一个神经网络来决定哪些位置要进行Attention的计算

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第11张图片


九、Do we need full attention matrix?

实际上,Attention Matrix通常是Low Rank的,也就是说大部分列之间都是有线性关系的。所以我们可以将原本N×N的Matrix进行缩减,从而降低计算量。

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第12张图片

问:实际上应该怎么做呢?
答:从N个Key和Value中选出K个具有代表性的Key和Value进行Attention的计算

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第13张图片

问:那么怎么选取具有代表性的Key呢?
答:有两个方法。
方法1:对N个Key进行卷积操作,从而达到降维的效果
方法2:将原本的d×N的矩阵乘上一个N×K的矩阵,就可以得到d×K的矩阵,从而实现降维

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第14张图片


十、Attention Mechanism is three-matrix Multiplication

下面回顾一下Attention的计算过程

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第15张图片

假设不考虑SoftMax过程,计算O矩阵的过程可以近似如下

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第16张图片

那么我们可以通过改变矩阵的求解顺序来实现加速

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第17张图片

先来看看原本求解顺序所需要的计算量

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第18张图片

再来看看交换顺序后的求解计算量

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第19张图片

对比一下,由于N是序列的长度,所以往往N会比d大很多,所以通常情况下 ( d + d ′ ) N 2 > 2 d d ′ N (d+d')N^2>2dd'N (d+d)N2>2ddN

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第20张图片


十一、Do we need Q and K to compute attention?Synthesizer!

我们其实可以不用Q和K计算Attention Matrix,而是直接将Attention Matrix替换为可学习的一组参数矩阵!

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第21张图片


十二、Attention-free?

Attention是必须的吗?不用Attention能得到很好的效果吗?下面是对这个问题的一些研究

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第22张图片


十三、Summary

【深度学习】李宏毅2021/2022春深度学习课程笔记 - 各式各样神奇的自注意力机制(Self-Attention)变型_第23张图片

你可能感兴趣的:(#,深度学习,人工智能,深度学习,人工智能,算法,注意力机制,自注意力机制)