【面经】国内大互联网公司机器学习/深度学习面试题

摘要: 超厉害了

11-14 06:32 首页 新智元

1新智元推荐  

来源:知乎专栏  作者授权新智元转载

作者:斐斐晏


【新智元导读】本文作者最近就机器学习/深度学习的岗位面试了一圈大的互联网公司,而且基本上投的公司都给了offer。作者分享了他的面经,希望对nlp或者机器学习/深度学习感兴趣的朋友准备面试有点帮助。



一些面试的建议:


  1. bat三家都喜欢问大量的计算机基础知识,考察工程能力,b都喜欢问数据结构和leetcode,t问的比较随意但是很考察思维能力;(当然还是得看面试官)

  2. 对于像我这种非计算机班科出身的(数学统计),面机器学习算法的公司比较容易,面工程的公司比较难;

  3. 深度学习入门门槛很低,但是精通门槛很高,仍然很多东西都是黑盒子,因此如果真的没有这方面经验,不建议写进简历,很容易被问倒;面试官如果自身不精通,他压根不会问深度学习,如果问了,那他基本上还是比较懂行的;(个人经验,不一定准)

  4. 面试有些问题不确定,就说自己知道的,知道多少说多少,反正不能什么都不说;


我最近换工作,基本上轮了一圈大的互联网公司,下面是我的面经,希望对nlp或者机器学习深度学习感兴趣的朋友准备面试有点帮助,有些问题我答得不准希望不吝赐教;


--- 某新闻app ---

round1:

1:cnn做卷积的运算时间复杂度;

2:Random forest和GBT描述;

3:(看到kaggle项目经历)为什么xgboost效果好?

4:leetcode;


round2:

1:工程背景;

2: python熟悉程度;

3:leetcode;


round3:

1:项目介绍

2:项目最难的是什么

3:项目做的最有成就感的是什么

4:生活做的最有成就感的是什么

5:一天刷多少次我们的app


不评论;


--- 打车公司 ---

1: LSTM结构推导,为什么比RNN好?

需要说明一下LSTM的结构,input forget gate, cell information hidden information这些,之前我答的是防止梯度消失爆炸,知友指正,不能防止爆炸,很有道理,感谢;


2:梯度消失爆炸为什么?

答案:略


3:为什么你用的autoencoder比LSTM好?

答案:我说主要还是随机化word embedding的问题,autoencoder的句子表示方法是词袋方法,虽然丢失顺序但是保留物理意义;(?)


4: overfitting怎么解决:

答案:dropout, regularization, batch normalizatin;


5:dropout为什么解决overfitting,L1和L2 regularization原理,为什么L1 regularization可以使参数优化到0, batch normalizatin为什么可以防止梯度消失爆炸;

答案:略


6: 模型欠拟合的解决方法:

答案:我就说到了curriculum learning里面的sample reweight和增加模型复杂度;还有一些特征工程;然后问了常用的特征工程的方法;


7:(简历里面写了VAE和GAN还有RL,牛逼吹大了)VAE和GAN的共同点是什么,解释一下GAN或者强化学习如何引用到你工作里面的;

答案:略


传统机器学习

1:SVM的dual problem推导;

2:random forest的算法描述+bias和variance的分解公式;

3:HMM和CRF的本质区别;

4:频率学派和贝叶斯派的本质区别;

5:常用的优化方法;

6: 矩阵行列式的物理意义(行列式就是矩阵对应的线性变换对空间的拉伸程度的度量,或者说物体经过变换前后的体积比)

7: 动态预测每个区域的用车需求量;


对于打车公司,我的感觉很好,hr态度和面试官态度都很好,包括最后跟老大打完电话约去公司聊一下确定一下;全程hr都是有问必答;

有一次为了去前面那个新闻app,而改了打车公司面试时间,hr态度都很好;

最后我已经决定了去深圳,不能去打车公司也有点遗憾了;

而且打车公司问的问题很专业,全程下来都是ML算法,不考脑残的leetcode;我根本没时间也不想再去刷leetcode就为了个面试;


--- 手机公司 ---

round1:

1:LSTM相关的问题;

2:python写k-means;

3:想不起来了


round2:

1:业务相关的问题

2:leetcode

3:具体业务问题,也就是如何量化句子之间的相似度;


round3:

1:记不起来了


手机公司最近在搞发布会,面试过了一个星期再通知我去复面,我果断拒绝;

全程深度学习的东西基本上不问,问了一两个看来他们基本不用,然后就是leetcode;

手机公司做智能家居蛮有前途的;面试官态度很好;


--- 搜索公司 ---

三轮

1:怎么样识别文本垃圾信息;

2:(数据结构)树合并;

3:工作涉及到的业务知识;

4: python如何把16位进制的数转换成2进制的数;

5:MySQL的键的一个问题;

6:  linux下如何把两个文件按照列合并

7:map-reduce的原理(问的基础,因为我简历没有mapreduce);

8:NLP方面的想法;

9:职业规划,专家型还是领导型;

10:如果给offer是不是直接来此公司;


说实话,搜索公司最耿直,一下午面玩完全没有任何磨磨唧唧就给了口头offer;

如果留在北京,首选肯定是它了;

后面问我在面其他哪些公司,如果给了offer去哪家,我说就这家,那时候也没想到后面的两家深圳公司也过了,感觉蛮愧疚的,就冲这个态度也应该去此公司的;

真的不像网上流传的那些;而且此公司最后面的manager是我见过态度很好而且感觉可以依靠人;


---大厂---

1: 链表逆转

2:1亿的文本如何放在100台机器上两两做相似度计算

3:40亿数据如何用2G内存排序

4;遍历树

5:HMM原理



(本文经作者授权转载自知乎专栏,有兴趣可以关注作者的聊天机器人公众号:cross_entropy,可以联系到作者)





首页 - 新智元 的更多文章: