点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

2017年,一句Attention Is All You Need引爆了整个NLP圈,甚至在近些年还有踢馆计算机视觉领域的趋势。

所有的这一切,都来源于这篇论文中的Transformer模型所采用的注意力(Attention)机制。

但现在,你能想象一个不再需要注意力的Transformer吗?

“Attention Is All You Need作者:拳头硬了”

今天就来一起看看这项来自苹果的研究:无注意力Transformer

为什么要“抛弃”注意力?

自注意力机制的应用,使得Transformer突破了RNN不能并行计算的限制,并大大提高了捕捉长期依赖关系的能力。

但与此同时,这种机制也意味着需要额外执行具有时间和空间复杂性的注意力操作,这就为操作带来了二次成本。

因此在大规模的语义环境里,Transformer的效率就显得不高。

而这种无注意力Transformer(AFT)则消除了点积自注意力(dot-product self attention)的需要,展现出了出色的效率。

对比现有的Transformer变体,AFT的时间复杂度是最低的

算法设计

这项研究的全名为Attention Free Transformer,它类似于标准的点积注意力算法,同样由查询向量Q,被查向量K,内容向量V相互作用而成。

但不同的是,AFT中的K和V首先与一组学习得到的位置偏差(position bias)结合,然后再进行同位元素对应相乘(element-wise multiplication)。

这一新操作的内存复杂度、文本规模、特征维度都是线性的,这就使输入大小和模型尺寸互相兼容。

同时,研究者还在AFT的基础上提出了几种模型变体。

比如,将一张在ImagenetNet验证集上进行预训练的Vit图(由12层组成,每层有6个头,空间大小为14×14)可视化后,最终产生了一组尺寸为12×6×27×27的注意力图。

观察图可以看到,标准Transformer表现出了比较强烈的局部模式,这就激发了AFT的一种变体:AFT-local

AFT-local在保持全局连通性的同时利用了局部性概念,将学习到的位置偏差固定在一个局部区域中。

在将空间权值共享(卷积)的理念也纳入考虑后,研究者还得到了另一种变体:AFT-conv

在将K的维度与头(head)个数联系起来后,就能使AFT-conv可依赖于深度可分离卷积、全局池化和元素操作来实现。

表现如何?

在图像自回归建模(Image Autoregressive Modeling)上,每个字符的比特数(bpc)越低越好。在这一点上,AFT做到了SOTA

而对于老本行语言建模(Language Modeling)问题,研究者则基于Enwik8进行字符级语言建模。

而结果是,AFT仅仅消耗了1/3的内存,就提供了提供了44%的速度提升,且在bpc上与完整的Transformer的距离只相差0.024,在参数、速度、内存和性能方面均取得了最佳平衡

研究者也将AFT测试了图像分类( Image Classification)的任务。

最终AFT的变体AFT-full在更好的内存占用和相似的速度下,取得了与基线Transformer DeiT相当的性能。

而在参数数量相似或更少的情况下,AFT-conv的准确率更高

与Lambda网络相比,所有的AFT变体都达到了相当或更好的精度,且速度相当,内存占用更小。

“所以我们到底需要什么?”

对于这一丢弃了注意力机制的Transformer,有人表示深度学习研究果然就是个圈,指不定过几年KNN也能再次伟大。

也有人对这种“Not Need”之风发出灵魂拷问:所以你们到底需要什么?

“不需要卷积,不需要注意力……啥你都不需要”

最终,机器学习的研究者们决定用魔法打败魔法:

一作为华人学者

这篇论文的一作翟双飞曾在IBM Research实习过9个月,2017年6月加入苹果,并在其机器学习研究部门任职至今。

他本科就读于中国科学技术大学的电子工程与信息科学学院,并于2017年在宾汉姆顿大学获得了计算机科学博士学位。

下载地址:
https://github.com/rish-16/aft-pytorch
论文地址:
https://arxiv.org/abs/2105.14103
参考链接:
https://www.reddit.com/r/MachineLearning/comments/npmq5j/r_an_attention_free_transformer/

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

点个在看 paper不断!

苹果让Transformer抛弃注意力机制,一切只为效率,项目已开源丨华人一作相关推荐

  1. Transformer与注意力机制

    Transformer与注意力机制 1. RNN基础 循环神经网络(RNN)是专门用来处理自然语言.金融信息等时序数据的一种神经网络.它的结构和运作方式如下图所示,基于马尔可夫决策模型. 图1 循环神 ...

  2. 动画详解Transformer模型注意力机制的概念与模型搭建

    多头注意力机制 通过上一期的分享,我们了解了transformer模型中的多头注意力机制的概念,且通过7个attention注意力机制的变形,彻底了解了tranformer模型的多头注意力机制,哪里重 ...

  3. 苹果公司华人研究员抛弃注意力机制,史上最快的Transformer!新模型达成最低时间复杂度...

    转自:新智元 [导读]attention is all you need是绝对的真理吗?自从Transformer面世以来,采用CNN等传统模型与注意力进行结合就成了新的创新方向.但苹果的华人研究员提 ...

  4. Transformer:注意力机制(attention)和自注意力机制(self-attention)的学习总结

    目录 前言 1. 注意力机制 1.1非自主提示和自主提示 1.2 查询,键和值 1.3 注意力机制的公式 1.3.1 平均汇聚 1.3.2 非参数的注意力汇聚(Nadaraya-Watson核回归) ...

  5. Attention 2 Transformer (注意力机制与各种注意力)

    Attention出自NMT(神经网络机器翻译)以处理文本对齐问题,目前已经在各个领域发光发彩,玩出各种花样带出多少文章.而Attention的本质其实就是–加权重. 通用的NMT的架构如上图所示,其 ...

  6. 加性注意力机制、训练推理效率优于其他Transformer变体,这个Fastformer的确够快...

    视学算法报道 机器之心编辑部 从训练与推理效率来看,清华和微软亚研提出的 Fastformer 无愧于「fast」. 在过去的几年里,Transformer 及其变体在很多领域取得了巨大成功,但由于其 ...

  7. 通过7个版本的attention的变形,搞懂transformer多头注意力机制

    --1-- Transformer模型架构 Transformer 由两个独立的模块组成,即Encoder和Decoder Encoder 编码器是一个堆叠N个相同的层.每层由两个子层组成,第一个是多 ...

  8. Transformer新内核Synthesizer:低复杂度的attention代替点乘式的注意力机制

    论文链接:https://arxiv.org/pdf/2005.00743.pdf 参考文档:https://mp.weixin.qq.com/s/e2Cor8amz7GiFfBGdLXULg 导读 ...

  9. NLP中的Attention注意力机制+Transformer详解

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者: JayLou娄杰 知乎链接:https://zhuanlan.zhihu. ...

最新文章

  1. redis学习-02
  2. IIS短文件/文件夹泄露漏洞
  3. RTSP再学习 -- Hi3516A RTSP实例 分析
  4. 【Linux】一步一步学Linux——shopt命令(214)
  5. mysql安装被打断_MySQL安装未响应解决方法
  6. python解释器环境中用于表示上一次运算结果的特殊变量_判断正误 PUSH CL_学小易找答案...
  7. C#以文件夹共享方式实现2G以上大文件传输
  8. Oracle疑问解答
  9. Luogu1886 滑动窗口 /【模板】单调队列
  10. 数字信号处理----数字上变频和下变频都FPGA实现
  11. 数字图像处理冈萨雷斯版学习(一)
  12. 基于MATLAB的数字水印技术实现
  13. java分页前端怎么实现_JavaWeb前端分页显示方法
  14. 用Python写糖豆人小游戏 你学“废”了么?
  15. Python深度学习-第一章、什么是深度学习
  16. 带你玩东方外传系列十一 ~ 二十游戏链接
  17. 融云观察:吱呀火爆的背后,是陌生人社交新方向
  18. android 备份游戏数据,用于Android游戏存档备份和存档还原的教程(图形中的详细信息)...
  19. android自定义曲线控件,Android自定义折线图(可拖动显示)
  20. 计算机毕业设计JAVA高校体育场馆预约管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. C#对象数组排序方法
  2. 青少年编程竞赛交流群周报(第040周)
  3. 【组队学习】【30期】时间序列分析
  4. LeetCode实战:最长有效括号
  5. 前后端分离的探索(一)
  6. 又被 AI 抢饭碗?2457 亿参数规模,全球最大中文人工智能巨量模型 “源1.0”正式开源...
  7. 分享几个用 Python 给图片添加水印的方法,简单实用
  8. 2021《程序员》数字科技企业研发实力榜TOP50
  9. 无人机巡逻喊话、疫情排查、送药消毒,抗疫战中机器人化身钢铁战士!
  10. 上热搜了!“学了Python6个月,竟然找不到工作!”