当前位置: 首页 > 科技观察

您如何面试如此高薪的机器学习职位的人?

时间:2023-03-21 12:06:54 科技观察

首先,这个问题很宽泛。做机器学习有很多方向。一些公司更倾向于数据挖掘,而另一些公司则更倾向于深度学习。同理,相应的立场有的偏理论,有的偏实践。这些因素的叠加,导致机器学习相关职位分布广泛,如数据分析师、算法工程师、机器学习科学家等,难以一概而论。大概从实习开始,我就一直在和老板一起招聘和面试机器学习的候选人,现在我已经参加了大约20个机器学习求职者的技术面试。其中有在读的研究生(实习岗位),也有工作多年或学术背景雄厚的名牌大学博士(比较高级的“科学家”岗位)。不谈具体职位,我想回答以下问题:1.为什么要避免纪律偏见2.如何测试面试官的知识广度3.如何测试面试官的知识深度4.为什么是否需要确认基本的编程和数据分析能力5.如何提高机器学习面试的成功率1.避免学科间的偏见和歧视机器学习是一门交叉广泛、多学科深度融合的学科学科,并且有来自不同背景的面试官。我建议你一定不要预设立场。无论是数学、统计学、物理、计算机,还是其他学科,受访者都有独特的知识储备。比如机器学习其实和统计学习有很大的重叠,甚至和优化(比如运筹学)和数学(直线生成等)有很大关系。不同领域的人对同一个事物的描述可能大同小异,甚至叫法不同。举个简单的例子,统计将变量称为预测变量,而机器学习倾向于将它们称为特征。我听说很多面试官拒绝应聘者是因为对方不能完全使用他理解的术语,我认为这是愚蠢的。以我们团队为例,我的老板是博士,统计学教授(偏测),我是纯计算机背景。他喜欢用R建模,而我只擅长Python和C++。但也正是这种不同,让我们能够更好地合作。他喜欢在无监督学习中使用各种密度分析(密度估计)或者直接拟合分布,我可以给他介绍很多机器学习方向。更流行的算法,例如IsolationForests。同样,Python和R都有自己擅长的领域。比如Python做时间序列分析比R难很多,因为R有非常成熟的封装。所以,我们不要因为领域不同,名字不同,编程语言不同,或者模型的解释思路不同,就轻易否定一个面试官。久而久之,我们的思维会越来越狭隘,一定的宽容可以拓宽我们的思维。2.通过广度测试勾勒出面试官的知识面。机器学习项目一般涉及数据处理、建模、评估、可视化、部署等一系列过程。我们希望面试官对每个步骤都有最基本的了解。学习。因为涉及面广,我们希望先了解一个受访者在短时间内的知识范围。有很多基本但经典的问题可以用来了解面试官的素质。给出一些例子:数据处理:如何处理缺失值(missingvalues)?每种处理方法的优缺点是什么?变量)转化为连续变量(continuousvariables)?如何处理有序变量?如何处理无序变量?数据处理:如何选择特征选择?如何进行数据压缩?特征选择:wrapped、filtered、embedded数据压缩:主成分分析、自编码器等模型解读:解释什么是欠拟合和过拟合?如何处理这两种情况?模型解读:什么是偏差方差分解(BiasVarianceDecomposition)?和过拟合有什么关系?评估模型的一般方法是什么?分类模型评价方法?回归问题评估方法?数据不平衡评估方法?深度学习比其他学习模型更好吗?为什么?以如何处理缺失数据为例,可能的答案有:1.分析缺失率决定是否去除2.改用均值、众数、回归3.改用0等例如深度学习是否比起其他模型,我们希望面试官能说出“视情况讨论”,能说出“天下没有免费的午餐定理”的话会加分。这个阶段我们不会问深层次的问题,只是想对面试官的知识范围有一个了解。这类题的共性是不管你是学生还是资深科学家,都应该有一定的基础,但不一定要答对,因为很多答案本身并没有标准答案。大多数时候,我们在这个阶段已经有了是否聘用这个人的答案。如果面试官答错了或者80%的概念都不知道,录取的概率就很低了。3、根据求职者的职位和背景进行深度挖掘。经过上一阶段,我们对求职者的素质有了一个大概的判断。接下来就是深入了解了。一般follow-up的问题都是基于两点:面试官的背景:如果有和职位特别相关的工作经验,就会深入询问。如果有高被引文章,也会请他谈谈他的研究。面试职位:如无与职位具体相关的经验,将根据职位要求进行询问。在这个链接中,实际上并没有模板。假设我们现在想为一家保险公司招聘一名机器学习工程师来自动化“欺诈检测”。我们的求职者是一名刚从计算机系毕业的硕士生。我们可能会深入探讨的话题包括:在只有少量标签数据的情况下,如何构建反保险欺诈系统?如果面试官回答先用supervisedlearning来做,那么我们可能会问:这种情况下,数据是Unbalanced,你用oversampling还是undersampling?如何调整成本函数和阈值?有人可能会提到使用One-classSVM?那么我们可能会问SVM相关的问题,比如什么是***区间分类器什么是Kernel,如何选择Kernel等等。如果面试官回答使用无监督学习,那么我们可能会问:为什么K-意味着不适合异常值检测?K-Means和GMM有什么关系?FMM可以用来直接拟合异常值吗?在无监督学习中如何获得分类规则?这类问题的特点是适应性强,一般会往一个方向深入。比如其他答案中提到的L1和L2正则化,我们可能希望面试官在白板上画个图来解释为什么L1可以得到稀疏解,和嵌入特征选择有什么联系。我们不希望求职者完全回答这类问题或说清楚。我们还要观察他们在压力和质疑下的心理素质。因为整个过程中肯定会有一些知识盲点,我们会尽量避免尴尬的气氛,所以作为求职者不用太紧张。同时,通过了解他/她和面试官做过的项目,可以看出他/她对这个专业有兴趣——兴趣很难表现出来。在这个环节中,如果面试官能够有能力进入到深入的对话中,甚至提到一些我们从来没有想过的想法,那将是一个加分项。4.基本的编程能力和数据挖掘能力对于机器学习岗位,无论你是统计学还是计算机专业的背景,都离不开建模的过程,所以基本的编程能力是必须的。一般对于有数学或统计学背景的面试者,我们会额外做一个简单的小程序测试。这个小程序可以像读取数据并将其保存为矩阵一样简单。这不是因为我们喜欢找麻烦,而是因为机器学习太容易成为纸上谈兵的理论,而从业者缺乏最基本的编程技能。同样,我们也希望受访者谈谈从模型中可以得出什么结论。我们在Kaggle上处理完泰坦尼克数据集后,请面试官说说生存率跟什么有关,怎么分析。同样,我们不追求绝对的答案,只是希望求职者能够对一些简单的模型结果进行解释,并从中提取商业价值。5.让面试官有所收获&如何准备机器学习面试面试不应该是简单的考试,而是参与面试过程中的一个学习过程。以下是机器学习工作面试的一些建议:5.1。根据工作内容,制定项目计划。起初这听起来有点傻,但我已经无数次使用这个小技巧来获得良好的面试反馈和机会。假设你今天面试的职位是我说的保险公司的反欺诈团队,那么如果你能写一份关于如何利用机器学习进行反欺诈的项目建议书。这个过程也是对面试官的一个练习:阅读论文和新闻收集材料的能力b.总结和分析能力C.总结能力。以我面试的一个人力资源相关岗位为例,我准备了一份如何使用机器学习预测员工流失的方案(中间省略了几页,马赛克涉及敏感区域):书中,你能够分析项目需求,提出相关解决方案,建议后续计划,列出相关文件。这样的行为不仅能让用人单位看到你的诚意,还能看到你的领域知识和独立分析问题的能力。在适当的时候(比如开始面试或者谈工作职责的时候),拿出准备好的方案,开始谈自己的想法。这个方法我已经做过好几次了,效果很惊人,因为反应是被动的,主动的,从被调查到解释你所知道的。作为面试官,如果面试者能做到这个程度,我心里就会更有信心录取他。5.2.以诚待人,实事求是。每个人都有理工科背景。专家会知道是否有。在这样一个相对技术性的学科中,完全没有必要假装自己了解一个知识点。同理心告诉我们,大多数人都有知识盲点,我们不期待绝对的答案。当你真的不知道一个问题的答案时,真诚地希望对方能够解释得更清楚或者承认你知道的不多。如果你假装你对一个你不了解的领域很了解,我们一般会问更深层次的问题。你好不容易引起了我的注意,那个时候真的没完没了。同样,请真的不要在简历中夸大你的经历。我见过很多人在简历上自称是机器学习专家,却只用过朴素贝叶斯,我还记得他们面试的时候脸都红了。在这个浮躁的时代,对于高薪的机器学习岗位,希望大家能守住起码的诚信底线。5.3.Makesureyouunderstandthebasicconcepts再次,确保你了解基础知识(具有基本广度)是对面试官和面试官的尊重。基本了解到什么程度?我的感受是:对基本的数据处理方法有一定的了解,对基本的分类器模型有一定的了解并使用(调优包),大致知道在什么情况下使用哪种算法比较好。掌握评价方法,知道常用评价方法的优缺点,有基本的编程能力,能独立完成简单的数据分析项目,有基本的数据挖掘能力,能调整模型的参数,并找出每一个都是正确的很简单,但这是一个血泪的过程,所以不要操之过急。如何确保自己有足够的基础知识?我觉得基本看懂周志华老师的前十章《机器学习》,相对熟练的使用Sklearn中的基本API进行建模就够了。不要矫枉过正,如果你面试的职位不是理论科学家职位,就不要与数学推导作斗争。这就是为什么我说写项目计划书很有帮助。在查阅文献和总结的过程中,你对你想面试的领域有了更深入的了解,有助于提高你的信心和见识。5.4.享受面试请不要将技术面试视为噩梦或障碍。作为一个正在崛起的新领域,我们一路走来,至少我明白这一路的艰辛。由于机器学习方面人才稀缺,面试官的时间普遍很宝贵,所以即使你没有通过面试,也要抓住机会向他们学习。在我看来,你不仅可以发现自己知识的不足,还可以听到书本上很难学到的特定领域的流行算法和模型。如果你看过相关领域的论文和总结来准备面试,那我觉得来面试这件事已经远远超过了你是否被录取的意义。