Data Scientist 面试都面了哪些题?

Data Scientist 面试都面了哪些题?

在之前的文章 CMU-CS硕士北美码农求职小记:Data Scientist 中,我简略叙述了我求职的经历,这里我也记录一下我面试过哪些类型的题目。面试的职位包括:Data Scientist,Data Engineer,Software Engineer in Machine Learning,Data Analyst等。当然其中有不少也包括最常见得Leetcode Style的算法题,除了这一类题目以外,还有不少其他类型的题目,主要分为这么几类:

1. 问Skill Set 以及对于常见工具的掌握。

Skill Set就是指你掌握了哪些知识,一般问起来都是比较粗略地问,主要目的就是考察和团队的习惯以及工具的掌握是否Match。我被问到过各种各要的碎碎的问题,比如计算机网络中HTTP、TCP、UDP协议,数据库的设计原则、实现方法,操作系统的一些基本知识,Unix的常见指令,Hadoop和Hadoop Streaming如何使用、如何Debug,平时使用什么IDE什么OS……总之各个琐碎的角落都被问到过。

2. 问简历,就简历上的技术细节发问,主要是项目有关的技术细节,以及相关的技术延伸。

比如我的项目中就提到了NLP相关的东西,就被问了一些和NLP相关工具的使用,比如Stanford NLP等。再又问了一些延伸的问题,比如,如何自动生成一个有意义的句子,如何把一段文字Split成一个个句子,怎么选feature怎么做model等等。这类问题主要还是需要对于自己的项目技术细节足够了解,且对于延伸的问题有所掌握。

3. Machine Learning、Statistic的相关问题

Machine Learning相关的问题就太多了,我稍微列举一些我遇到过的问题:

  • 一些分布参数的最大似然估计之类的东西是什么,如何推导
  • LR SVM的本质区别是什么
  • 哪些 Regularization,都各有什么性质
  • 对于 Naive Bayes的理解,NB有哪些局限性
  • Random Forest 为什么很好用
  • 如何做 Model Selection
  • 给一组数据,问 Decision Tree,LR,NB,SVM等算法学出来都是什么样子的,是否学不出来,怎么处理,有哪些Kernel,在图上画线怎么画

还有被问到了一些比较难的问题,比如:

  • 对于Graphical Model的理解,写出LDA的公式,给出Topic Model 生成过程等的
  • PageRank的原理和公式推导

总之,前面那些问题本质上都不是那么难,但是不少问题都需要对于ML各种知识的融会贯通,所以大家在学习的时候还是需要深入学习,不要浮于表面。

4. 给一个现实问题,如何解决。

这一类问题就比较宽泛了,主要是在回答的时候记住考察的目的很多时候并不是技术本身,而是你对于这一类问题没有思考的框架。比如如何收集数据,收集那些数据,如何定feature,如何定measurement,如何定milestone等等。要分层次一步一步地讨论。

举个例子,比如要你做一个房地产的搜索引擎,该怎么做?

最后,感觉很多东西还是得从做项目中来学习。所以还在读书的同学还是得想办法多做一些实际的项目,最好是有真实世界数据的,这样就可以经历一些Clean Data等耗时耗力,老师不教但是在实际工作中又非常有用的过程,帮助自己成长。同时,还是要尽量地把一个项目的时间做的长一些,比如6个月,8个月,才有可能出比较理想的成果。


by @陈然

编辑于 2018-05-30 11:43