小红书精读:PCap: Personalized Retrieval-Stage Diversity Capping in Facebook Marketplace
召回阶段做多样性,VPV只涨0.3%?
各位算法同学们,多样性这件事,很多团队默认放排序阶段做重排最划算,Meta这篇偏把约束往前挪,直接卡在召回。反常识的点是:召回阶段做个性化多样性,既没伤召回量也没拖延迟,线上VPV还涨了0.3088%。这数字单看小得容易被忽略,放在Marketplace这种量级上已经是统计显著的正向。
📄 PCap: Personalized Retrieval-Stage Diversity Capping in Facebook Marketplace
🔧 用Shannon熵给每个用户算多样性偏好分,归一化后切成6个桶,桶1最窄、桶6最杂。这里没选连续分数而是固定桶数,是为了桶内稳定、线上行为可预测、计算开销低。
🧩 用Facebook商品品类FPT做分组键,在每个桶上设个性化上限:上限 = 召回源拉取量 × 源级乘子f_k × 用户桶乘子m_u。偏好窄的用户给松cap,偏好杂的给紧cap。机制同时作用在索引分片扫描和聚合两层,防止单一品类霸占候选集。
⚙️ 每个桶的乘子属于高维参数,靠Parameter Tuning Sequence做在线自动调参,替掉人工网格搜索,能长期跑在生产环境里。
📊 Phase 1对比无cap基线,VPV +0.3088%,说明召回阶段加品类cap确实能让用户看到更杂的内容。
📈 Phase 2对比统一cap(只按买家/非买家分层),衡量个性化带来的增量,结论是个性化多样性主要惠及偏好两端的用户,中间段用户收益有限。
✅ 全程只用线上A/B,没做离线baseline:召回改候选池会引发排序的二阶变化,离线指标测不出来。MMR、DPP这类方法需要全局相关性分数和固定候选集,跟分片召回的形态不兼容。
总结感想:如果你在做召回层的候选池治理,这篇的工程拆解比算法本身更有参考价值——分片加聚合双层cap、桶数固定、在线调参,都是能直接抄的结构。要盯的指标是VPV、PDP、MLI和HHI,同时确认PF延迟没被cap拖累。坑有两个:桶化会牺牲一部分个性化粒度,短活跃用户容易被噪声带偏;另外Phase 2的具体涨幅在可见摘要里没给全,想复现得自己调m_u和各源乘子。

原文:AlphaXiv