一、RNN与CNN处理Seq2seq问题的局限性
- RNN的局限性
处理Seq2seq问题时一般会首先想到RNN,但是RNN的问题在于无论使用单向还是双向RNN都无法并行运算,输出一个值必须等待其依赖的其他部分计算完成。
RNN
- CNN的局限性
为了解决并行计算的问题,可以尝试使用CNN来处理。如下图,使用CNN时其同一个卷积层的卷积核的运算是可以并行执行的,但是浅层的卷积核只能获取部分数据作为输入,只有深层的卷积层的卷积核才有可能会覆盖到比较广的范围的数据,因此CNN的局限性在于无法使用一层来输出考虑了所有数据的输出值。
CNN
二、Self-attention
Transformer是一种使用了Self-attention的Seq2seq模型。Self-attention是一种可以取代RNN的网络结构,比起RNN其可以实现并行运算。
- Self-attention的结构
获得q、k、v
q^{i}、k^{i}和v^{i}
②接下来需要拿每个query对每个key做attention,这里使用的是Scaled Dot-Product Attention,其公式为:
也就是计算query与key的点积,另外点积需要除以的维度,主要是为了起到缩放的作用,避免梯度爆炸。至于更详细的为什么Dot-Product Attention需要被Scaled,可以参考该文章:为什么 dot-product attention 需要被 scaled?
该过程如下图所示,下图展示了
Attention
softmax
获得输出
同理等也通过同样的过程计算出来:
获得输出
- Self-attention如何并行运算
Q、K和V
该步骤的形式化过程如下:
由此也就完成了以下过程:
获得q、k、v
attention
获取A
该步骤的形式化过程如下:
softmax
获取O
该步骤的形式化过程如下:
并行运算的整个过程如下图所示:
整体过程
具体的细节可以用下图来表示:
整体过程
总而言之是一些矩阵运算,可以使用GPU来进行加速。
- Multi-head Self-attention
2 head
步骤
步骤
步骤
- Self-attention如何考虑位置信息
考虑位置
以下是该过程的直观的描述:
考虑位置
权重
三、Transformer
- Self-attention在Seq2seq问题中的应用
Self-attention层可以直接替换RNN层来处理Seq2seq问题,比如可以将RNN的AutoEncoder中的Encoder和Decoder全部替换成Self-attention层,使用下图中的网络结构同样可以做一些RNN能做的工作。比如翻译等:
AutoEncoder
- Transformer
下图以机器翻译为例展示了Transformer的结构:
Transformer
可以看到Transformer共有Encoder和Decoder两部分组成。
在Encoder部分:
①Input Embedding:指的是词嵌入层,获得词的编码向量;
②Positional Encoding:指的是上文提到的,用来确定输入向量的位置;
③Multi-Head Attention:这一层指的是如下结构:
Multi-Head Attention
④Add&Norm:该部分处理顺序如下:
Add&Norm
normalization
⑤Feed Forward:前馈神经网络;
⑥总共有N个这样的结构(Nx)。
在Decoder部分:
①Input:以Decoder的前一个时间步(time step)的输出作为Decoder的输入;
②Masked Multi-Head Attention: masking 的作用就是防止在训练的时候使用未来的输出的单词,确保对位置i的预测仅依赖于已知的位置i之前的输出,而不会依赖于位置i之后的输出。 比如训练时, 第一个单词是不能参考第二个单词的生成结果的。 Masking就会把这个信息变成0, 用来保证预测位置 i 的信息只能基于比 i 小的输出;
③Multi-Head Attention:encoder-decoder attention layer ,这一层会attend到之前Encoder部分的输出;
四、Attention可视化
Self-attention的过程中序列中的任意两个词都会做attention,这里可以将对应的权重做可视化:
可视化
在下面这张图中有个有趣的现象,可以看到经过训练后,句子“The animal didn't cross the street because it was too tired.”中“it”到“animal”的权重很大,而句子“The animal didn't cross the street because it was too wide.”中“it”到“street”的权重很大。
可视化
下图展示了Multi-Head Attention的不同head的可视化结果,上面的部分可以看出这个head主要关注比较长序列(global)的信息,而下面的head比较关注距自己相近的序列(local)的信息,说明使用多个head时不同的head通过学习会关注不同的信息。
Multi-Head Attention可视化
五、Transformer应用
- 多文档摘要
使用Transformer可以做多文档摘要,如下图所示,通过训练一个Summarizer来输入一个文档的集合然后输出这些文档的摘要:
Summarizer
Transformer很好地解决了输入序列长度较大的情况,而向RNN中输入长序列结果通常不会好:
长序列输入
- Universal Transformer
将Transfromer在深度上随时间循环使用,即重复使用相同的网络结构:
Universal Transformer
- Self-Attention GAN
简单了解一下:
Self-Attention GAN
参考资料
ref:深度学习中的“注意力机制”
![5W88WYU9FO02S]L(~VCZQ6B.png 5W88WYU9FO02S]L(~VCZQ6B.png](https://ucc.alicdn.com/pic/developer-ecology/9e9de10f99cf426caf587ac88078d00d.png?x-oss-process=image/resize,w_1400/format,webp)

![@119F(Z{KJJ`O_M]1M0P_EF.png @119F(Z{KJJ`O_M]1M0P_EF.png](https://ucc.alicdn.com/pic/developer-ecology/23b7e8d993ef4d8cb748cbc694fa4fad.png?x-oss-process=image/resize,w_1400/format,webp)


![QO~R[JBXR)LQ]1)U]XBWECF.png QO~R[JBXR)LQ]1)U]XBWECF.png](https://ucc.alicdn.com/pic/developer-ecology/5db69bcffd994c1fbee4384a79e3a0bb.png?x-oss-process=image/resize,w_1400/format,webp)

![DV]})RX2)@]7VHS~R2KQJ_S.png DV]})RX2)@]7VHS~R2KQJ_S.png](https://ucc.alicdn.com/pic/developer-ecology/742f7dc7901840418c048bb54e6fa8c6.png?x-oss-process=image/resize,w_1400/format,webp)
![`%5)1%1V]1F)F)83YRS`[YV.png `%5)1%1V]1F)F)83YRS`[YV.png](https://ucc.alicdn.com/pic/developer-ecology/1730446a2be64513bbdc662f9c0a2269.png?x-oss-process=image/resize,w_1400/format,webp)
![JYV]64X47K%TH4EH1OGNCEE.png JYV]64X47K%TH4EH1OGNCEE.png](https://ucc.alicdn.com/pic/developer-ecology/1d5bd4cedfc840b0a7cf8d489faafb0c.png?x-oss-process=image/resize,w_1400/format,webp)










![LL%N`V20P4`N$)]Y8A[AE}3.png LL%N`V20P4`N$)]Y8A[AE}3.png](https://ucc.alicdn.com/pic/developer-ecology/36d74a5bd28340498b78dd5d2da7fc12.png?x-oss-process=image/resize,w_1400/format,webp)

![S4T3_TFD_5~]KOBFCG%K}UW.png S4T3_TFD_5~]KOBFCG%K}UW.png](https://ucc.alicdn.com/pic/developer-ecology/040488092a824858b1ff291527431984.png?x-oss-process=image/resize,w_1400/format,webp)
![WN]$7}~T9[~Y~@6KN1FZCFL.png WN]$7}~T9[~Y~@6KN1FZCFL.png](https://ucc.alicdn.com/pic/developer-ecology/e0bb368fae414fe98083c049d3b91b84.png?x-oss-process=image/resize,w_1400/format,webp)

![U]9RZ(PTAW%2@PTUP9$EI$4.png U]9RZ(PTAW%2@PTUP9$EI$4.png](https://ucc.alicdn.com/pic/developer-ecology/8e956ae24aa24fb683cf61bf2cdd2dfb.png?x-oss-process=image/resize,w_1400/format,webp)
![4)OX`ES28J4R]4XTX[M`CZK.png 4)OX`ES28J4R]4XTX[M`CZK.png](https://ucc.alicdn.com/pic/developer-ecology/9f5a85e4c0464029a2fc3ad5282c49de.png?x-oss-process=image/resize,w_1400/format,webp)
![X9)KTHH1_{2L]D`%SUVB$8H.png X9)KTHH1_{2L]D`%SUVB$8H.png](https://ucc.alicdn.com/pic/developer-ecology/6d9c3d3610444c8dad9a84565f03e442.png?x-oss-process=image/resize,w_1400/format,webp)
![@TF(U(6KG65U]E982IXM_~L.png @TF(U(6KG65U]E982IXM_~L.png](https://ucc.alicdn.com/pic/developer-ecology/44f60818b1c9424eb040feefd24a1f9e.png?x-oss-process=image/resize,w_1400/format,webp)

![REOMK%~H6WI2(T`03PF[]RL.png REOMK%~H6WI2(T`03PF[]RL.png](https://ucc.alicdn.com/pic/developer-ecology/ac951b41ecbf4642911ef13425690144.png?x-oss-process=image/resize,w_1400/format,webp)

![DI@YESQ})0@T2C]7ZN5$1[7.png DI@YESQ})0@T2C]7ZN5$1[7.png](https://ucc.alicdn.com/pic/developer-ecology/8f71ccec0f3d4d5bb8cbadf6c4fbc046.png?x-oss-process=image/resize,w_1400/format,webp)

![UN1Z]6J66[RB155MBPP6)N9.png UN1Z]6J66[RB155MBPP6)N9.png](https://ucc.alicdn.com/pic/developer-ecology/b6ae3afc64204f40b2e8ecfb7a9fd54f.png?x-oss-process=image/resize,w_1400/format,webp)


![ZR)1~~C%VF01JNZG%K4}{]L.png ZR)1~~C%VF01JNZG%K4}{]L.png](https://ucc.alicdn.com/pic/developer-ecology/3d18b6b84e164c66b97a50957494fe40.png?x-oss-process=image/resize,w_1400/format,webp)


![(R4QTSVICR]~3MW{K_BC4WV.png (R4QTSVICR]~3MW{K_BC4WV.png](https://ucc.alicdn.com/pic/developer-ecology/1429c2eb33014776a8bc692b8c5bebed.png?x-oss-process=image/resize,w_1400/format,webp)





![N~4YA(8[{L3{DT3C[S9]NU0.png N~4YA(8[{L3{DT3C[S9]NU0.png](https://ucc.alicdn.com/pic/developer-ecology/392c0689b17a42669ae6cd82b76ff0c6.png?x-oss-process=image/resize,w_1400/format,webp)
![]6UZ8MZJO~AE}]}L9%NG5N1.png ]6UZ8MZJO~AE}]}L9%NG5N1.png](https://ucc.alicdn.com/pic/developer-ecology/333c2a6cdd0c498c8d31720101e4c8c1.png?x-oss-process=image/resize,w_1400/format,webp)


![DM`YI4JX57N7]9M}MF7%`KP.png DM`YI4JX57N7]9M}MF7%`KP.png](https://ucc.alicdn.com/pic/developer-ecology/8ec2fa59ef964e83a73e863f38ffde45.png?x-oss-process=image/resize,w_1400/format,webp)


![H]`HMZ}$OX6QPXX~HQV2V]F.png H]`HMZ}$OX6QPXX~HQV2V]F.png](https://ucc.alicdn.com/pic/developer-ecology/90ab8260e6ba4c78a1f58140bac7e5a4.png?x-oss-process=image/resize,w_1400/format,webp)


![ZSVHJV7KDA~]]`~`9D%[_PR.png ZSVHJV7KDA~]]`~`9D%[_PR.png](https://ucc.alicdn.com/pic/developer-ecology/da8d8fc758f04e24afcacd92f6728587.png?x-oss-process=image/resize,w_1400/format,webp)
![N$WEWON726P]BIW]RO]C}DK.png N$WEWON726P]BIW]RO]C}DK.png](https://ucc.alicdn.com/pic/developer-ecology/c8737c83ab234d9ca2ae5fc39cea0c31.png?x-oss-process=image/resize,w_1400/format,webp)
