1. ?Scaled Dot-Product Attention中为什么要除以
- 计算公式:
 - 在softmax中起到temperature的作用,即使分布趋于平滑,增加可能性
- 为什么是
而不是 3、4、5等 随便一个数。。。  -
解释一下上述引用内容
-
一个比较强的假设:q、k属于多维独立同分布(标准正太分布N~(0,1))随机变量 -
则 , -
同时根据 独立同分布随机变量 和 的方差等于方差的和,可以得到 \n\n![D(q \cdot k) \\ = D(\sum^{d_k}_{i=1}u_iv_i) \\ = \sum^{d_k}_{i=1}D(u_iv_i) \\ = d_k * D(u_iv_i) \\ = d_k * [E(u_i^2v_i^2)-E^2(u_iv_i)] \\ = d_k * E(u_i^2v_i^2) \\ = d_k * Eu_i^2 * Ev_i^2 \\ = d_k](https://latex.codecogs.com/gif.latex?D%28q%20%5Ccdot%20k%29%20%5C%5C%20%3D%20D%28%5Csum%5E%7Bd_k%7D_%7Bi%3D1%7Du_iv_i%29%20%5C%5C%20%3D%20%5Csum%5E%7Bd_k%7D_%7Bi%3D1%7DD%28u_iv_i%29%20%5C%5C%20%3D%20d_k%20*%20D%28u_iv_i%29%20%5C%5C%20%3D%20d_k%20*%20%5BE%28u_i%5E2v_i%5E2%29-E%5E2%28u_iv_i%29%5D%20%5C%5C%20%3D%20d_k%20*%20E%28u_i%5E2v_i%5E2%29%20%5C%5C%20%3D%20d_k%20*%20Eu_i%5E2%20*%20Ev_i%5E2%20%5C%5C%20%3D%20d_k) -
可以发现点积后,均值不变,但是方差发生明显变化;为了使模型在一个统一的标准正太分布中学习,上述式子除以? 即可满足要求;
2. transformer encoder对单词进行embedding时,为什么乘以 (来自知乎)
- 假设embedding table是用 Xavier初始化,即?
 - 从onehot -> embedding,相当于从上述总体分布采样了
个样本,合起来称为该总体的一组子样本; - 记某组子样本(
维)的均值、样本方差分别为 、 ,可得
?????????????????????????????????????????????????????????????????????
- 所以?
,乘以 以达到统一的标准正态分布的目的(知乎@王四喜) - 那么为什么不直接用
进行初始化? - 知乎@Towser解释:因为transformer中可以设置tied-embedding的存在(减少参数),此时 比如 decoder最后输出softmax前,需要做一次线性映射(Linear)到词汇空间,linear的weight即来自于embedding的weight;线性层需要用到Xavier初始化,因此embedding层也就先用Xavier初始化,再缩放回来;
???????
?????????????????
|