![fffa67c3f0156648d2867d38c87279e1.png](https://i-blog.csdnimg.cn/blog_migrate/c52f243ddc66b2d295badab0535966c8.jpeg)
写在前面
Attention is all you need 是谷歌在2017年发表的一篇论文,文中提出了transformer模型,将attention机制的优点发挥到了极致,这正是该论文题目的由来。transformer模型是nlp领域的集大成者,为OpenAI的GPT及Google BERT等模型的提出奠定了基础。
引言
transformer模型的最初用于处理seq2seq问题,采用常见的encoder-decoder框架,该模型使用attention机制,完全取代了rnn及cnn,解决了nlp领域中rnn及cnn存在的以下问题:
- 无法直接提取任意词语间的关联信息。rnn由于存在梯度消失问题,难以解决文本中长距离的依赖,而cnn则需要调节窗口大小来获取局部范围内的上下文信息。
- 计算量较大,并行化程度较低。rnn本质上是一种串行结构,无法并行化,模型效率不高
除了使用attention机制外,transformer模型还采用了position embedding,residual connection,layer normalization以及label smooth等tricks,来优化模型效果。下面我将详细介绍transformer模型技术细节。
模型架构
![c397e65e19120b41f592bb92313bfb9c.png](https://i-blog.csdnimg.cn/blog_migrate/af185346245268929474b546f23c34bb.jpeg)
- 模型采用常见的encoder-decoder框架,encoder用于处理输入序列,decoder处理输出序列。
- encoder部分:
- 词嵌入层(input embedding),作为输入
- 位置嵌入层(position embedding),用于学习词语位置关系,与词嵌入直接相加,作为最终输入
- Nx个结构相同的信息提取层,各层之间串行连接,即将上一层输出作为下一层输入
- 每个信息提取层由以下两大部分组成:a. 带残差连接(residual connection)及层正则化层(layer normalization)的注意力层,输入在经过带有shortcut connections的multi-head-attention laryer作用之后,进行层正则化;b. 带residual connection及layer normalization的前向传播层,该层