MLE / Research · ML Fundamentals

TikTok LogQ Correction:采样分布、重要性权重与有限样本偏差

从全量归一化项推导减logq,区分负采样与确定正例,不承诺有限样本梯度完全无偏。

题目重点:从全量归一化项推导减logq,区分负采样与确定正例,不承诺有限样本梯度完全无偏。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练推荐检索全目录softmax,负例来自已知proposal q(j)>0;正例通常固定加入。
  • 具体in-batch、去重和采样次数策略未给,公式依这些约定,不指定唯一公司实现。

解题路线

  1. 全量目标Z=Σ_j exp(s_j)。负例按q抽取时未经校正的和更偏向常出现item,模型训练分母不同于全目录。q是采样机制概率,不是模型预测概率,也不是任意点击率。
  2. 重要性恒等E_{j~q}[exp(s_j)/q(j)]=Z,因此加权logit写s_j−logq(j),重复独立抽M次估计Z要有1/M。这解释校正方向,但不等于整个log-loss/梯度都无偏。
  3. 因为log和随机归一化是非线性,即使Z估计无偏,logZ或归一化权重有限样本仍有偏;不能把“importance sampling恒等”延伸成所有sampled softmax完全等价全量。
  4. 固定加入正例的出现概率为1,不是按负proposal抽中。若估计负项,应按排除正例的proposal/范围定义并把正例精确加入;某些传统对全batch logits统一减logq的实现有不同近似,需要明确目标。
  5. 有放回多重样本、去重后集合、混合uniform/in-batch proposal都改变期望计数/包含概率。去重后直接沿用单次q可能不对;硬负采样若q无法求值,校正也不能凭空写出。
  6. q估计要防0并随分布变动更新,平滑截断影响偏差/方差。热门物品在batch中更常出现,校正要结合检索评估和false-negative政策,不是保证长尾一定提升。
  7. 推理一般用模型学到的score按真实检索目标排序,不自动继续减训练proposal logq;若业务目标本身带先验或重加权,应另定义。
  8. 验证有限全集重要性期望,再比较不同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如何处理?

技术参考

✓已复制微信号!