提升Transformer效率又有新招?基于矩阵分解的线性化Attention方案

Nyströmformer是基于Nyström方法的一种线性Attention方案,通过矩阵分解近似标准Attention,降低了计算复杂度。文章介绍了如何通过双重Softmax和迭代求逆阵来实现这一方法,同时探讨了其与标准Attention的接近程度和实验效果。
摘要由CSDN通过智能技术生成

©PaperWeekly 原创 · 作者|苏剑林

单位|追一科技

研究方向|NLP、神经网络

标准 Attention 的 复杂度可真是让研究人员头大。前段时间我们在文章 Performer:用随机投影将 Attention 的复杂度线性化中介绍了 Google 的 Performer 模型,它通过随机投影的方式将标准 Attention 转化为线性 Attention。无独有偶,前些天 Arxiv 上放出了 AAAI 2021 的一篇论文,里边又提出了一种从另一个角度把标准 Attention 线性化的方案。

论文标题:

Nyströmformer: A Nyström-Based Algorithm for Approximating Self-Attention

论文链接:

https://arxiv.org/abs/2102.03902

代码链接:

https://github.com/mlpen/Nystromformer

该方案写的是 Nyström-Based,顾名思义是利用了 Nyström 方法来近似标准 Attention 的。但是坦白说,在看到这篇论文之前,笔者也完全没听说过 Nyström 方法,而纵观整篇论文,里边也全是笔者一眼看上去感觉很茫然的矩阵分解推导,理解起来颇为困难。

不过有趣的是,尽管作者的推导很复杂,但笔者发现最终的结果可以通过一个相对来说更简明的方式来理解,遂将笔者对 Nyströmformer 的理解整理在此,供大家参考。

简单的回顾

如果读者对线性 Attention 还不是很了解,那么建议先通读一下线性 Attention 的探索:Attention 必须有个 Softmax 吗?Performer:用随机投影将 Attention 的复杂度线性化。总的来说,线性 Attention 是通过矩阵乘法的结合律来降低 Attention 的复杂度。

1.1 标准Attention

标准的 Scaled-Dot Attention 写成矩阵形式就是(有时候指数部分还会多个缩放因子,这里我们就不显式写出来了):

这里 (对应 Self Attention)。此外,本文的所有 softmax,都是对矩阵的第二个维度做归一化。

在上式中, 这一步必须要先算出来,然后才能算 softmax,它导致了我们不能使用矩阵乘法的结合律。而 个向量的内积,因此时间和空间复杂度都是

1.2 线性Attention

而线性 Attention 比较朴素的做法就是:

其中 是值域非负的激活函数。为了方便对比,上式还没有显式地写出归一化因子,只突出了主要计算量的部分。上式左端的复杂度依然是 的,由于矩阵乘法满足结合律,我们可以先算后面两个矩阵的乘法,这样整体复杂度就降为 了。

上式是直接将 Attention 定义为两个矩阵的乘法来利用乘法结合律的,也可以将标准 Attention(近似地)转化为矩阵的乘法来利用结合律,如下一节提到的 Performer;此外,相乘矩阵也不一定是两个,比如本文要介绍的 Nyströmformer 就是将注意力表示为三个矩阵相乘的。

1.3 Performer

对于 Performer 来说,它是通过随机投影来找到矩阵

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Transformer模型的自回归机制中使用了注意力机制(attention)。注意力机制在Transformer中起到了关键的作用,用于建立输入序列中各个位置之间的关联和依赖关系。 在Transformer模型中,自回归机制通过多头注意力(multi-head attention)实现。它允许模型在每个位置上对整个输入序列进行注意力计算,以获取与当前位置相关的信息。具体来说,自回归机制通过计算查询(query)、键(key)和值(value)之间的注意力权重,对序列中的不同位置进行加权聚合。 自回归注意力的计算过程如下: 1. 首先,通过将输入序列分别与查询、键和值矩阵相乘,得到相应的查询、键和值向量。 2. 然后,计算查询向量与键向量之间的相似度得分,通常使用点积或其他相似度度量方法来计算。 3. 通过对得分进行归一化,得到注意力权重。 4. 最后,使用注意力权重对值向量进行加权求和,得到当前位置的上下文表示。 自回归机制中的注意力计算是通过多头注意力来实现的,它使用多个并行的注意力头来捕捉不同的关注点。每个注意力头都会产生一个上下文表示,最后通过连接或线性变换将多个注意力头的结果合并起来。 总而言之,Transformer的自回归机制中使用了注意力机制,它允许模型在每个位置上对输入序列进行注意力计算,以获取与当前位置相关的信息,从而实现对序列的建模和生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值