第 90 题:流式训练中的Embedding更新,负采样偏差与修正方法?
题目
流式训练中的Embedding更新,负采样偏差与修正方法?
完整讲解
一、流式训练中的 Embedding 更新
流式训练:数据以流的形式到达,模型持续用新 batch 更新(在线学习),而非固定离线全量数据多轮训练。此时 Embedding 表(用户、物品等)随新样本不断更新:新出现的 ID 被插入、已有 ID 的向量被梯度更新。好处是模型始终反映最新分布;难点是负采样与梯度估计存在偏差、以及 embedding 的稀疏更新与一致性。
二、负采样偏差与修正
- 偏差来源:流式下负样本多从当前 batch 或当前窗口采样(如 in-batch negative),负样本分布 = 当前数据流分布,与全局或长期分布可能不一致(例如热门物品在流中占比高,被采为负样本的概率高,模型会过度压低热门物品的分数,即流行度偏差)。此外,正样本通常是「点击」等,负样本为未点击或随机,若不做修正,模型会系统性地偏向某些分布。
- 修正方法:
- 重要性采样:对负样本加权 $1/p_{neg}(i)$,其中 $p_{neg}(i)$ 为物品 $i$ 被采为负样本的概率,使梯度在期望上等价于从均匀或目标分布采样;需估计 $p_{neg}$(如用曝光或采样统计)。
- 纠偏项:在 loss 或得分中加入与采样概率相关的偏置项(如 log 采样概率),推理时减去该偏置,使得分无偏。
- 流式下的频率估计:用滑动窗口或指数衰减统计 ID 出现频率,用于 $p_{neg}$ 或权重;或对热门做降权、对长尾做上采样,缓解流行度偏差。
三、工程要点
- Embedding 表需支持动态插入与稀疏更新;可设 TTL 或 LRU 淘汰冷门 ID 控表大小。
- 负采样策略(in-batch / 全局采样 / 难负样本)与修正项需一起调,兼顾无偏性与实现成本。
面试要点
- 能说明流式训练:数据流式到达、持续更新;Embedding 随新样本插入与更新。
- 能分析负采样偏差:流式负样本分布 = 当前流分布,与全局不一致,易产生流行度偏差等;需修正。
- 能说出修正方法:重要性采样($1/p_{neg}$)、纠偏项(得分减 log 采样概率)、频率估计与热门降权/长尾上采样。
记忆要点
- 流式训练:持续更新;Embedding 动态插入与更新。
- 负采样偏差:流式负样本分布有偏(如热门过多);重要性采样、纠偏项、频率估计与降权/上采样可修正。
- 工程:动态 Embedding 表、TTL/LRU;负采样与修正联合调参。