04.18 面试了10家公司,以下是一份机器学习面试内容总结

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

面试了10家公司,以下是一份机器学习面试内容总结

先介绍一下我自己,我有过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位专业人士有过交谈,以下是我在这之后能给出的建议:

  • 简历很重要。要在其中写明参加过的项目、Kaggle竞赛、MOOC证书或者论文。我就是在没有任何推荐人推荐的情况下接到了亚马逊的电话。你的简历是打动HR和面试官的重要武器。

  • 自信心和驱动力是成功的一半。参加面试时一定要自信,并且展示出你的热情(尤其是在创业公司和服务型公司)。

  • 面试时不要急着回答问题。花些时间想想如何组织答案,如果有不明白的地方一定要问。面试时一定要冷静。

  • 在解释概念时别忘了表现自己。你可以提几个做过的案例,并且要熟悉你简历里写的技能和项目。

  • 如果你是这一领域的新人,在创建简历时可以从自己做过的项目开始,或者GitHub账号也是很有说服力的。除此之外,可以多参加Kaggle竞赛和MOOC课程。

  • 学会谦虚,注意倾听面试官的意见。有的时候,R和Python的使用者会互相鄙视,最好不要这样,不然很可能挂掉。

最后,祝大家面试成功!(小编:答案?拟答案什么的是不可能的,这辈子都不可能的)


分享到:


相關文章: