NLP论文解读:Generating Long Sequences with Sparse Transformers
OpenAl提出了一种适用于文本、图像和语音的稀疏Transformer,将先前基于注意力机制的算法处理序列的长度提高了三十倍。
对复杂高维度的数据分布进行估计一直是非监督学习领域的核心问题,特别是针对像文本、语音、图像等长程、相关性数据更使得这一领域充满了挑战。同时,对于复杂数据的建模也是非监督表示学习的关键所在。
近年来,神经自回归模型在这一领域取得了一系列十分优秀进展,针对自然语言、原始音频和图像成功建模。这些方法将联合概率分布分解成了条件概率分布的乘积来解决。但由于数据中包含许多复杂、长程的依赖性并需要合适的表达模型架构来进行学习,使得对数据的条件概率分布建模依旧十分复杂。
基于卷积神经网络的架构在这个方向取得了一系列进展,但需要一定的深度来保证足够的感受野。为了解决这一问题,WaveNet引入了膨胀卷积(dilated conv)帮助网络在的对数数量层数下学习长程依赖性。于此同时Transformer由于可以利用一定的层数为任意的依赖性建模,在自然语言任务上显示出了强大的优势。由于每个自注意力层用于全局感受野使得网络可以将表示能力用于最有用的输入区域,对于生成多样性的数据具有更加灵活的特征。
但这种方法在处理序列时需要面临随着序列长度平方增长的内存与算力。对于过长的序列,现有的计算机将无法处理和实现。
为了解决这一问题,OpenAI的研究人员在最新的论文中为注意力矩阵引入了多种稀疏的分解方式,通过将完全注意力计算分解为多个更快的注意力操作,通过稀疏组合来进行稠密注意力操作,在不牺牲性能的情况下大幅降低了对于内存和算力的需求。
新提出了稀疏Transformer将先前Transforme的平方复杂度O(N^ 2) 降低为O(N N^1/2),通过一些额外的改进使得自注意力机制可以直接用于长程的语音、文本和图像数据。
原先的方法大多集中于一个特定的领域、并且很难为超过几千个元素长度的序列建模,而稀疏Transformer则可利用几百层的模型为上万个数据长度的序列建模,并在不同领域中实现了最优异的结果。
Sparse Transformer: 主要目的是减少传统Transformer 的时间复杂度和空间复杂度。 通过top-k选择,将注意退化为稀疏注意。这样,保留最有助于引起注意的部分,并删除其他无关的信息。这种选择性方法在保存重要信息和消除噪声方面是有效的。注意力可以更多地集中在最有贡献的价值因素上。
稀疏Attention
self attention 要对序列中任意两个向量计算相关度,得到一个n^2大小的 注意力矩阵。
在上图中,左边显示了注意力矩阵,右变显示了关联性,这表明每个元素都跟序列内所有元素有关联。
所以,如果要节省显存,加快计算速度,那么一个基本的思路就是减少关联性的计算,也就是认为每个元素只跟序列内的一部分元素相关,这就是稀疏Attention的基本原理。
Atrous Self Attention
第一个要引入的概念是Atrous Self Attention,中文可以称之为“膨胀自注意力”、“空洞自注意力”、“带孔自注意力”等。这个名称跟后面的Local Self Attention一样,都是笔者根据它的特性自行命名的,原论文《Generating Long Sequences with Sparse Transformers》并没有出现过这两个概念,但我认为将它们单独引出来是有意义的。
很显然,Atrous Self Attention就是启发于“膨胀卷积(Atrous Convolution)”,如下右图所示,它对相关性进行了约束,强行要求每个元素只跟它相对距离为k,2k,3k,…的元素关联,其中k>1是预先设定的超参数。从下左的注意力矩阵看,就是强行要求相对距离不是k的倍数的注意力为0(白色代表0)
由于现在计算注意力是“跳着”来了,所以实际上每个元素只跟大约n/k个元素算相关性,这样一来理想情况下运行效率和显存占用都变成了 O ( n 2 / k ) O(n^2 /k) O(n2/k),也就是说能直接降低到原来的1/k。
Local Self Attention
另一个要引入的过渡概念是Local Self Attention,中文可称之为“局部自注意力”。其实自注意力机制在CV领域统称为“Non Local”,而显然Local Self Attention则要放弃全局关联,重新引入局部关联。具体来说也很简单,就是约束每个元素只与前后k个元素以及自身有关联,如下图所示:
从注意力矩阵来看,就是相对距离超过k的注意力都直接设为0。
其实Local Self Attention就跟普通卷积很像了,都是保留了一个2k+1大小的窗口,然后在窗口内进行一些运算,不同的是普通卷积是把窗口展平然后接一个全连接层得到输出,而现在是窗口内通过注意力来加权平均得到输出。对于Local Self Attention来说,每个元素只跟2k+1个元素算相关性,这样一来理想情况下运行效率和显存占用都变成了
NLP论文解读:Generating Long Sequences with Sparse Transformers相关推荐
- NLP论文解读:无需模板且高效的语言微调模型(下)
©原创作者 | 苏菲 论文题目: Prompt-free and Efficient Language Model Fine-Tuning 论文作者: Rabeeh Karimi Mahabadi 论 ...
- NLP论文解读《Distributed Representations of Words and Phrasesand their Compositionality》
目录 词和短语的分布式表示以及他们的表示 1.介绍 2 Skip - gram模型 2.1 分层的Softmax(Hierarchical Softmax) 2.2 负样本(Negative Sam ...
- NLP论文解读《Learning Text Similarity with Siamese Recurrent Networks》
目录 1.摘要 2.相关工作 3.Siamese RNN 3.1 Bidirectional RNNs 以及 LSTM模型: 3.2 Siamese network 孪生网络 3.3 Contras ...
- Sparse Transformers
1 简介 本文根据2019年<Generating Long Sequences with Sparse Transformers>翻译总结的.文中提出了Sparse Transforme ...
- GAN for NLP (论文笔记及解读
GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响."深度解读:GAN模型及其在2016年度的进展"[1]一文对过去一年GAN的进展做了详细介绍,十分 ...
- 哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码
作者丨邓云天 学校丨哈佛大学NLP组博士生 研究方向丨自然语言处理 摘要 Attention 注意力模型在神经网络中被广泛应用.在已有的工作中,Attention 机制一般是决定性的而非随机变量.我们 ...
- NLP带来的“科幻感”超乎你的想象 - ACL2020论文解读
来源 | 京东智联云开发者 责编 | Carol 近些年,人工智能无疑是信息技术领域最热门的技术之一.人工智能战胜世界围棋冠军.人工智能战胜游戏高手.人工智能医生看病会诊--不断进步的科技正推动着人工 ...
- 针对NLP长文本处理问题的Longformer论文解读
Longformer论文解读: The Long-Document Transformer_习惯与规则决定命运-CSDN博客
- 《Generating Question Relevant Captions to Aid Visual Question Answering》(生成问题相关标题,以帮助视觉回答问题)论文解读
下面是我对最近阅读的论文<Generating Question Relevant Captions to Aid Visual Question Answering>的一些简要理解 一. ...
最新文章
- 世博、城市云和2020
- lua学习笔记之函数
- 【工具】TFT彩屏图片点阵取模工具,Img2Lcd图片取模软件,图片生成c语言头文件...
- 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别
- PyTorch深度学习实践05
- 函数最值题目及答案_呆哥数学每日一题 ——多元函数求最值
- Xenix — 微软与UNIX的短暂爱恋
- python中pop用法_Python dict pop()用法及代码示例
- 论文html5的英文文献,html论文英文参考文献(优质论文108个).pdf
- go 写文件_GO 文档笔记
- python模拟多线程http请求_用python实现自己的http服务器——多进程、多线程、协程、单进程非堵塞版、epoll版...
- [病毒]exp1orer.exe
- 【C++】 29_类中的函数重载
- 【VS2017】VS2017离线安装教程
- 2018Web前端面试题及答案大全
- 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
- 我的孤独自学之路----kali 安装及更新源
- 有师傅小程序开源版v2.4.14(含后端源码)
- 批量ping多个IP地址
- iOS 应用签名原理
热门文章
- Ubuntu系统利用snap包管理的使用
- 天天seo免费伪原创工具生成器
- Html之【DIV】综合技巧大全(持续更新中...)
- 第3-7课:推箱子游戏
- 杜比dss200服务器重装,杜比dss200服务器恢复系统操作
- terminate called after throwing an instance of ‘c10::Error‘ chunk expects at least a 1-d tensor
- Lombok 完整指南
- 计算机对于汉语言文学专业的关系,关于学习古代汉语的心得
- 【SpringBoot整合缓存】-----Redis缓存篇
- (window)C语言OCI的方式连接oracle