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

来自:李rumor

卷友们好,我是rumor。

最近Transformer被各种「质疑」,上周CV圈已经杀疯了,多个大佬接连发文,把早已过时的MLP又摆了出来:

  • 5月4日,谷歌挂出《MLP-Mixer An all-MLP Architecture for Vision》

  • 5月5日,清华图形学实验室挂出《Beyond Self-attention: External Attention using Two Linear Layers for Visual Tasks》

  • 5月5日,清华软院挂出《RepMLP: Re-parameterizing Convolutions into Fully-connected Layers for Image Recognition》

  • 5月6日,牛津挂出《Do You Even Need Attention? A Stack of Feed-Forward Layers Does Surprisingly Well on ImageNet》

好家伙,题目一个比一个扎心。

然而CV圈扎完了,娘家的NLPer也不甘示弱,就在昨天我刷Arxiv的时候,一篇谷歌的文章映入眼帘:

大佬们指出,虽然Transformer老哥的效果确实好,但这个效果到底是模型结构带来的、还是预训练带来的呢? 毕竟之前也没人这么暴力地训过对不对。

那既然没人训过,这不idea就来了嘛

接下来我脑补了一下模型选择的问题,经典的就那么几个:

  1. MLP:好!但谷歌18年的USE模型已经证明了MLP没Transformer效果好,毕竟NLP还是需要序列信息的

  2. LSTM:不错!用这个把大模型训出来,今年的kpi就算了,明年的可以冲刺一下

  3. CNN:这个好!速度又快又轻便,根据经验来说在简单任务上表现也不差,稳得一批

结果一训真的是,瞬间ACL+1:

上图中 Lightweight CNN、Dilated CNN、Dynamic CNN 分别是不同的变种,可以得出以下结论:

  1. 不管有没有预训练,CNN的一些变种在NLP分类任务上都有比肩Transformer的效果

  2. 不只是Transformer,预训练对于CNN网络也是有提升的,在1%-18%之间

  3. Dilated CNN、Dynamic CNN 这两个变种的表现更好

  4. 结构、预训练对于最终表现都有影响,可能不预训练的时候A>B,预训练之后A<B

不过,表中数据展示的都是文本分类,虽然附加的一个生成式语义分析上表现也不错,但大佬们也十分清楚CNN在其他更难的任务上表现有限。

CNN在设计上没考虑句子间的交互,只抽取了局部特征。比如在句子pair拼接的分类任务上(MultiNLI、SQuAd),就比Transformer甩掉了10-20个点。有趣的是作者在给CNN加了一层cross-attention之后效果就上去了,在MultiNLI把差距缩小到了1个点。同时他们也指出,在双塔式的分类任务上CNN应该有更好的表现(就像USE模型用MLP也能达到不错的效果)。

所以,文章读到这里,发现Transformer还是稳坐NLP第一把交椅。这也是它的 ???? ???? 之处,无论别人怎么搞,都没法在general层面打过它。前段时间谷歌还有篇文章分析了Transformer的各种变种,发现大部分都只是在个别任务有所提升(摊手)。

但在做实际落地任务时,还是会有各种速度上的限制,这篇文章就是告诉我们在任务简单、数据量充足、速度受限的情况下可以用CNN及变种来解决问题。TextCNN is all you need。

最后再说几个我疑惑的点,欢迎留言讨论

  1. 文章用的都是CNN变种,为什么没尝试最经典的CNN呢?会不会是表现太差了,不能支持结论

  2. 文章的预训练模型是参考T5的结构,为什么不用更普遍的BERT结构?还提到T5是「current state-of-the-art」,那20年下的GPT3去哪儿了?难道是写的时间太早?为什么现在才发?

这些问题都不得而知了,所以短期内我还是继续无脑精调BERT吧,做个懒人。

说个正事哈

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

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

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

感谢支持,比心

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

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

记得备注呦

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

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

Transformer的中年危机相关推荐

  1. 【NLP】Transformer的中年危机?

    最近Transformer被各种「质疑」,上周CV圈已经杀疯了,多个大佬接连发文,把早已过时的MLP又摆了出来: 5月4日,谷歌挂出<MLP-Mixer An all-MLP Architect ...

  2. BERT大火却不懂Transformer?读这一篇就够了 重点 命名实体识别

    bert_config.josn 模型中参数的配置 { "attention_probs_dropout_prob": 0.1, #乘法attention时,softmax后dro ...

  3. Dissecting BERT Part 1: The Encoder 解析BERT解码器(transformer)

    原文:https://medium.com/dissecting-bert/dissecting-bert-part-1-d3c3d495cdb3 A meaningful representatio ...

  4. attention seq2seq transformer bert 学习总结 _20201107

    https://blog.csdn.net/weixin_44388679/article/details/102575223 Seq2Seq原理详解 一文读懂BERT(原理篇) 2018年的10月1 ...

  5. transformer bert seq2seq 深度学习 编码和解码的逻辑-重点

    参考文献: 详解从 Seq2Seq模型.RNN结构.Encoder-Decoder模型 到 Attention模型 [NLP]Attention Model(注意力模型)学习总结(https://ww ...

  6. Transformer的PyTorch实现

    Google 2017年的论文 Attention is all you need 阐释了什么叫做大道至简!该论文提出了Transformer模型,完全基于Attention mechanism,抛弃 ...

  7. BERT大火却不懂Transformer?读这一篇就够了 原版 可视化机器学习 可视化神经网络 可视化深度学习...20201107

    20211016 调节因子 20211004 [NLP]Transformer模型原理详解 - 知乎 论文所用 20210703 GPT模型与Transformer进行对比_znevegiveup1的 ...

  8. 浅谈Transformer 及Attention网络

    1 Transformer 模型结构 处理自然语言序列的模型有 rnn, cnn(textcnn),但是现在介绍一种新的模型,transformer.与RNN不同的是,Transformer直接把一句 ...

  9. Attention is all your need 谷歌的超强特征提取网络——Transformer

    过年放了七天假,每年第一件事就是立一个flag--希望今年除了能够将技术学扎实之外,还希望能够将所学能够用来造福社会,好像flag立得有点大了.没关系,套用一句电影台词为自己开脱一下--人没有梦想,和 ...

  10. 模型压缩95%:Lite Transformer,MIT韩松等人

    模型压缩95%:Lite Transformer,MIT韩松等人 Lite Transformer with Long-Short Range Attention Zhanghao Wu, Zhiji ...

最新文章

  1. Python使用matplotlib可视化两个时间序列的交叉相关性图、交叉相关图显示了两个时间序列之间的滞后性(Cross Correlation plot)
  2. matlab cuda的.cu文件应该放在那里_App Store限免推荐|日历和文件管理、无尽狂奔、Scalak等,共5款...
  3. postgres创建用户,修改用户密码,创建数据库
  4. python 代理的使用
  5. 查看linux是不是64位的命令
  6. mha如何管理多套mysql集群_Mysql 集群高可用方案 MHA
  7. dom常用操作全后续会补充
  8. java和python哪个学习编程_初学编程,选Java还是Python?
  9. css3案例分析,CSS3动画/动画库以及案例分析(上)
  10. python反射详解
  11. mysql一些常用操作_MySQL常用操作
  12. 安装ISA2004后,加入域时提示:远程过程调用失败且未运行的解决办法
  13. 自写小函数处理 javascript 0.3*0.2 浮点类型相乘问题
  14. python对称加密_【Python】 基于秘钥的对称加密
  15. phpqrcode 生成二维码
  16. 深入浅出23种设计模式(最全面)
  17. Cognos报表的开发
  18. android多屏幕共享,一种实现多人屏幕无线共享的方法技术
  19. esp ghost引导_ghost做uefi+gpt 修复引导(转自百度知道huanglenzhi)
  20. 六,华为交换路由做NAT五种方法

热门文章

  1. ivew select组件 DatePicker组件的清空
  2. MVC中添加动作过滤器的方法
  3. sql server 纵横表的转换
  4. 《迎向开阔的人生》——刘墉
  5. Windows Workflow Foundation开发环境配置
  6. 【排序算法】冒泡排序的三种方法
  7. vue+element tree(树形控件)组件(1)
  8. python_生成器
  9. jquery的一些常用方法
  10. 线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(二)