ITPub博客

首页 > 数据库 > 数据库开发技术 > 20年春招蚂蚁金服算法实习offer面试心得

20年春招蚂蚁金服算法实习offer面试心得

原创 数据库开发技术 作者:Agent的潜意识 时间:2020-05-09 07:01:17 0 删除 编辑
编者按:小哥之前投递的是CV岗,后来转来ML岗,整个转的过程比较繁琐,一直在跟HR跟进过程;面完ML岗后,面试的部门HC用完了,转了一个部门,所以面试了6面;小哥有很多比赛获奖经历,加分不少。代码能力也不错。
    总结一点:一定要多找HR跟进进程,能力在线的情况下本质上谁先抢到门票谁先进。所以你面试的时候还有很多跟你一样走面试流程的人,中间HC变化会很快!


因为投递的比较晚,幸运地赶上了末班车,最终经历6轮面试,拿到蚂蚁金服机器学习岗实习offer。接下来分享一下我的面试经历。


面试过程:

一面的电话是在晚上八点半打过来的,一共四十分钟,当时比较突然,也没有做什么特别的准备,一面问了特别多的基础知识,问了我了解哪些机器学习算法,SVM和LR的区别,朴素贝叶斯分类器,有哪些归一化的方法,哪些算法可以不做归一化,Bagging和Boosting的区别,什么是欠拟合和过拟合,L1和L2范数, Dropout的原理是什么样的,Dropout为什么能起作用,Batch Normalization的原理,让我讲一下CNN和LSTM的原理,然后让我结合着我做的项目讲一下CNN是如何工作的,这一面没有问具体的项目,可能主要是考察你的基础。

二面和三面就没有像一面那样问那么多基础知识,分别是十八分钟和三十分钟,都是直接让我介绍一个我做的项目,对项目的考察比较仔细,其中问到了我数据集是如何构建的,为什么要提出这样的方案,为什么会选择这个网络,评估指标是什么,损失函数用的是什么,为什么要用这样的损失函数,在讲项目的同时还会引申出来问一下项目之外的东西,比如说我的项目里用到了注意力机制,面试官会让我讲讲我了解哪些注意力机制,分别是怎么样的?然后面试官看到我做过语义分割相关的任务,会让我讲一讲语义分割的发展,还问到我觉得现在语义分割任务还存在一些什么问题,这些问题就比较发散,不只是局限于项目里面的东西。

四面是在一个下午,一共四十分钟,面试官提前打电话过来让准备一下电脑,说可能会做一下题,不过开始也问了一下项目,还是跟二面三面一样会抓一些项目细节进行提问,然后给我出了一道算法题,给了一个网址,让我在网址上把代码敲出来,题目是N个数组,每个数组K个数,保证有序,如何把N个数组归并,并且依旧保证有序,这个题目其实跟归并排序的思想差不多,采用分治的策略,把N个数组不断一分为二然后递归求解即可。

五面应该是交叉面,一共二十五分钟,面试官让我介绍一个我自己觉得做得最好的一个项目,并且问了一些为什么觉得这个是做的最好的,然后问了很多项目细节,还问了一下团队是如何分工的,以及个人的贡献,最后问了一下我个人的职业规划,打不打算去杭州。

六面是HR面,一共二十分钟,开始先进行了一段简单的自我介绍,然后让我评价一下之前的几轮技术面,觉得自己还有哪些不足,接下来让我谈谈对公司的了解,让我和其他公司对比一下,询问了一下目前已有的offer,为什么选择来蚂蚁金服,最后也问了一下愿不愿意来杭州。

总的来说,这几轮面试还是非常考验个人的综合实力,有对基础知识的考察,也有对项目细节的考察,以及从项目延伸出来的一些问题,还有对算法题的考察。




如何准备面试:

其实针对算法岗的面试准备,主要就是这三点:基础知识、项目经历、数据结构与算法。

1. 基础知识
基础知识无非就是考察一些基本的机器学习、深度学习原理,例如激活函数的区别、BN的原理、SVM和LR的区别、XGBoost的原理、L1和L2的区别、梯度消失和梯度爆炸等等,但是在回答这些问题的时候最好不要只是简单的概述一下,而是更深层的分析一下会比较好,比如在回答L1和L2的区别的时候,不要只是回答L1为了得到更稀疏的权重、L2为了得到更平滑的权重,而是可以分别从优化的角度、从梯度的角度、从概率的角度去分析为什么L1能够得到稀疏的权重而L2得到更平滑的权重。
在基础知识的准备上推荐看一下百面机器学习这本书,还有深度学习500问这个文档https://github.com/scutan90/DeepLearning-500-questions

2. 项目经历
在面试前最好把自己的项目经历都捋一遍,一定要深入了解自己做的项目,项目不在于多,而在于做的精,可以先在纸上写出来,项目的背景是什么,指标是什么,数据集有多少,遇到了哪些问题是怎么解决的,为什么提出这样的方案,有哪些创新点,这些创新点能够带来多少的性能提升,最好可以定量分析。另外你可以站在面试官的角度思考面试官可能会对你的项目进行哪些提问,项目中的哪些知识点是可能被问到的,提前准备好。

3. 数据结构与算法
算法题没有什么捷径可以走,只能多刷题,推荐先把剑指offer上的题刷一遍,里面都是一些高频题,另外一个就是刷LeetCode,LeetCode上可以先刷一下Top100,在刷题的时候一定要学会总结,最好是按类别进行刷,总结一个类型的题目,针对每个类型的题目都可以写一个自己的常用模板,比如DFS、BFS、二分法、滑动窗口等等,这样再遇到同类型的题目的时候就写起来非常快。

希望能给大家带来一些帮助!

原文作者:Agent的潜意识;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-03-21

  • 博文量
    187
  • 访问量
    82280