深度学习 | (7) 有了Transformer框架后是不是RNN完全可以废弃了?

见解1

原文地址

有了Transformer框架后RNN完全可以废弃,这个观点荒谬至极。

举一个例子:
除了个别探索,所有seq2seq的decoder都是一种rnn结构,不管是基于cnn的还是transformer的。说实话,我甚至觉得将decoder部分直接换成lstm等结构效果会更好。

此外,大家都说transformer快而rnn慢,君不见transformer的效率是O(n^2)而rnn和cnn都是O(n),对于真正长的序列,transformer不管在速度上还是显存上都是瓶颈。

还有,大家觉得transformer的成功,是因为有bert这样的预训练模型可用,如果没有呢?随便给你一个(时间)序列数据集,你真有信心认为基于attention的模型比随便来两层lstm要好?

见解2

原文地址

我们首先区分一个概念:广义Transformer和狭义Transformer,狭义Transformer指Attention is all you need那个结构,包含一个encoder一个decoder;广义Transformer指self-attention机制的各种应用。下面是我个人一些理解,感觉可能有不对或者不完整的

  1. 狭义Transformer在大数据的情况下超过RNN一点问题没有,而且是显著的超,目前在很多大数据任务都验证了,比如WMT数据集的机器翻译,BERT,以及最近的TTS(语音合成)。
  2. 狭义的Transformer在跑中等数据集(一百万)或者小数据(几万或者几千)和RNN谁好谁坏不一定,可能靠调参,不是那种直接默认参数配置就会比RNN好,我简单的跑过中等数据集的对话(Twitter)和摘要(CNN DailyMail),感觉没好多少。小数据反而更容易过拟合,按照一些paper报的结果反而RNN好
  3. 广义的Transformer又是另一个故事了,我个人理解self attention机制几乎在所有任务上好好调都有用,比如分类,阅读理解(QANet),小规模s2s(Universal Transformer)。比如QAnet和Universal Transformer大家如果有兴趣可以看一看,通过自己的Recurrent机制,能给性能带来很大的增益。Multi head attention和简单的Self attention都是很有用的结构上的trick
  4. 我忘了是ACL的哪篇文章了,做过一个实验。RNN对于50个词之前的词顺序就不敏感了,而对于100个词之前的就完全忘了,所以RNN在长序列上肯定是有问题的。不过Transformer的位置信息只靠Position Embedding,我个人觉得可能也有提升空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值