1. 问题与动机
论文研究的是批内负样本的“可曝光性”错误。标准对比学习把一个 batch 中其他用户的正物品都当作当前用户的负例,隐含假设任意用户都可能看到任意物品;但 Karrot 是强地域约束的本地社区,超过 86% 的交易发生在 5 公里内,平台策略决定远处物品根本不会进入用户首页。用户没有点击这些物品,不代表不喜欢,而是从未有选择机会。
作者把负样本分为 feasible negative 和 impossible negative。前者在用户可见范围内但未互动,携带偏好信号;后者曝光概率按策略严格为 0,非互动与偏好无关。随机 batch 中 impossible negative 占比达到 98%,InfoNCE 的绝大多数分母项于是过于容易且无意义,模型会学会区分地域,而不是学习同一可选集合中的细粒度兴趣。
这个问题不能单靠 IPS 解决。逆倾向加权要求每个 user-item 对曝光概率大于 0,而 impossible pair 违反 positivity:概率就是 0,也没有观测日志可重加权。论文因此从数据采样层动手,先把 batch 限制在曝光可行集合,再让 IPS 处理区域内部剩余的非均匀曝光。它延续 PinnerFormer、UserBERT 和跨 batch 负采样的用户表征路线,但指出“更多负样本”之前必须先问这些负例在产品中是否可能发生。
2. 方法详解
2.1 基础两塔与 InfoNCE
每个用户的行为序列 S_u 含动作类型、时间戳和物品,最长 T=1024。Pre-LN Transformer 用户塔产生每个位置的用户表示 h_u,t;3 层 MLP 物品塔把标题、正文、元数据和图片经预训练内容模型得到的 embedding 映射到同一空间。两侧做 L2 归一化,以内积作为相似度。
训练 batch 形状为 B×T。每个位置的下一次互动物品是正例,同一 batch 其余 B×T−1 个正物品都进入 InfoNCE 分母。损失对用户数和序列位置求平均,温度 τ 控制分布尖锐度。RCBS 不修改塔、相似度或损失,只改变 batch 中用户从哪里采样,因此可以作为现有训练管道的可插拔替换。
2.2 地域可行性与 RCBS
平台把用户和物品映射到地域 cell r(u)、r(i),以 dist(r(u), r(i))≤δ_u 定义可曝光;δ_u 是产品策略或用户设置的可见半径。δ=0 要求同 cell,δ>0 可纳入相邻 cell。对目标区域 r,RCBS 从该区域用户池 U_r 中均匀采 B 个用户,形成地域同质 batch。因为这些用户的曝光边界相近,batch 里大多数物品对彼此都可见。
随机 batch 的 impossible 比例可写成 ρ=1−Σ_r p_r²,其中 p_r 是 batch 中用户来自区域 r 的概率。平台区域多且分散时,Σp_r² 很小,ρ 接近 1;RCBS 把概率质量集中到一个区域,使 ρ 接近 0。真实系统还允许相邻区域和不同半径,所以不是绝对清零,但细粒度 RCBS 把实测 ρ 从 0.98 降到 0.30,粗粒度只能降到 0.79。
这一定义揭示 RCBS 与硬负采样的关系:它并不显式搜索最相似物品,而是去掉策略上不可能的容易负例,剩余 feasible negatives 自然更难。RCBS 与 IPS 也互补:前者恢复 positivity 支持集,后者在支持集内部校正曝光倾向。
2.3 数据、训练与下游接入
预训练使用 Karrot 两年生产日志,约 2500 万用户、150 亿次动作;95% 用户训练、5% 用户评估,按用户隔离。batch size 为 18,序列长度 1024,因此每个 batch 有 18,432 个候选分母项。作者比较 Random-Train、粗粒度 RCBS 和细粒度 RCBS,其他超参与训练步数保持一致。
下游日志与预训练时间不重叠:首页排序用 3 周、首页召回用 1 周、展示广告排序用 4 周;排序和广告的时间切分评估窗为 24 小时,召回为 6 小时。首页与广告使用生产 DCN,把用户 embedding 作为附加特征;召回使用两塔,把 embedding 注入用户塔。用户塔每天读取最近 1024 次动作,mean pooling 生成离线用户向量。
论文未披露 optimizer、学习率、InfoNCE 温度、GPU 型号、训练总步数、墙钟时间和线上 A/B 时长。对一项 150 亿动作规模的工业工作,这些缺失会显著影响外部复现与成本评估。
3. 核心技术贡献
- 识别结构性无效负样本。 论文不是泛泛讨论采样偏差,而是把曝光概率为 0 的 user-item 对从一般未曝光负例中分离。这个定义解释了为什么随机批内负样本会在强地域产品中系统性失败,也能扩展到库存、权限、配送范围和内容合规约束。
- 用最小工程改动修复训练支持集。 RCBS 不改网络、损失和线上模型,只让同区域用户成批。细粒度采样把 impossible 比例从 98% 降到 30%,预训练 Recall@10 从 0.100 提高到 0.149,说明改数据装载即可显著强化对比信号。
- 给出 RCBS 与 IPS 的清晰分工。 IPS 无法处理曝光概率为 0 的 pair;RCBS 先保证分母大部分位于可曝光支持集,IPS 才能对支持集内残余曝光不均做无偏校正。这一顺序避免把不同类型的偏差混成同一个权重问题。
- 证明用户 embedding 可跨任务复用。 同一 RCBS 表征同时改善首页排序、首页召回和广告排序,并在线带来点击 +10.0%、曝光 +5.12%、日活观看者 +1.91%、eCPM +6.01%、广告 CTR +7.46%,最终部署到多个应用。
4. 实验结果分析
预训练与在线核心结果如下:
| 方法 | Random Eval R@10 | Random Eval R@100 | RCBS Eval R@10 | RCBS Eval R@100 | impossible 比例 |
|---|---|---|---|---|---|
| Random-Train | 0.100 | 0.422 | 0.082 | 0.349 | 0.98 |
| RCBS-Train(粗) | 0.125 | 0.456 | 0.112 | 0.403 | 0.79 |
| RCBS-Train(细) | 0.149 | 0.474 | 0.139 | 0.435 | 0.30 |
细粒度 RCBS 在随机评估 R@10 上相对提升 49%,R@100 提升约 12.3%;在更难的 RCBS 评估上 R@10 相对提升约 69.5%,R@100 提升约 24.6%。同一模型在 RCBS-Eval 的绝对值低于 Random-Eval,反而支持作者判断:可曝光负例确实更难,随机评估会被大量不可能负例虚高。
下游离线中,Random-Train embedding 仅让首页 NDCG@10 +0.22%、OPA +0.17%,而 RCBS embedding 分别 +1.18% 和 +1.07%。广告 ROC-AUC/PR-AUC 从 +0.25%/+1.21% 扩大到 +0.53%/+3.38%;首页召回 Recall@10/100 从 +4.44%/+2.36% 扩大到 +7.56%/+4.61%。召回增幅最大,符合预训练本身也是两塔检索式目标的结构相似性。
线上处理组只增加最佳 RCBS 用户 embedding,生产模型其余部分不变。首页排序与召回合并后点击 +10.0%、曝光 +5.12%、DAV +1.91%;广告 eCPM +6.01%、AdCTR +7.46%。多任务同向增长表明 embedding 不只是离线 metric hack。但论文仅给相对值,没有流量占比、实验天数、显著性、置信区间和绝对基线,无法独立判断波动风险。
严格说,论文没有传统模块消融,因为 RCBS 本身就是单一采样改动;粗/细地域粒度构成主要消融。ρ 从 0.98→0.79→0.30 时,R@10 从 0.100→0.125→0.149 单调上升,支撑“越多 feasible negatives 越好”。不过只比较两个平台已有粒度,尚不能证明任意更细 cell 都持续增益;过细区域可能让用户池太小、流行度偏置变大或 batch 多样性下降。
5. 局限与未来方向
作者在结论明确提出两条未来方向:用自适应区域分组应对动态曝光约束,以及在地域同质 batch 内加入 propensity correction 处理剩余曝光不均。当前 RCBS 依赖预定义 cell 和 δ_u;当用户移动、配送范围实时变化、跨城内容被临时放开或产品规则多层叠加时,静态区域标签可能不能准确代表真实可曝光集合。
第二,实验只来自 Karrot,一家强本地属性平台。86% 交易在 5 公里内是其特殊结构,普通信息流的主约束可能是语言、年龄、订阅、库存或权限。方法思想可迁移,但“同区域 batch”本身不能直接照搬,必须改成与业务一致的 eligibility group。
第三,论文出于保密只报告下游相对提升,且没有披露训练硬件、optimizer、学习率、温度、步数、线上实验周期和统计显著性。每天离线计算最近 1024 行为的 mean-pooled 用户向量也可能滞后于实时兴趣,论文将缩短推理刷新周期列为实践方向,但没有量化陈旧度影响。
作者未明确讨论的限制是采样分布偏移。按区域成批可能让小区域被过采、热门区域被欠采,也可能降低跨区域内容的表示一致性;如果 item tower 需要学习全局语义,完全隔离区域会损害泛化。还需监控每区域用户池规模、重复率和梯度方差,并考虑混合少量全局负例。
6. 工业实践意义
社区 UGC 场景最应立即借鉴的是“训练负例必须通过产品资格检查”。除了地域,还可把内容可见权限、语言、频道、年龄限制、作者屏蔽、库存状态和 query 触发规则编码为 eligibility。先统计现有 batch 中曝光概率为 0 的负例比例;若像 Karrot 一样占多数,继续扩大 batch 或跨 batch memory 只会堆积更多无效负例。
最小试点不需要改模型:保留当前两塔和 InfoNCE,在 dataloader 中按一个稳定约束分组,比较随机、粗分组和细分组。训练时记录 impossible ratio、有效负例数、区域覆盖、样本重复率;评估同时保留 Random-Eval 和 constrained-Eval,避免容易负例让总体 Recall 看似很好。下游要覆盖召回 nDCG/Recall、排序 CTR、长点击以及广告或商业指标。
上线可先把 RCBS embedding 作为附加特征注入现有排序和召回,不直接替换主模型。若多个任务同向增益,再逐步扩大流量。对动态约束,应周期性从真实曝光日志估计 group,而不是长期依赖行政区划;对组内曝光偏差,再加 IPS 或 doubly robust 校正。若区域过小,可用相邻 cell、层级地理索引或“组内负例为主、全局负例为辅”的混合 batch。
RCBS 的更普遍启示是,hard negative 不等于 embedding 最相似,而是“用户真实有机会选择、却没有选择”的样本。把产品规则带回训练支持集,往往比增加网络层数更低成本,也更容易解释线上收益。