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相关推荐

  1. NLP论文解读:无需模板且高效的语言微调模型(下)

    ©原创作者 | 苏菲 论文题目: Prompt-free and Efficient Language Model Fine-Tuning 论文作者: Rabeeh Karimi Mahabadi 论 ...

  2. NLP论文解读《Distributed Representations of Words and Phrasesand their Compositionality》

    目录 词和短语的分布式表示以及他们的表示 1.介绍 2  Skip - gram模型 2.1 分层的Softmax(Hierarchical Softmax) 2.2 负样本(Negative Sam ...

  3. 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 ...

  4. Sparse Transformers

    1 简介 本文根据2019年<Generating Long Sequences with Sparse Transformers>翻译总结的.文中提出了Sparse Transforme ...

  5. GAN for NLP (论文笔记及解读

    GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响."深度解读:GAN模型及其在2016年度的进展"[1]一文对过去一年GAN的进展做了详细介绍,十分 ...

  6. 哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码

    作者丨邓云天 学校丨哈佛大学NLP组博士生 研究方向丨自然语言处理 摘要 Attention 注意力模型在神经网络中被广泛应用.在已有的工作中,Attention 机制一般是决定性的而非随机变量.我们 ...

  7. NLP带来的“科幻感”超乎你的想象 - ACL2020论文解读

    来源 | 京东智联云开发者 责编 | Carol 近些年,人工智能无疑是信息技术领域最热门的技术之一.人工智能战胜世界围棋冠军.人工智能战胜游戏高手.人工智能医生看病会诊--不断进步的科技正推动着人工 ...

  8. 针对NLP长文本处理问题的Longformer论文解读

    Longformer论文解读: The Long-Document Transformer_习惯与规则决定命运-CSDN博客

  9. 《Generating Question Relevant Captions to Aid Visual Question Answering》(生成问题相关标题,以帮助视觉回答问题)论文解读

    下面是我对最近阅读的论文<Generating Question Relevant Captions to Aid Visual Question Answering>的一些简要理解 一. ...

最新文章

  1. Docker - 在CentOS7.5中升级Docker版本
  2. (012) java后台开发之Apache与Tomcat有什么关系和区别
  3. bigdecimal 设置_BigDecimal
  4. jQuery——stop
  5. 行业 | 调查:移动游戏盈利60%来源于0.23%付费玩家
  6. 三种常见字符编码简介:ASCII、Unicode和UTF-8
  7. WINDOWS 2008 AD权限管理服务(ADRMS)完全攻略
  8. php的数据模型包括,数据库中模型的分类有哪些
  9. mongdb2008puls4.0.3安装_Mathematica 10.3安装教程
  10. XShell 将Linux文件上传、下载到Windows下(rz上传、sz下载)
  11. html中th 与thead tbody的 使用
  12. php手册学习怎样,PHP新手之如何学习PHP的讲解
  13. 惊呆了!被公司辞退拿了22万补偿金,原东家称每月涨薪7000,只要退还22万
  14. 《当程序员的那些狗日日子》(五十四)转折
  15. 关于Merge的整理--AndroidScreenSlidePager开源库中用到的
  16. 【多目标优化求解】基于matlab粒子群算法求解配电网抢修优化问题【含Matlab源码 777期】
  17. AD18单位mm和mil切换
  18. Java中巧算年龄的代码,巧算年龄 - 寂寞暴走伤的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. 2021-10-11 今日总结
  20. 那些令人发燥的JAVA虚引用

热门文章

  1. train_test_split 参数详解
  2. MIMIKATZ编译教程
  3. JFinal入门教程
  4. C++中的取余函数%、remainder、fmod以及matlab中的取余函数mod
  5. 哈工大网络安全实验四报告
  6. android--emo的来源
  7. sql查询中截取字符串
  8. fdtd 磁场 matlab,矩形谐振腔电磁场的FDTD分析和Matlab仿真
  9. ◎ 增量更新jar包,报错问题(It has been compressed and nested jar files must be stored without compression)
  10. NVIDIA之TLT迁移学习训练自己的数据集