阿里 算法实习生 机器学习方向 面经
4.24做完笔试,4.30一面电话面,50min。蚂蚁金服 智能科技事业群
1. 自我介绍
2. 过了一下简历的项目
第一个 文本二分类项目,介绍,你认为你的项目还有哪些优化的点?下面都在围绕这个问题展开:怎么处理非平衡问题(除了我说的欠采样过采样,小哥哥说可以对损失函数进行改进,比如令正类的损失函数为1,负类的损失函数为9),过拟合(正则化,L1L2的区别,对于特征很稀疏的数据应该用哪个?),CNN在文本分类上的应用与什么比较像?(意思就是卷积核的作用与什么的作用很像,答案是n-gram,没答上来,我说了一下在文本分类中卷积核是怎么运作的)(整体来说更像是给我上了一课,他说我这个项目可以优化的点还是蛮多的,学到了)
第二个 kmeans做推荐系统,先介绍项目,怎么选k
3. 挑一个最熟悉的传统机器学习算法详细讲一讲,我讲的LR,我只说了一下LR的原理就停下来了,其实应该再说一下loss function的
4. 根据你的经验,你认为深度学习比传统机器学习好在哪里?1. 特征工程:学习能力更强,同样多的数据,深度学习可以更准确地提取特征,而且深度学习可以自动提取特征,而传统机器学习很多需要手动提取特征 2. 比较灵活,我可以自己决定CNN有多少个卷积层,多少个池化层等等
5. 给你n个实数x1,x2,...xn,有一个算法需要计算(x1x2...xn)1/n,我们希望结果尽可能精确,有哪些需要注意的问题?1. 精度问题:实数特别大会溢出,小数有精度损失的问题,小哥哥说工作中很多地方会对数据take log 2. 算不出结果:比如n=2,x1乘x2小于零的话,是得不出结果的,要抛出异常
最后问了一下需要改进的地方,小哥哥从项目角度说的,建议我需要去了解一下bert,transformer,attention这些工作中很常见的技术(我确实之前没研究过这些)
总体来说面试体验很好,学到了挺多东西的,小哥哥教给了我一些思维方式,很感谢他!!!
5.12 二面电话面,30min。跟上一个小哥哥一个部门的,感觉是leader级别及以上,问的问题都很有深度,都是我以前没想过的问题(也可能是我太菜了还是没理解透)。这个电话对方那里有一点点吵,说实话还是会有点影响,因为我在海外他可能以为是电话的问题,还特地挂了电话重新给我打,我就没好意思说是你那边有点吵。。。。。中间有几句话没太听清楚,会经常让他重复。
1. 自我介绍,让我挑一个项目详细讲一讲,我还是选的NLP的项目,问了几个问题都把我给问住了,这个小哥哥明显懂得很多。。。
1)这个项目是实习里做的实际的项目还是学校里课上的项目,什么课的项目
2)naive bayes我用的tfidf做的特征处理,问用tfidf做了特征处理之后naive bayes的likelihood是什么样的? 想了一会说不太清楚。。。。他说这个likelihood看起来没法从物理上解释,不像用count frequency做特征的话,likelihood就是balabala(原谅我没记住他说的是什么,因为没听懂。。。)
3)我用的glove预训练的word2vec模型做embedding,他说现在做模型都是端到端的结构,为什么我选择用预训练好的embedding而没有自己训练word embedding?我说因为觉得训练时间比较久,但其实我自己压根没想过这个问题。。。。。。。
4)为什么深度学习的效果要好很多?TextCNN跟n-gram很类似,那么为什么cnn的效果就是比用n-gram做特征处理的传统机器学习方法(比如逻辑回归)好? 在这个问题上纠结了挺久的,感觉到最后也没回答到点上。。。还需要继续学习
2. 常用分类算法中哪些是线性的哪些是非线性的
3. 除了机器学习算法对其他的programming有没有什么了解,我直说了很少,他一看我本科学统计的心里也有数23333 然后问了下对排序了不了解,随便挑一个说一说原理,我挑的快排,问时间复杂度,为什么是O(nlogn), logn和n是从哪里来的?快排是divide and conquer的思想,logn是divide时的深度,n是conquer
我问他的问题:
1. 你觉得你身边的同事或者团队成员的最大的优点是什么?一开始没太听清楚回答,大致意思就是阿里人都很愿意学,很聪明很勤奋很努力,实际问题中会遇到很多的问题,比如数据怎么获取,数据很脏怎么办等等,这些问题都不是在学校的学习中能学到的,所以不断的学习很重要
2. 那你认为我们这些没有什么实习经验的学生应该怎么样去积累实际工作的经验? 他说这个问题很好,他的建议是参加一些比赛,比如kaggle比赛,一开始可以不需要追求什么名次,在完成比赛的过程中会遇到很多问题,解决这些问题就是一个学习的过程,去研究为什么别人的结果那么好也是在学习。他还建议最好自己写一下这些算法的代码,直接用包的话很多具体implement的问题其实并没有完全懂。(感叹大神就是大神)
总结一下,明显这个面试官的问题更加全局化,站在业务和整体的角度看问题,比起算法细节,更多的问的是一种思维方式,为什么选择这个办法而不选择那个办法?为什么这个方法的结果比那个好?还是要多学习多思考。
5.18简历被转到天猫超市去了,重新一面电话面48min
1. nlp项目。怎么处理非平衡?欠采样的时候其实可以考虑文本相似度,了解怎么做文本相似度吗?(不太了解,准备去学习一下,说了一下最近在学seq2seq、attention这些)除了tfidf还有什么办法处理特征?我答的n-gram。简单介绍一下n-gram?为什么没有选择用n-gram?L1L2正则化的区别和应用场景?你知道哪些激活函数?简单说说区别?为什么需要激活函数,它解决了一些什么问题?为什么ReLU比sigmoid更能解决梯度消失的问题?从图像的梯度上去考虑,relu的斜率是个常数。深度学习防止过拟合除了dropout还有哪些方法?
2. 简单介绍一下推荐系统的项目。简单说了一下整体的框架和思路。
3. 平时怎么分配学习、项目、看论文的时间的?
这团队是根据天猫业务的需求来设计算法的,比如说根据用户画像啊日活啊CTR等等,给用户推荐优惠券、权益等等,还有很多要跟业务结合的工作,会需要自己设计深度学习的模型,自己写loss function等等,感觉需要对模型的底层有很好的认知,这一方面我还需要加强。小哥哥还说他们一个比较棘手的问题是如何把业务需求转化为算法可以解决的问题。
#阿里面试##阿里巴巴##实习##算法工程师##面经#