语言模型的 Softmax Bottleneck 是什么?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
从输出层的矩阵形式解释:隐藏状态经线性投影再 Softmax,跨上下文形成的对数概率矩阵,其秩受隐藏维度限制;真实语言分布可能需要更高秩,所以称为瓶颈。
被问解决方案时,可以举 Mixture of Softmaxes、非线性输出头或增大表示维度,但也要说实际收益会受模型主体、参数共享和计算成本影响,不能只凭秩断言效果。
可以这样答:
标准语言模型用一个 d 维隐藏状态经过线性词表头和 Softmax 得到分布。把许多上下文的对数概率排成矩阵后,它可表示的秩大致受隐藏维度加常数项限制,而真实条件分布可能具有更高秩,这就是 Softmax Bottleneck。Mixture of Softmaxes 通过混合多个条件分布突破单个线性头的秩限制,代价是参数和计算增加;瓶颈说的是输出族的表达上限,不等于每个模型都已被它卡住。
核心回答
Softmax Bottleneck 指线性 LM Head 对条件分布表达秩的限制。把 \(M\) 个上下文隐藏状态堆成 \(H \in \mathbb{R}^{M \times d}\),输出权重写成 \(W \in \mathbb{R}^{V \times d}\),则 logits 矩阵 \(Z = HW^{\top}\) 的秩至多为 \(d\)。逐行 LogSoftmax 只是再减去每行的归一化常数,因此模型可表达的 log-probability 矩阵秩至多约为 \(d+1\)。
真实语言中,不同上下文到词表分布的结构可能需要更高秩;当 \(d\) 明显小于这种有效秩时,仅靠线性投影加 Softmax 无法精确表示目标分布。这是表示能力问题,不是 Softmax 数值溢出问题。
展开说明
对上下文 \(i\) 和词 \(j\),有:
\[\log p(j \mid i) = h_i^{\top}w_j - \log \sum_k \exp\!\left(h_i^{\top}w_k\right)\]第一项组成低秩矩阵 \(HW^{\top}\),第二项对同一行所有列相同,只增加至多一个秩一项。增加训练数据不能突破该结构上限,只能在受限函数族内找到更好解。
Mixture of Softmax 为同一上下文生成多个 Softmax 分布,再按门控权重混合;由于“概率混合后再取对数”不再等价于单个低秩 logits 矩阵,它可以表达更高秩结构。增大隐藏维度或使用更丰富的输出层也能缓解瓶颈,但会增加参数和计算。该分析最初在 RNN LM 上提出,线性输出层的秩论证同样适用于 Transformer。
工程实践
遇到验证困惑度平台期时,先通过宽度、数据和优化消融确认是否真受输出表达限制,不应看到 Softmax 就归因于该瓶颈。若尝试 Mixture of Softmax,应监控各分量是否坍缩为相同分布,并评估训练与推理的额外成本。大词表模型还需比较 Adaptive Softmax、分词方案和 Weight Tying 的影响。
常见追问
- 为什么 LogSoftmax 后秩上界可能多一? 每行减去一个归一化标量,相当于加入“行向量乘全一列向量”的秩一矩阵,因此上界从 \(d\) 变为至多 \(d+1\)。
- 把词表变大能解决瓶颈吗? 不一定。词表变大增加列数,却不提高由隐藏维度决定的 logits 秩上限,甚至可能让差距更明显。
- 它与 Softmax 数值稳定问题有什么区别? 数值稳定关注指数溢出,可用减最大值解决;Softmax Bottleneck 是模型分布族的秩受限,数值技巧不能消除。
一句话复习
线性 LM Head 使跨上下文的 logits 秩不超过隐藏维度,LogSoftmax 只多至多一个秩,这就是 Softmax 的表示瓶颈。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。