机器学习系统设计面试:10个真实问题详解
本文以面试风格详细解析了10个机器学习系统设计问题,重点介绍了如何构建生产级ML系统,包括数据收集、特征工程、模型服务及持续改进。涵盖Feed排序、广告CTR预测、电商搜索排名等典型场景,强调从产品目标出发,结合离线/在线路径与反馈循环,并给出实用的面试技巧。
机器学习系统设计面试:10个真实问题详解
在机器学习系统设计面试中,候选人需要展示超越模型选择的系统思维能力。面试官不仅关注算法选择,更看重如何解释数据收集、特征工程、预测服务以及系统如何随时间改进。本文以实用的面试风格,逐步解析10个真实世界中的ML系统设计问题,涵盖Feed排序、广告点击率(CTR)预测、电商搜索排名、欺诈检测、预计到达时间(ETA)预测、垃圾邮件检测、视觉缺陷检测、需求预测、动态定价以及基于RAG的客服助手。
面试中的系统思考框架
ML系统设计的第一步是明确产品目标。每个ML系统都旨在辅助决策:Feed系统决定展示哪些帖子,欺诈系统判断支付是否风险,搜索系统决定产品排序。明确目标后,需要从三个维度定义成功指标:模型指标(如准确率、AUC)、产品指标(如收入、留存)和系统指标(如延迟、吞吐量)。接着,讨论数据来源、标签生成方式及潜在偏差。系统通常分为三个部分:离线路径(批量训练)、在线路径(实时推理)和反馈循环(连接用户行为与模型更新)。
1. Feed排序系统
Feed排序系统决定用户看到的内容顺序,广泛应用于社交媒体、短视频、新闻及职业平台。由于候选帖子数量巨大,系统无法对所有帖子实时评分,因此采用多阶段架构:候选生成(基于关注、主题、相似用户等缩小范围)、排序模型(预测点击、互动等行为,综合多个目标)和规则层(过滤不安全内容、增加多样性、避免重复)。模型初期可选用梯度提升树,随着系统发展再引入深度学习和多任务模型。离线评估使用AUC、NDCG等,在线则关注点击率、停留时间、会话时长等。最大的权衡在相关性与探索之间,仅优化点击易陷入标题党陷阱,需兼顾长期用户满意度。
2. 广告CTR预测系统
广告CTR预测系统实时估算用户点击广告的概率,并以此决定展示哪个广告。与普通内容排序不同,广告系统需平衡用户相关性、广告主回报和平台收益。工作流程包括:广告请求生成、资格过滤(检查预算、定向规则等)、CTR模型打分(基于用户、广告、上下文特征)、拍卖层(结合出价和预测值)。模型基线可选逻辑回归或梯度提升树,大型系统常用深度嵌入模型。离线需关注校准误差(预测CTR与实际一致),在线则追踪CTR、收入、广告主ROI等。延迟与准确性、探索与利用是主要权衡。
3. 电商搜索排名系统
电商搜索排名系统根据用户查询返回相关产品,需理解用户意图、商品属性、价格、库存、质量及个人偏好。系统分为三阶段:查询理解(拼写纠错、同义词扩展、类别检测)、候选检索(结合词法和语义搜索)和排序融合(综合相关性、人气、评分、库存、个性化及商业规则)。模型需要考虑多目标优化,例如点击率与购买率的平衡。评估指标包括NDCG、MRR及在线转化率。
后续问题与面试清单
文章后续分析了欺诈检测、ETA预测、垃圾邮件检测、视觉缺陷检测、需求预测、动态定价及RAG客服助手等场景,并提供了最终面试检查清单。每个问题都强调从简单基线起步、重视日志和监控,以及清晰阐述系统权衡。面试中避免直接跳到复杂模型,而应展示对整个生产系统(包括候选生成、特征工厂、模型部署、A/B测试等)的全面理解。