百度提前批 算法岗 三面面经
我之前通过非定向内推提前批,简历一直处于筛选状态中,然后大概在8.18在牛客看到一个前辈所在部门(推荐搜索)招人,就把简历发给了前辈,然后隔了两三天就通知了面试。
一面 (8.21 46分钟)
自我介绍后,面试官就问了我广告算法比赛,问我是如何构建特征的,以及如何识别哪些特征是重要的,然后就涉及到问word2vector 原理,lstm中的attention是怎么操作的,梯度消失及解决方法,BN的作用,最后面试官给我说我应该讲清楚我是如何判断哪些特征重要的,我具体是咋做的。
手撕代码:链表相加(leetcode第二题),需要注意的是最好提前练习如何写链表的示例,因为我们刷题只用写个函数
二面(8.24 60分钟左右)
自我介绍后,问了一个项目和广告比赛,问了一些深度学习基础和机器学习基础。
1 神经网络初始化方法,我回答了随机初始化和He 初始化,面试官问我随机初始化有什么问题,He初始化解决了什么问题(我回答梯度消失相关)请参考https://blog.csdn.net/u012328159/article/details/80025785
2 BN的原理和作用,这里我的回答面试官提出了很多很多疑问,因为网上关于BN的解释也是说法不一,比如说一种常见说法是BN解决了Internal Covariate Shift,但是他用sigmoid举例,那现在基本都用relu,relu大于0的时候,梯度都为1,也有这种问题吗,我感觉我也没说清楚。 https://mofanpy.com/tutorials/machine-learning/tensorflow/BN/#%E5%AF%B9%E6%AF%94%E6%9C%89%E6%97%A0%20BN(我找到了莫烦python里的视频,原来relu在没有BN的情况下比sigmoid,tanh还要糟糕)
3 softmax层的label 是什么,我回答one-hot向量。
4 学会了哪些网络训练调参技巧
5 word2vector原理说一下,我从one-hot说起,最后说了skip gram 和cbow,这一块回答不好。
6 lstm结构,输入门,输出门,遗忘门怎么计算的(没让我说),问了我他们的作用分别是什么,我也没怎么说出来。
7 树模型,ID3,C4.5,CART怎么计算分割点的,信息增益和信息增益率的区别,GBDT和RF区别。
代码说思路
8 有效括号用了什么数据结构(栈)
9 TOPK (堆),我说反了,最大堆说成最小堆,面试官疯狂暗示,最后弱弱地回答说反了。
10 一个长度为n的list,元素不重复,从中取出m个数,问这m个数中某一个元素被取出的概率是多少,我没说对。
这一面我感觉我很多都回答的不好,到那时面试官最后仍然花了很多时间介绍部门,感谢给我三面机会。
三面(8.25 35分钟左右)
这一面面试官上来先介绍部门,问我有没有什么疑问,然后问了简历的东西,技术问题没有深挖,然后问了我科研,生活,学习上都遇到了哪些问题,哪些方面得到了改变或者提升,还问我用过哪些百度APP,分析一下抖音短视频为什么那么火,对百度的印象看法啥,我提到了百度的自动驾驶。总之技术问题,非技术问题问的一半一半吧,最主要的是面试官问我能不能实习,还问了我两次,我最后说我可以远程实习,感觉我应该回答能实习的,有点后悔。
总之,我很感谢百度公司给了我三次面试机会,这让我增加了秋招的信心和勇气。