学习资料
视频:https://www.youtube.com/watch?v=ugWDIIOHtPA&list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index=61&t=1s
课件:http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2019/Lecture/Transformer%20(v5).pdf
Transformer
Transformer是Seq2Seq with Self-Attention
BERT是unsupervised learning版本的Transformer
Seq2Seq Model的问题
Seq2Seq Model最大的问题就是慢,没法并行化。下图左侧是Seq2Seq的工作原理,右侧是使用CNN来做处理的过程。使用CNN最大的好处就是可以并行化处理。
相较于Seq2Seq Layer而言,可以直接使用Self-Attention Layer替代原先的RNN层,同时,可以引入并行化的作用。输入和输出保持不变。
Self-Attention
对每一个Input都做变换,生成q,k,v三种向量。然后,用q与每一个k做attention(所谓的attention,就是计算两个vector的相关性,或者相似度)。
attention有多种计算方法,下面使用的是scaled dot-product attention。
接着,将所有的attention value都做soft-max
将经过soft-max的值,与每一个v相乘,求和,求得 b 1 b^1 b1
对于 b 2 b^2 b2的计算方法,也是类似
下面来看看如何使用矩阵计算来做并行计算。
将输入的 x 1 , x 2 , x 3 , x