Transfomer

链接:Attention is all you need

Seq2seq model with “Self-attention”
alt text
RNN缺点:读了a1才能读a2,无法并行
CNN替代RNN:多叠几层就能覆盖全部的输入,缺点就是需要的层数更多

Self-Attention

alt text
Self-Attention Layer,输入是一个Sequence,而且输出是同时输出的,可以并行

alt text
alt text

步骤

  • q对每一个k做Attention
    alt text

  • softmax
    alt text

  • softmax后的α-hat与v相乘得到b
    alt text

实际可以当做是矩阵运算
alt text
alt text
alt text

Multi-head Self-attention (2 heads as example)

alt text
角标相同的做attention
alt text
得到的bi,1和bi,2做一个transform得到bi
head的数目也可以作为一个可调参数

Positional Encoding

前面的self-attention和输入输出的位置无关,所以ai又加了一个ei向量标定位置(这个向量是人为设置的,不是学来的)
这里ei和ai直接采用相加,而没有采用拼接,是因为两者实际上在数学上可以被证明是等价的(见下图)
alt text

Seq2seq with Attention

encoder-decoder
alt text
alt text

Universal Transformer

alt text
深度变成时间