点击下面卡片关注我呀,每天给你送来AI技术干货!

来自:AI部落联盟

前言

2021年4月,距离论文“Attention is all you need”问市过去快4年了。这篇论文的引用量正在冲击2万大关

笔者所在的多个学习交流群也经常有不少同学在讨论:transformer是什么?transformer能干啥?为什么要用transformer?transformer能替代cnn吗?怎么让transformer运行快一点?以及各种个样的transformer技术细节问题。

解读以上所有问题不再本文范畴内,但笔者也将在后续文章中继续探索以上问题。本文重点关注:我们用transformer干啥?

我们用transformer干啥?笔者突然发现这句话有两种理解(orz中文博大精深),希望我的语文不是体育老师教的。

  1. 疑问句:

    我们使用transformer在做什么?

    解决什么深度学习任务?

  2. 反问句:

    我们用用transformer干啥?

    为啥不用LSTM和CNN或者其他神经网络呢?

疑问句:用transformer干啥?

谷歌学术看一眼。

为了简洁+有理有据回答这个问题(有缺失之处忘大家指出),笔者首先在谷歌学术上搜寻了一下“Attention is all you need”看了一下被引,到底是哪些文章在引用transformer呢?

“Attention is all you need”被引:19616次。

先看一下前几名引用的被引:

  • 最高引用的“Bert:Pre-training of deep bidirectional transformers for language understanding"被引:17677次。BERT在做自然语言处理领域的语言模型。

  • 第2和4名:“Squeeze and Excitaion Networks”被引用6436次,“Non-local neural networks”。计算机视觉领域,但还没有直接用transformer

  • 第3名:“Graph attention networks”被引用3413,一种图神经网络,该文也不是直接使用transformer的,但使用了attention

  • 第5和6名:“Xlnet:Generalized autoregressive pretraining for language undersstanding“ 2318次和 ”Improving language understanding by generative pretraining“ 1876次。自然语言处理领域预训练/语言模型/生成模型。

  • 第7名“self-attention generative adversarial networks” 1508次。基于self-attetnion的生成对抗网络。

  • 第8、9、10都属于自然语言处理领域,一个是GLUE数据集,一个做multi-task learning。

从Top的引用已经看出自然语言处理领域肯定是使用transformer的大头了。随后笔者对熟悉的深度学习任务关键词搜了一下被引用:

  • 计算机视觉领域vision前2的被引用:“Vibert”和“Stand-alone self-attetnion in vision model”分别为385和171次。

  • 语音信号处理领域speech:“state-of-the-art speech recognition with sequence-to-sequence model” 被引710次。

  • 多模态任务modal:“Unicoder-Vl:

  • A universal encoder for vision and language by cross-model pre-training。

  • 检索领域etrieval:“multilingual universal sentence encoder for semantic retrieval”被引73次

  • 推荐领域recommendation:惊讶的我发现居然只有10篇文章orz。

初步结论:transformer在自然语言处理任务中大火,随后是语音信号领域和计算机视觉领域,然后信息检索领域也有所启航,推荐领域文章不多似乎刚刚起步。

执着的笔者扩大搜索范围直接谷歌搜索了一下,找到了这篇文章BERT4Rec(被引用128):"BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer"。

Github上搜一搜。

排名第1的是HuggingFace/transformers代码库。笔者对这个库还算熟悉,但最近疯狂新增的模型缺失还没有完全跟进过,于是也整理看了一下。

图1 HuggingFace/transformers代码库关系图

如图1所示,左边展示了Huggingface/transformers代码库能处理的各种深度学习任务,中间展示的是处理这些任务的统一流水线(pipeline),右边展示的是与任务对应的transformers模型名称,下方表示用transformers解决这些深度学习任务可以在cpu或者gpu上进行,可以使用tensorflow也可以使用pytorch框架。

那么根据谷歌和github结果基本可以得到这个核心结论啦:transformer能干啥?目前已有的transformer开源代码和模型里自然语言处理任务占大头(几乎覆盖了所有自然语言处理任务),随后是计算机视觉和语音信号处理,最后自然而然进行多模态信号处理啦,推荐系统中的序列建模也逐步开始应用transformer啦。

有一点值得注意:自然语言处理里,所有研究同学的词表库基本统一,所有谷歌/facebook在大规模语料上预训练的transformer模型大家都可以使用。推荐系统不像自然语言处理,各家对user ID,Item ID或者物品类别ID的定义是不一样的,所以各家的pretrain的模型基本也没法分享给其他家使用(哈哈哈商业估计也不让分享),也或许也是为什么transformer的开源推荐系统较少的原因之一吧,但不代表各大厂/研究机构用的少哦。

反问句:用transformer干啥?

为什么非要使用transformer呢?

笔者从一个散修(哈哈修仙界对修炼者的一种称呼)的角度聊一聊自己的看法。

  • 不得不用。

    首先谷歌/Facebook一众大厂做出来了基于transformer的BERT/roberta/T5等,刷新了各种任务的SOTA,还开源了模型和代码。

    注意各种任务啊,啊这,咱们做论文一般都得在几个数据集上验证自己的方法是否有效,人家都SOTA了,咱得引,得复现呀,再说,站在巨人的肩上创下新SOTA也是香的。

  • 的确好用。

    Transformer是基于self-attetion的,self-attention的确有着cnn和lstm都没有的优势:

    比如比cnn看得更宽更远,比lstm训练更快。

    重复累加多层multi-head self-attetion还在被不短证明着其强大的表达能力!

  • 改了继续用。

    如果不说transformer的各种优点,说一个大缺点自然就是:

    参数量大、耗时耗机器。

    但这些问题又被一众efficient transformers再不断被解决。

    比如本来整型数运算的硬件开发板无法使用transformers,随后就有INT-BERT说我们不仅可以用,还能更快更好。

  • 上手就用。

    以Huggingface/Transformers为例子,一个代码库包含多种深度学习任务,多个开源的transfromer模型,各种预训练transformer模型,以至于各种深度学习任务上手就来,十分方便。

    笔者似乎并没有看到其他模型结构有如此大的应用范围和规模了。

  • 未来还要用。

    从上一章节可以看出,transformer这股风已经从自然语言处理领域吹出去了,其他领域的SOTA也在不断被transformer打破,那么以为这,自然语言处理领域的历史逐渐在其他领域复现(当然只是笔者个人观点哈)。

后记

以上就是今天想聊的话题,希望大家喜欢。Transformers交流群中也不断有新的问题和细节的探讨产生。比如:

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

点击上面卡片,关注我呀,每天推送AI技术干货~

整理不易,还望给个在看!

我们用transformer干啥?相关推荐

  1. ResNet被全面超越了,是Transformer干的:依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet...

    ↑ 点击蓝字 关注深度学习技术前沿 作者丨Happy 转自丨极市平台 导读 又一篇Transformer来了!本文在ViT方面进行了一次突破性探索,提出了首次全面超越ResNet,甚至轻量化版本优于M ...

  2. ResNet被全面超越了,是Transformer干的:轻量版优于MobileNet

    作者丨Happy    审稿|邓富城    编辑丨极市平台 极市导读 又一篇Transformer来了!本文在ViT方面进行了一次突破性探索,提出了首次全面超越ResNet,甚至轻量化版本优于Mobi ...

  3. 【深度学习】Transformer 向轻量型迈进!微软与中科院提出两路并行的 Mobile-Former...

    作者丨happy 编辑丨极市平台 导读 本文创造性的将MobileNet与Transformer进行了两路并行设计,穿插着全局与特征的双向融合,同时利用卷积与Transformer两者的优势达到&qu ...

  4. Transformer一文搞懂

    transformer一天搞懂 1 transformer 1.1 从整体来看transformer干的事情 1.2 位置编码 1.3 注意力机制(3个向量,3个阶段) 1.3.1 从图像上理解 1. ...

  5. AIWalker是个什么样的号?为什么要推荐呢?聚焦low-level,关注AI最前沿

    今天给大家推荐一个好朋友Happy运营的公众号[AIWalker],该公众号重点致力于low-level领域(比如超分.降噪.增强等)知识的分享,同时也会对最前沿的Transformer.网络架构.目 ...

  6. “重参数宇宙”再添新成员:RepMLP,清华大学旷视科技提出将重参数卷积嵌入到全连接层

    编辑:Happy 首发:AIWalker paper: https://arxiv.org/abs/2105.01883 code: https://github.com/DingXiaoH/RepM ...

  7. ICCV 2021 最新200篇ICCV2021论文分方向汇总

    ICCV 2021 结果出炉!最新200篇ICCV2021论文分方向汇总(更新中) - 知乎 不久前,计算机视觉三大顶会之一ICCV2021接收结果已经公布,本次ICCV共计 6236 篇有效提交论文 ...

  8. 面经:什么是Transformer位置编码?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员 过去的几年里,Tra ...

  9. MSRA的Transformer跨界超越CNN,还解决了计算复杂度难题

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 谈到Tr ...

  10. 3W字长文带你轻松入门视觉Transformer

    作者丨深度眸@知乎 来源丨https://zhuanlan.zhihu.com/p/308301901 编辑丨极市平台 0 摘要 transformer结构是google在17年的Attention ...

最新文章

  1. python逐行读取文本
  2. python执行提示包找不到的问题
  3. WinCE启动次数的记录
  4. Leaflet中使用layerGroup图层组实现图层切换
  5. java合并单元格同时导出excel
  6. Apache ActiveMQ中的消息级别授权
  7. LINUX 错误代码
  8. matlab createtask,Matlab批量与createjob
  9. 商业智能应用的五大步骤
  10. C++ Templates中文版 p61页的一个问题
  11. 物联网常见的几种通信方式
  12. 从txt中读取float数据C++
  13. 高中计算机基础知识课件,5.1.2 信息资源管理的方式方法
  14. 老毛桃u盘重装win7教程
  15. 手机NFC如何格式化加密IC卡
  16. CSDN之博客积分规则
  17. 网页版MC服务器搭建+汉化
  18. ESP32Arduino学习(三).ESP32驱动WS2812第一个灯绿色问题的解决(Adafruit_NeoPixel库)
  19. 微信小程序订单语音播报
  20. Adams 与MATLAB联合仿真 失败,adams与matlab联合仿真例子(正确没商量).doc

热门文章

  1. C#找出接口的所有实现类并遍历执行这些类的公共方法
  2. 快速上手友盟推送前后端
  3. Android Studio真机测试失败-----''No target device found
  4. ini配置文件打开模式 r,r+等
  5. C++习题之变量和基本类型
  6. 《管理3.0》读书笔记
  7. 20190920 On Java8 第二十章 泛型
  8. Hyperledger Fabric 实战(十): Fabric node SDK 样例 - 投票DAPP
  9. 线程同步(windows平台):信号量
  10. SSH Mybatis 框架