ICLR2022《COSFORMER : RETHINKING SOFTMAX IN ATTENTION》
论文下载链接:https://arxiv.org/pdf/2202.08791.pdf
代码链接:https://github.com/OpenNLPLab/cosFormer
1. 动机
Transformer 在自然语言处理、计算机视觉和音频处理方面取得了巨大的成功。作为其核心组件之一,softmax 注意力有助于捕获长程依赖关系,但由于序列长度的二次空间和时间复杂度,从而禁止其扩展。为了降低计算复杂度,通常采用核(Kernel)方法通过逼近 softmax 算子来降低复杂度。然而,由于近似误差的存在,它们在不同任务/语料库中的性能存在差异,与普通的softmax注意力相比,其性能出现了下降。
作者认为softmax算子似乎是主要的障碍,而高效而准确地逼近softmax是很难实现的,一个问题自然出现了:我们能否用一个线性函数代替softmax算子,同时保持其关键属性?
2. 方法
本文提出cosFormer的线性变压器,其核心是将不可分解的非线性softmax操作替换为带有可分解的非线性重加权机制的线性操作。该模型既适用于随机注意力,也适用于交叉注意力,且输入序列长度具有线性时间和空间复杂度,因此对长期依赖关系的建模能力较强。
- Transformer的一般形式
给定一个长度为N的输入序列 x x x,我们首先将其表示在特征维度为d的嵌入空间 x ∈ R N × d x\in R^{N\times d} x∈RN×d中。因此,可以将输入为 x x x的一个Transformer block T : R N × d → R N × d \mathcal{T} :R^{N\times d}\rightarrow R^{N\times d} T:RN×d→RN×d定义为:
其中 F \mathcal{F} F为包含残差连接的前馈网络; A \mathcal{A} A是计算注意矩阵A的自注意函数,注意矩阵A对N具有二次空间和时间复杂度,因此成为 T \mathcal{T} T在长输入时的计算瓶颈。
而 A \mathcal{A} A有三个重要组件,分别为 q u e r y Q query\ {Q} query Q, k e y K key\ K key K和 v a l u e V value\ V value V,他们是经过三个可学习的线性矩阵 W Q W_Q WQ, W K W_K WK, W V W_V WV计算获得,即
则 A ( x ) \mathcal{A(x)} A(x)的输出 O ∈ R N × d \mathcal{O}\in R^{N \times d} O∈RN×d可计算为:
其中 S ( ⋅ ) \mathcal{S(\cdot)} S(⋅)度量query之间的相似性。如果 S ( Q , K ) = e x p ( Q K T ) \mathcal{S}(Q,K)=exp(QK^T) S(Q,K)=exp(QKT),则公式(2)通过softmax归一化成为点积attention。在这种情况下,计算每一行的输出 Q i {Q_i} Qi的空间和时间复杂度为 O ( N ) O(N) O(N)。因此,计算 O O O的总空间和时间复杂度随输入长度呈二次增长。 - self-attention的线性化
根据公式(2),我们可以选择任何相似函数来计算注意力矩阵。为了保持线性计算预算,一种解决方法是采用一个可分解的相似函数,即:
其中 ϕ \phi ϕ是一个内核函数,它将query和key映射到它们的隐藏表示。然后可以将公式(2)写成核函数的形式:
然后,通过矩阵积的性质,实现线性复杂度下的注意运算:
在这种形式(公式(5))中,替代了显式地计算注意矩阵 A = Q K T ∈ R N × N A=QK^T\in R^{N \times N} A=QKT∈RN×N,作者先计算 ϕ ( K ) T V ∈ R d × d \phi(K)^TV\in R^{d \times d} ϕ(K)TV∈Rd×d,然后乘以 ϕ ( Q ) ∈ R N × d \phi(Q)\in R^{N \times d} ϕ(Q)∈RN×d。通过使用这种方法,我们只引入了 O ( N d 2 ) O(Nd^2) O(Nd2)的计算复杂度。
注意:在典型的自然语言任务中,一个head d d d的特征维度总是比输入序列长度N小得多( d ≪ N d\ll N d≪N)。因此,可以省略 d d d,实现 O ( N ) O(N) O(N)的计算复杂度。如上图2所示。 - softmax注意力分析
通过实验确定了softmax操作的两个关键属性,它们可能对其性能起重要作用:
1)确保attention矩阵A中的所有值都是非负的;
2)提供了一种非线性重加权机制来集中注意力连接的分布,稳定训练
为了验证假设,对于公式(3)中 ϕ \phi ϕ函数进行三种实例化:
1) identify映射 ϕ I = I \phi_I=I ϕI=I,它不能保留非负性;
2) ϕ R e L U = R e L U ( ⋅ ) \phi_{ReLU}=ReLU(\cdot) ϕReLU=ReLU(⋅),它只保留输入正值而将负值替换为零;
3) ϕ L e a k y R e L U = L e a k y R e L U ( ⋅ ) \phi_{LeakyReLU}=LeakyReLU(\cdot) ϕLeakyReLU=LeakyReLU(⋅),它也没有非负性,但具有与ReLU相同的非线性;
由表1可得,对比 ϕ I \phi_I ϕI, ϕ L e a k y R e L U \phi_{LeakyReLU} ϕLeakyReLU和 ϕ R e L U \phi_{ReLU} ϕReLU结果证明了在相似度矩阵中只保留正的值,模型忽略了负相关的特征,能有效地避免了聚集不相关的上下文信息。通过比较 ϕ R e L U \phi_{ReLU} ϕReLU和softmax的结果,我们发现采用softmax重新加权的模型收敛更快,对下游任务有更好的泛化能力。这可以解释为softmax标准化放大了相关对,这对于识别有用的模式可能很有用。 - cosFormer
该模型完全抛弃了softmax归一化,但仍然具有非负性和重加权机制。cosFormer由两个主要部分组成:线性映射核 ϕ l i n e a r \phi_{linear} ϕlinear和基于cos的重加权机制。
1)线性映射核 ϕ l i n e a r \phi_{linear} ϕlinear
回想一下公式(2)注意力的一般形式,让我们将线性相似度定义为:
其中, ϕ l i n e a r \phi_{linear} ϕlinear是将查询 Q Q Q和键 K K K映射到我们期望的表示形式 Q ′ Q' Q′和 K ′ K' K′的变换函数, s s s是可线性分解的函数,用于度量 Q ′ Q' Q′和 K ′ K' K′之间的相似性。
具体来说,为了保证矩阵A全正值和避免聚合负相关信息,我们采用ReLU(·)作为转换函数,从而有效地消除了负值:
由于 Q ′ Q' Q′和 K ′ K' K′只包含非负值,我们直接取它们的点积 s ( x , y ) = x y T , x , y ∈ R 1 × d s(x, y) = xy^T, x, y \in R^{1 \times d} s(x,y)=xyT,x,y∈R1×d,然后按行归一化来计算注意力矩阵 这 里 有 点 疑 惑 , 怎 么 公 式 中 又 突 然 出 现 了 f ( , ) ? 不 应 该 是 s ( , ) 末 ! ! ! \textcolor{blue}{这里有点疑惑,怎么公式中又突然出现了f(,)?不应该是s(,)末!!!} 这里有点疑惑,怎么公式中又突然出现了f(,)?不应该是s(,)末!!!ICLR2022《COSFORMER : RETHINKING SOFTMAX IN ATTENTION》相关推荐
- AI:2020年6月22日北京智源大会演讲分享之认知神经基础专题论坛——14:20-15:00方方教授《Maps and Functions of Human Attention》
AI:2020年6月22日北京智源大会演讲分享之认知神经基础专题论坛--14:20-15:00方方教授<Maps and Functions of Human Attention> 导读: ...
- text to image(一):《GENERATING IMAGES FROM CAPTIONS WITH ATTENTION》
介绍文本生成图像的工作.本文要介绍的是发表于 ICLR 2016的论文<GENERATING IMAGES FROM CAPTIONS WITH ATTENTION> .时间比较早,不同于 ...
- 交通事故风险预测——《TA-STAN: A Deep Spatial-Temporal Attention Learning Framework...》
一.文章信息 <TA-STAN: A Deep Spatial-Temporal Attention Learning Framework for Regional Traffic Accide ...
- 【深度学习】:《PyTorch入门到项目实战》第五天:从0到1实现Softmax回归(含源码)
[深度学习]:<PyTorch入门到项目实战>第五天:从0到1实现Softmax回归 ✨本文收录于[深度学习]:<PyTorch入门到项目实战>专栏,此专栏主要记录如何使用Py ...
- 《速通深度学习数学基础》
目录 序 前言 第1章 线性代数的基本概念 1.1 向量和深度学习 1.2 向量距离计算 1.3 向量的基本性质 1.4 矩阵的基本概念 1.5 一些特殊的矩阵 第2章 线性代数在深度学习中的应用 2 ...
- 论文解读:DETR 《End-to-end object detection with transformers》,ECCV 2020
论文解读:DETR <End-to-end object detection with transformers>,ECCV 2020 0. 论文基本信息 1. 论文解决的问题 2. 论文 ...
- Paper:GPT-3《 Language Models are Few-Shot Learners》的翻译与解读
Paper:GPT-3< Language Models are Few-Shot Learners>的翻译与解读 目录 <GPT-3: Language Models are Fe ...
- AI开发者大会:2020年7月3日09:30--09:50司罗《为商业搭建语言桥梁》
AI开发者大会:2020年7月3日09:30--09:50司罗<为商业搭建语言桥梁> 目录 2020年7月3日09:30--09:50司罗<为商业搭建语言桥梁> 自然语言智能- ...
- 《成为一名机器学习工程师》_成为机器学习的拉斐尔·纳达尔
<成为一名机器学习工程师> by Sudharsan Asaithambi 通过Sudharsan Asaithambi 成为机器学习的拉斐尔·纳达尔 (Become the Rafael ...
最新文章
- Python Selenium + phantomJS 模拟登陆教务管理系统 “抢课”
- require.context
- Xml文档添加节点和属性
- ChaiNext:过去24小时大盘震荡调整
- 【读书笔记《Android游戏编程之从零开始》】11.游戏开发基础(SurfaceView 游戏框架、View 和 SurfaceView 的区别)...
- vue dve环境static无法被外部访问_vue项目性能优化(代码层面)
- 两种实现视频倍速播放的方法(视频播放器倍速1.5x/2x)
- win10安装jdk
- Install Anjuta
- 爬虫CASE01:反爬策略之使用随机user-agent模拟浏览器的网页爬取
- 流量卡之家:拥有边缘计算的物联网才是真正的物联网
- devm_regulator_get
- c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
- C语言将UTC时间转为时区时间的方法参考
- 数独技巧-基础摒除法
- 使用JavaReport制作Web报表与图形 入门示例
- 百度地图离线API2.0(含示例,可完全断网访问)
- 嵌入式Linux系统开发入门宝典(第2版)
- 关于面试中的TCP和UDP怎么用自己的话给面试官说
- 台式计算机液晶显示屏尺寸,电脑显示屏尺寸有哪些?电脑显示屏尺寸介绍
热门文章
- AI:2020年6月22日北京智源大会演讲分享之认知神经基础专题论坛——14:20-15:00方方教授《Maps and Functions of Human Attention》