原文链接:http://www.zhihu.com/question/23259302

如何准备机器学习工程师的面试 ?修改

我之前面试一些公司的机器学习或者数据挖掘工程师的职位。感觉自己准备的不够充分。想了解下一般会问哪些问题,考察哪些方面的东西。修改
举报4 条评论 分享 • 邀请回答
按票数排序按时间排序

11 个回答

赞同193 反对,不会显示你的姓名

周开拓,推荐系统PM@淘宝

胡志华、邰文渊、李亚冬 等人赞同

机器学习方面的面试主要分成三个部分: 1. 算法和理论基础 2. 工程实现能力与编码水平 3. 业务理解和思考深度

1. 理论方面,我推荐最经典的一本书《统计学习方法》,这书可能不是最全的,但是讲得最精髓,薄薄一本,适合面试前突击准备。 我认为一些要点是: 统计学习的核心步骤:模型、策略、算法,你应当对logistic、SVM、决策树、KNN及各种聚类方法有深刻的理解。能够随手写出这些算法的核心递归步的伪代码以及他们优化的函数表达式和对偶问题形式。 非统计学习我不太懂,做过复杂网络,但是这个比较深,面试可能很难考到。 数学知识方面,你应当深刻理解矩阵的各种变换,尤其是特征值相关的知识。 算法方面:你应当深刻理解常用的优化方法:梯度下降、牛顿法、各种随机搜索算法(基因、蚁群等等),深刻理解的意思是你要知道梯度下降是用平面来逼近局部,牛顿法是用曲面逼近局部等等。

2. 工程实现能力与编码水平 机器学习从工程实现一般来讲都是某种数据结构上的搜索问题。 你应当深刻理解在1中列出的各种算法对应应该采用的数据结构和对应的搜索方法。比如KNN对应的KD树、如何给图结构设计数据结构?如何将算法map-red化等等。 一般来说要么你会写C,而且会用MPI,要么你懂Hadoop,工程上基本都是在这两个平台实现。实在不济你也学个python吧。

3. 非常令人失望地告诉你尽管机器学习主要会考察1和2 但是实际工作中,算法的先进性对真正业务结果的影响,大概不到30%。当然算法必须要足够快,离线算法最好能在4小时内完成,实时算法我没搞过,要求大概更高。 机器学习大多数场景是搜索、广告、垃圾过滤、安全、推荐系统等等。对业务有深刻的理解对你做出来的系统的结果影响超过70%。这里你没做过实际的项目,是完全不可能有任何体会的,我做过一个推荐系统,没有什么算法上的高大上的改进,主要是业务逻辑的创新,直接就提高了很明显的一个CTR(具体数目不太方便透露,总之很明显就是了)。如果你做过实际的项目,一定要主动说出来,主动让面试官知道,这才是最大最大的加分项目。 最后举个例子,阿里内部机器学习挑战赛,无数碾压答主10000倍的大神参赛。最后冠军没有用任何高大上的算法而是基于对数据和业务的深刻理解和极其细致的特征调优利用非常基本的一个算法夺冠。所以啥都不如真正的实操撸几个生产项目啊。

编辑于 2014-07-25 25 条评论        

赞同61 反对,不会显示你的姓名

刘志权,程序员

曹秉坤、落日余晖、YZ Brant 等人赞同

我面试过5-6家互联网公司的数据挖掘和分析、机器学习相关职位的工程师。被问到下面一些问题。

SVM的原理,SVM里面的核
K-means,如何用hadoop实现k-means
naive bayes和logistic regression的区别
LDA的原理和推导
做广告点击率预测,用哪些数据什么算法
推荐系统的算法中最近邻和矩阵分解各自适用场景
用户流失率预测怎么做(游戏公司的数据挖掘都喜欢问这个)
一个游戏的设计过程中该收集什么数据
如何从登陆日志中挖掘尽可能多的信息

这些问题我回答的情况,分几种。一种是在面试官的提示下,算是勉强完成了答案。一种是在面试官的提示下,答了一点但是答得不够好。一种是面试官不提示也没有反馈,我回答了但是我不知道回答得怎样。

我非常后悔的一点是我现在才想起来总结。有一个题是游戏玩家流失率预测,我被问过两次。但是每次我都说是个分类问题。最近我突然想起来去网上查了下,有两个点,数据不平衡问题和时间序列分析。我网上查到是一个大学教授和人人游戏合作的课题。我然后查了下这个老师的publication。没发现相关的论文。可能公司不让发表吧。

这些问题的特点是很基础很简单,因为实际中很少用复杂的算法,复杂的算法不好控制,而且理论要求高。另一个特点是注重考查实际工程能力,我经常被问到自己实现了哪些算法。还有的问题很契合实际。

我觉得如果现在再给我准备的机会。我会准备下面几点。
首先是计算机基础知识和算法,这些都是会正常考察的。有些公司考的少,有些公司正常考察。
针对机器学习这部分,需要理论扎实,还需要自己动手实现代码。另外hadoop,mpi,最近比较火的spark,应该都是加分项。另一个是接触下实际的数据分析系统。我在学校里面看的论文,都是讲算法的多,讲应用系统的少。这个可以靠之前的实习,也可以看些比较实用的论文。

PS 我是题主,自问自答下。
PS2 我面试的都是国内互联网公司和游戏公司。

编辑于 2014-07-26 21 条评论        

赞同22 反对,不会显示你的姓名

王养浩,我不懂数据挖掘

曹秉坤、wi rolan、庄学坤 等人赞同

抛砖引玉,在读硕士,半个月前去面了某公司机器学习intern铩羽而归了。机器学习部分一个面试官问了我一个小时,我估计如果真正能上的人光机器学习部分应该还会多来几轮。

首先介绍自己的研究经历。会随机问一些细节。
我面的推荐,问了各类协同过滤的好与坏。
然后我说我做过LDA,问我,Dirichlet Distribution的定义和性质,并问我,为什么它和multinomial distribution是共轭的,顺便问了我啥叫共轭分布。
问了一个很有意思的问题,现实应用中的Top-N推荐问题和学术研究中的评分预测问题之间有什么不同。
问我ItemCF的工程实现,面对大数据如何实现,又追问了有没有什么工程优化算法。这个问题我没答好,一开始我说了一个MapReduce模型,他问能不能更快一点,我就卡那了。。。最后面试官告诉我,不能只从算法角度分析,要从系统设计分析,利用内存来减小MapReduce的吞吐量。(当然也许从MapReduce那一刻开始我就输了也不一定)
最后考了我一个基本概念,什么叫判别模型什么叫生成模型。

回忆以前有一个去百度做广告业务的师兄分享的面试经历,记得没问什么高深算法,马尔科夫系列?

现在工业界的机器学习业务也不会太多,公司不是学术界在学术研究灌水上有多少追求,算法可实现,能可扩展高效分布式运行才是重点。
所以个人认为,机器学习工程师的核心还是在于工程师的能力,实际应用的问题分析能力和算法的实现能力很重要。机器学习的算法并不是重点。

PS1,各种研究院(微软雅虎IBM之类)的正式员工另当别论。
PS2,我只面过一个公司,和打听过一些情况,和听过一些算法工程师的技术分享去推断它们的工作状态和需求,一面之词,抛砖引玉。
PS3,国内
PS4,题主也请分享面试经历。

编辑于 2014-04-09 11 条评论        

赞同16 反对,不会显示你的姓名

Oyster Kwok,逻辑地说,这句话没逻辑。

叶飘潇雨、JueFan、snail 等人赞同

多扶老奶奶过马路多攒人品。

先总结几点,再谈个人经历。
1. 基本的Model要懂
Kmeans必须懂 KNN懂原理不用写 SVM、MR和Pagerank多看看,遇到问题多用这些方法讨论(不关乎信仰,面试官都懂)

2. 高层次的Model是关乎信仰的,不需要浪费时间在上面
比如LDA。以前信贝爷,觉得高大上。做过才知道坑有多深,出paper搞点黑数据可以,真正业界要用效果甚不稳定。HMM可以做语句分析优化,别的地方用也不显著。绝大多数时候搞个word net,做个tf idf就足够了,不行自己再加些hardcode,效果也比所谓的model好,性能也高。
另一说就是面试官不期望你懂这么高级的模型,就跟他们不能因为你不会拉小提琴而觉得你智商不够把你拒掉一样。

3. 人品、自信、反客为主的面试思路
以我的个人经历(Observation)(详见文末),不懂但人品好就拿到了Offer,懂但人品不好就拿不到Offer。(请随意Predict)
个人比较成功的面筋是看好面试官的cd间隔放大招:比如看简历沉没的时候主动说high light一下,有条件就把线上的project拿出来秀;代码写完主动说说能有什么改进思路,把面试官拐跑,就不会被他带到挖好的坑上来了。

4. 数据敏感性
比如预估数据规模和运行时间。

经历过以下几种case,不知是否match。
1. 10年,北京,刚毕业。申请国外phd跪了。魂友指明路去T大某ML实验室历练。提前两周看了下,感觉最懂的也只有贝叶斯公式了(其余只知道个缩写看着眼熟)约了时间也只能硬着头皮去了。
结果老板就看了看简历,只问我啥时候可以过去。=_=

2. 一年半后,在美读硕。经济压力山大,暑假前就开始找实习(真心困难,因为当时招ML或者Data Scientist的都只招Fulltime或者经老板介绍的PhD)简历投了也没人鸟,感觉还是懂iOS Android的吃香。好不容易遇到个start-up,面试时候我主动展示之前做的项目,挺满意,让我写个Page Rank,30分钟拍好Over。(允许看wiki看公式)老板不懂/不信LDA,反正SVM各种搞。

3. 有同学拿到EBay电面,抓我去帮忙递纸条,问的概率论基础,线性回归,码字符串处理,都是基本功。

4. 后来面了次Yelp,电面第二轮,代码拍太快了,导致他有时间问了第二个Follow up question,投票统计相关,我提了两种normalize方案,都不太完善,后来就不要我了。

5. FB一直没理我,估计是之前在Graph上面抓数据超了两次limit被封过ID(他们自己文档不写清楚)Google问的都是基本码农问题,跟ML关系不大。因为面的Test,码完让我自己出数据,我出多了,被鄙视,锯。

6. 去面Bing。Super Day面了6个人,前面问算法,后面吃着混沌面问的Query分析。最后没给Offer,因为收了N记2万5员工用完招人名额。(据说还给EVP打了报告,没批。算了)

最后忠告:
攒人品。
信自己的数学和逻辑直觉,不要信Model。
信不信贝爷和得不得永生是相对独立事件。
所以“信贝爷得永生”在贝爷的公理范围内至少是悖论。

发布于 2014-07-25 3 条评论        

赞同7 反对,不会显示你的姓名

xiao ma,机器学习、推荐算法@淘宝

江晓波、张琦、贾争 等人赞同

数据结构算法水题+常用机器学习算法推导+模型调优细节+业务认识
发布于 2014-08-05 添加评论        

赞同4 反对,不会显示你的姓名

刑无刀,机器学习爱好者,《机器学习:实用案例解…

孙国宇、sunbin、宋洋 等人赞同

常用模型和算法,至少有那么一两个能推导,能说出适用范围,能自己实现,有过应用。
另外,要有算法工程师的气质,那种对任何事物都愿意且能够深入思考的倾向。
据说,如果是应聘大公司初级工程师的话,刷题貌似有那么一丢丢用处,仅仅是一丢丢。

发布于 2014-04-06 1 条评论        

赞同2 反对,不会显示你的姓名

haidao,coder/内核/大数据/机器学习

宋洋、蒋育霖 赞同

面试过百度和阿里数据挖掘

算法有svm em算法 都要推导证明
因为我做过文本主题 所以问了很多lda的知识
其它的就比较扯了

发布于 2014-04-27 4 条评论        

赞同2 反对,不会显示你的姓名

王建周,百度视频工程师

宋洋、杨文俊 赞同

一、一些常见的机器学习算法
1. 如果有背景,item和cf协同过滤的优缺点,如何从计算公式证明,各种情况的惩罚,hadoop上mr的实现,包括各种情况的惩罚。
2. 线性回归的梯度下降和牛顿法求解公式的推导
3. 贝叶斯分类器的优化和特殊情况的处理
决策树的的训练……

二、单机的算法如数据结构
1.最简单的top n
2 偶尔会有一些简单的poj
3.数据结构

三、系统设计,包括算法和工程系统
1. 如一个热门微博排行榜等

.

发布于 2014-05-26 1 条评论        

赞同3 反对,不会显示你的姓名

Nemo,一流围观,二流数据分析师,三流程序员

谭森、宋洋、李想 赞同

面试机器学习相关岗位的工程师的一个好处是“不需要写代码,貌似大家都是用现成的包,谁也没写过……
发布于 2014-07-25 2 条评论        

匿名用户

1. 实现一个分布式的矩阵向量乘的算法。。。
好吧 这个我学过 blabla讲了一堆 也不知道对不对 
2. 最速下降法和共轭梯度法 wolfe条件 最速下降法和共轭梯度法的收敛速度如何判断。。。
两种方法的概念答上来了 wolfe条件没准备到 收敛速度大概回答了一下 我印象中只记得共轭梯度的误差估计了 
3. 约束优化的KKT条件 KKT条件在边界区域的搜索行为的物理意义是什么。。。
KKT条件ok 物理意义没答上来 
4. 实现一个分布式的topN算法。。。
topN看过 不过分布式嘛。。。 就是追着你问 问到你不会为止
5. 为什么可以使用logistic回归。。。
这个我不懂。。。 好吧 hr让我去看看《离散选择方法》这本书。。。 算是学到了
6. 你了解的机器学习算法有哪些。。。
这个简单。。。
7 选一个你熟悉的算法 详细推导公式过程。。。
推公式我在行 不过hr貌似不感冒 
8 一个实际应用的问题 因为没有背景 所以只好放弃
然后就没有然后了
还是好好看书吧
发布于 2014-09-12 4 条评论        

赞同0 反对,不会显示你的姓名

JueFan,大数据;数据挖掘;推荐系统;精准广告推…

看完这么多回答,我还是乖乖的做业务得了,理论基础不硬朗,什么推导公式之类的我肯定挂了,代码能力又不行,只能写写简单的knn之类的,而且没有任何速度上的优化的,哎,要跪了……
发布于 2014-12-07 添加评论        

1 个回答被折叠 (为什么?)

yz han

写回答…

匿名 发布回答

关注

设置
1143 人关注该问题

分享问题

微博 站内私信

问题状态

最近活动于 14:55 • 查看问题日志
被浏览 18009 次,相关话题关注者 53706 人

如何准备机器学习工程师的面试相关推荐

  1. 机器学习工程师岗位面试经历之游戏行业

     早上没有心情工作,根本看不进去以前总结的文档,午休后准备去面试,感觉特别紧张,胸闷气短,心脏快要跳出来了那种感觉.从公司出发500米的距离感觉走了一万年,脚步根本移不开,到了那栋大楼后,发现是一 ...

  2. 如何准备机器学习工程师面试

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 人们用很多东西来比喻准备面试的过程.有人说这像准备一场战争,也有人说像邀请某人出去约会,还有人说 ...

  3. 亚马逊机器学习工程师面试怎么过?

    作者 | Terence Shin 译者 | 苏本如,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 你是否好奇亚马逊的企业文化.招聘流程和面试?本文将带你深入了解一下! 简介 从最初的 ...

  4. 机器学习岗位的面试准备——总结1

    之前还想看完再自己总结,后来发现高估自己了,信息量太大,直接给参考链接: 1.如何准备机器学习工程师的面试 ? 内容过于丰富导致感觉自己就是个文盲,套用总结公式: 数据结构算法水题+常用机器学习算法推 ...

  5. 关于”算法工程师/机器学习工程师”的笔试和面试总结

    从16年九月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的校园招聘,做一些总结,希望可以给大家准备这个职位提供些信息. 一.需要的基本技能 数据结构知识 掌握一门编程语言,c/c++/Jav ...

  6. 算法工程师-机器学习-数据科学家面试准备[外企和国外公司、春招、秋招]

    该仓库记录了如何准备机器学习工程师面试,尤其海外与外企岗位 代码地址: https://github.com/LongxingTan/mle-interview 申请岗位:软件工程师-机器学习方向.机 ...

  7. 收到一封CTO来信,邀约面试机器学习工程师

    大家好,我是北海 很少登陆 Gmail,前天收验证码登了一下,发现居然收到一封某初创公司CTO的来信. 我在Github上看到了您的资料觉得很有意思,请问您是否考虑我们公司的全职工作机会呢?可供考虑的 ...

  8. Facebook面经全披露,我是怎么拿到机器学习工程师offer的?

    作者 | Rahul Agarwal 翻译 | Katie,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 去年八月,我正在接受面试.那时,我已经分别接受Google Ind ...

  9. 所以,你自认为是一个合格的机器学习工程师?

    本文作者阿萨姆,原载于知乎专栏,AI科技大本营经授权转载. 这是来自知乎圆桌的一个回答. 机器学习工程师,绝不是一个笼统的概念,每一个特定的位置,对"合格"的考量完全不同.你自认为 ...

最新文章

  1. SQLSERVER存储过程基本语法使用
  2. 解决Jira和Confluence访问打开越来越缓慢问题
  3. linux下configure命令详解
  4. WinSock学习笔记
  5. ABP Framework 为什么好上手,不好深入?探讨最佳学习姿势!
  6. html一行中怎么写空格,html – 用一行填写空格
  7. cs中ComboBox以设置DataSource方式填充后,清除选项出错
  8. Django+Scrapy结合使用并爬取数据入库
  9. MySql desc 的三种用法
  10. 自定义监控项及告警升级
  11. 【C++】 bin文件转换成txt文件
  12. 以一例教你找到【无水印】【高清】【百度图片】的url
  13. Android 实现HTTPS自签名证书(非常详细)
  14. C++STL4种关联容器(set、multiset、map和multimap)
  15. 图片上传的两种方式(前端和后端)
  16. 啊哈C——学习3.5一起来找茬
  17. HTML+CSS学习记录01--VScode编辑器安装与配置
  18. Serif和Sans-serif字体的区别
  19. 关于大学生早餐情况的调研报告
  20. 电源12V稳压5V MP2359从数据手册到布线 经验分享

热门文章

  1. Vue设置浏览器title-icon
  2. Kaggle入门项目,泰坦尼克号幸存者
  3. [Maven] 无法获取私服最新Jar包的问题
  4. 爬虫模式-JAVA获取省市区编码
  5. SpringBoot整合MyBatis实现数据增删改查
  6. 极简OpenFoam编程
  7. 按Right-BICEP要求的对任务二的测试用例
  8. 篮桥杯,翻硬币 (贪心)
  9. postman数据保存在哪里_Postman教程——使用数据文件
  10. 那些3年前转行做自媒体的站长,现在都怎样了?