可视化资源

注意力为什么除以 √d

自注意力靠 Query 和 Key 的点积算“相关分数”,再用 softmax 变成权重。但有个隐患:向量维度 d 越大,点积是 d 个乘积之和,数值会越积越大(标准差按 √d 增长)。分数一大,softmax 就会饱和——几乎把全部权重压给最大的那个、其余几乎为 0,变成非 0 即 1 的硬选择,梯度也随之消失,没法学。Transformer 的解法很简单:把分数除以 √d 再做 softmax,把它拉回稳定范围。拖动维度滑块,对比“不缩放”和“÷√d”两种 softmax。

同一组 Query/Key,左边是不缩放直接 softmax,右边是÷√d 后再 softmax。注意维度一大,左边就塌成“一根独大”(饱和),右边依然分布柔和。

4
点积随 d 变大

分数是 d 项之和,维度越高、数值波动越大(标准差∝√d)。

不缩放会饱和

分数过大,softmax 变成近似 one-hot,权重几乎全给一个、梯度消失。

÷√d 稳住

除以 √d 把分数拉回 O(1),softmax 保持柔和、可学——这就是“缩放点积注意力”。