真实面经题目 · 原创解析

推荐系统里的基于深度模型召回怎么做,如何与 ItemCF 或 Word2Vec 召回配合?

这道题考察深度召回的模型和工程边界。好的回答要说明双塔/DSSM/YouTube DNN 等模型如何学习 user/item 向量,如何用 ANN 服务大规模候选,如何与 ItemCF、Word2Vec 等通道互补,以及负样本、偏差、版本、索引和指标如何治理。

出现于:百度 · 算法

60 秒回答模板

基于深度模型的召回通常把用户和物品映射到同一向量空间,线上用用户向量去 ANN 索引里检索 TopK item。常见结构是双塔或 DSSM:user tower 融合用户画像、历史行为序列、上下文,item tower 融合 item id、类目、文本/图片 embedding 和统计特征;训练目标可以是点击/转化二分类、sampled softmax 或 in-batch negative 对比学习。它不替代 ItemCF 或 Word2Vec,而是作为多路召回之一:ItemCF 擅长共现记忆和解释,Word2Vec 擅长行为序列共现,深度召回擅长融合丰富特征和泛化。线上要离线更新 item 向量和 ANN 索引,实时或近线生成 user 向量,控制向量版本、过滤、配额、去重、延迟和降级。

考点 召回不是排序
难度 真实面经题
回答目标 说明深度召回的双塔向量化、ANN 服务、样本训练和多路召回融合能力边界。

深入解析

01

模型结构

双塔结构线上友好,因为 item 向量可预计算并建索引,user 向量可根据请求特征快速生成。user tower 可融合画像、序列和上下文;item tower 可融合 ID、类目、文本、图片、质量和统计特征。

02

训练目标

目标可以是点击、转化、播放完成等行为的二分类,也可以是 sampled softmax、in-batch negative 或 contrastive learning。样本要注意曝光偏差、负样本难度、时间穿越和多目标权重。

03

与 ItemCF 互补

ItemCF 基于共现,解释性强、实现简单、对少量行为也有效;但泛化和上下文表达弱。深度召回可以利用更多特征和语义信息,覆盖 ItemCF 难以捕捉的潜在兴趣。

04

与 Word2Vec 互补

Word2Vec/item2vec 从行为序列学习 item 共现,适合作为独立召回通道、初始化 item embedding 或作为排序特征。深度召回可以进一步加入用户画像、上下文、多行为目标和非 ID 内容特征。

05

线上服务

item 向量通常离线批量更新并构建 ANN 索引,user 向量实时、近线或离线生成。服务要处理索引延迟、向量版本一致性、向量缺失、过滤、通道配额、候选去重和召回 reason。

06

评估和调优

离线看 Recall@K、HitRate、NDCG、覆盖率、长尾和冷启召回;线上看召回通道贡献、排序入选率、曝光占比、点击转化和业务指标。还要监控延迟、索引更新时间和过滤后候选量。

易错点

  • 把深度召回说成直接用深度模型对全量 item 排序,忽略 ANN 和预计算。
  • 只用点击正样本和随机负样本,学到热门偏置而非真实兴趣。
  • 上线时 user/item 向量版本不一致,导致检索空间错位。
  • 多路召回简单拼接 TopK,不做配额、去重和多样性控制。
  • 只看离线 hit rate,不看下游排序入选率和线上业务指标。

面试官追问

深度召回的负样本怎么采?

可以从曝光未点击、同类目热门、近邻 hard negatives、batch 内其他 item 中采。随机负样本速度快但太简单,hard negatives 更有训练价值但可能引入假负例,需要结合时间和业务规则控制。

双塔为什么适合召回但不适合复杂排序?

双塔把 user/item 分开编码,便于预计算 item 向量和 ANN 检索,但缺少复杂交叉特征。排序阶段候选少,可以用 DIN、DCN、Transformer 等更重模型做精细交互。

如何处理新用户和新物品?

新用户可用上下文、地域、热门和少量实时行为生成粗兴趣;新物品可用内容 embedding、类目、商家、规则探索和增量索引。冷启通常需要多路召回和探索流量,而不是只靠深度模型。

如何判断一个深度召回通道是否有贡献?

看通道独占命中、与其他通道重叠、进入排序后的入选率、最终曝光点击贡献和 ablation 损失。只看自身 Recall@K 可能高估通道价值。