题目重点:从全量归一化项推导减logq,区分负采样与确定正例,不承诺有限样本梯度完全无偏。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练推荐检索全目录softmax,负例来自已知proposal q(j)>0;正例通常固定加入。
- 具体in-batch、去重和采样次数策略未给,公式依这些约定,不指定唯一公司实现。
解题路线
- 全量目标Z=Σ_j exp(s_j)。负例按q抽取时未经校正的和更偏向常出现item,模型训练分母不同于全目录。q是采样机制概率,不是模型预测概率,也不是任意点击率。
- 重要性恒等E_{j~q}[exp(s_j)/q(j)]=Z,因此加权logit写s_j−logq(j),重复独立抽M次估计Z要有1/M。这解释校正方向,但不等于整个log-loss/梯度都无偏。
- 因为log和随机归一化是非线性,即使Z估计无偏,logZ或归一化权重有限样本仍有偏;不能把“importance sampling恒等”延伸成所有sampled softmax完全等价全量。
- 固定加入正例的出现概率为1,不是按负proposal抽中。若估计负项,应按排除正例的proposal/范围定义并把正例精确加入;某些传统对全batch logits统一减logq的实现有不同近似,需要明确目标。
- 有放回多重样本、去重后集合、混合uniform/in-batch proposal都改变期望计数/包含概率。去重后直接沿用单次q可能不对;硬负采样若q无法求值,校正也不能凭空写出。
- q估计要防0并随分布变动更新,平滑截断影响偏差/方差。热门物品在batch中更常出现,校正要结合检索评估和false-negative政策,不是保证长尾一定提升。
- 推理一般用模型学到的score按真实检索目标排序,不自动继续减训练proposal logq;若业务目标本身带先验或重加权,应另定义。
- 验证有限全集重要性期望,再比较不同M下全量loss/梯度误差;线下采样指标也有采样偏差,不能用同一负采样准确率宣称全目录效果。
手动走一遍
两item采样q=[0.9,0.1],相同score时稀少item单次权重更大,弥补被抽少的频率;不是说它本身相关性更高。确定正例不该简单假设出现概率也是0.1。
规模与取舍
全量N目录点积/归一化昂贵,M负采样约O(MD)score计算与O(M)loss;q估计/跨设备batch通信另计。更大M降低某些近似误差但增加算存,不保证对全部偏差消除。
易错点与追问
容易失分的边界
- q等于模型概率。
- 减logq后有限sample梯度完全无偏。
- 去重/确定正例沿用任意负采样概率。
- 推理必减训练q。
继续深挖
- 混合proposal如何计q?
- 去重的包含概率怎样推?
- false negatives如何处理?
技术参考
- Sampling-bias-corrected retrieval:技术语义参考,具体题目按本文约定。
- Revisiting LogQ correction:技术语义参考,具体题目按本文约定。
