应届生求职:想做数据科学家和机器学习工程师,如何准备面试(4)
应届生求职:想做数据科学家和机器学习工程师,如何准备面试(4)
篱笆资讯
应届生求职:想做数据科学家和机器学习工程师,如何准备面试(4)

机器学习应用类问题


第三类题是机器学习应用类问题,也是几类问题中难度最大的,同时也是最常被考的题型。这类题型,通常是面试官先给你一个很开放的问题,并希望你在一定时间内设计一个合适的机器学习解决方案。为了评估我们对于各类模型的熟练程度和经验水平,面试官会不断质疑你,比如模型的选择,并深入细节,比如如何处理数据如何评估准确度等。以下是一些示例问题:

  • 一般问题
    • 如何设计文本分类模型?
    • 如何设计图像分类模型?
    • 如何检测垃圾邮件?
    • 如何检测垃圾账户?
  • 特定领域的问题
    • 如何设计推荐系统?
    • 如何设计预计到达时间 (ETA) 模型?
    • 如何设计查询和排名系统?

如果你是new graduates或者很少有行业经验,通常你会被考第一类问题;相反,如果有一定的经验,则更多会考察你针对特定领域问题提供解决方案的能力。


如何回答机器学习应用类问题


开始之前,首先需要明确这个模型需要实现的目标、可用的数据和一些限制条件。澄清这些问题之后,可以选择先走一遍整体思路,然后和面试官讨论。我们帮大家梳理了一个比较清晰的结构,大家可以参考:
  • 数据
    • 清理数据并处理异常值
  • 特征工程
    • 思考可能要用到的feature
    • 如果有必要,可以设计新feature
  • 模型选择与实现
    • 选择和问题匹配的1-2个模型
    • 讨论模型的优缺点
  • 训练、模型调整和评估
    • 确定评估指标
    • 设计模型训练、验证和结果评估的策略
    • 讨论提高模型效率的方法
 
如何准备机器学习应用类问题
在准备机器学习应用类问题时,分一般问题和特定领域的问题,准备方法有所不同。

一般问题

Kaggle社区中发布了许多简单直接的机器学习问题和非常丰富的解决方案。我们很建议大家尝试自己完成一个项目,然后将自己的方案与其他解决方案进行比较,不断完善自己的解题框架和答案细节。比较的时候,可以分别看看仔细看看EDA、数据清洗、特征选择、模型选择和模型评估等各方面的问题。如果能够高质量完成几个项目的训练,那么应对面试中比较通用的机器学习应用问题,应该是游刃有余
 
特定领域的问题

这类问题需要有真实的工作经验才能给出比较好的答案。当然没有第一手经验,不代表没办法通过面试。最高效的准备方法是阅读研究论文。阅读论文时,重点关注数据格式、特征工程、模型架构和结果/发现,因为这些通常是面试的重点。有些论文,你甚至可以找到作者的会议演讲录音,这能更快的帮助我们掌握论文内容。
 
那么该去哪里可以学习的论文呢?其实方法很简单,直接在谷歌学术上搜索关键词即可,然后选择引用次数最多的前三篇。下面我们帮大家整理了一些与推荐系统相关的论文,你也可以用类似方法找到其他领域的论文

基于项目的机器学习问题


与机器学习应用类问题类似,这类问题也是在评估候选人的专业水平,只不过这类问题根据你的面试官背景的不同,有可能完全是tech-driven,也有可能和tech无关。
 
通常,在这类问题的面试中,面试官可能会先让你介绍一个你从事过的机器学习项目,或者询问你简历中列出的项目。一开始,会需要你描述项目的背景。然后,面试可能会转向询问技术细节、业务影响或领导力相关,问题的方向取决于面试官的背景。这些问题可能有:

  • 数据量大小?你是如何选择feature的?
  • 你为什么选择这个模型?你试过不同的模型吗?
  • 如何评估模型性能(在线和离线)?
  • 对产品有什么影响?
  • 你和其他团队合作过吗?你是否领导了这个项目的部分流程?

如何回答基于项目的机器学习问题


这类问题的关键其实我们在其他的文章中经常提到,“互动!互动!互动!”。用对话/聊天的方式展示你自己的项目,而不是单向的输出。我们建议可以使用下面的步骤来描述项目:
  1. 用 1 -2 句话总结项目的基本情况,包括项目目标、你的角色等,然后介绍这个项目带来的效果,比如模型性能的提升或公司收入等,能量化最好量化。
  2. 突出项目的 2 到 3 个困难,例如数据量大小、数据质量、模型训练和部署等。
  3. 与面试官分享一下,你从项目获得的一些感悟或者是一些发现。
  4. 如果面试官对你的领导力和影响力和更感兴趣,那么可以谈谈我们所做的1-2个非技术贡献,比如提出想法、发起会议以及与团队中其他人的合作共赢。
 
为了让面试官尽可能多的参与进来,一旦我们谈完了每个部分,都要和面试官确认下一步的动作,是需要更多背景信息还是继续下一点?
如何准备基于项目的机器学习问题
可以采取三个步骤来准备这些类型的问题:总结项目、思考技术细节并重复练习。
 
总结你的项目

最重要的是总结项目的目标和影响,尽量用简明扼要的词语概括它们,以便面试官能够轻松理解上下文。为了描述项目和你的贡献,这里可以忽略大部分关于基础工作的细节,而是侧重在你面临的挑战和已经取得的结果。以下是一些帮助你总结项目的问题:
  • 项目的业务影响(例如模型准确度、业务收入)是什么?
  • 其他人或整个团队如何从该项目中获益?
  • 该模型是否可以扩展以解决其他业务问题?
 
仔细考虑技术细节


面试官很可能对技术细节更感兴趣。在这种情况下,准备面试过程中一定要了解项目模型的理论基础和实现过程,可以尝试问问自己下面的这些问题是否能准确回答:
  • 数据处理:
    • 你使用了多少feature?
    • 你是如何选择feature的?
    • 是否设计了新feature?怎么设计的?
  • 模型:
    • 试验了哪些模型?
    • 模型表现有何不同?
    • 是否尝试过更简单的模型(例如线性回归)?为什么需要使用更复杂的模型?
  • 模型细节:
    • 你调整的参数是什么?
    • 你是如何调整参数的?
  • 模型评估:
    • 使用了哪些离线和在线评估指标?
 
大声练习


不论准备多么细致,最终一定要说出来。可以对着镜子模拟面试场景,可以找人帮忙做模拟面试,也可以自己录音回头听自己的回答
coffee 直连行业大牛导师,1v1模拟面试与求职指导
mentors
airplay 实战与求职精品课程
数据科学
软件工程
人工智能
金融商科
产品经理
产品设计
bookmark 2000+名企面试真题
amazon google tiktok microsoft meta