作者 | Tnil@知乎

编辑 | NewBeeNLP

转眼Transformer模型被提出了4年了。依靠弱归纳偏置、易于并行的结构,Transformer已经成为了NLP领域的宠儿,并且最近在CV等领域的潜能也在逐渐被挖掘。尽管Transformer已经被证明有很好的通用性,但它也存在一些明显的问题,例如:

  1. 核心模块自注意力对输入序列长度有平方级别的复杂度,这使得Transformer对长序列应用不友好。例如一个简单的32x32图像展开就会包括1024个输入元素,一个长文档文本序列可能有成千上万个字,因此有大量现有工作提出了轻量化的注意力变体(例如稀疏注意力),或者采用『分而治之』的思路(例如引入recurrence);

  2. 与卷积网络和循环网络不同,Transformer结构几乎没有什么归纳偏置。这个性质虽然带来很强的通用性,但在小数据上却有更高的过拟合风险,因此可能需要引入结构先验、正则化,或者使用无监督预训练。

近几年涌现了很多Transformer的变体,各自从不同的角度来改良Transformer,使其在计算上或者资源需求上更友好,或者修改Transformer的部分模块机制增大模型容量等等。

但是,很多刚接触Transformer的研究人员很难直观地了解现有的Transformer变体,例如前阵子有读者私信我问Transformer相关的问题,聊了一会儿才发现他不知道Transformer中的layer norm也有pre-LN和post-LN两种变体。因此,我们认为很有必要对现有的各种Transformer变体做一次整理,于是产生了一篇survey ,现在挂在了arxiv上:

  • A Survey of Transformers[1]

  • http://arxiv.org/abs/2106.04554

在这篇文章之前,已经有一些很好的对PTM和Transformer应用的综述(例如Pre-trained Models for Natural Language Processing: A Survey』[2]和 『A Survey on Visual Transformer』[3])。在这篇文章中,我们把重心放在对Transformer结构(模块级别和架构级别)的改良上,包括对Attention模块的诸多改良、各种位置表示方法等。

Transformer变体分类

值得一提的是,Google去年放出过一篇关于Transformer的综述(『Efficient Transformers: A Survey』[4]),主要关注了Attention模块的效率问题(这在我们的综述中也覆盖了)。虽然是一篇很好的review,但是笔者认为它对于Attention变体的分类有一些模糊,例如作者将Compressive TransformerETCLongformer这一类工作、以及Memory Compressed Attention都归类为一种基于Memory的改进,笔者认为memory在这几种方法中各自有不同的含义,使用Memory来概括很难捕捉到方法的本质。我们的文章对这几个方法有不同的分类:

  1. Compressive Transformer是一种『分而治之』的架构级别的改进,相当于在Transformer基础上添加了一个wrapper来增大有效上下文的长度;

  2. ETC和Longformer一类方法是一种稀疏注意力的改进,主要思路是对标准注意力代表的全链接二分图的连接作稀疏化的处理;

  3. Set Transformer、Memory Compressed Attention、Linformer对应一种对KV memory压缩的方法,思路是缩短注意力矩阵的宽。

论文中完整的对Transformer变体分类体系概览如下

Transformer变体的分类概览

我们希望这篇文章可以给关注Transformer的同行、朋友们提供一个参考,欢迎大家阅读:A Survey of Transformers[5]。如果有任何疑问或宝贵建议,欢迎通过邮件或私信联系。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

本文参考资料

[1]

A Survey of Transformers: http://arxiv.org/abs/2106.04554

[2]

Pre-trained Models for Natural Language Processing: A Survey: https://arxiv.org/abs/2003.08271

[3]

A Survey on Visual Transformer: https://arxiv.org/abs/2012.12556

[4]

Efficient Transformers: A Survey: https://arxiv.org/abs/2009.06732

[5]

A Survey of Transformers: https://arxiv.org/abs/2106.04554

END -

深度融合 | 当推荐系统遇见知识图谱(三)

2021-06-02

PET——文本分类的又一种妙解

2021-05-31

Embedding技术回顾

2021-05-11

FLOATER:更加灵活的Transformer位置编码!

2021-05-07

复旦邱锡鹏组最新综述:A Survey of Transformers!相关推荐

  1. 复旦大学邱锡鹏组最新综述:A Survey of Transformers!

    作者 | Tnil@知乎 编辑 | NewBeeNLP 转眼Transformer模型被提出了4年了.依靠弱归纳偏置.易于并行的结构,Transformer已经成为了NLP领域的宠儿,并且最近在CV等 ...

  2. 复旦邱锡鹏新作:单机微调650亿参数大模型,业内人士:对大模型普及意义重大...

    鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 单台机器,就能微调全参数羊驼大模型! 这一令开源党狂喜的最新成果,来自复旦邱锡鹏团队. 具体而言,研究人员提出了名为LOMO(低内存优化)的新优化 ...

  3. 复旦邱锡鹏团队:Transformer最新综述!

    Datawhale干货 编辑:Liyuan.杜伟,来源:机器之心 自提出至今,Transformer 模型已经在自然语言处理.计算机视觉以及其他更多领域「大展拳脚」,学界也提出了各种各样基于原始模型的 ...

  4. 复旦邱锡鹏超全NLP预训练模型综述论文:两张图带你梳理完整脉络

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 超全预训练语言模型概览,入门学习.搭建知识体系.找文献资料.找资源代码,这里有 N ...

  5. Transformer模型有多少种变体?复旦邱锡鹏教授团队做了全面综述

    视学算法报道 转载自:机器之心 编辑:Liyuan.杜伟 自提出至今,Transformer 模型已经在自然语言处理.计算机视觉以及其他更多领域「大展拳脚」,学界也提出了各种各样基于原始模型的变体.但 ...

  6. 复旦邱锡鹏教授公布《神经网络与深度学习》,中文免费下载 | 极客头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 整理 | Jane 出品 | AI科技大本营 优质的人工智能学习资源一直是大家非常关注的,以往我们也推荐过很多 ...

  7. ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架

    ©作者 | 刘兴贤 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 论文题目: A Unified Generative Framework for Various NER Subtasks ...

  8. ppt 深度学习绘图_最全中文深度学习入门书:小白易入,课程代码PPT全有 | 复旦邱锡鹏出品...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 入门深度学习的最大阻碍是啥,课程资料太少.难度太大? 可能对于大部分中国AIer来说,语言门槛高过了一座大山.网红课虽好,但是英语听不懂啊. ...

  9. 最全中文深度学习入门书:小白易入,课程代码PPT全有 | 复旦邱锡鹏出品

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 入门深度学习的最大阻碍是啥,课程资料太少.难度太大? 可能对于大部分中国AIer来说,语言门槛高过了一座大山.网红课虽好,但是英语听不懂啊. ...

最新文章

  1. 解决android.permission.WRITE_APN_SETTINGS
  2. Explore Nonprofit Cloud Case Management
  3. Arduino--LCD1602(IIC)
  4. 【终极方法】解决IDEA搜索不到Lombok插件的问题(IDEA 不能识别 @Slf4j,@Getter ,@Setter注解)
  5. docker容器mysql头文件_在Docker容器中使用MySQL数据库
  6. Chain of responsibility(职责链)--对象行为型模式
  7. 利用Power Designer反向数据库结构
  8. Arduino入门笔记(5):1602液晶实验(实现时钟)
  9. 华为ensp基础指令
  10. 计算机右键管理 已停止工作,管理器停止工作,详细教您怎么解决资源管理器已停止工作...
  11. JAVA整合无忧代理IP做数据采集的DEMO
  12. Java基础知识➣发送Emai和访问MySQL数据库(七)
  13. 服务器黑屏只显示鼠标是什么意思,电脑黑屏只显示鼠标怎么办
  14. 中国十大垃圾软件网站
  15. 网络唤醒 php,php远程网络唤醒计算机及WOL唤醒魔术包格式原理
  16. eclipse资源文件搜索如何去掉class文件
  17. 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法
  18. python计算相对分子质量_【ROSALIND】【练Python,学生信】20 计算多肽链的质量
  19. 基于mobileNet实现狗的品种分类(迁移学习)
  20. 说一说 Backscatter communication

热门文章

  1. Elasticsearch 实战2:ES 项目实战(二):基本操作、批处理、高级查询
  2. Myeclipse下使用Maven搭建spring boot项目(第二篇)
  3. BayaiM__ oracle函数_01
  4. golang(7 方法重写)
  5. 记录自己的gitlab搭建之旅
  6. 转: java服务器端成长指南
  7. PNP8550(3.3V DC蜂鸣器) - 原理图系列
  8. 信息系统审计(IT审计)实践
  9. 有关对耗时很大循环进行并行化优化的探讨之二:多重循环任务的并发处理
  10. 小程序文本高度左对齐问题