阿里巴巴机器学习暑期实习面经
下面开始写自己的经历:
4月19日,投递简历,内推通道,完善简历。
投递后,当前进度变化如下:
新投递:
这期间,我完成了测评。
简历评估中:
在4月23日大概下午4点左右,接到了浙江杭州的电话,是阿里的面试人员,因为我被内推的是阿里集团-创新业务事业群-盒马的算法工程师-机器学习职位,但是在阿里完善简历“经典三问”中,我填写的最想去的部门是“天猫事业部”,所以面试官先问我,考不考虑盒马,我说考虑。面试官说,那你现在有时间聊一聊吗?我说,有时间。面试官说,好的,那我们开始吧。
于是就开始了我的一面,时长约30分钟。
回忆一下,大概流程是这样子的:
面试官:先做一下自我介绍吧。
北极熊:balabala
面试官:也就是说,你本科期间主要完成的是“基于视觉的烟雾检测”,研究生期间主要完成的是“类别无关计数模型的复现与改进”,那我们来聊一下后一个项目吧。
北极熊:好的,这个项目……(我讲述了一下项目的流程)
面试官:这个项目中,你刚才说,最后得到一张热力图,再根据热力图得到计数和位置,那么请问你是怎么得到个数的呢?
北极熊:所得到的热力图,每一个物体满足高斯分布,中心处概率最大,向边缘依次减小,概率和等于1,那么我们只需要通过积分,来求得整张图的概率和就可以知道有几个物体了。不好意思,没有物体的位置,我们设置概率和为0,我刚才忘记说了。
面试官:哦哦,我明白了。
面试官:你做这个项目的目的是什么呢?只是想通过该项目来锻炼自己的代码能力吗,还是想做进一步的研究,用于其他应用呢?
北极熊:我对这个系统的网络进行了简化和改进,想要将它应用在别的场景中,例如我们实验室正在做的课堂点名系统,用于对学生人数进行计数。另一个应用是我们实验室做的,蜜蜂蜂箱检测系统,其中需要监测的一个量是,蜜蜂的数量,那么可以在蜂箱中装一个摄像头,通过拍摄照片,可以来对蜜蜂进行计数。
面试官:好的,我明白了。
面试官:你说你所复现的论文可以做到计数时,与类别无关,那么你有没有思考过,为什么能做到与类别无关呢?
北极熊:嗯,我思考过,之所以能做到与类别无关,是因为该论文把计数问题,转换成了匹配问题,所以可以做到与类别无关。
面试官:常用的匹配问题的方法包括:xxx(说了一些我不太懂的名词,所以也没记住,以下内容来自百度:可是我没有百度到,我也记不清楚到底人家说的是什么了),那在该项目中,是如何匹配的呢?
北极熊:我的理解是,因为我们的输入有一张小图和一张大图,那么其实是在找,大图中有几个与小图相似的区域。
面试官:好的,我明白了。
面试官:我看你的项目中,用到的多是深度学习的方法,也就是网络,那你有没有用过一般的方法呢?也就是不用深度学习的方法,比如说:xxxxxxxx(此处又是一堆我不懂的词语,也咩有记住)
北极熊:我也用过的,那我说几个,您看是不是,我在“烟雾识别项目”中,首先调研了目前的主流方法,一个是深度学习的方法,还有一个就是非深度学习的方法,我采用的是HOG和LBP特征加SVM。另外在人脸朝向识别项目中,我在采用迁移学习方法之前,首先采用的是,手动设计的一个简单的卷积网络,但是效果不太好,精度只有90%。
面试官:ok,好的,我了解了。
面试官:你有没有接触过树形结构,比如说决策树、xxxxxx(又是一堆我没听过的,所以没记住)。
北极熊:这里面,我接触过决策树,其他的没有接触到过,不好意思。
面试官:好的,没关系。
面试官:你有没有接触过其他类型的方面,比如说,强化学习。
北极熊:强化学习的话,我们实验室之前有师姐给我们讲过,我也知道,强化学习的一些知识,比如说,可以设计一个小游戏,一个小木块,走来走去。(后来我想了想,可能直接说,强化学习最典型的代表就是阿尔法狗)
面试官:ok,好的。
面试官:你有没有接触过,字幕,视频中的广告推送(抱歉,我不记得人家怎么说的了)
北极熊:嗯,我们实验室之前有个师姐的毕设就是做的这个, 是在一个短视频里,插入合适的广告。
面试官:好的。
面试官:你有没有接触过,NLP。
北极熊:我师兄之前参加过一个比赛,是关于美团的客户评价的“细粒度情感分类”问题,我明白大致的流程,但是没有具体参与过。
面试官:好的。
面试官:我看你简历上面写了,编写过矩阵分解的程序,那么你知道矩阵分解的应用场景吗?
北极熊:(啊,我好像之前查过,可是我忘记了,于是我第一次打开了百度)(⊙o⊙)…,我想一下,我有点不记得了,……,(还是没查到,这个故事告诉我们,别想边查边面试,那会显得你反应超级慢)
面试官:我提示你一下,比如说推荐系统中的……
北极熊:啊,您是说,协同过滤矩阵,哦,这个我确实知道,但是我没想到。
面试官:好,你知不知道,如何解决样本不平衡问题。
北极熊:嗯,样本不平衡问题的话,例如,正例有100个,反例只占2个,那么我们可以降低正例的数量,是正反例各占50%,但是这么做,就没有合理利用样本资源。
面试官:这样做,只是没有合理利用资源吗?还会带来别的问题吗?
北极熊:嗯,会的,还会改变正负样本的自然分布。
面试官:好的,那还有什么方法呢?
北极熊:还可以通过改变阈值。
面试官:好点的,还可以改变阈值,那loss函数方面呢?
北极熊:啊,一般情况下,我们的统计结果会给出一个混淆矩阵。在很多现实问题中,例如,医疗诊断中,把一个正常人,诊断为一个病人,和把一个病人诊断为一个正常人,这都是一次误判,但是它带来的代价是不一样的,我们可以给这不同的误判以不同的代价。
面试官:好的,你提到混淆矩阵了,那么你对于准确率,还有召回率怎么理解呢?
北极熊:我是这么理解的,准确率也称为查准率,召回率也称为查全率,我们就用西瓜书里面的典型例子来说,查准率顾名思义就是,查的有都准,查全率就是,查的有多全……
面试官:好的。
北极熊:(我自认为理解的很到位,于是继续解释)查准率在计算的时候,分子是真正的好瓜的数目,分母是(啊,反正我回答完了,面试官,让我回去再看一下,说不是这样子的,天呐,我可能解释反了,或者错了,这里还是不重复错的了)
查准率 = 准确率 = 真正例 /(真正例 + 假正例):
也就是,查出来的好瓜里面,真正的好瓜的比例;
查全率 = 召回率 = 真正例 / (真正例 + 假反例):
也就是,真正的好瓜,被判别为好瓜的比例
面试官:我看你简历上面写了你有很多演讲和讲义,你的表达能力也很强,那么是因为你们是师范学校,所以你们同学们的这种能力都很强吗?还是你个人能力突出呢?
北极熊:谢谢您的肯定,我们老师经常说,我们是在师范院校办理工科,所以我们肯定有自己的特点,我们学校经常会举办很多比赛,给了我们好多机会。另外老师经常跟我们说,我们所有的能力到最后都要归结为写和说的能力,所以在平时,我们都很注重抓住机会培养自己这方面的能力。当然了,我个人而言,可能比其他同学要更为积极一些。
面试官:好的,我明白了。那你还有什么要补充的吗?
北极熊:没有了。
面试官:那你还有什么要问我的吗?
北极熊:我想想,……,没有了。但是我想说几句,通过刚才的面试,我还是学到了很多的,比如您说的我有些基础知识掌握的还不太牢固,这个我会好好看的。另外您刚才提到的矩阵分解与推荐系统中协同过滤矩阵的联系,我确实在平时的学习中,还要加强自己这方面的学习,思考还不够深入。谢谢您。
面试官:没关系的,因为在工业中和在学校,还是有很大的差距的,许多工业中关心的问题,和在学校关心的是不太一样的,所以你们才需要在厂里实习。好的,谢谢你,再见。
北极熊:好的,再见。
(哈哈哈,我现在在写这篇面经的时候,面试官的声音还能浮现在我的脑海中,这么一想,好像是微微一笑很倾城里面,肖奈的声音啊)
突如其来的一面就这样结束了,我开心的给我狮虎打了电话,汇报了情况,狮虎说我的表现听起来还不错。于是,我就开始在网上各种查资料,发现想进阿里实习,需要经过3个技术面+1Hr面,于是,我就开始疯狂准备(因为知道能够得到一次内推的机会实属不易,也很想能够去阿里实习,所以想好好抓住这次机会。)这其中,我首先把之前不太全面的知识点,重新整理了一下:
哈哈,或许很自信吧,还准备了HR面的问题回答:
以下是关于样本不平衡以及混淆矩阵的问题:
另外我查看别人的面经,里面说到,还会问以下问题:于是我整理了一部分:
1、什么是Boosting Tree?
首先复习一下,什么是Boosting:
Boosting Tree:
2、RF(Random Forest)
2.5、GBDT是什么?
2.7、XGboost模型:
3、顺便复习了一下多类问题:
4、又复习了一下SVM核函数:
5、问了一下狮虎“AIChallenger”的比赛——“眼底水肿病变分割”的具体过程(用STAR回答)
6、L1和L2正则为何可以减弱over-fitting?
4月24号,上午,发现阿里上面的状态变成:
待安排面试:
过了一会,状态变为:
面试中:
我又继续紧张地准备……
4月25号,上午大概11点钟,又接到了浙江杭州的电话,这是二面的面试官:
面试官2:你好,请问是xxx吗,我是阿里巴巴的,想问一下,你是20年毕业还是21年毕业呀?
北极熊:我是21年毕业。
面试官2:为什么要这么久呢?
北极熊:因为我是学硕,需要读3年。
面试官2:哦哦,是这样的,我们的暑期实习岗,只招收明年毕业的学生,所以你明年再来比较合适。
北极熊:好的。
面试官2:你怎么这么着急的找呢?
北极熊:我就是想提前找一下,发现自己的不足,也了解一下工业的需要,然后早点努力,多多准备。
面试官2:好的,你的动手能力还是挺强的。只是在以后的学习中,再多加强基础知识的学习,也注意深入思考。
北极熊:好的。谢谢您。
面试官2:你还有什么要问我的吗?
北极熊:我想问一下,我哪里比较薄弱,以后的努力方向。
面试官2:好的,你以后就业的话,是希望从事研究型的还是应用型的呢?
北极熊:应用型吧。
面试官2:好的,应用型的话,那么建议你,平时除了CV外,再多了解一些其他方面的深度学习的知识。另外多注意一下其他的数理知识。应用型的话,找工作的时候,要注意加强算法这块的学习,也多拓展一下知识面的宽度。锻炼动手能力的话,可以多做一些case,还有网上的一些竞赛,如果能够取得一写名次就更好。还有就是,多思考一下,很多问题的内在逻辑,想想为什么这么做。请问还有别的问题吗?
北极熊:没有了,谢谢您。
面试官2:好的,再见。
好啦,最后的状态机就是:
已回绝:
好啦,匆匆的二面,也是终面,不过原因就是,申请的岗位要求是2020年毕业,当时申请的时候就看到了,但是还是想要试一下,而且总不能撒谎吧,诚实是第一位的呀。但是没有什么遗憾,通过这次这么近距离的和大厂的交流,发现,原来觉得自己在专业方面的基础不行,能力不够,甚至一度怀疑自己以后到底能不能靠着自己的专业找到一个好工作。这次的面试,学到了很多,最关键的是增强了自己的信心,也对自己有了一个清晰的认识。不过自己平时的努力还是不够的。毕竟代码呀,论文呀,科研呀,功夫在平时嘛,还好我还有一年的时间可以努力。很感谢有这么好的机会。
最后,想要鸣谢一下我的狮虎,近朱者赤,虽然狮虎厉害的不得了,在狮虎面前,我总是啥都不会,但是呢,很多知识我发现是与狮虎在平时的聊天过程中,无意中学到的了,回想一下一年前的自己,那个时候,才是什么都不会呢。一年过去了,自己也确实成长了很多吧。知识上面,也增长了很多,谢谢我狮虎日复一日的教我,你辛苦了狮虎。徒儿会更加努力哒,学习的道路上, 有你这么好的大神指点,我真是幸运啊。
不过,我已经很Lucky的拿到另外一家很不错的小厂的实习资格了。不管在哪里,只要认真做,总会有收获哒,执着难得,总不会辜负你的认真。
好啦,阿里的面经,就写到这里,但是我的成长之路,才刚刚开始,大家一起加油吧!
另外附上别人的面经:
笔经 and 面经
剑指offer能重复就重复,最好背下来,基本就能解决C++/数据结构; Python由浅入深过一下;
模式识别与机器学习、计算机视觉算法(艾海舟)当做科普有时间读一下;维护一个大型的开源社区或者开源项目可以让自己“更真实地”融入所谓的计算机视觉、人工智能这个圈子。对于无论阿里巴巴还是腾讯,对技术都很痴迷。通过了解身边的好朋友薪酬可以发现,BAT的面试官水平真的要比华为高很多。
原文:https://blog.csdn.net/shenziheng1/article/details/82749547
另外看了另一个人推荐的书:
阿里大牛推荐了几本书(非基础类),虽然以前也知道可是没看过,大牛推荐了还是要看的,分享给大家:
(1)Machine Learning A Probabilistic Perspective
(2)The Elements of Statictical Learning
我自己推荐Bengio的”Deep Learning”一书