机器学习岗位面试内容总结


本文作者为Abhijeet Kumar,他是一名有着五年机器学习和数据科学工作经验的从业者。从今年年初开始,他开始在印度的数据科学、机器学习或深度学习领域找工作。在为期30—40天的求职过程中,他面试了8—10家公司,其中不仅包括刚成立一年的创业公司,也有亚马逊这种电商巨头。Kumar把每家公司的面试题记录下来,为各位求职者提供经验,小伙伴们看好了哦~

我是面试者
先介绍一下我自己,我有过4年以上机器学习的工作经验,主要工作内容有话语分析、文本分析和图像分析。我认为该领域最稀缺的人才是NLP专业,然后是图像分析(CV),主要进行话语或音频分析的较少。有了五年的工作经验后,我的目标是中高层职位,可以带领一个数据或机器学习团队做一些有趣的研究。
以下是我在面试过程中遇到的各种技术性问题,供大家参考。

全球服务性公司之一(20—25分钟)
◆ 1.请问你在搭建文档挖掘系统的过程中,做了哪些工作?
◆ 2.假设给你数TB的数据文件,其中包含PDF、文本文件、图像、扫描的PDF文件等等。你将如何对其分类?
◆ 3.你如何阅读扫描的PDF或书面文件?
◆ 4.为什么朴素贝叶斯被称为“朴素”?
◆ 5.详细谈谈朴素贝叶斯分类器?
◆ 6.什么是深度学习?机器学习和深度学习的区别在哪里?

除此之外还有一些类似的问题,但是我觉得很糟糕,实在不知道他想听到什么样的答案。我一直想探讨更深的技术层面的东西,但是面试官却一直没有聊到这方面。我试图讨论模型训练或tesseract或者语言模型,但他似乎不吃这一套。也许他想听到的是现成的成果,或是很简单的解释。这跟我五年前第一次面试的感觉非常相似。

全球服务型公司之二(40—45分钟)
◆ 1.你如何能在无监督的方式下收集文件?
◆ 2.你如何找到与某些查询问题相关的文件?
◆ 3.解释一下TF-IDF。
◆ 4.根据我的经验,TF-IDF在文档分类或收集方面失败了,你今后会怎么改善?
◆ 5.什么是LSTM神经网络?解释一下它是如何工作的。
◆ 6.什么是word2vec向量?
◆ 7.Python中可变和不可变对象是什么意思?
◆ 8.你在Python中使用什么数据结构?

虽然有几个围绕文件相似性的问题,但我都顺利回答出来了。不过这次与上次一样,仍然没有深层次技术上的问题,该公司有几个关于文本分析的小项目,最终它们向我发出了offer。

全球生产和服务公司(40分钟)
◆ 1.在不平衡的数据集中,你如何处理多类别的分类问题?
◆ 2.你是如何从文本句子中进行语言识别的?
◆ 3.你如何表示中文或日文中的象形文字?
◆ 4.该如何设计一个聊天机器人?(在这一点上我没有太多想法)
◆ 5.输入一对问题和回答,我能用RNN设计一个聊天机器人吗?
◆ 6.假设我用Reddit上的数据集和RNN或LSTM创建了一个聊天机器人,它给了我10个备选回复,我如何才能选择最佳的那个?或者说,我如何删除其他的回复?
◆ 7.解释一下SVM是如何学习非线性边界的?

除此之外还有几个问题我记不清了。这是目前为止第一个问我技术性问题的公司,非常欣慰。最后这家公司也向我发了offer。

成立一年的医疗健康公司(50分钟)
◆ 1.精确率(precision)和召回率(recall)是什么?在医学诊断中,你认为哪个更重要?
◆ 2.对精确率和召回率分别进行定义。
◆ 3.你如何绘制ROC曲线?ROC曲线下面积表示什么?
◆ 4.在多类别分类任务中你如何绘制ROC曲线?
◆ 5.除此之外,还有哪些评估多类别分类任务结果的方法?
◆ 6.灵敏度(sensitivity)和特异度(specificity)是什么?
◆ 7.随机森林中的“随机”指什么?
◆ 8.你如何进行文本分类?
◆ 9.在没有TF-IDF的情况下,你如何确定自己学会了文本?
◆ 10.你还能用机器学习做些什么?
◆ 11.当神经网络由线性节点构成时,它如何学习非线性形状?它如何学会非线性边界?

除此之外还有几个不错的问题。尽管面试过程感觉不错,但是在某些问题上我们未能达成一致。而且在面试过程中,我发现公司只有2—3人专注于ML/DL/DS。

亚马逊(50—55分钟)
◆ 1.训练决策树时的参数是什么?
◆ 2.在决策树的节点处分割的标准是什么?
◆ 3.基尼系数的公式是什么?
◆ 4.熵的公式是什么?
◆ 5.决策树如何决定在哪个特征处分割?
◆ 6.你如何用数学计算收集来的信息?你确定吗?
◆ 7.随机森林的优点有哪些?
◆ 8.介绍一下boosting算法。
◆ 9.gradient boosting如何工作?
◆ 10.关于AdaBoost算法,你了解多少?它如何工作?
◆ 11.SVM中用到了哪些核?SVM中的优化技术有哪些?
◆ 12.SVM如何学习超平面?用数学方法详细解释一下。
◆ 13.介绍一下无监督学习,算法有哪些?
◆ 14.在K-Means聚类算法中,如何定义K?
◆ 15.告诉我至少3中定义K的方法。
◆ 16.除此之外你还知道哪些聚类算法?
◆ 17.谈谈DB-SCAM算法。
◆ 18.阶层聚合式分类法(Hierarchical Agglomerative clustering)是如何工作的?
◆ 19.解释一下PCA,使用PCA时有哪些数学步骤。
◆ 20.使用PCA有哪些缺点?
◆ 21.CNN如何工作?详细说一下使用细节。
◆ 22.解释一下CNN中的反向传播。
◆ 23.你如何部署机器学习模型?
◆ 24.大多时候,我们可能需要用C++从零开始搭建机器学习模型,你能做吗?

我面试的是亚马逊level 6的职位。我只能说,他们主要的关注点在算法和背后的数学上。不幸的是,我的面试都是即兴的,并没有准备数学方面的知识,我只说了我所记得的所有东西。不过面试官并不认为我适合level 6的工作。我相信只要你能记住通用的机器学习算法的数学细节,就能轻易地通过亚马逊技术轮面试。

全球服务型巨头(50—55分钟)
◆ 1.S函数的范围是什么?
◆ 2.scikit-learn的哪个安装包能实现逻辑回归?
◆ 3.标准正态分布的平均数和变量是什么?
◆ 4.你在Python中用什么数据结构?
◆ 5.文本分类的方法有什么,你都怎样做?
◆ 6.解释一下TF-IDF,它的缺点有什么?你怎么克服?
◆ 7.bigrams和trigrams是什么?用带有文本句子的例子解释一下bigram和trigram的TF-IDF。
◆ 8.word2vec有哪些应用,举个例子?
◆ 9.你会怎样设计一个神经网络?怎样把它变深?
◆ 10.LSTM是如何工作的?它是怎么记住文本的?
◆ 11.什么是朴素贝叶斯分类器?
◆ 12.抛10次硬币,4次是正面的概率有多大?
◆ 13.如何获取Python中列表元素的索引?
◆ 14.如果用pandas合并两个数据集?
◆ 15.从用户角度出发,你需要模拟欺诈活动,你会如何解决这个问题?
◆ 16.你更喜欢决策树还是随机森林?
◆ 17.使用逻辑回归和随机森林有什么区别?
◆ 18.在分类问题上,你会用决策树还是随机森林?用随机森林有什么优点?

最终这家公司向我发放了数据科学岗位的offer。事实上,我非常享受这次的技术性交流。你可能会觉得这些问题也是最基础的机器学习和数据科学问题。不过在面试过程中我感到面试官可能不是这一领域的,或者对现在的发展了解的不多。

全球商业管理公司(25—30分钟)
◆ 1.在不平衡的数据集中,你会选择什么模型:随机森林还是boosting?为什么?
◆ 2.你了解的boosting技术有哪些?
◆ 3.用监督学习的方法进行分类问题,你会选择哪个模型?(大约40—50个类别)
◆ 4.你如何使用集成技术?
◆ 5.SVM如何工作的?
◆ 6.什么是Kernel?简单介绍一下。
◆ 7.如何执行非线性回归?
◆ 8.Lasso回归和Ridge回归是什么?

说实话,这次面试有点水,以至于我没有认真对待。不过问题还是不错的。我面试的是领导一个15—16人的团队,在这之后是经理面试和HR面试。最终他们给我提供了咨询岗位以及不错的薪水。

成立4年的生产和服务型公司(60分钟)
◆ 1.简历上说,你曾做过用语音识别演讲者,具体方法是什么?
◆ 2.什么是MFCCs?
◆ 3.高斯混合模型是什么,它是如何完成聚类的?
◆ 4.如何实现期望最大化?其中的步骤是什么?
◆ 5.GMM中的概率如何计算?
◆ 6.在对演讲者进行识别时,你是如何为GMM-UBM技术执行MAP调整的?
◆ 7.谈谈你所用的I-向量技术。
◆ 8.语境中的分析因素是什么?
◆ 9.JFA和I-向量的区别是什么?为什么选择I-向量而不选JFA?
◆ 10.你用过PLDA I-向量技术吗?
◆ 11.你读过百度的有关Deep Speaker的论文吗?
◆ 12.如果有两个模型都可用,你会如何选择?
◆ 13.贝叶斯信息度量(BIC)和赤池信息量(AIC)工作的数学原理是什么?
◆ 14.BIC和AIC背后的原理是什么?
◆ 15.在你的MFCC特征向量矩阵中,如果有数据丢失怎么办?
◆ 16.如何分辨语言?有什么特点?
◆ 17.你的分类器更像是话语和音乐的分类器,还是话语和非话语的分类器?
◆ 18.在语言分析应用中,如何部署深度神经网络?

是的,你可能会问这都是什么问题。非常巧的是,我们两个人的研究领域都是语音分析,特别是演讲者识别。所以整个面试过程一直在围绕语音分析。很显然,面试官很专业,并且给了我非常积极的反馈。之后,这家公司给我提供了AI解决方案架构师的工作。

建议
在整个求职过程中,我大概与25—30位专业人士有过交谈,以下是我在这之后能给出的建议:
(1)简历很重要。要在其中写明参加过的项目、Kaggle竞赛、MOOC证书或者论文。我就是在没有任何推荐人推荐的情况下接到了亚马逊的电话。你的简历是打动HR和面试官的重要武器。
(2)自信心和驱动力是成功的一半。参加面试时一定要自信,并且展示出你的热情(尤其是在创业公司和服务型公司)。
(3)面试时不要急着回答问题。花些时间想想如何组织答案,如果有不明白的地方一定要问。面试时一定要冷静。
(4)在解释概念时别忘了表现自己。你可以提几个做过的案例,并且要熟悉你简历里写的技能和项目。
(5)如果你是这一领域的新人,在创建简历时可以从自己做过的项目开始,或者GitHub账号也是很有说服力的。除此之外,可以多参加Kaggle竞赛和MOOC课程。
(6)学会谦虚,注意倾听面试官的意见。有的时候,R和Python的使用者会互相鄙视,最好不要这样,不然很可能挂掉。

为了帮你更快实现从零到机器学习工程师的转化,七月在线特此设置《机器学习 第九期》的课程,
本课程的所有讲师均全部来自BAT + Google的一线技术大咖亲自授课,是真正工业人士授课的工业课程,且我们这么做已长达三年。
另外,网上课程很多,但由于没有个性化的内容、辅导、答疑,导致不少初学者看再多课程,课程看再多次,都是迷迷糊糊、不成体系,故本课程除了直播答疑之外,首次新增作业和考试一对一批改,且针对性的提供面试辅导、推荐就业,全力护航每一位学员的成长与成功。
机器学习第九期海报.png

0 个评论

要回复文章请先登录注册

返回顶部