self-attention

RNN不容易被平行化,先计算得到b1,再计算得到b2,再b3,再b4
Self-attention输入和输出也和RNN一样都是sequence,每一个输出和Bi-RNN一样,都由所有的输入序列得到。但是不同之处在于输出是同时得到的,不需要再按照顺序得到。
self-attentionself-attention
每一个q和所有k做一次attention得到对应的值。self-attention
把值经过softmax:
self-attention
得到α^与对应的v相乘,再累加得到b,可以看到b是把所有的输入值都利用到了。
self-attention
要得到b2:只需要用q2与每一个k做乘积:
self-attention
矩阵表示:
self-attentionself-attentionself-attentionself-attentionself-attention
但是这个网络没有关于输入的位置信息,它不考虑哪一个和它更近,哪一个更远。所以在得到的ai还要加上一个代表位置信息的值ei
self-attention
等同于是我把xi后面接一个pi,pi代表目前的xi处于哪个位置:
self-attention
但是Wp是手动设置的:
self-attention
对于Seq2seq我们是直接把里面的RNN部分给取代掉,都变成self-attention:
self-attention
self-attention

上一篇:Introduction to Linear Algebra(4) Vector Spaces


下一篇:Codeforces Round #596 (Div. 2)B2. TV Subscriptions(Hard Version)