当前位置:首页 > 科研成果库

冷启动不是玄学:推荐系统技术的硬约束与反馈回路

2026-11-05 22:18:58小研科研成果库11
九月底的南京,软件谷会议室空调开得很足。白板上画着召回、粗排、精排、重排四段链路,旁边有人写了一句“冷启动先上双塔”。这场景太熟了。推荐系统技术最容易被误读的一点,是把它当成一个排序模型。模型当然重要,可它只是链路里最后一截。前面数据怎么来、日志怎么记、反馈怎么偏,往往更决定线上效果。说实话,很多“模型不work”的争论,吵到收尾是在补数据债。

冷启动先把责任还给数据

新用户进来,只有一次曝光、一次点击,甚至只有设备号和城市。此时协同过滤几乎无从下手,双塔召回的物品侧向量也未必可靠。常见做法是用内容特征、热门兜底、地域偏好做冷启动,再用探索策略收集反馈。这里有个硬约束:探索预算不是免费的。给新用户推长尾,短期点击率会掉;推热门,反馈又高度同质。工程上更稳的路径,是把冷启动拆成“可解释的规则兜底 + 受限的探索 + 快速的特征回填”,而不是指望一个端到端模型从零学会。南京这边做本地生活推荐时,地域粒度就特别敏感:新街口和江宁的偏好差异,可能比两个城市还大。用城市级先验直接套,容易把用户推到一个“看似合理、实际不对”的商圈。反例也有:某些低频品类,内容特征质量差,冷启动阶段强行个性化反而放大噪声,这时热门兜底并不丢人。多大事啊,先让系统跑起来,再谈精细。 推荐系统技术冷启动数据流与特征回填示意图推荐系统技术冷启动数据流与特征回填示意图

召回不是漏斗的第一层那么简单

很多团队把召回当漏斗入口,觉得多路召回堆上去,总有一路能捞到。问题是,召回之间不是简单并集。多路召回的分数不可比,去重和截断会改变候选分布,粗排再一压,精排看到的样本已经偏了。更麻烦的是召回阶段的目标和最终目标经常错位:召回按点击概率捞,精排按转化率排,重排又加多样性约束,链路每一层都在“局部合理”地改写问题。做推荐系统技术评审时,我常问一句:召回截断的阈值是怎么定的?如果答案是“离线试出来的”,那就要看离线样本怎么采。曝光日志只记录被展示的物品,未展示的负样本是缺失的,直接当负例训练,会把“没机会”误判成“不喜欢”。这不是模型容量能补的。另一个限制是延迟。召回要覆盖百万级物品,双塔内积、ANN 索引、多路并发,任何一环抖一下,线上超时就会触发降级。降级策略如果只是“回退热门”,短期稳,长期会把反馈回路越拧越窄。 推荐系统技术多路召回与粗排精排链路架构图推荐系统技术多路召回与粗排精排链路架构图

离线指标好看,线上未必买账

AUC、NDCG 涨了,线上人均时长没动,甚至掉了。这种事儿不罕见。原因不神秘:离线评估的样本分布和线上真实流量不一致,评价目标也和业务目标不完全对齐。比如新闻推荐,离线按点击 label 训练,线上却要平衡点击、停留、负反馈;如果负反馈稀疏,模型就会学会“标题越刺激越容易被点”。短期指标好看,长期用户信任被消耗。更隐蔽的是反馈回路:系统推什么,用户看什么;用户看什么,日志记什么;日志记什么,下一轮模型学什么。回路一旦收窄,热门更热,长尾更冷,评估集也跟着偏。要破这个局,离线评估至少要做时间切分、曝光无偏估计和负反馈加权,线上则要有探索流量和长期指标观测。别嫌麻烦。南京有团队做过一个挺朴素的验证:同一套精排模型,只改样本权重,把负反馈样本上调,离线 AUC 略降,但线上次日留存稳住了。这个例子说明,指标不是越高越好,得看它代表谁的利益。

边界、风险与一点冷思考

推荐系统技术的边界,首先在数据。没有可靠的物品内容、用户行为和上下文,个性化就是空中楼阁。其次在业务约束:库存、时效、地域、合规,都会把“理论最优”压回可行域。风险也摆在那儿:过度优化参与度会放大信息茧房,敏感特征进入模型会带来歧视风险,生成式推荐还可能编造不存在的卖点。应对不是喊口号,而是把约束写进目标函数、把审计做进日志、把可解释性留在链路上。至于趋势,我比较谨慎。大模型能改善语义理解和冷启动,但推理成本和延迟摆着,短期内更现实的是在召回侧做语义补充、在重排侧做约束求解,而不是把整条链路推倒重来。九月底的南京夜里有点凉,会议室白板上的“双塔”还没擦。技术讨论收尾时,常常不是模型不够新,而是数据、目标和约束没对齐。这话不玄。多大事啊,先把链路跑通,再谈花活。