进入我的博客阅读体验更好哦!博客文章链接:Attention Is All You Need——Transformer模型总结 (lxq.icu)
Transformer(“变形金刚”),被誉为是深度学习继MLP、CNN、RNN后的第四大模型。正如标题所说,Transformer最重要的是使用了Attention即注意力机制,而不要使用循环和卷积。Transformer其论文的出发领域是NLP(自然语言处理),在机器翻译的任务上取得了很好的成果,在之后拓展到了深度学习的几乎所有领域。
就机器翻译任务来说,RNN模型是序列化的,后一项的时序信息依赖于前一项的时序信息。虽然经过了优化但本质上没有解决其并行度低的问题,放在如今硬件并行度高的情形下表现出其对硬件的不适应。注意力机制不使用循环和卷积,所以其并行度高。注意力机制改变了传统卷积神经网络的只能看到局部而不能看到整体(关联两个位置的输入或输出操作关于距离成正比增长)。同时作者也使用Multi-Head Attention模拟了卷积神经网络多输出,保留了其优点。
Transformer模型的注意力机制主要用于编码器-解码器的架构中(编码器将长度n的序列映射为长度n的向量(机器语言),解码器自回归输出一个长为m的序列)(自回归(auto-regressive)——过去的输出同时作为现在时刻的输入以得到输出,表现为顺序输出)
![image-20220111200354027](http://img.lxq.icu/20220111200354.png)
值得注意的是,在模型中,编码器与解码器的处理块几乎是相同的,其都使用了残差连接和Norm处理(文章中使用的是LayerNorm,区别于BatchNorm),有一点细小的不同是在解码器中使用了带掩码的多头注意力机制(Masked Multi-Head attention),其输入和输出的细节也值得注意。
模型的注意力机制较为简单,不同的是作者在点乘注意力机制上除以了一个 d k \sqrt{d_{k}} dk除此以外作者还使用了多头注意力机制,类似于CNN的多个输出通道。
注意力机制之外模型中还有一个蓝色块,称为前馈层,实质上就是一个单隐藏层的MLP,参照公式理解:
F
F
N
(
x
)
=
m
a
x
(
0
,
x
W
1
+
b
1
)
W
2
+
b
2
FFN(x)=max(0,xW_{1}+b_{1})W_{2}+b_{2}
FFN(x)=max(0,xW1+b1)W2+b2
模型的最后一个细节是Positional Encoding,其目的是将词在句中的位置加入到输入中来使得时序信息添加到注意力机制中。
实验部分暂且略过
Attention的优势是在处理长序列时对信息的提取融合做得比较好(对比RNN),在通常情况下注意力、卷积和循环的算法复杂度差不多。但Attention对模型的假设和参数设置更少也导致Attention需要更多的数据和更大的模型才能训练出于RNN和CNN相同的效果。
总的来说,从之后的发展来看,Transformer模型不仅仅只适用NLP,也适用于几乎所有深度学习领域。Transformer之于NLP的作用类似于CNN之于CV的作用,即研究者可以只关注模型的构建而不需要关心任务相关的专业知识。CNN和Transformer代表了趋同的、通用化的趋势,使得不同领域的成果能相互共享,加速了学科的发展。但也要看到,对于模型的理解仍是我们现在所欠缺的,就拿本文来说,Attention并不能单独其作用,仍然需要其他模块的配合。