4. 召回算法与多路召回策略
召回策略核心链路
面试问答
面试问题:召回算法有哪些常见类型?请简要说明各自原理及优缺点。
面试官考察点:基础广度|能否系统分类(协同/向量/物品/图/模型)|对工业界常用方法的认知
回答框架:① 按范式分三大类(协同过滤、向量检索、规则类)→ ② 每类选1-2主流方法说明原理 → ③ 对比优缺点 → ④ 结合场景说明选型
简短示例回答:可分为协同过滤(UserCF/ItemCF)、向量检索(双塔DSSM)、图召回(PinSAGE)及规则召回(热门/类别)。协同过滤依赖交互矩阵,冷启动差;双塔泛化性强但语义表达有限;图召回能利用结构信息。工业常用多路组合互补。
可能追问:① 双塔模型如何解决样本选择偏差?② ItemCF和UserCF在什么场景下更优?③ 召回模型如何进行线上评估?
避坑提醒:只回答名字不展开原理,或混淆召回与排序的区别。建议通过“公式+简图”强化记忆。
公司侧重点:字节跳动侧重向量召回+实时特征,美团侧重LBS+多路融合,快手侧重图召回+社交关系。
面试官画像:资深算法工程师(3-5年经验),关注工程落地与调优经验,会追问线上指标变化。
面试问题:如何设计实时召回系统?在工程实现上有哪些关键挑战?
面试官考察点:实时架构理解|延迟与吞吐折中|增量更新与全量切换|流量策略
回答框架:① 定义实时召回触发时机(点击/反馈后)→ ② 分层架构(实时层+近线层+离线层)→ ③ 关键技术:增量向量索引、消息队列、预计算+实时拼接 → ④ 容错与监控
简短示例回答:基于用户实时行为触发的召回。采用Kafka收集行为,实时更新用户Embedding,通过增量IVF索引检索向量。近线层每5分钟全量构建,离线层每天重建。主要挑战:索引更新延迟、写入与读取冲突、流量突变时需要降级。
可能追问:① 增量索引如何保证一致性?② 实时召回率和离线召回率如何对比?③ 如果用户行为稀疏,实时召回有效吗?
避坑提醒:勿只讲理论不提工程细节(如索引库选型、线程模型)。“实时”不等于“即时”,需明确延迟目标。
公司侧重点:大促场景(淘宝/抖音)对实时性要求极高,需要秒级响应;小红书等社区要求分钟级即可。
面试官画像:推荐系统架构师或技术负责人,关注系统稳定性与资源成本。
面试问题:新用户/新物品冷启动召回怎么做?多路召回结果如何融合?请举例说明。
面试官考察点:冷启动策略深度|融合方法(加权/排序/学习)|对业务影响的理解
回答框架:① 冷启动:分用户侧(画像/探索/个性化推荐)与物品侧(内容理解/热启/单路曝光)→ ② 多路融合:先固定候选池大小,再通过规则加权或轻量排序模型融合 → ③ 线上A/B测试验证
简短示例回答:新用户先用热门+类目冷启动,采集5个交互后切换至DSSM向量召回。多路融合采用加权sum:热门0.2、协同0.3、向量0.5,支持在线调参。新物品通过图文标签建向量,加入冷启池单独曝光。
可能追问:① 冷启动阶段的探索与利用如何平衡(如ε-greedy, UCB)?② 多路融合权重如何动态调整?③ 如何评估冷启动效果?
避坑提醒:冷启动不要只提“用热门”这个单薄答案,需展开讲策略演化。融合只说“线性加权”不够,要说明权重来源及自动调优手段。
公司侧重点:快手/抖音新用户占比高,冷启动策略权重极大;京东/淘宝侧重新品冷启动策略。
面试官画像:业务线算法Leader,关注线上指标(冷启留存率、转化率)与实际收益。
项目案例:短视频信息流多路召回系统
项目名称:XX短视频推荐召回系统升级(V2.0)
业务背景:原有基于单一协同过滤的召回覆盖率低(<30%),新用户冷启慢、长尾内容曝光差。需要建设多路召回+实时召回+冷启动机制。
规模指标:DAU 5000万+,每秒召回请求量8万QPS,候选池从2000扩大到8000,召回覆盖率从28%提升至62%,冷启动7日留存提升18%。
技术栈:TensorFlow(双塔模型)、Faiss(向量索引)、Kafka + Flink(实时流)、Redis(冷启画像)、A/B实验平台。
核心难点:① 多路召回候选池大小不一,融合时需归一化分数;② 实时索引与离线索引一致性问题;③ 冷启动策略中探索流量占比的动态调整。
面试高频追问:① 多路分数归一化具体怎么做的(如min-max/分位归一化)?② 新物品Embedding如何生成才保证冷启有效?③ 实时召回延迟多长时间?为什么?④ 融合权重如何通过自动调参优化?
可迁移回答话术:“在XX项目中,我们通过双塔向量召回+协同过滤+热门召回的多路组合,配合Flink实时更新用户向量,覆盖了80%以上的长尾视频。冷启动阶段采用分层探索策略,新视频按图文标签先进入小候选池,累计曝光量超过阈值后进入常规召回。多路融合采用轻量级LR模型学习各路权重,线上收益+3.2%。”