---
name: algorithm
description: 算法与机器学习怎么面：ML 基础、深度学习、特征、AB 实验、部署监控、落地。算法与 ML 工程岗读。
keywords: [算法工程师, 机器学习, machine learning, mle, 深度学习, 推荐算法, 搜索算法, 广告算法, 计算机视觉, 自然语言处理, 风控, 特征工程, 模型部署, mlops, xgboost, AB 实验, CV, NLP, 特征平台, 模型监控]
layer: domain
---

## 面试官在意什么

算法与机器学习岗在国内分为搜索推荐广告（字节、美团、阿里、快手需求最大）、CV、NLP、风控与数据挖掘、机器学习平台与 MLOps 等方向。职责是把数据和模型变成稳定产出业务价值的系统：构造特征、训练与迭代模型、评估与实验、部署到线上、监控效果并持续更新。真实面试三到四轮：一面考机器学习与深度学习基础加一道手撕（LeetCode 中等或模型组件如交叉熵、IoU），二面深挖项目与业务方向的模型演进（推荐的召回粗排精排、CV 的检测分割、NLP 的预训练与微调），三面考实验设计、业务理解与工程落地，主管面看方向匹配。大模型方向的算法题（预训练、对齐、RL）在 ai-algorithm 包里。

面试官最在意三件事：第一，基础是否扎实——损失函数、优化器、正则化、评估指标能否推导而不是背结论；第二，实验是否可信——有没有对照组、有没有泄漏、切分方式对不对、离线指标与线上指标背离时怎么判断；第三，工程闭环——特征一致性、延迟与吞吐、监控与回滚、重训，算法工程师不只是训练模型的人。真实工作里出问题最多的地方是数据（泄漏、偏差、漂移、一致性）而不是模型，面试官会优先往那里追。

校招候选人的项目多为论文复现、比赛、实验室课题或实习中的一个模块，不期待业务成果，看对基础公式的推导、对实验结果的诚实评估、能否解释每个超参数与设计的理由；社招必须交代线上指标、AB 实验的置信度、模型上线后的性能与稳定性问题、特征平台与训练服务一致性，以及为什么这个方案而不是更简单的基线。2025 年以来面试官常追"这个任务为什么不直接用大模型"。

怎么问才像这个方向的面试官：
- 基础题必须追到公式或机制层面（推导、复杂度、统计量），只会背结论按不理解处理；手撕以模型组件为主，不出纯脑筋急转弯。
- 项目题的核心是实验可信度：验证集划分、泄漏、基线、置信度四项必问，任何一项答不出都要深挖。
- 优先考数据问题而不是模型问题：泄漏、偏差、漂移、一致性是真实工作里出问题最多的地方。
- 校招看基础推导与对实验的诚实评估，不苛求线上成果；社招必须交代线上指标、AB 结论与部署性能，没有线上经历的按离线项目追问。
- 必须结合候选人的方向与规模出题：百万级样本和百亿级样本、离线批处理和毫秒级在线服务的正确答案不同；候选人的方向与题目方向不同时用其熟悉的任务替代。
- 不考模型与论文的时效性名词，考选型理由与失败案例。

## 项目 / 实习怎么深挖

简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实；只有框架名与结论、说不出自己那一段的，记为危险信号。通用的追问方法见 project-deep-dive。

- 简历出现推荐或广告模型 → 追召回样本构造、负采样、各层候选量级、离线与线上指标的对应关系、AB 实验的置信度、冷启动方案、曝光偏差处理
- 简历出现"AUC / 准确率提升 X" → 追指标定义、验证集划分方式、有没有泄漏、基线是什么、线上有没有 A/B 验证、业务指标变化
- 简历出现特征工程 → 追最有效的三个特征怎么来的、特征重要性怎么算、有没有泄漏检查、线上怎么取、线上线下一致性怎么保证
- 简历出现模型上线 → 追 QPS、p99 延迟、部署方式、监控什么、有没有回滚过
- 简历出现深度学习模型 → 追为什么选这个结构、训练调试遇到的最难问题、和简单基线比提升多少
- 简历出现论文复现或比赛名次 → 追复现结果与原文差距、关键提升来自哪一步、集成的贡献、有没有过拟合榜单、哪些方案在工业界不可用
- 简历出现"自动重训 / MLOps 平台" → 追触发条件、评估门槛、失败案例
- 简历出现风控 / 反欺诈 → 追正样本比例、标签延迟、可解释性要求、对抗变化怎么应对
- 简历出现 CV 或 NLP 具体任务 → 追损失函数与后处理细节、失败样本分析、数据增强
- 简历出现搜索相关性 / 排序 → 追标注怎么来、离线 NDCG 与线上点击的关系、query 理解与召回的分工

## 常见失守与危险信号

- 机器学习基础与模型选择：过拟合只答"加正则"；说不出 GBDT 与随机森林的差异来源；无条件选深度学习；不知道类别特征在不同模型里的处理差异
- 评估指标与业务目标：AUC 只会背"ROC 下面积"；不知道全局 AUC 与用户内 AUC 的差别；不知道样本不平衡下 AUC 的误导性；把离线指标当最终目标
- 深度学习训练与调试：BN 只答"归一化"说不出推理时用什么统计量；NaN 只答"调小学习率"；调参只会试学习率；没看过梯度范数
- 特征工程、泄漏与训练服务一致性：不知道特征穿越是什么；对"AUC 过高"没有警觉；目标编码直接用全量数据；训练和线上分别写了两套特征逻辑；没有特征分布监控
- 实验设计与 AB 测试：不知道显著性与样本量的关系；实验流量随便切；不知道 AA 实验的作用
- 模型部署与推理优化：部署只答"用 Flask 包一下"；量化只知道"变小变快"；不知道 GPU 利用率低通常是数据加载或 batch 问题；认为延迟问题都是模型太大
- 线上监控、漂移与 MLOps：只监控服务可用性不监控效果；把重训当万能药；模型文件手工命名放共享盘；不记录训练数据快照
- 数据质量与标注：随机划分时序数据；没有检查过数据重复；标注不一致没有度量
- CV 与 NLP 方向专项：只会报模型名字；说不出 NMS 的阈值影响；不知道 beam search 与贪心的差别
- 业务落地与 LLM 边界：拿到问题直接选模型；没有基线；说不出模型失效的场景；无条件用 LLM，或完全拒绝 LLM 而说不出理由
- 可解释性与合规约束：把特征重要性当成个体解释；不知道 SHAP 与全局重要性的区别；不考虑敏感特征的代理变量

## 常考主题清单

只列名字、阶梯与答实的标志，作"问到哪一层算实"的参考；问哪些、问几道由这份 JD 与这份简历定，不是配额。

### 机器学习基础与模型选择
- 阶梯：过拟合与欠拟合的判断与对策 → 偏差方差分解、正则化的作用机制、树模型与线性模型的适用场景，GBDT 为什么在表格数据上强、树模型为什么不需要归一化 → 训练集表现好线上差的归因（分布偏移、泄漏、标签噪声）；效果卡住了是数据问题还是模型问题 → 可解释性、训练成本与效果的取舍，什么时候该用简单模型
- 答实的标志：能区分泄漏、时间穿越、分布漂移；知道正则化对应的先验；能解释树模型对特征尺度不敏感的原因；有基线模型习惯

### 评估指标与业务目标
- 阶梯：precision、recall、AUC、F1、NDCG、校准的定义与适用 → AUC 的排序含义、正负样本不平衡下指标的选择、GAUC 与 AUC 的差异 → 离线指标提升但线上指标不动的原因（选择偏差、代理指标偏离） → 指标与业务目标的对齐，多目标怎么权衡
- 答实的标志：能解释 AUC 的概率含义；区分排序指标与分类指标；理解离线样本只覆盖曝光过的 item；用 replay 或 uplift 缩小离线线上差距；能提出更贴近业务的代理指标

### 深度学习训练与调试
- 阶梯：梯度消失与爆炸的原因与对策 → BatchNorm 与 LayerNorm 的计算、训练与推理阶段的差异、Dropout 的作用、学习率与 batch size 的关系 → loss 不下降、验证集震荡、NaN 的排查顺序 → 训练稳定性与收敛速度的取舍、混合精度的风险、调参预算与收益
- 答实的标志：先检查数据（异常值、标签错误）再查 lr、warmup、精度溢出；有梯度裁剪、混合精度溢出、数据异常等排查清单；能解释 BN 在 batch 小时失效；小数据过拟合验证 pipeline

### 特征工程、泄漏与训练服务一致性
- 阶梯：特征的类型与处理方式（离散、连续、序列、交叉）、embedding 的构造与共享 → 离线 AUC 0.95 线上很差，怎么排查是不是泄漏（时间穿越、标签泄露、目标编码未做 out-of-fold）→ 为什么线上线下特征会不一致；特征平台（在线存储、离线存储、point-in-time 正确性）的设计；上线后某特征线上 30% 为空怎么定位 → 特征数量、实时性与服务延迟、存储成本的取舍
- 答实的标志：按时间切分并检查特征时间戳；单特征重要性异常高时先怀疑泄漏；同一份特征定义代码离线在线共用；point-in-time join；上线前做训练集与线上抽样的分布对比

### 实验设计与 AB 测试
- 阶梯：AB 实验的基本原则与分层分桶 → 样本量、显著性、置信区间的计算与最小可检测效应 → 实验结果不显著、AA 实验不平、新奇效应与网络效应怎么处理 → 多个实验互相干扰的分层设计、短期指标与长期指标的取舍
- 答实的标志：能估算样本量；知道方差缩减方法；能识别辛普森悖论与分桶不均；对全量决策有明确标准

### 模型部署与推理优化
- 阶梯：训练框架到推理服务的导出路径（ONNX、TorchScript、TensorRT） → 量化、蒸馏、剪枝的原理与精度代价，批处理与动态 batch → 线上 p99 延迟突增怎么定位（模型、特征查询、序列化、网络）、GPU 利用率低、量化后精度掉太多怎么排查 → 延迟、吞吐、成本、精度的四维取舍，CPU 与 GPU 部署选择
- 答实的标志：能说出 PTQ 与 QAT 的差异；分段打点找瓶颈；动态 batching 与并发配置；量化前后做精度回归；特征缓存与预计算

### 线上监控、漂移与 MLOps
- 阶梯：模型上线后要监控什么 → 数据漂移与概念漂移的区别，PSI / KL 之类的检测手段；数据版本、代码版本、模型版本、参数如何关联可复现 → 效果缓慢下降但没有告警、标签延迟情况下怎么监控；两个月前的模型效果复现不出来怎么查 → 重训频率、自动重训的触发条件与风险；流程规范化与迭代速度的矛盾
- 答实的标志：特征分布、预测分布、真实效果三层监控；有 champion-challenger 或影子模式；实验追踪（参数、指标、数据 hash）；模型注册与审批；CI 里跑评估回归；重训有回滚方案

### 数据质量与标注
- 阶梯：数据集怎么划分、为什么要按时间或用户划分 → 标签噪声的影响与处理、类别不平衡的采样与加权 → 数据泄漏怎么排查、标注不一致怎么度量 → 数据规模与标注成本的取舍、主动学习与弱监督何时值得
- 答实的标志：能说出划分方式与业务场景的对应；知道标注一致性指标；有数据版本管理的意识

### CV 与 NLP 方向专项
- 阶梯：经典任务的模型演进（检测、分割、预训练语言模型） → 损失函数与后处理（IoU、NMS、CTC、beam search）的细节 → 小目标漏检、领域迁移效果差、生成重复等具体问题的归因 → 精度、速度与标注成本的取舍，何时用预训练大模型替代专用模型
- 答实的标志：能解释损失与后处理的作用；有领域迁移与数据增强的方案；知道大模型替代的成本边界

### 业务落地与 LLM 边界
- 阶梯：业务问题怎么转成机器学习问题；目标函数与业务目标的对齐、基线怎么建 → 这个任务为什么不直接用大模型；传统模型在延迟、成本、可控性上的优势 → 上线后效果衰减、业务方不信任结果怎么处理；用 LLM 生成特征或标签的风险（噪声、分布偏移） → 什么时候不该用模型、规则与模型的取舍；什么场景值得引入 LLM、怎么评估收益
- 答实的标志：能定义标签与预测窗口；先建规则或简单模型基线；按延迟、成本、准确率、可维护性比较 LLM 与传统模型；LLM 标注要抽检一致性；有小模型蒸馏思路

### 可解释性与合规约束
- 阶梯：为什么风控、医疗、金融场景要求模型可解释 → 特征重要性、SHAP、单调性约束各解决什么 → 模型拒绝了一个用户业务要求给出理由、监管要求证明无歧视怎么做 → 可解释性对模型精度与迭代速度的代价，什么场景该用评分卡而不是 GBDT
- 答实的标志：区分全局与局部解释；对关键特征加单调性约束；检查敏感属性的代理特征；解释结果与业务规则对齐
