2020年新冠疫情给了我们一个前所未有的长假期,很多想跳槽的同学也都趁着在家办公的便利条件进行了视频面试。我也一样~~
时隔两年又要找工作了,上一篇面经似乎还热着,复习链接:
刘康:阿里高德机器学习算法工程师面经zhuanlan.zhihu.com直接上干货吧,大背景是工作3年(还属于初期,欢迎拍砖)。此次找工作面了便利蜂(5轮技术一轮笔试,通过,好奇网上说的变态是多变态)、水团3个部门(分别5轮,4轮,3轮 都通过)、蚂蚁(流程太慢,3轮 主动终止)、阿里(3轮技术,通过)、快手(coding 挂二面)。面经会按照类别不区分公司汇总在一起。
0. 自我介绍:
开个好头,千万别姓名,工作年限就完事了。第一印象还是有用的。突出重点。学校,工作经历(主要方向),实习经验,获奖经历(Kaggle, ACM)等。
1. 项目
说工作中做的最好的一个项目,如果有多个项目都不错,可以询问面试官是否可以说两个(毕竟项目说的时间长了,coding时间就短了题目就会简单一些)。
我的基本流程就是:项目背景,目标,现状,改进点,改进方式(模型怎么选,为什么选,怎么优化的,这一步可以说的细一点,突出你自己对业务的理解还有解决实际问题的能力),最后一定要说模型效果、业务收益。
这个因人而异,我每次项目都会说至少30分钟。如果面试官中间提问时间可能就会更长。
2. Coding
可能由于项目说的时间比较长,除了头条、快手这两公司爱问很难得题以外,其余地方问的都比较简单。
- 跳跃游戏 ||
- 求平方根
- 找无序数组第K大个数
- 最小时间复杂度求一个无序数组最大值最小值
- 合并区间
- 最长公共子序列
- 一堆金币只有一个假币,假币比真币轻。求一定能找出假币的最小次数
- 区间和的个数
- 矩阵最长递增路径
- 生命游戏
- 戳气球(同事碰到的)
3. ML & DL 知识
基础知识
- AUC 的含义
- 非平衡数据集,怎么训练模型。追问 ensmble的几种方式,scale_pos_weight怎么实现的,smote算法原理
- 分布式 SGD 怎么做
正则化
- 正则化方法有哪些? 追问: L1,L2的数学意义,Dropout原理 ...
- Xgb里防止过拟合可以设置的参数
树模型
- GBDT 原理讲一下。追问:负梯度的概念是什么,为什么用负梯度
- GBDT 叶节点权重怎么算
- GBDT 单调性约束怎么实现的
- 能否用LR 或者 SVM 做GBDT基模型
- RF 原理讲一下,为什么能防止过拟合
- Xgboost原理,对比GBDT的改进。追问:论文里用二次导数的累计值选取切分节点的依据
- LightGBM原理,追问:直方图算法的具体实现逻辑(是否看过源码)
深度模型
- BN 的原理,计算方式
- LSTM 原理 为什么好于RNN,GRU原理。
- 激活函数有哪些。追问:实际用过Selu吗,效果怎么样。
- 深度模型单调性约束要怎么实现,给出两种方案
- 强化学习是否了解。追问:DQN的原理,Dueling什么意思。
- WDL DeepFM DCN DIN DIEN DSTN ... 原理,是否实际用过,为什么能带来提升 ,为什么效果不好(因为简历上写了)
无监督模型
- 层次聚类原理,时间复杂度。连通性矩阵作用,如何约束?(项目里提到了)
- DBScan原理
- 聚类评价指标有哪些
因果模型 (项目里涉及因果建模,熟悉的面试官会问一些)
- 因果建模的作用,优势
- Uplift Model是什么。追问:建模方式是什么
- Propensity Score的含义,应用方式有哪几种
- 常见的因果模型有哪些
- Causal Forest原理
- 因果模型的评价指标
其他(实在不知道怎么归类)
- LTV(Life Time Value) 模型原理。用到了什么数学假设,这些假设的意义是什么
- 整数规划求解的基本方法
4. 概率题
- 一个线段切两刀,能组成三角形概率
- 一块表,24小时时针分针相遇次数
- 一个路口每60分钟有车经过的概率的90%,问15分钟没车经过的概率
- 从随机数生成器生成1000个数据,怎么估计随机数生成器的概率密度函数
- 泊松分布的意义
5. 灵魂拷问
- 给他们自己的一个场景,问你解决办法。(总之就是感觉面试官拿自己的长处攻击你的弱点)
- 一个人打开快手app,需要在哪些地方加风控拦截
- 外卖eta受到哪些因素影响
- ...
- 为什么跳槽
6. 奇葩问题 (就是那个奇葩的公司给我加了一轮奇葩的笔试,还有一个人视频监考,逗大家一笑吧)
- 一个人连续3个月进同一批货。第一个月以低于进货价20%卖出,第二个月以高于进货价20%卖出,第三个月以进货价卖出。每个月销售额都是2w元。问这个人到底赔了赚了。
- 一个青蛙在荷叶上,荷叶的编号从1到n。青蛙在荷叶k的时候可以以等概率跳到荷叶1到k。问一个青蛙在k=5时,跳回1的平均次数是多少?
- 10个工人共享一台机器完成任务,机器一次只能干一个任务,工人之间任务无依赖关系。工人干任务的时间为Ti, i 属于1到10。 问如何排序任务,总等待时间最低。
- 线性规划问题:工厂能生产甲乙两种产品,生产1吨甲要消耗A原料3吨,B原料2吨收益5w,生产1吨乙要消耗A原料1吨,B原料3吨,收益3w。每个月有原材料A13吨,原材料B18吨。问怎么生产利益最大。
小小总结一下吧,3年经验时候找工作时的感觉和校招、1年经验找工作时完全不同。
项目部分:不会只考察你的执行能力,还会更多关注你对业务的理解、拆分能力。考察你是否可以选择对的模型,对的算法拿到收益。
Coding:Leetcode真的很有用。
ML部分:不会只问你模型原理,会追问你是否看过论文、源码,为什么选择这个模型,会问业务上的评价指标是什么。即使每一个小问题,也可以问的很深。主流算法就那么几个,从各个角度考察你对模型的理解,更能衡量你的能力。
祝愿大家都有好前程吧 ~ ~
PS: 此次还是比较顺利的,职级和涨幅都超过预期。