真实面经题目 · 原创解析
Self-Attention 中为什么需要 Softmax?
Self-Attention 中 Softmax 的作用是把相似度分数转换成归一化注意力权重,让模型用概率分布对 value 做加权聚合。
真实面经题目 · 原创解析
Self-Attention 中 Softmax 的作用是把相似度分数转换成归一化注意力权重,让模型用概率分布对 value 做加权聚合。
Self-Attention 先用 Q 和 K 计算每个 token 对其他 token 的相关性分数,这些分数可能正负都有、尺度不固定,不能直接当权重。Softmax 会把它们变成非负且和为 1 的分布,分数大的位置权重更高,分数小的位置权重更低,然后用这个分布对 V 做加权求和。这样每个 token 都能根据上下文动态选择关注对象。Softmax 还配合 mask 把不允许关注的位置变成接近 0 的权重。
QK 点积只是相关性打分,Softmax 把分数转成可解释、可加权的注意力分布。
指数归一化会放大高分位置和低分位置的差异,让模型更集中地关注相关 token。
padding mask 或 causal mask 会把不可见位置加上极小值,经过 Softmax 后权重接近 0。
Softmax 让权重分布可微且尺度相对稳定,配合缩放和数值稳定实现后,模型才能在长序列和多头场景中持续学习哪些 token 应该被关注。
归一化后的注意力权重可以被看作当前位置对上下文位置的分配比例。虽然它不等于严格因果解释,但能让后续加权求和有统一尺度,避免不同 query 的分数不可比较。
工程实现中不会直接对很大的分数取指数,而是会先减去每行最大值再做 Softmax,避免溢出;同时 mask 通常在 Softmax 前加到分数上,保证不可见位置权重接近零。
原始分数尺度不稳定且可能为负,直接加权会让表示难以训练,归一化后更稳定。
分布可能过尖或过平,长序列下还会有数值稳定和注意力稀疏性问题,需要缩放、mask 和稳定实现。
点积维度变大时方差会增大,缩放可以避免 Softmax 过早饱和导致梯度变小。