NLP-transformer部分知识点

1.  Scaled Dot-Product Attention中为什么要除以\sqrt{d_k}

  • 计算公式:Attention(Q,K,V) = Softmax(\frac{QK^T}{\sqrt{d_k}})V
  • 在softmax中起到temperature的作用,即使分布趋于平滑,增加可能性
  • 为什么是d_k而不是 3、4、5等 随便一个数。。。

  • 解释一下上述引用内容

    • 一个比较强的假设:q、k属于多维独立同分布(标准正太分布N~(0,1))随机变量

    • E(q \cdot k) = E(\sum^{d_k}_{i=1}u_iv_i) = \sum^{d_k}_{i=1}E(u_iv_i) = 0

    • 同时根据 独立同分布随机变量 和 的方差等于方差的和,可以得到 \n\nD(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

    • 可以发现点积后,均值不变,但是方差发生明显变化;为了使模型在一个统一的标准正太分布中学习,上述式子除以 \sqrt{d_k}即可满足要求;

2. transformer encoder对单词进行embedding时,为什么乘以\sqrt{d_k}(来自知乎)

  • 假设embedding table是用 Xavier初始化,即 E\sim N(0, \frac{1}{d_{model}})
  • 从onehot -> embedding,相当于从上述总体分布采样了d_{model}个样本,合起来称为该总体的一组子样本;
  • 记某组子样本(d_{model}维)的均值、样本方差分别为\overline{X}S^2,可得

                        ​​​​                                         E(\overline{X}) = 0\\ E(S^2) = 1/d_{model}

  • 所以 Embedding \sim N(0, 1/d_{model}),乘以\sqrt{d_k}以达到统一的标准正态分布的目的(知乎@王四喜)
  • 那么为什么不直接用N \sim (0, 1)进行初始化?
  • 知乎@Towser解释:因为transformer中可以设置tied-embedding的存在(减少参数),此时 比如 decoder最后输出softmax前,需要做一次线性映射(Linear)到词汇空间,linear的weight即来自于embedding的weight;线性层需要用到Xavier初始化,因此embedding层也就先用Xavier初始化,再缩放回来;

       

                 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年5月18日
下一篇 2022年5月18日

相关推荐