在 RNN 里,我们用一个隐藏变量 ht 记录前 t 个 Input Token 所代表的 Context。如果要生成第 t+1 个 Output Token 的话,就利用输入的第 t+1 个 Input Token 和代表了前文信息的隐藏状态 ht 做 Attention Alignment 计算出一个向量,再转换成 Word.
这样一个 AutoRegressive 模型有两个显著的问题
- 由于是时序生成(必须一个一个 Token 地生成),无法并行
- 由于时序生成,如果要保存很久远的信息,隐藏状态 ht 的大小就必须非常大,导致了 Computation & Memory Overhead
Model Arch
Transformer 总体是 Encoder-Decoder 架构。Encoder 将 Input
杂谈
其实 Transformer 的本质也是概率统计模型,其生成过程就是给定前 i 个词的情况下生成第 i+1 个词;训练过程的 Loss Function 是
maxi∑logPθ(wi∣wi−k,…,wi−1)这里的 k 其实就是 Context Length 的意思。