为什么注意力机制中要除以 \(\sqrt{d_k}\) :从方差到梯度的推导
\[
Attention(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
\]
在 Transformer 的注意力机制中,计算点积注意力 \(QK^T\) 之后,需要除以一个 \(\sqrt{d_k}\) 进行缩放。这一操作通常被解释为“为了数值稳定性”。这里的“稳定”究竟指的是什么?如果不除以 \(\sqrt{d_k}\) 就不稳定了么?为什么不除以 \(d_k\) 或其他数值呢?
本文分析了点积的方差如何随维度增长而增大,并进一步推导 \(\text{softmax}\) 变换得到的行向量的雅可比矩阵,展示当输入数值过大时梯度如何逐渐趋近于零。通过这一过程,我们将会理解,除以 \(\sqrt{d_k}\) 并不是随意的设置,而是确保注意力机制在高维空间中仍能保持可训练性的必要条件。