1.由来
在Transformer之前,做翻译的时候,一般用基于RNN的Encoder-Decoder模型。从X翻译到Y。
但是这种方式是基于RNN模型,存在两个问题。
一是RNN存在梯度消失的问题。(LSTM/GRU只是缓解这个问题)
二是RNN 有时间上的方向性,不能用于并行操作。Transformer 摆脱了RNN这种问题。
2.Transformer 的整体框架
输入的 x 1 , x 2 x_{1},x_{2} x1,x2,共同经过Self-attention机制后,在Self-attention中实现了信息的交互,分别得到了 z 1 , z 2 z_{1},z_{2} z1,z2,将 z 1 , z 2 z_{1},z_{2} z1,z2分别经过各自的全连接神经网络之后,得到了 r 1 , r 2 r_{1},r_{2} r1,r2。
self-attention的意义是
当使用Transformer模型翻译’’ The animal didn’t cross the street because it was too tired"。当翻译到it时, 我们知道 it 指代的是 animal 而不是street. 所以, 如果有办法可以让 it 对应位置的embedding 适当包含 animal 的信息,就会非常有用. self-attention的出现就是为了完成这一任务.
如上图右侧所示,self-attention会让单词it和某些单词发生比较强的联系, 得到比较高的attention分数.
3.Self-attention机制
3.1Self-attention解释
假设 x 1 , x 2 ∈ R 1 × 4 x_{1},x_{2}\in R^{1 \times 4} x1,x2∈R1×4,
同时引入三个矩阵,Queries矩阵: W Q ∈ R 4 × 3 W^{Q}\in R^{4 \times 3} WQ∈R4×3,Key矩阵: W K ∈ R 4 × 3 W^{K}\in R^{4 \times 3} WK∈R4×3,Values矩阵: W V ∈ R 4 × 3 W^{V}\in R^{4 \times 3} W