跳转至

🎯 推荐系统面试题精选50题

⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。

适用岗位:推荐算法工程师、搜索广告算法、信息流算法 难度分布:基础(20) + 进阶(20) + 高级(10)


一、基础题(20题)

Q1: 推荐系统的核心架构?

Text Only
召回(Recall) → 粗排(Pre-Ranking) → 精排(Ranking) → 重排(Re-Ranking)
  多路候选         轻量模型筛选       CTR/CVR预估      多样性/新鲜度/业务规则
  ~10000           ~1000              ~100              ~50展示

Q2: 协同过滤的两种方式?冷启动问题如何解决? - UserCF:找相似用户,推荐其喜欢的物品(适合社交场景) - ItemCF:找相似物品,推荐用户喜欢物品的相似品(适合电商) - 冷启动:①基于内容推荐 ②热门推荐 ③用户画像引导 ④bandit探索

Q3: 矩阵分解(MF)的原理和损失函数? - 原理:将用户-物品评分矩阵分解为 \(R \approx P^TQ\)\(P \in R^{k \times m}, Q \in R^{k \times n}\) - 损失\(L = \sum_{(u,i) \in \text{observed}} (r_{ui} - p_u^T q_i)^2 + \lambda(||p_u||^2 + ||q_i||^2)\) - 优化:ALS(交替最小二乘)或SGD - BPR:只关心排序对不对,\(L = -\sum \ln\sigma(p_u^T q_i - p_u^T q_j)\)

Q4: Wide&Deep模型的设计思想? - Wide部分:线性模型+交叉特征 → 记忆(Memorization)已有模式 - Deep部分:DNN → 泛化(Generalization)到新模式 - 意义:开启了深度推荐模型时代,后续DeepFM、DCN等改进

Q5: DeepFM相比Wide&Deep的改进? - 用FM层替代Wide部分,自动学习二阶特征交叉 - 无需人工特征工程(Wide&Deep的Wide部分需要手动设计交叉特征) - 共享Embedding,FM和DNN共用

Q6: 什么是Embedding?在推荐中如何使用? - 定义:将高维稀疏特征(如user_id/item_id)映射到低维稠密空间 - 用途: - 用户/物品表示(协同过滤的核心) - 特征交叉的基础(如DeepFM) - 召回阶段的向量检索 - 训练:随推荐模型端到端训练,或预训练(如Graph Embedding)

Q7: 什么是CTR预估?常用特征有哪些? - 定义:预测用户点击某物品的概率 - 特征: - 用户侧:ID、画像、历史行为序列 - 物品侧:ID、类别、属性、统计特征 - 上下文:时间、位置、设备、场景 - 交叉特征:用户×物品、用户×场景

Q8: 召回阶段的常见方法? | 方法 | 原理 | 特点 | |------|------|------| | ItemCF | 行为相似度 | 简单有效 | | Swing | 用户交集去重 | 比ItemCF更精准 | | 双塔模型 | User/Item分别编码+ANN | 主流方案 | | Graph Embedding | 图上随机游走+Word2Vec | 捕捉高阶关系 | | 多兴趣召回 | MIND/ComiRec | 捕捉多样兴趣 |

Q9: 双塔模型的原理及优缺点? - 原理:User Tower和Item Tower分别编码,内积/余弦计算相似度 - 训练:负采样(in-batch/hard negative) + 对比损失 - 优点:Item向量可离线计算,ANN检索高效 - 缺点:User和Item不交互,表达能力受限

Q10: 什么是负采样?推荐系统中如何做? - 为什么需要:正样本(点击)远少于负样本(未点击) - 方法: - 随机负采样(最简单) - 曝光未点击作为负样本 - In-batch negatives(同batch内其他正样本的item) - Hard Negative Mining(接近但非正样本的困难负例)

Q11: 什么是多目标学习?如何处理多个优化目标? - 场景:同时优化CTR、CVR、时长、完播率 - 方法: - 共享底层 + 多任务头(Hard Parameter Sharing) - MMoE(多门控专家网络):多个Expert+多个Gate - PLE(渐进式分层抽取):任务专属Expert+共享Expert - 融合:加权求和(手动/自动搜索权重)

Q12: AUC是什么?推荐系统为什么常用GAUC? - AUC:ROC曲线下面积,衡量排序能力(正样本排在负样本前面的概率) - GAUC:分用户计算AUC再加权平均 - 原因:推荐系统关注用户内的排序(给每个用户做好个性化排序)

Q13: 特征交叉的方法演进? - 手动:Wide&Deep中人工设计 - FM:自动二阶交叉 \(\sum_{i,j} \langle v_i, v_j \rangle x_i x_j\) - DCN:Cross Network显式高阶交叉 - AutoInt:Self-Attention做特征交叉 - FiBiNet:SENet加权+Bilinear交叉

Q14: 什么是DSSM(深度语义匹配模型)? - 原理:Query和Doc分别经过DNN编码为向量,余弦相似度计算匹配分 - 推荐应用:User和Item分别编码(即双塔模型的前身) - 训练:正样本对+随机负样本,对比学习

Q15: 推荐系统的Bias问题有哪些? - 位置偏差:排名靠前的物品更容易被点击 - 曝光偏差:只观察到曝光物品的反馈,非曝光物品无数据 - 流行度偏差:模型倾向推荐热门物品 - 消除方法:IPW(逆倾向加权)、因果推断、位置消偏(PAL)

Q16: 实时特征和离线特征的区别? - 离线特征:T+1更新,如用户画像、物品统计(Hive/Spark计算) - 实时特征:秒级更新,如最近点击序列、实时CTR(Flink/Redis) - 近实时:分钟级更新(Kafka→Flink→Feature Store) - 重要性:实时特征对电商/短视频推荐至关重要

Q17: 推荐系统如何保证多样性? - MMR(最大边际相关):相关性和多样性的平衡 - DPP(行列式点过程):数学上最优的多样性子集选取 - 打散规则:同类别间隔≥N个位置 - 重排序:在精排结果上做多样性重排

Q18: Embedding维度如何选择? - 经验公式\(d = \min(50, \lceil n^{1/4} \rceil)\),n为类别数 - 实际:通常16/32/64/128维,视数据规模和模型容量 - 过大:信息冗余、过拟合;过小:表达能力不足

Q19: 什么是序列推荐?DIN模型的核心创新? - 序列推荐:利用用户行为序列建模兴趣演化 - DIN(Deep Interest Network): - 核心:对用户历史行为用Attention加权(target-aware attention) - 卖家手机→用户历史中手机相关行为权重更高 - 改进了传统"对历史行为平均池化"的粗糙方式

Q20: 推荐系统AB测试的关键要点? - 分流方式:用户级分流(非请求级),保证一致性 - 指标体系:核心指标(CTR/CVR) + 护栏指标(留存/DAU) - 统计检验:p-value < 0.05,最小样本量计算 - 常见陷阱:辛普森悖论、新奇效应、指标异动归因


二、进阶题(20题)

Q21: DIN→DIEN→SIM的演进路线? - DIN:Target Attention加权历史行为 - DIEN:GRU建模兴趣演化 + AUGRU兴趣抽取 - SIM:GSU(通用搜索单元)预筛选相关行为 + ESU(精确搜索单元) - 核心趋势:从全量行为→相关子序列→更长历史

Q22: 多兴趣召回(MIND/ComiRec)的思路? - 动机:一个用户有多个兴趣,单一向量难以表达 - MIND:Capsule Network提取多个兴趣胶囊 - ComiRec:可控的多兴趣提取 + 兴趣聚合 - 检索:每个兴趣向量分别做ANN召回,合并去重

Q23: 图神经网络在推荐中的应用? - 用户-物品二部图:LightGCN(简化GCN,只做聚合+归一化) - 知识图谱增强:KGAT/RippleNet利用KG辅助推荐 - 社交网络:GraphRec利用社交关系传播 - 优势:天然捕捉高阶协同信号

Q24: 大模型在推荐系统中有哪些应用? - 特征增强:用LLM生成物品文本描述/标签 - 冷启动:LLM理解新物品语义 - 对话推荐:基于LLM的对话式推荐 - 生成式推荐:LLM直接输出推荐item ID (P5/M6-Rec) - LLM as Ranker:用LLM做精排(成本太高,更多用于离线评估)

Q25: 重排序阶段的设计要点? - 上下文建模: 考虑列表中item之间的交互(PRM/SetRank) - 多样性: MMR/DPP保证品类多样 - 业务规则: 广告插入、强制规则、屏蔽逻辑 - A/B测试: 重排改动对整体指标影响大,需谨慎

Q26: 解释因果推断在推荐中的应用? - 消偏:反事实推理消除位置/曝光偏差 - IPW(逆倾向加权):用倾向得分加权样本 - 因果效应估计:估计推荐对用户行为的因果效应(而非相关性) - IPS+DR(Doubly Robust):同时用回归和IPW,更鲁棒

Q27: 如何设计推荐系统的特征工程Pipeline?

Text Only
原始数据 → 特征提取(Spark/Flink) → 特征存储(Redis/Feature Store)
→ 特征服务(在线查询) → 模型输入(特征拼接+Embedding)
- 离线: T+1统计特征(点击率/转化率/热度) - 近实时: 最近N次行为序列(Flink→Redis) - 实时: 当前context(时间/位置/设备)

Q28: 如何处理推荐系统的数据稀疏问题? - 特征交叉: FM/DCN自动学习交叉特征 - 预训练Embedding: 图Embedding/预训练语言模型 - 知识蒸馏: 用复杂模型指导简单模型 - 跨域推荐: 利用其他domain数据 - 数据增强: 行为补全、负样本增强

Q29: MMOE和PLE的区别? - MMoE:多个Shared Expert + 每个task一个Gate - PLE:每个task有自己的Expert + Shared Expert + 渐进式抽取 - PLE优势:减少负迁移(task之间互相干扰) - 实践:PLE在多任务场景表现更好,但参数量增大

Q30: 如何衡量推荐系统的长期价值? - 短期指标:CTR、CVR、GMV - 长期指标:留存率、DAU、用户满意度、Life Time Value - 方法: - 长期AB实验(运行2-4周观察留存) - 多目标优化中加入留存相关指标 - 强化学习建模长期收益

Q31-Q40: [进阶系统设计题 + 手撕代码题](篇幅所限,列出要点)

Q31: 设计一个Embedding实时更新系统 Q32: 实现一个简单的ANN(近似最近邻)检索 Q33: 设计推荐系统的AB实验平台 Q34: 如何做推荐系统的在线学习? Q35: 对比Transformer在推荐中的应用(BST/SASRec) Q36: 推荐系统模型serving的优化方法 Q37: 如何设计一个新闻推荐系统?(注意时效性) Q38: 多场景推荐(首页/搜索/详情页)的统一建模 Q39: 推荐系统的Exploration vs Exploitation Q40: 强化学习在推荐中的应用和局限


三、高级题/系统设计题(10题)

Q41: 设计一个日活1亿的短视频推荐系统 - 召回(6路): ItemCF + 双塔 + 多兴趣 + 热门 + 地理 + 社交 - 粗排: 双塔+轻量MLP,从10000筛到1000 - 精排: 多任务模型(CTR+完播率+互动), DIN序列建模 - 重排: 多样性(品类/作者打散) + 新鲜度衰减 + 广告插入 - 工程: Feature Store(Feast) + 模型服务(Triton) + AB平台

Q42: 设计一个电商搜索推荐系统 - 搜索: Query理解(NER/意图识别) → 召回(文本匹配+向量检索) → 排序 - 推荐: 猜你喜欢/相关推荐/购后推荐 - 统一: 共享Embedding空间,搜索和推荐模型共用底层特征

Q43-Q50: 涵盖冷启动系统设计、跨境推荐、隐私保护推荐(联邦学习)、广告竞价排序(eCPM=bid×CTR)、知识图谱增强推荐、实时推荐流水线设计、推荐系统可解释性、对话式推荐系统


最后更新:2026年2月