Interview: 为什么Transformer使用缩放点积注意力而不是加性注意力?缩放因子1/√d_k的数学直觉是什么?


题目解析

这道题考察候选人对注意力机制底层数学原理的理解深度。面试官想知道你是否真正理解缩放因子的来源,而不仅仅是记住公式。加性注意力(Bahdanau Attention)使用前馈网络计算对齐分数,点积注意力直接用向量内积,两者表达能力理论上相当,但实际表现差异显著。

解答思路

首先解释两种注意力的计算方式差异:加性注意力通过v^T·tanh(W1·q+W2·k)计算,点积注意力通过q^T·k计算。点积注意力的优势在于可以利用矩阵乘法的高度优化实现(cuBLAS),计算效率远高于加性注意力。缩放因子1/√d_k的来源:当d_k较大时,q和k的点积结果的方差约为d_k,导致softmax进入梯度饱和区,缩放后方差回到1,保持梯度健康流动。

关键要点

核心是方差分析:假设q和k的各分量独立且均值为0、方差为1,则点积q·k的均值为0、方差为d_k。当d_k=512时,点积值可能达到几十甚至上百,softmax输出趋近one-hot,梯度接近于零。除以√d_k将方差归一化到1,softmax输出更平滑,梯度可以正常回传。

加分回答

可以进一步提到:在低维情况下(d_k较小),加性注意力实际上可能优于点积注意力,因为tanh的非线性给了额外的表达能力。还可以提到T5论文中的实验对比,以及有些工作尝试用可学习的温度参数替代固定的√d_k。

常见踩坑

很多候选人只说防止梯度消失但无法给出数学推导。另一个常见错误是把缩放因子理解为超参数调优的结果,而非方差分析的自然推论。还有人混淆softmax的梯度消失和ReLU的梯度消失,这是完全不同的机制。