2017暑期实习算法工程师(机器学习)面试经验

来源:互联网 发布:淘宝宝贝一键上传 编辑:程序博客网 时间:2024/05/29 16:18

面试经验:

腾讯基础研究实习生面试

首先让自我介绍,简单介绍了科研方向及成果,做过什么项目以及具备那些技能,然后问了我科研是做什么的,我说做移动机器人视觉伺服研究,他可能没懂,我又解释了一下说是利用视觉图像信息来完成移动机器人的控制规划过程,(就这么简单一句话带过了==,后来才明白应该更仔细得说明做的是什么,我以为这个和要面的岗位没啥关系,就没说,也是因为自己蠢),然后就让我把做个那个阿里音乐的比赛介绍一下,我从赛题说明,原始数据及预处理,开始用了什么模型,后来又加入了什么因素,中间我提到了ARIMA时序预测问他要不要介绍一下这个模型,他说不需要,之后我就觉得没啥好介绍了,针对里面的模型他也没有提问(估计是觉得用时序预测太low吧),就问了我周围有没有别的成绩更好的同学,用了什么方法(果然是嫌弃我的太low),我就说别人用了聚类,通过将艺人进行分类分别建立模型。接下来他就说让我推导一下SVM,我先简单直观的介绍了svm是通过寻找特征空间超平面来对样本进行划分的方法,然后停顿了下(因为我不确定他是不是真的让我推公式),面试官看了我示意继续,我就在草稿纸上开始就硬间隔最大化进行公式推导,刚写到目标函数那里让我不要推了(我公式应该没写错)。之后出了个场景题,利用爬虫把微博所有用户的信息全爬下来了,问我怎么设计模型筛选出其中喜欢足球的用户,因为项目经验不足,我就简单提了一些想法,比如利用人工规则选出一些关键词作为知识库,通过判断用户所发微博内容是否包含这些关键词来判断,以及根据用户所关注的人,基于用户的协同过滤,有相似爱好的人可能具有更多的相似爱好。当时有点懵,没想到用分类,可以先得到一些有标记的训练集(比如某个足球明星的粉丝),利用分类来做。最后估计我回答的也不好,面试官就说由于时间关系,问我有没有什么疑问。

总结,面试经验太少,问我科研的时候我居然觉得没太大关系就一句话带过,其实应该仔细说明的,一方面向面试官展示这些确实是你的成果,另一方面有没有关系也不是你说了算啊,说不定人家就感兴趣呢(怪自己太蠢);数据挖掘项目太少,总共就没做过几个,简历上就写了一个,用的模型还不太讨喜,难怪人家没啥好问的。总之,腾讯面试已跪【哭】。

 

拼多多算法工程师实习:

       先是HR面,自我介绍,因为前面填了张表写着5月份就可以去实习,她就问我为什么这么早不用上课了吗,我说现在研二已经没有课程了。

问:你之前怎么有时间去实习的,导师让你去吗,知道吗

答:因为科研成果达到毕业要求,而且只要出席每周组会导师应该不会发现,虽然有几次导师找我我都不在。

问:专业读的是什么,怎么读的研究生,为什么想要做算法(简历上的实习是开发),上海有没有住处

答:专业是控制工程,研究方向是移动机器人视觉伺服,保研上的本校本专业(她记下了保研),因为之前在公司做的开发后期都太偏向业务逻辑,感觉技术上没什么进步,我不确定是不是开发都这样,所以想转算法,上海没有住处。

还问了一些无关痛痒的问题(之前面过什么公司啊,父母做什么的,对工作地点有没有要求),我随便答了下,之后跟我介绍了她们那边的环境待遇什么的,然后技术面。

       依然自我介绍,他说他不懂我做的这样,要我就一个项目详细介绍一下,我就拿阿里音乐那个说(因为这个项目跟机器学习有关,后来想想我讲科研项目的话也不是不可以),真的问的很详细,我用的ARIMA是什么啊,怎么做预测的啊,为什么要平稳序列,什么叫平稳序列,问了一大堆,然后我就一一回答。之后就是做题了,一道数据结构题,给你一棵树,要返回一个存放树结点值的数列,要求每个结点的父节点的值在其后面,然后树的结构是以一组边的形式给你,每个边有父节点和子节点,在纸上写代码(贼痛苦),最后花了挺长时间还是没写完(一个判断条件想不出来怎么判定),就说写不出来,(对了这个是不能糊弄了,写想法也不行,他会一行代码一行代码来分析),反正他最后说出来这个条件我才想起来。技术面应该是跪了吧。

 

 

蘑菇街算法工程师:

       开始先自我介绍,简单介绍了我的科研和做的比赛,然后要我写一道代码题,字符串转int,总的来说感觉还行,接下来开始问机器学习,问我为什么不做机器人了,我说不想做,不是我喜欢的方向。之后问知道哪些机器学习的算法,说了lr,svm还有一些集成学习,要我介绍一下gbdt,rf,xgb,分别介绍了之后卡在了xgb,开始问xgb有什么特别的地方,我说基分类器可以是树也可以是线性分类器,引入了模型复杂度正则项,引入了rf列采样的思想,并行(问我是如何实现的,我说了下自己的理解,在最优特征选择的时候并行选择,好像不是他要的答案),问还有什么特点,我说训练速度快,他说这个除了是并行的原因还有什么,我懵逼(xgb实在理解不能),以及xgb在特征划分时用的什么指标(答基尼,被嘲讽==)。完事问lr,用lr做分类的样本我觉得应该是否满足什么分布(花式懵逼),真的不知道,揪着这个说了一会,然后问对深度学习有没有了解,没有(下一位),前面提到正负样本不均,问怎么解决,我说除了扩充数据集之外主要利用重采样的方式,并举例京东比赛中的处理方式,然而,他问我为什么要这样做==后面基本没什么了

二面:

       运气很好的进了二面,二面是问天,搜索部门的boss,上来惯例先介绍一下科研和项目经历,科研我随便聊了一些,主要讲了阿里音乐和京东算法大赛两个项目,然后其实也没问什么技术细节,问了我京东比赛的特征体系是怎样的,之后开始问科研的东西,第一次有面试官对我科研感兴趣的,我就说了下我做的是什么,可能他之前也做过机器人相关的吧,但是实际聊下来他可能做的更偏底层一点,有电机控制,而我则是更偏算法,所以扯了一通感觉他没明白我没明白他,囧,最后就做题了,问我会不会冒泡排序,我说会,然后说不是对数组进行排序而是一个单链表,而且要求不能交换值,只能交换结点。我就考虑了一会开始写,大概被他三次点出有问题,直到最后我也没有完全写出来,只能说代码还需要优化,毕竟功底太差,本来以为基本挂了,然后外面又来了个面试官,问天就让我过去面,后来才发现是三面

三面:

       山鬼面的,主要是问了我这么一路面试过来的历程吧,有什么感受之类的,问了我觉得我有什么优点算是,对了,期间算是扯虎皮拉大旗说了在等百度华为的最终结果,她就问我三家都给offer去哪家这样的问题,我假装纠结了一下说先排除华为,因为华为要做的东西我不是很感兴趣,然后就说百度蘑菇街之间选蘑菇街,一方面地理位置,另一方面百度没说我具体会去做什么。再后来基本就说她在说我在问了(感觉像是我在面她==)。然后第二天晚上收到了offer,确实很惊喜,本来在二面之后以为希望不大的。

 

滴滴算法工程师

一面:

简单介绍了项目和科研,然后问了gbdt,rf区别,gbdt怎么防止过拟合,逻辑回归怎么防止过拟合,L1正则和L2正则的区别,详细介绍阿里音乐项目,京东算法大赛(主要侧重特征工程),做题:给一个字符串,返回一个新字符串,不包含连续的ab,也没有c。最后好像还是只写了伪代码或者说思路吧,然后就过了一面。

二面:

       先详细描述之前做过的项目,又说了一遍,问我阿里音乐之前是用时间序列做的,现在做的话会怎么做,我说会通过提取特征用回归模型来做,他就问我的特征体系该怎么构造,我balabala说了一些,他好像不是很满意,说这样的效果应该不会太好,我又补充了一些关于时间上的特征。做题:1得到一个数组的最大和及返回最大和的首尾下标;2求一个数组里第k小的值;3两个字符串,返回第一个字符串(剔除其中包含在第二个字符串里的字符)。要介绍一下SVM,之后二面就结束了

 

 

百度机器学习/数据挖掘算法工程师

一面:

       一个妹子视频面的,虽然没见着人,自我介绍完之后,开始问树的东西,决策树怎么理解,有哪些划分特征的方法,有什么区别,能否处理连续特征,逻辑回归的损失函数,其他忘记了。做题:两个字符串的公共子字符串,憋了半天放弃说不会做,然后换了个题,判断链表是否有环,算是写出来了吧。开始问java的东西,有java的垃圾回收机制,还有stringbuffer和stringbuilder的区别,反正都没回答上来,不过这样也让我过了一面==。

二面:

       跟一面差不多,关于java以及数据结构的基本上没回答上来,快排,明确说了不适合做自然语言处理,可能更适合做无人车那块,然后我说还是想做机器学习,他就说把我推给别人二面,莫名其妙流程上就显示二面通过了,接下来还真的就是三面Hr面的

三面:

       简单自我介绍,然后就是hr面的基本的问题。


上面没提到的还有阿里内推的电面,由于太挫就不提了,另外还有华为,主要问题也是大同小异


总结:

算法工程师这个岗的面试主要可以分为四块,第一是自我介绍以及针对所介绍项目提出问题,第二是编程功底包括使用语言的熟悉程度以及数据结构是否熟练掌握,第三是机器学习相关算法的了解,经典的算法必须要掌握,能从理论公式的角度阐述不同算法之间的优缺点最好,当然工程能力自然是加分项,第四则是部分公司喜欢出的场景题,实际上也是对项目经验的考核。

        不同公司对以上四点的侧重点各有不同,根据具体岗位来看,另外有些公司还会出一些智力题,就算不知道答案也要尽量说一些思路,面试官会根据你的回答来考核你的思维能力。

以上差不多是我这三个月面试的一些经验,希望对大家有一点借鉴意义。

阅读全文
0 0
原创粉丝点击