self-attention Transformer

1. 首先我们的目标函数是 最大似然估计,需要计算的是P(Y|X),即为给定vector x 的情况下,输出vector为Y的概率

  1) 根据下图公式,我们可以看出,例如输入为 'we',输出为汉字的情况下,我们需要穷举计算所有汉字计算分母,是不可能的

  2)所以将其优化为RNN的概率连乘

2. 最简单的self-attention

  1)在之前的seq2seq中的attention机制,我们是用Xi乘以querySj,得到Wij,再softmax得到权重Wi的,再用权重Wi点乘Xi再相加的

    那么这里面的 Query : Sj  Key: Xi  Value: Xi

  2) 在self-attention中

    1- 不再使用seq2seq中的RNN(时序)结构,允许并行计算

    2- Query从Sj变为Xi,将Query Key Value三者全变成Xi

 

3.  带参数的self-attention

  1)高阶self-attention,由于Query , Key , Value 都是Xi,可以将其做线性变换进行区分

  2)在做softmax时,可以除以根号下dk,来减少softmax对极大值的敏感

4. multi-head attention , 这边就讲的不清楚了

  1) 对输入序列Xi,将其维度等分成dk(自定义参数)份,对于每份都计算其self-attention的输出,再拼接起来

  2) 比如X为三维输入 (123,212,432),然后对每维度单独多维映射成query,key,value再计算其输出,最后拼接起来。

5. Transformer 细节也讲的不清楚

原文地址:https://www.cnblogs.com/ChevisZhang/p/13750242.html