小红书精读:Real-Time Hard Negative Sampling via LLM-based Clustering for Large-Scale Two-Tower Retrieval

less than 1 minute read

负样本太简单?Meta用LLM聚类挑

各位算法同学们,两塔检索里最贵的往往不是模型结构,而是负样本怎么采。这篇的改法很直接:负样本别从全库随机抽,改成正样本所在语义簇里挖,线上相对旧召回源 CTR 涨了 53%。

📄 Real-Time Hard Negative Sampling via LLM-based Clustering for Large-Scale Two-Tower Retrieval

🔧 自监督簇内难负样本:给每个正样本从它所在语义簇里抽 K 个负样本,而不是全库均匀采。均匀采的负样本和用户向量相似度趋近于 0,梯度也趋近于 0,模型学不到东西;同簇负样本更贴近当前决策边界,梯度更大,逼模型去分辨细粒度差异而非依赖簇间那种一眼假的距离。

🧩 簇是用 LLM 多模态内容表征聚出来的:不靠协同信号分簇,而是用 LLM 学到的内容表示,所以同簇物品是语义上真的像,负样本才有区分度。

⚙️ GOOBS 实时全局 out-of-batch 采样:内存里维护一个实时物品池,训练时在线取簇内负样本,直接嵌进生产训练和 serving 流程,十亿级训练样本下额外算力开销很小。

📊 四个公开数据集 + 14 天大规模线上 A/B 测试。

📈 作为生产系统里的一个召回源,它服务的曝光上 CTR 相比旧源模型 +53%。

📉 物品数越多的数据集收益越明显(如 Amazon Reviews);线上分析还显示流行度偏差明显下降,推荐的反馈回路被削弱。

关于要不要跟:如果你在做两塔召回,并且正被 easy negative 或流行度偏差卡着,这套思路可以直接试。坑在簇的质量和粒度,LLM 内容表征不行,同簇负样本就退化成噪声;簇数太少负样本还是太远,太多又接近随机采样。上线别只盯 CTR,还要看长尾覆盖率、类目分布和物品池新鲜度,实时池一旦更新滞后,采出来的所谓难负样本可能已经是老古董。

原文:AlphaXiv

Updated: