机器学习算法岗实习面试记录-探探、阿里、京东
前言
找实习结束了,准备把自己准备过程中收集到的资源分享给大家,如果想要的可以私聊我!
实习面试记录
概览
- 共面试了探探(一面挂)、阿里(HR面)、京东(半路放弃)三家公司
- 面试阶段个人情况介绍
- 学历:985本硕、非科班
- 论文:一篇非AI领域的SCI在投(但是用到了深度学习)
- 项目:两个将深度学习应用在其它领域的项目(面试探探时写了王喆老师的一个推荐系统项目,后续删除)
- 比赛:一个科大讯飞的冷门比赛(分赛道第三)
- 实习:无
- 刷题:leetcode 100多,后期到了200
- 基础:统计学习方法之前粗略的看过一遍、刷了很多牛客网的面经
探探
一面挂
本人的第一次面试20210224
总体情况:被面试官“血虐”,给我提了很多意见,收获颇多
- 你的项目为什么还需要神经网络?也就是问我这个问题的意义?
- 你项目中的信号形状是什么样的?
- 输出是什么,为什么要变成回归问题?为什么不直接做分类?【注意:对于面试官不了解的领域,他们很喜欢从输入输出作为切入先进行深入】
- 多路召回怎么做的(一个推荐系统项目)?
- 项目里的embedding是怎么获得的?
- embedding相似度度量为什么用余弦相似度,而不用欧式距离?
- 讲讲FM
- wide&deep怎么做的,里面的特征都是什么
- 面试官觉得wide部分和已知电影特征进行交叉不合理,因为电影太多,最后会很稀疏。
- 开放性问题:针对探探的左划右划的功能,如果是推荐系统如何提取特征?
- 我自己答每次滑动停留的时间,最后掰扯半天,觉得我这个不靠谱
- 然后面试官的意思是想让我照着自己推荐项目里特征提取方式。比如每个用户的总的滑动次数,右滑率,左滑率(假定数据是三列,一列是用户id,一列是滑动对象的id,还有一个是label,label为0或1,表示左滑或者右滑)。然后关键的就来了,让我用spark写右滑率怎么得到。。。。我裂开了。。。场面极其尴尬,好比写了一个import tensorflow as tf然后告诉他我不会了,你们自己想象那个场景吧。。。
- leetcode 75颜色分类 https://leetcode-cn.com/problems/sort-colors/submissions/ 在面试官的疯狂提示下,才把细节改对了。真疯狂裂开,一看记录,还是我做过的题,更加裂开。。。
- 在裂开结束后,我直接告诉面试官我这是第一次面试,能不能给我点意见。然后面试官好心跟我讲了好久,一是项目必须十分熟悉,二是不要老说自己紧张,三是多刷题
阿里
一面 50min 电话面
总体情况:在面探探被打击后,果断删除了自己并不熟悉的推荐系统项目
- 问比赛
- 针对数据,我们做出的改进点
- 复赛做出了哪些改进
- 讲讲深度可分离卷积(比赛里提到了)
- 获取embedding的方式
- 只简单说了一下word2vec
- 下次可以巩固一下图embedding然后提一下
- GBDT了解吗?基分类器用的什么?分类时也是用的那个吗?
- 过拟合的处理方法
- 常见的损失函数
- 常见的激活函数
- 提到了ELU函数
- 我说没了解过,印象里好像就说relu的改进,然后把一部分变成弯的了。。。。
- 讲一讲BN
- 分类问题为什么不用MSE,而是要用交叉熵
- F1score
- 多分类损失函数
- 当时说成了二分类的交叉熵
- attention有几种计算方式
- 面试官提到了DIN,但是没有问
- 翻译中Q\K\V对应的是什么
- 还问了一个场景题,但我记不清楚了:大概是对于不同任务,是否要用同一套embedding?
- 个人回答是不用,因为embedding在生成的时候是和输入空间直接相关的。
- 编程题:跳跃游戏(leetcode55)
二面20210317 50min 视频面
- 先挖项目,重点就是挖了我的其中一个项目,另一个就基本没有问
- 你的方法的误差多大会会导致误判(医学相关)
- 我直接说我们还没到临床的阶段(实话实说)
- 你觉得项目中最大的难点是什么?(大家结合自己的项目提前想好,这个被问到的频率非常高)
- 你是如何想到你的创新点的?(我提到了一个本科的相关项目)
- 你的方法的误差多大会会导致误判(医学相关)
- GBDT的G梯度的向量长度为多少。我一开始答了叶子节点数,后来改口说是样本数了。他也告诉我是样本数
- SVM和FM的比较
- 不会。。。我当时就没搞明白
- FM的隐向量讲一下,FM的计算复杂度
- 对你熟悉的机器学习算法排个序。。。。
- 懵逼了,我说我都没用过,主要是学习原理,然后扯了XGBoost,问他要不要给他讲讲XGBoost,他说不用,然后我后面排了逻辑回归,决策树,k-means,k近邻之类的。。。
- 随机森林的随机性
- 两个场景题(会暴露自己,有兴趣的可以私聊我)
- 未来的发展规划
- 反问
三面20210322 50min 视频面
- 一直问项目,感觉要讲清楚还是挺难的。没有问任何机器学习相关的技术知识
- 网络不好,不然直接屏幕共享了
- 问了一些常规的,比如:项目中的难点是什么,怎么克服的,转行的困难之类的。随机应变就行。
HR面
- 自由发挥就好了,聊聊天而已
- 个人提升、项目难点、如何学习、如何调节、被人眼中的你
京东
20210415 一面过 20min 电话面
- 感受1:面试官那边声音太小,老容易听不清楚,重复了好几遍不好意思我听不清楚
- 感受2:感觉含金量不高,问的都是些不痛不痒的问题,不像是要筛人的样子
- 面试过程
- 两分钟介绍自己
- 一开始介绍的太细了,在介绍项目背景的时候被打断了,然后就简单的过了一遍
- 挑一个项目介绍
- 项目难点
- 相关领域的进展、别人的方法到了什么程度
- 你对团队协作的理解
- 介绍逻辑回归
- 逻辑回归是一个分类算法,那么它是在回归什么呢?
- 答案有印象,但是忘了。刚刚复查了一下,回归的就是对数几率,也就是log(p/(1-p))。一个事件的几率指的是该事件发生的概率与该事件不发生的概率的比值
- 讲一下GBDT
- 还了解哪些集成算法
- XGBoost相对GBDT原理上有哪些改进。(上一个回答提到了XGBoost)
- 反问。。。
20210420 二面 30min 视频面
- 体验:这个更接近管培生的感觉。比较适合奔着京东去的,或者大一大二研一的。
- 面试过程
- 介绍重构项目
- 介绍比赛
- 过拟合理解以及业界解决方法
- 我讲到训练方式里的多任务学习的时候,他提到了一句这种方式其实也属于增多数据嘛。也有道理
- 机器学习和深度学习怎么看
- 两者有各自擅长的领域和优缺点,对我们而言,只是不同的方法而已,综合考虑业务在合适的场景下应用合适的算法才是最重要的
- 对团队协作怎么看
- 从项目谈师生协作关系,自己提到了及时的共享信息比较重要(类似于与领导的合作关系,按时汇报比较重要)
- 从比赛谈合作关系,各自发挥所长
附加作业
- 第二天后让我写一份大数据相关的调研报告,要求两天内周五前,实在没有时间就跟他说我放弃机会了。