机器学习面试通常会问哪些问题?
作者 Aaron Cao · 更新于
通常有四类:基础知识(偏差与方差、正则化、验证)、评估(选择什么指标以及为什么)、应用建模(特征、泄漏、类别不平衡),以及机器学习系统设计(训练、服务、监控)。大多数轮次都会从不同角度考查少数几个相同概念,因此深入掌握这些概念比泛泛涉猎更重要。
机器学习面试究竟考查什么?
机器学习岗位的面试流程通常比一般软件岗位包含更多轮次,而且每一轮考查的层面不同。了解当前考查的层面,就能判断面试官希望听到哪类回答。
- 基础知识。有关学习、泛化与优化的理论问题。面试官想确认你理解一项技术为什么有效,而不是听你背诵定义。
- 评估与实验。指标选择、验证策略、离线结果与在线结果的比较,以及如何设计实验来证明模型确实带来了改善。
- 应用建模。特征工程、数据泄漏、类别不平衡,以及真实数据集中棘手的部分。这些问题通常会围绕你自己的某个项目展开。
- 机器学习系统设计。模型如何获取数据、如何训练与重新训练、如何提供预测服务,以及如何发现模型在生产环境中的表现正在退化。
- 编程。一道 pandas 或纯 Python 练习,有时需要从零实现一个小型算法,例如 k-means 或逻辑回归。
行为面试题也会出现,其规则与其他岗位相同;题库主题页对此另有介绍。
各主题最常出现哪些问题?
不同公司的措辞有所不同,但底层问题会反复出现。请练习这些问题,直到你能用通俗语言自然地解释清楚。
- 偏差与方差:如何判断模型是过拟合还是欠拟合,你会先调整什么?正则化会对模型产生什么影响,什么时候会选择 L1 而不是 L2?
- 验证:为什么对时间序列数据进行随机训练集与测试集划分可能得出误导性分数?什么时候需要分层交叉验证或分组交叉验证?
- 指标:什么时候准确率不是合适的指标?如何向产品经理解释精确率、召回率和 ROC 曲线?对于欺诈检测,你会优化哪项指标,又会同时监控什么?
- 数据问题:什么是目标泄漏,你曾如何发现它?如何在不虚构数据的情况下处理严重的类别不平衡?如何处理缺失值,避免模型意外学到缺失模式?
- 模型:在表格数据上,梯度提升树什么时候会优于神经网络?Transformer 中的注意力机制实际计算的是什么?为什么嵌入有助于处理高基数类别特征?
- 优化:学习率过高或过低时会发生什么?为什么批量归一化能让训练更容易?
- 系统设计:为一个交易平台设计推荐系统。部署后如何检测数据漂移?如何重新训练模型,同时避免提供陈旧的预测结果?
- 实验:离线指标有所改善,但 A/B 测试结果没有变化;你会检查什么?
如果你能结合自己工作中的一个具体例子回答每个问题,就已经覆盖了基础知识面试轮次中的大部分考点。
口头回答这些问题时应如何组织语言?
即使掌握了相关知识,在视频通话中被要求解释时说得磕磕绊绊也很正常。本节提供一种组织口头回答的方法,简要结构是:定义、决策、示例、局限。
- 定义:先用一句通俗的话说明定义,再谈任何公式。
- 决策:说明你会在什么时候使用它,以及其他情况下会选择什么,因为面试官考查的是判断力,而不是术语量。
- 示例:引用一个真实项目,说明数据集、出现的问题、你做出的调整,以及发生变化的指标。
- 局限:说明这项技术会在什么情况下失效,以表明你有足够的实践经验并见过它失败。
一位应聘交易平台公司机器学习岗位的数据科学家被问到:为什么她的排序模型离线表现优异,却在 A/B 测试中毫无效果?她按四个步骤回答:什么是离线与在线表现差距、日志数据中的位置偏差为何导致了她遇到的问题、她新增了怎样的反事实评估,以及这种方法仅在日志记录具有足够随机性时才成立这一局限。这样的回答比完美的推导更有价值。练习口头回答正是模拟面试工具的用途;它会像真正的面试官一样继续追问。
AI 面试助手能在机器学习面试中提供帮助吗?
在对话式面试轮次中可以,但有一定限制。SubcueAI 的原生 macOS 和 Windows 桌面应用会采集通话的系统音频和你的麦克风声音,听取面试官在 Zoom、Google Meet 或 Microsoft Teams 上提出的问题,并在仅你可见的浮动叠层中显示简短的建议回答结构。对于在 Chrome 或 Edge 浏览器标签页中进行的通话,浏览器扩展的侧边面板只采集会议标签页的音频,因此它能听到面试官,但绝不会转录你的发言。这两种形式都不会以机器人的身份加入通话,也不会向会议页面注入任何内容。如果你已上传简历,建议内容可以引用你自己的项目,而这正是机器学习回答获得认可的关键。
其限制与所有技术面试所适用的限制相同。受监考的编程筛选、带回家作业,或在公司管理的设备上进行的面试,都不属于 SubcueAI 的使用场景;共享屏幕上的白板推导也必须由你自己完成,因为共享整个屏幕会让所有人看到浮动叠层。SubcueAI 创始人 Aaron Cao 构建这一浮动叠层,是为了提示回答结构和词汇,而不是口述现成答案,因为机器学习面试官会追问每一项论断,借来的答案往往到第二个问题就难以为继。两种形式的设置方法均见教程页面;桌面应用与扩展程序之间的实际差异则见对比页面。