真实面经题目 · 原创解析
在推荐系统中,双塔召回和精排在候选规模、特征复杂度、实时性和准确率上有什么差异?为什么精排通常更准,双塔如何支持用户侧向量实时更新?
这道题考察推荐系统召回与精排的职责边界。好的回答要解释双塔为什么适合大规模向量召回,精排为什么通常更准,以及用户侧向量实时更新如何工程落地。
真实面经题目 · 原创解析
这道题考察推荐系统召回与精排的职责边界。好的回答要解释双塔为什么适合大规模向量召回,精排为什么通常更准,以及用户侧向量实时更新如何工程落地。
双塔召回的目标是在海量 item 中快速找出几百到几千个候选,所以它把用户和 item 分别编码成向量,通过内积或 ANN 检索计算相似度。它的优势是 item 向量可以离线预计算并建索引,线上只需更新用户向量和查向量库,延迟低、扩展性强;代价是特征交互弱,很多实时上下文、交叉特征、序列细节和业务规则难以充分表达。 精排的目标是在小候选集上尽可能准确地预测点击、转化、停留或 GMV,因此可以使用更复杂的特征和模型,例如用户实时行为、上下文、item 详情、交叉特征、序列 attention、多目标学习和校准。它通常更准,是因为可以对 user-item-context 做深度交互,但成本高,无法对全库 item 逐个打分。双塔用户侧向量实时更新通常用实时特征流、最近行为序列、用户状态缓存和轻量 user tower 在线推理完成;item tower 多数离线更新,热门 item 或价格库存变化可做近实时刷新。最终要用召回覆盖率、精排 AUC/nDCG、线上 CTR/CVR/GMV、延迟和多样性一起评估。
召回面对百万到亿级 item,必须低成本粗筛;精排只面对几百到几千候选,可以用复杂模型细判。规模差异决定了模型结构和特征复杂度。
用户塔和物品塔独立编码,向量相似度用于 ANN 检索。item 向量离线建索引,线上更新用户向量即可快速召回。
精排能使用 user-item 交叉特征、实时上下文、多目标标签、序列行为和业务约束,表达能力更强,因此通常比双塔更准。
用户向量可由最近行为、实时特征和轻量 user tower 生成,并写入缓存。要处理延迟、乱序、冷启动、特征缺失和缓存失效。
召回要保证覆盖、多样性和新内容探索,精排负责排序和校准。召回太窄会让精排无米下锅,精排再强也补不回漏召回。
召回看 Recall@K、hit rate、覆盖率和多样性;精排看 AUC、logloss、nDCG、校准和线上指标;系统还要看 RT、QPS 和资源成本。
可用注册信息、地理位置、设备、入口场景、热门内容、探索召回和首轮行为快速更新用户向量。没有行为时不能只依赖协同过滤。
双塔要求用户和 item 独立编码,很多交叉特征必须同时看到两侧信息才能计算。强行塞入会破坏离线建索引和低延迟优势。
实时行为可能有噪声、刷量、短期兴趣漂移和乱序。要做去噪、时间衰减、缓存 TTL、异常过滤和长期兴趣融合。
可以多路召回、类目配额、去重打散、探索召回和重排约束。只按向量相似度取 TopK 可能候选同质化。