时间:2017 年 3 月
岗位:算法工程师,大数据部门
结果:三面通过,进入谈薪
条件:三年外企国内研发,Rails 全栈,机器学习 2 年,深度学习刚接触
一面(工程师)
- 聊简历
- 做过的项目
- CNN 原理
- RNN 原理(简单提了下)
- 写题
- 组合特征计算,A = [a1, a2, ..., an], B = [b1, b2, ..., bn], 输出 AB 之间 (ak, bk) 或 (ak1, bk1, bk2) 或 (ak1, ak2, bk1) 的所有组合。
- 2 items 好说,叉乘一下
- 3 items 对另两个需要注意不重复,bk1, bk2 跟 bk2 bk1 是一样的,抽出一个 bk1 之后 bk2 要在 bk1 index 之后的列表中抽取
二面(工程师)
- 聊简历
- 做过的项目
- CNN 原理
- 神经网络反向传播
- 机器学习基础,过拟合(训练集不错,测试集不行v);学习率选择;评价指标,精确 / 召回 等(后来查了下,准确率跟这俩不太一样,注意)
- 写题
- 一个有序整数链表 [1, 2, 4, 6, 7, 10],插入一个整数,设计结构怎么让效率最高
- 自然的思路是双向链表,存最大的数,比较插入的数字,考虑从前还是从后插
- 还是得建立一个二叉树,这样插入效率比较高,但是需要考虑平衡(面试官说不用考虑平衡),那么可以从这个列表的中点进行建树,先建一个相对平衡的二分搜索树,再插入
三面(技术负责人)
- 聊简历
- 做过的项目
- CNN 原理
- Hadoop 经验
- 机器学习基础,过拟合、学习率、评价指标
- 遇到过的困难及如何解决
- 未来期望
总结
总的难度不算高,偏基础,算法题也是不太刁钻,面试体验上不错,时间略长,大概 3 个小时。猎豹移动在姚家园地理位置上略偏,但是园区挺大,有班车,加班较多,百度和雅虎北研的来的多。
自己来说可以在以下方面进行提高:
- C++ 上基础不多,增加 C++ 经验,去刷题或写一些类库。
- 大数据处理的经验有限,多熟悉熟悉那一套,多在较大数据集上做事情。
- 深度学习经验有限,持续关注这个领域并亲自实践。
- 神经网络等公式推导等内功需要持续加强,以后面试肯定要多