机器学习面试经验--2017年持续更新

20170727
搜狐面试算法实习生 岗位搜狐后台开发(机器学习NLP)
10:00--11:10
1、首先自我介绍,blabla简单介绍了一下本科研究生学校专业方向,面试官开始问研究生期间主要做的项目,说到文章自动评价,面试官觉得很新颖,这个文章数据如何处理,(讲道理以后可以不讲这个了,大家都听不懂,而且数据预处理的方法很少,数据清洗也没太多可讲的,以后面试自我介绍完就应该吹一下其他项目),然后面试官就没再具体问这个
2、开始转向问算法,讲讲逻辑回归吧,大致讲了一下
3、面试官说让写一下逻辑回归的公式,目标函数。然后让讲线性回归和逻辑回归的区别,公式推导
4、SVM,LDA,狄利克雷分布,RNN,LSTM原理及其推导公式
5、讲讲数据挖掘任务常用流程,如何做特征工程
6、讲讲决策树、信息增益,ID3,C4.5,随机森林、GBDT,还有哪些集成学习方法
7、kaggle竞赛这个做了什么
8、Python中列表list和字典dict的区别,复杂度。dict是如何实现的。dict的优点和缺点
9、知道哪些排序算法,复杂度都是多少
10、给定一堆整形数据,给定很大的存储空间,从中查找一个整数,要求经常会进行查找
11、平常用什么编程语言
PS:面试官建议多看看数据挖掘基本算法推导,面试前准备一下这些。由于该职位是搜狐邮箱后台开发,上层应用机器学习算法,而那些机器学习研究工作使用的语言是C/C++,如果需要的话会一点这个还是不错的

20170731
百度渡鸦科技自然语言处理实习生
1、自我介绍
2、讲一个印象最深的项目和其中遇到的难关是如何克服的
3、讲一下词向量
4、神经网络的训练过程,调参,各种理论

20170822
美团机器学习算法校招内推
一面,电话面试
1、首先自我介绍,简要介绍了研究生期间工作
2、随机森林和GBDT的区别和联系
3、逻辑回归和朴素贝叶斯的相似点和不同点
4、讲讲深度学习框架keras的使用方法、流程
5、RNN和LSTM的区别,LSTM对RNN做了哪些改进
一面通过

20170823
美团二面,视频面试
1、自我介绍,介绍完了就开始将项目一,面试官针对项目1提出了一些问题
2、接着讲项目2,项目3,这些项目都是和数据挖掘相关的竞赛和实践,难得有一个面试官听我把所有的项目都讲完了,还听得挺仔细,感动。
3、随机森林和GBDT的区别和联系,我就从决策树到随机森林到GBDT都讲了一下,并比较了他们的区别。
4、逻辑回归的损失函数是什么
交叉熵
5、为什么逻辑回归中使用交叉熵而不是其他的损失函数如MSE,RMSE,最小二乘?
因为和线性回归相比,线性回归的误差是符合高斯分布的,对该分布的似然函数求解得到的结果就是最小二乘的形式。
而逻辑回归的分布形式是符合伯努利分布的,针对其似然函数的求解的结果是交叉熵的形式
此外,还有一个原因在于,如果对逻辑回归使用最小二乘进行求解的话,目标函数是一个非凸函数,在求解的时候会出现很多极值点,也就是最后的求解会出现局部最优解。而交叉熵的函数是一个凸函数,可以求到全局最优解。
6、卷积神经网络中,池化层包括max-pooling,average-pooling,random-pooling,分析一个使用这几个池化层的区别。
7、你有什么问题要问的?

20170825
美团三面,现场面试
1、自我介绍,介绍的时候面试官顺便看了一下之前几轮面试官的评价。
2、讲做过最有挑战性的项目,面试官针对项目中提了几个问题
3、bagging和boosting的区别?
booststrap、bagging、boosting、随机森林、GBDT这些问题面试时候问了太多次了。。
4、算法题:在一个长度为n的列表中,里面的值都是整形数字,要求找出数值最大的k个数字。
我讲了直接排序(复杂度nlogn),冒泡排序(nk),快速排序(n),面试官说有没有什么优化的,假设n特别大的话,而且不想对原始数组修改太多元素,,剑指offer上有这个题。
5、面试官说上面提到了冒泡排序,那就写一歌冒泡排序吧,刷刷刷写完了,面试官让对它进行优化,想起来一个短路冒泡,思路是假定前一轮如果没有进行左右元素修改了就代表循环结束了,不用再进行下面的循环了,加一个修改符就好了。面试官又让进行优化,如果某一轮只在前面列表的前面几个元素进行了修改,下一轮修改时只需要循环前面的轮次就好了,相对于上面,只需要记住修改的位置index即可。
6、你有什么要问的?
PS:因为这次面试官时间安排比较仓促,还是在一个星巴克面的,下一波面的人也来了,这次面的内容就比较少。

20170907
美团HR面,电话面试
1、这次三面和HR时间相隔很久,HR吐槽了一下我的手机一直打不通,醉醉的。。不知道怎么到晚上手机信号就不好了,所以这次是下午给我打的电话。
2、HR面相对前面的技术面就轻松愉快很多,HR让我简单介绍一下自己的情况,由于HR不懂技术我就简要介绍了一下做了哪些项目,都有哪些成果,具体的实现细节就没有再讲
3、面试官问了一下问什么来美团,为什么要来这里
4、有没有拿到其他offer
5、对薪资有什么要求,为什么这么要求
6、今年美团的标准还没有出来,预计10月份之前会给意向书和薪资标准
7、以后多联系

2070915
美团HR打电话通知给口头offer

20170924
美团HR打电话通知十一后发放意向书

20170822
阿里菜鸟校招内推
1、自我介绍
2、讲竞赛项目,回归问题为什么会用到逻辑回归
3、讲项目2
4、如何评价一个问答网站中回答的质量
5、简单的逻辑智商测试

20170823
今日头条机器学习算法实习
第一轮面试
1、自我介绍
2、讲项目,提问
3、讲讲django如何使用,做了什么(简历中提到了django)
4、讲讲爬虫爬了些什么(简历中提到过爬虫)
5、写算法题:如何求一个浮点数的开方
我写的是二分查找,回来查了有说用牛顿迭代法的

第二轮面试
1、讲项目
2、讲一下GBDT,我就顺便讲了一下决策树和随机森林
3、决策树中信息熵和信息增益都指的是什么
4、项目3中用户画像中是怎么使用到CNN的,我说是结合Word2vec使用的
5、写算法题:给定一个数字n,求n个左右括号的全排列使的其符合一定规律的所有组合方式

20170828
好未来机器学习校招
第一轮笔试,上午10:00-11:00
由于面试官们去开会了,原定的初试被改成了笔试,一共有5道题
1、第一题是一个算法题,leetcode上原题2sum
https://leetcode.com/problems/two-sum/
2、第二题算法题:给定两个文件A和B,A中是一个一亿行的文件,每一行是一个url链接,如 https://minning.github.io/2017/05/08/%E4%BD%BF%E7%94%A8itchat%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%8A%A8%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/, B中是一个一万行的文件,每一行是一个domain信息,如 www.baidu.com,我们的目的是生成一个新文件C,使其数据在A中出现而没有在B中出现过。
3、一道cache相关的LRU的题目
4、图解ROC曲线及其使用情况,公式化表示
5、推导逻辑回归的cost function

第二轮面试,上午11:10-12:40,面试时间一个半小时
接上面笔试后,面试官看了一下我们所有人的答题纸情况,然后就把我叫去了。
1、自我介绍,介绍完就开始讲项目,面试官针对项目提了几个问题
2、面试官拿着笔试题,让我讲了一下ROC曲线和2sum那道笔试题
3、讲简历上出现过的算法的原理,针对线性回归提了很多问题,线性回归的应用场景有哪些,适合处理什么样的数据,函数表达式,损失函数
4、讲讲随机森林和GBDT的区别和联系
问的很细,包括其中使用的分类树、回归树,boosting,bagging,RF、GBDT的目标函数
5、分类和回归的区别和联系,能否互相转换
6、机器学习任务的评价标准包括哪些
分类:PRF,ROC,AUC
回归:MAE,MSE,RMSE
皮尔逊系数、一致性相关系数
7、你有什么要问的?
PS:这个面试官问的特别细,每一个算法都分为分类、回归来问,每一个都针对目标函数、损失函数来问,细节注意需要很多。因此准备面试的时候这些理论需要了解的很详细。

9月5号发邮件通知拿到了提前批Offer

20170830
小米机器学习校招
第一轮面试
1、自我介绍
2、讲项目,问的很细,针对具体的数据处理、建模过程进行描述
3、算法题:
斐波拉契数列

第二轮面试
1、讲项目,针对项目中的word2vec提问
2、逻辑回归、线性回归,GBDT的应用场景及其区别
3、牛顿法和梯度下降法
4、正则项的作用
5、算法题:
求一个数开根号

20170910
搜狐畅游实习自然语言处理
1、自我介绍
2、讲项目,从头到尾怎么做的,如何进行集成的
3、讲集成的原因,GBDT和随机森林、决策树介绍
4、问编码能力如何
5、给一个任务,客服机器人对话系统,如何针对用户的提问给出相应的回答,数据量6万语料
答:针对提问处理,找出相同的提问,针对答案处理,找出共同点

20170915
HR打电话给offer

20170915
中移在线校招
第一轮面试
略过

第二轮
1、两道算法题,第一题是旋转列表的最小值,第二题是求长度为n的列表的Top K元素。
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
分别用几种方法写出了答案
2、问项目,提问,各种算法原理
3、GBDT如何做回归

第三轮
1、问项目,项目中特征构建方法、模型使用方法
2、LSTM画图描述,LSTM细节提问、画图,有没有了解最新的LSTM研究进展
3、最近看了哪些论文,平常如何关注NLP的最新消息
4、对实体识别、语法分析、语义分析的理解,使用过哪些NLP包
5、SVM和LR的异同
6、有什么想问的?

现场给口头offer

20170920
猫眼
第一轮面试
1、自我介绍
2、项目中最大的难点是什么,讲了一下模型效果提升是最大的难点,然后讲如何提升效果,讲细节时被打断,开始问基础题
3、讲讲线程和进程
4、项目中爬虫都做了些什么,如何处理反爬
5、讲讲TCP和UDP
6、七层网络协议
7、熟悉哪些常用linux命令
8、写单例模式代码
9、算法题:一个数组中,有一个数只出现过一次,其他数均出现过两次,找出那个只出现过一次的数
对所有数求异或,结果即为所求
10、算法题:公司里有一万名员工,对员工年龄进行排序,输出排序后的结果
11、算法题:对一个有序的数组,对其进行二分查找,找出目标元素,已知目标元素可能存在多个,找出目标元素对应索引位置的起始值和结束值

PS:这些问题一度认为不会考的,毕竟是数据挖掘面试,然而猫眼还是考了。参加的其他数据挖掘面试从来没考过这些问题。基础的计算机知识,还是要复习看一下的。

你可能感兴趣的:(机器学习面试经验--2017年持续更新)