真实面经题目 · 原创解析

在推荐系统中,双塔召回和精排在候选规模、特征复杂度、实时性和准确率上有什么差异?为什么精排通常更准,双塔如何支持用户侧向量实时更新?

这道题考察推荐系统召回与精排的职责边界。好的回答要解释双塔为什么适合大规模向量召回,精排为什么通常更准,以及用户侧向量实时更新如何工程落地。

出现于:美团 · 算法

60 秒回答模板

双塔召回的目标是在海量 item 中快速找出几百到几千个候选,所以它把用户和 item 分别编码成向量,通过内积或 ANN 检索计算相似度。它的优势是 item 向量可以离线预计算并建索引,线上只需更新用户向量和查向量库,延迟低、扩展性强;代价是特征交互弱,很多实时上下文、交叉特征、序列细节和业务规则难以充分表达。 精排的目标是在小候选集上尽可能准确地预测点击、转化、停留或 GMV,因此可以使用更复杂的特征和模型,例如用户实时行为、上下文、item 详情、交叉特征、序列 attention、多目标学习和校准。它通常更准,是因为可以对 user-item-context 做深度交互,但成本高,无法对全库 item 逐个打分。双塔用户侧向量实时更新通常用实时特征流、最近行为序列、用户状态缓存和轻量 user tower 在线推理完成;item tower 多数离线更新,热门 item 或价格库存变化可做近实时刷新。最终要用召回覆盖率、精排 AUC/nDCG、线上 CTR/CVR/GMV、延迟和多样性一起评估。

考点 双塔适合大规模 ANN 召回,精排适合小候选深度打分
难度 真实面经题
回答目标 让候选人能讲清推荐召回和精排的分工、双塔实时向量更新方案,以及质量和成本的联合评估。

深入解析

01

候选规模

召回面对百万到亿级 item,必须低成本粗筛;精排只面对几百到几千候选,可以用复杂模型细判。规模差异决定了模型结构和特征复杂度。

02

双塔机制

用户塔和物品塔独立编码,向量相似度用于 ANN 检索。item 向量离线建索引,线上更新用户向量即可快速召回。

03

精排优势

精排能使用 user-item 交叉特征、实时上下文、多目标标签、序列行为和业务约束,表达能力更强,因此通常比双塔更准。

04

实时更新

用户向量可由最近行为、实时特征和轻量 user tower 生成,并写入缓存。要处理延迟、乱序、冷启动、特征缺失和缓存失效。

05

链路协同

召回要保证覆盖、多样性和新内容探索,精排负责排序和校准。召回太窄会让精排无米下锅,精排再强也补不回漏召回。

06

评估指标

召回看 Recall@K、hit rate、覆盖率和多样性;精排看 AUC、logloss、nDCG、校准和线上指标;系统还要看 RT、QPS 和资源成本。

易错点

  • 把双塔和精排都说成排序模型,忽略候选规模差异。
  • 认为双塔一定不准,忽略其召回覆盖和实时用户向量价值。
  • 没有解释精排更准来自交叉特征和复杂交互。
  • 只讲离线训练,不讲向量索引和在线服务。
  • 忽略召回多样性和探索。
  • 用户实时向量更新不考虑噪声、乱序和缓存一致性。

面试官追问

双塔如何处理用户冷启动?

可用注册信息、地理位置、设备、入口场景、热门内容、探索召回和首轮行为快速更新用户向量。没有行为时不能只依赖协同过滤。

为什么不把所有精排特征放进双塔?

双塔要求用户和 item 独立编码,很多交叉特征必须同时看到两侧信息才能计算。强行塞入会破坏离线建索引和低延迟优势。

用户向量实时更新有什么风险?

实时行为可能有噪声、刷量、短期兴趣漂移和乱序。要做去噪、时间衰减、缓存 TTL、异常过滤和长期兴趣融合。

召回阶段如何兼顾多样性?

可以多路召回、类目配额、去重打散、探索召回和重排约束。只按向量相似度取 TopK 可能候选同质化。