目录
1. 三大特征提取器RNN、CNN、Transformer
2. Transformer模型思想
2. 模型概述
3. Transformer优缺点
4. 应用场景
本质特征:T时刻隐层状态的计算,依赖两个输入,一个是T时刻的句子输入单词Xt,这个不算特点,所有模型都要接收这个原始输入;关键的是另外一个输入,T时刻的隐层状态St还依赖T-1时刻的隐层状态S(t-1)的输出,形成了序列依赖关系,无法实现并行计算
发展:改进得到的SRU、SRNN并行能力依旧较差
Transformer中抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。 作者采用Attention机制的原因是考虑到RNN(或者LSTM,GRU等)的计算是顺序的,RNN相关算法只能从左向右依次计算或者从右向左依次计算,这种机制带来了两个问题:
(1)时间片 t 的计算依赖 t−1 时刻的计算结果,这样限制了模型的并行能力;
(2)顺序计算的过程中信息会丢失,尽管LSTM等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别长期的依赖现象,LSTM依旧无能为力。
Transformer的提出解决了上面两个问题:
(1)首先它使用了Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量;
(2)其次它不是类似RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架。
优点:并行能力强
缺点:对于长输入的任务,典型的比如篇章级别的任务(例如文本摘要),因为任务的输入太长,Transformer会有巨大的计算复杂度,导致速度会急剧变慢
在原文中没有提到缺点,是后来在Universal Transformers中指出的,主要是两点:
(1)实践上:有些RNN轻易可以解决的问题transformer没做到,比如复制string,或者推理时碰到的sequence长度比训练时更长(因为碰到了没见过的position embedding)。
(2)理论上:transformers不是computationally universal(图灵完备),这种非RNN式的模型是非图灵完备的的,无法单独完成NLP中推理、决策等计算问题(包括使用transformer的bert模型等等)。
参考链接:
1. 论文原文《Attention Is All You Need》
2. 台大李宏毅老师Transformer课程
3. 深入理解Transformer及其源码
4. 放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
5. 三大特征提取器 - RNN、CNN和Transformer