第 82 题:双塔模型的负采样策略,In-batch Negative的梯度方差分析?
题目
双塔模型的负采样策略,In-batch Negative的梯度方差分析?
完整讲解
一、In-batch Negative 的做法
In-batch Negative:在一个 batch 内,以当前样本的正样本对为锚点,同一 batch 内其它样本的正样本作为该锚点的负样本。例如 batch 内有 $(u_1,i_1),\ldots,(u_B,i_B)$,对 $(u_1,i_1)$ 而言,$i_2,\ldots,i_B$ 均为 in-batch 负样本。正负一起做 softmax 或 NCE 形式的损失,无需额外采样负样本,实现简单、且负样本数随 batch 增大而增多。
二、梯度方差分析
- 正样本:每个锚点只有 1 个正样本,梯度信号来自「拉大正样本相似度」。
- 负样本:每个锚点有 $B-1$ 个 in-batch 负样本,梯度来自「压低这些负样本的相似度」。当 $B$ 大时,负样本多,梯度更稳定;但 in-batch 负样本的分布 = batch 内物品的分布,若 batch 随机采样,则负样本近似均匀;若 batch 有偏(如同用户多、或同品类多),则负样本分布有偏,梯度会系统性地往「压低某类物品」偏,带来偏差。
- 梯度方差:负样本多(大 batch)一般会降低梯度方差,利于收敛;但若正样本对在 batch 内重复(同 query 多条样本),梯度会重复叠加,方差与 batch 构造方式相关。工程上常加大 batch、或对 in-batch 做去重/加权以平衡正负与方差。
三、与采样负样本的对比
- 随机负采样:负样本来自全局或采样子集,分布可控但需额外采样与存储;每个 batch 负样本数固定。
- In-batch:无额外采样,负样本数 = batch 大小 - 1,大 batch 时负样本多且实现简单;但负样本分布依赖 batch 构造,可能存在分布偏差,需配合温度、或与少量难负样本/全局采样结合。
面试要点
- 能说明 In-batch Negative:batch 内其它样本的正样本当作当前样本的负样本,无额外采样,负样本数随 batch 增大。
- 能分析梯度:负样本多梯度更稳;但 in-batch 负样本分布 = batch 内物品分布,batch 有偏会带来偏差;正样本重复会改变梯度叠加。
- 能对比随机负采样:分布可控 vs In-batch 实现简单但分布依赖 batch。
记忆要点
- In-batch Negative:同 batch 它样本的正即本样本的负;无额外采样,负样本数 ∝ batch。
- 梯度:大 batch 负多、方差可降;batch 有偏 → 负样本分布偏 → 偏差。
- 对比:随机负采样分布可控;In-batch 简单但需注意 batch 构造与偏差。