来源:新智元

【导读】Transformer模型好是好,可惜太慢了!最近一位清华大神在arxiv上传了一篇论文,提出新模型Fastformer,线性时间复杂度,训练和推理效率史上最快,还顺手在排行榜刷了个sota。

Transformer 的强大毋庸置疑,想要在CV和NLP的排行榜上取得一席之地,Transformer几乎是必不可少的骨架模型。

但它的效率相比传统的文本理解模型来说却不敢恭维,Transformer的核心是自注意力(self-attention)机制,对于输入长度为N的文本,它的时间复杂度达到二次O(N^2)。

虽然已经有很多方法来处理 Transformer 加速问题,但是对于长序列来说,这些方法要么效率仍然较低或是效果还不够好,例如BigBird使用稀疏注意力却丢失了全局上下文信息。

清华大学提出了一个新模型Fastformer,基于additive attention能够以线性复杂度来建立上下文信息。

论文地址:https://arxiv.org/abs/2108.09084

文章的第一作者武楚涵,是清华大学电子工程系的博士研究生。

目前的研究兴趣包括推荐系统、用户建模和社会媒体挖掘。在人工智能、自然语言处理和数据挖掘领域的会议和期刊上发表过多篇论文。

仅2021年就在顶会上发表了六篇论文,大神的世界只能仰望。

论文的通讯作者是黄永峰,清华大学电子系教授,博士,博导,信息认知和智能系统研究所副所长,首届全国十佳网络安全优秀教师。

主要从事网络及网络安全技术的研究和教学。现为IEEE Senior Member、中国电子学会信息隐藏与多媒体安全专家委员会委员。

已在IEEE Transaction IFS和中国科学等国内外著名期刊和AAAI和ACL等重要国际会议发表论文300多篇;出版专著4部、译著2部,教材2部。申请和授权发明专利10余项。

Fastformer首先对输入的attention query矩阵合并为一个全局query向量,然后对attention的key和全局query向量采用element-wise的乘法学习到全局上下文相关key矩阵,再通过additive attention合并为全局key向量。

通过元素乘积对全局key和attention之间的交互进行建模,并使用线性变换学习全局上下文感知的注意力,最后将它们与attention query查询一起添加以形成最终输出。

由此,计算复杂度可以降低到线性,并且可以有效地捕获输入序列中的上下文信息。

对于学习全局query和key向量的additive attention网络,其时间和内存开销均为O(N·d),参数总数为2hd(h为注意头数)。此外,元素乘积的时间代价和内存代价也是O(N·d),总复杂度是,比标准的Transformer复杂度要更有效率。

如果采用权重共享(weight sharing)方法,每层Fastformer的总参数量为,也有更少的参数。

模型验证

论文在五个不同任务的数据集上进行实验来验证Fastformer的效率:

  1. IMDB,电影评论星级预测数据;

  2. MIND,一个大规模的新闻推荐数据集。在这个数据上进行两个任务:新闻主题分类和个性化推荐;

  3. CNN/DailyMail数据集,一个广泛使用的文本摘要数据集;

  4. PubMed数据集,包含更长文本的文本摘要数据集;

  5. Amazon 电子产品领域评论星级预测数据。

实验过程中使用Glove词向量初始化,在32GB的V100 GPU上进行5次实验取性能的平均值。

对比模型包括:

  1. 标准的Transformer;

  2. Longformer,基于稀疏注意力的Transformer,结合了滑动窗口注意力和全局注意力来建模局部和全局上下文;

  3. BigBird,Longformer的扩展,包括稀疏随机注意力机制;

  4. Linformer,一个线性复杂度的Transformer,使用低维key和value矩阵来计算近似self-attention;

  5. Linear Transformer,也是线性复杂度的Transformer,使用核函数来估计self-attention机制;

  6. Poolingformer,一种层次结构,首先使用滑动窗口自注意力来捕捉短距离的内容,然后使用pooling self-attention来捕捉长距离的上下文。

在分类任务上,可以看到FastFormer要比标准的Transformer要更好。

比较不同方法在新闻推荐任务中的性能时,又增加了三个模型:

  1. NRMS,它使用多头自注意力网络学习新闻和用户表征;

  2. FIM,一种用于个性化新闻推荐的细粒度兴趣匹配方法;

  3. PLM-NR,使用预训练的语言模型为新闻推荐提供基础。

在不同的Transformer结构中,Fastformer达到了最好的性能,并且它也优于基本NRMS模型。此外,Fastformer可以进一步提高PLM-NR的性能,并且集成模型在MIND排行榜上获得最佳结果。

结果分析

结果表明,Fastformer不仅在文本建模方面是有效的,而且在理解用户兴趣方面也是有效的。

既然提到快,在效率的对比上也要进行实验。将输入序列的长度从128调整为65535,并将batch size的大小与序列长度成反比。使用随机生成token作为伪样本,并固定token embedding以更好地测量不同方法的计算成本。

当序列长度相对较长时(例如512),Transformer效率较低。此外还发现,虽然Poolingformer在理论上具有线性复杂性,但在实践中效率低下。这是因为它使用的窗口大小(例如256)以类似卷积的方式计算池权重,这导致计算成本的非常大的常数项。

在训练和推理时间方面,Fastformer比其他线性复杂度Transformer更有效,这些结果验证了Fastformer的有效性。

不同的参数共享技术对Fastformer的技术也有影响,通过共享query和value转换矩阵,在不同的注意头之间共享参数,可以发现,与没有任何参数共享技术的Fastformer模型相比,使用query-value参数共享可以获得类似或略好的性能。因此可以通过共享query和value转换矩阵来减少参数大小。

此外,头部参数共享将导致显著的性能下降。这是因为不同的注意头需要捕捉不同的上下文模式,而共享它们的参数对上下文建模是不利的,采用分层共享方法可以进一步提高模型的性能,因为不同层之间的参数共享可以缓解过拟合的风险。


说个正事哈由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:(1)点击页面最上方“深度学习技术前沿”,进入公众号主页。(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。

推荐阅读

  • 【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!

  • MLP进军下游视觉任务!目标检测与分割领域最新MLP架构研究进展!

  • 北京大学智能计算与感知实验室招收博士、硕士、本科实习生

  • 博士申请 | 香港中文大学LaVi实验室招收2022年秋季入学博士生、硕士生

  • 周志华教授:如何做研究与写论文?(附完整的PPT全文)

  • 都2021 年了,AI大牛纷纷离职!各家大厂的 AI Lab 现状如何?

  • 常用 Normalization 方法的总结与思考:BN、LN、IN、GN

  • 注意力可以使MLP完全替代CNN吗? 未来有哪些研究方向?

重磅!DLer-计算机视觉&Transformer群已成立!

大家好,这是计算机视觉&Transformer论文分享群里,群里会第一时间发布最新的Transformer前沿论文解读及交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、视频超分、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

进群请备注:研究方向+学校/公司+昵称(如Transformer+上交+小明)

???? 长按识别,邀请您进群!

一年六篇顶会的清华大神提出Fastformer:史上最快、效果最好的Transformer相关推荐

  1. 本科4篇顶会!清华特奖高天宇干货分享:我是这样写论文、做实验、与导师相处...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 鱼羊 晓查 发自 凹非寺  本文转载自:量子位(QbitAI) 本科 ...

  2. 项目前的一篇战地日记-菜鸟和大神的区别

    转眼间,来了兄弟连已经一个月了,这一个月的日子感觉时间过的好充实呀!每天最早12点休息(几乎是不可能的,老多事等着你去完成呢)7.30起床.和以前那样安逸的日子比起来,刚开始还真是让我有点受不了.不过 ...

  3. Alibaba最新出炉 清华大神手撕面试官后留下Java面试八股文手册

    不知不觉中2022年已近年末,不知道在2022年大家又有怎样的一个目标,今年也是收到了很多小伙伴的反馈,注定是有人欢喜有人愁,有人拿下自己心仪的offer,有人面试遭遇滑铁卢! 最近小编也是翻了很多的 ...

  4. Fastformer:史上最强最快Transformer!清华、MSRA出品!

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:Sophia 知乎 https://zhuanlan.zhihu.com/p/404916271 AI博士笔记 ...

  5. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--有BUG,注意看我的备注

    转载请标明出处:  http://blog.csdn.net/forezp/article/details/69934399  本文出自方志朋的博客 在微服务架构中,根据业务来拆分成一个个的服务,服务 ...

  6. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--里面有BUG,所以我转载改一下

    017年04月09日 21:14:05 阅读数:271535 转载请标明出处:  http://blog.csdn.net/forezp/article/details/69934399  本文出自方 ...

  7. 大数据基础设施建设需要得到重视 | 记清华大数据“应用·创新”讲座

    "大数据基础设施是面向数据采集.数据分析和数据应用的创新性系统工程.它一方面指支撑大数据应用和大数据产业的基础设施,另一方面指用大数据和人工智能的方法,解决基础设施运行过程中的问题.&quo ...

  8. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...

  9. 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81041045 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

最新文章

  1. JAVA实现变态跳台阶问题(《剑指offer》)
  2. hdu 2159 FATE 二维背包
  3. 一、前端必须掌握HTML的基础知识
  4. proe50安装方法64位_3ds max 2021 安装教程【64位】
  5. 转:20分钟教你使用hexo搭建github博客
  6. SpringCloud Hoxton版微服务- OpenFeign实现服务调用
  7. python基础--字符串
  8. 服务器运维KPI指标,运维服务工程师考核表.docx
  9. 如何查看自己电脑的本地IP地址
  10. matlab设计椭圆低通滤波器,【 MATLAB 】ellip 函数介绍(椭圆滤波器设计)
  11. c语言编写生日祝福语大全,C++求高手帮忙写个程序...输出“生日快乐”四个字..用符号拼出来..谢谢啦...
  12. i9级E52450处理器_来了!十代英特尔酷睿标压处理器,实测跑分首发
  13. 3.购买服务器并部署
  14. win7系统无法激活问题
  15. 使用python scrapy爬取全国小区信息(包括小区价格,经纬度,面积,户数等),并保存到mysql和excel
  16. 把开发板挂载到Ubuntu
  17. 地理位置处理---Redis的GeoHash和MySQL的geography类型(之后有空再详细介绍)
  18. 人脸识别API接口概述
  19. RK3399平台开发系列讲解(内核入门篇)1.42、Linux 文件系统是怎么工作的?
  20. 谷歌为什么要对Android的开源严防死守?

热门文章

  1. 解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”
  2. 将一个链表按逆序排列
  3. 局域网伪造源地址DDoS***解决方法
  4. [转载]静态构造函数
  5. BIO  三位标注  (B-begin,I-inside,O-outside)
  6. @Controller与@RestController区别
  7. python 字典中的value 不在字典中,key才在
  8. shell脚本调试技术
  9. Java接口和Java抽象类
  10. 学习:正则表达式的基本语法