一、怎么使得Self-Attention有效

输入长度 N。

问题就在于 N * N 的计算量过于巨大。

思考:也许不需要计算全部的 N * N 矩阵。

例如:局部Attention。但是类似于CNN。

Stride Attention

全局注意:

添加一个token,了解全局资讯。

各部分之间通过token相互了解。

在多头注意力的各个头中分别使用不同的处理。

以上都是人工设计的Attention。

但是我们是否能够找到数据驱动的自己寻找保留哪些Attention。

通过基于相似度的 Clustering 聚类实现。

只有相像的才计算Attention。

可学习模式:

用另外一个Net学习Attention。

挑选代表,压缩矩阵:

问:为什么不挑选q?

输入和输出的长度不同了。

挑选:CNN

降维:

改变矩阵的相乘顺序,可以减少计算量。

当然这是我们把Softmax拿走之后的结果。

我们再把Softmax放回来。

可重复利用。运算量少。

先操作k和v。

Attention也可以被学习。