机器学习算法面经(腾讯阿里网易)

做为一个灌水混毕业的博士,投的论文最新审稿意见看到希望,看到有工作同学发了内推的链接,就让帮忙推了几家机器学习算法工程师的实习(腾讯阿里网易)。前后大半个月笔试面试好几场,总结一下面经回馈牛客。


腾讯提前批

女朋友在广州又不想换工作的情况下,微信的机器学习算法工程师是最适合我实习的岗位了,因此最先让腾讯的同学内推了一波,在基本没有准备的情况下,接到了提前批电话一面二面,毫无意外的挂了。

电话一面

  • 聊论文,但多数听我在说,没插话什么问题。最后问我第二篇论文里RNN实现的时候有什么trick。
  • 问了问凸优化了解吗?传统机器学习了解吗?我答机器学习基本知识都学过,凸优化只了解和机器学习优化算法相关的。也没有继续问细节了。
  • 编程题:打印所有子集,我用了迭代,但是写的比较蠢,好在不用调试运行

电话二面

  • 聊论文,最后问了我跟什么算法做了对比,问我研究的实际意义,产业界现在的水平
  • 编程题:打印螺旋矩阵,要我给一个可运行的结果。很简单的题,我一个符号错误调了很久都没发现,这里应该就印象很差了。
  • linux里查看端口被占用的命令,linux不熟,没答上。
  • AUC是什么?我说了是ROC曲线下面积,但是想不起来ROC是啥。我都是做序列数据,没做过二分类问题。
  • LR和SVM的区别。我说了损失函数不同,然后说了SVM通过核技巧可以更好的应对非线性,但是前面好差,这里也没好好组织语言了。

提前批挂的没什么话说,就是没准备,好久没做过算法题的情况下,突然出题做就很不顺手。而且机器学习的基础知识都有点忘了,像AUC这种没用过的,基本一问就懵逼。

之后跟工作的同学聊了一下,来牛客刷了刷面经,制定了简单的复习内容和刷题计划。花了一周时间,复习了一下西瓜书前11章和deep learning book前11章,刷了leetcode上三四十道medium的题吧(链表、字符串、迭代、dfs、堆、树、动态规划等每天刷一类题练练手),并且给自己做完2篇论文都准备了面试介绍版,又让同学推了阿里和网易,并进入腾讯笔试流程。


腾讯线下面试

笔试没什么好说的,机器学习岗考的都是数学,看过样卷在牛客上随便刷了刷题回忆了一下知识,统计部分的都忘了也都不会,最后还是过了。
进入线下面试阶段,腾讯线下两个面试官聊论文会更多更细节。对我来说难度主要是手撕代码,还问到了两个leetcode上hard难度的题,不算难其实,但是我确实编程题相对弱,最后面试官也给了编程能力有待提高的评价。

一面

  • 聊论文,一些关键细节都聊的很深入了,并且提出了一些合理的质疑,都做了回复。
  • 问了一下我对深度学习的了解程度,然后手写BP算法,要我用伪代码写,我就连说带写了一个非常伪的伪代码。
  • LR和boost的区别,这次吸取前面的教训,先是细说了LR是什么,怎么推导来的,然后说Boost是什么,干什么用,以Adaboost和GDBT简单举例,最后说二者联系和区别。
  • 顺势问我,LR/Boost和朴素贝叶斯的区别,就答了生成模型和判别模型的区别。
  • 手撕代码:翻转列表前k个。翻转链表题很简单,很快写完了,注意了头节点处理别出错,应该没问题。
  • 覆盖字符串所有字符的最小子串,只提供思路就行。Leetcode第76题,hard难度里偏简单的吧算是。字符串子串问题基本都是滑动窗口,移动头尾指针复杂度O(n). 不过我当时没想起滑动窗口来,只提出一个O(n^2)的。

二面

  • 聊论文,同样聊了很久很细节,好像比一面还聊的深入。基本我每一处设计都有聊到,也都会问有没有考虑过别的思路,或者换成别的方***怎样。
  • 手撕代码:找出0-1矩阵里,全1组成的最大矩形面积。这题又是Leetcode第85题,hard难度。矩阵上找路径或者覆盖,直接上DP,我刷过对应的medium难度最大正方形,顺着思路就写了,但是代码写的太丑不简练。
  • 问我有一个地理坐标,怎么从我所有的几千万几百万个poi中快速查询到离它最近的几个。我是想答分治、分层索引之类的,但是面试官实际是在问,怎么设计数据结构能最快,怎么把x,y这样的坐标对存成key,没答上让他满意的答案。
  • 总之后面两问让面试官留下了编程能力有待提高的评语。

HR面

  • 聊我做的什么研究,有什么用,在微信里可以用在什么地方
  • 提到面试官对我的评价,并聊了之前提前批电面挂了的情况,问我怎么看,以及怎么评价刚刚的面试官
  • 问我对微信的了解程度,微信事业群的了解程度,为什么不够了解就投了
  • 为什么选广州(因为女朋友),又问跟女朋友的简单情况,问是不是因为女朋友在广州所以选的微信
  • 问我还投了哪里(阿里和网易游戏),为什么投阿里又不在广州
  • 有什么优势是契合微信的
  • 希望工作环境是什么样子
  • 问实习时间

最终又等了三天,发了实习offer,微信事业群,广州base,算是我理想的实习了。


阿里电面

除了腾讯,还让同学内推了阿里试试,算法工程师-机器学习。到现在电面三轮,还在等后续。

一面

  • 聊论文,跟腾讯提前批电面过程差不多,主要是我在说,没深入太多问题。
  • 我主要针对序列数据建模,问了我Markov和RNN的区别。
  • 编程题:很简单的题目,字符串出现第k多的字符,leetcode上原题,写的挺快,问我复杂度就简单分析了一下。

感觉阿里一面面试官比我还谨慎是为啥,感觉没聊多少就结束了。二面紧接着第二天就来了。

二面

  • 一样听我聊论文,没深入太多细节。
  • 问我是怎么训练论文里的RNN的,不收敛怎么办,答分训练误差测试误差,顺便说了欠拟合过拟合的应对方式,以及我模型是怎么确定层数和hidden size的,以及用了哪些防过拟合手段。
  • 问了一个实际场景,用户输入一个坐标,怎么推送给他合适的POI。问题描述的有点不清楚,我理解的也有点懵。先说根据用户特征、相似和社交关系等做个性化推送。又说如果训练数据中用户信息不是完全标注好的,就是半监督问题,可先对POI聚类或者embedding等。
  • 我提到半监督,又进一步问,在标注POI时候,如果坐标信息都是不精确的,离散的,每个用户标注的语义也是多种多样的,怎么处理。答坐标可以把小范围聚集在一起的当作一个POI,标注的时候,用户打的标签数目有限可以投票、标注的内容较多分词后用层次聚类、主题模型之类的办法,给POI打上类别标签。

二面这个场景题,我对面试官问题理解可能有偏差,他也讲的不够清楚,我都是边猜边答,反正尽可能把我知道的都说一下。二面三面隔了一周,中间在MSRA工作的师兄叫我去他那实习,因此我要么就是能去微信实习在广州陪女朋友,要么就去MSRA实习,阿里基本不考虑了,不过三面来了还是面了一下。

三面

  • 聊论文,这次我聊的比较随意,面试官就更多的问了一些细节,比如我第一篇文章用到张量分解,问我张量分解具体怎么做,如果引入更多用户特征怎么处理?张量分解怎么优化的,收敛慢怎么办?我提到二阶优化,又问我二阶优化在这里有用吗?为什么有用?还在讲第二个文章的时候问到我word2vec有用过吗之类的。
  • 问了我xgboost和随机森林了解吗?我不了解xgboost,我就说了boost的基本原理,adaboost和gdbt的基本原理,又讲了bagging的原理,以及随机森林。
  • 后面好像还问了别的,但是我忘了。。囧

三面后还是说一周内等下一轮。阿里后两面都没有编程,其实对我这种算法题老大难来说,还是挺友好的。但是流程太拖了,投了简历好久才面,一周一面,然后还不知道几面结束。


网易游戏人工智能研发工程师

因为想去广州,所以还投了网易游戏的人工智能工程师,但是内推流程搞错了,导致没推上,还去答了个笔试编程题,三道就AC一道,最后居然也给了面试通知。
HR通知我的时候让我准备电脑,结果面试又没有编程题。13号刚面了一面,两个面试官一起电话面,说等结果,不知道是只有一面还是后面还有。

电话一面

  • 简单介绍了自己的研究方向,然后开始聊论文,也是简单介绍了一下。
  • 问我ML和DL哪个更熟悉,我说DL,然后换了个面试官专门问DL
    • 先问第二篇论文里的RNN怎么设计的,其中用到的多任务学习结构有什么好处,多任务的权重怎么调的
    • 网络效果不好怎么办,要不要增加数据量?还是按欠拟合过拟合答的,欠拟合基本没有,过拟合可能有用
    • 进而问过拟合什么情况没用?答数据仍然不够,或者跟现有训练集一样有偏
    • 进而问给你一个过拟合模型,和额外很大量数据,怎么判断这些数据有没有用?想到了采样,但是一时没想起来具体怎么办,最后面试官说,可以采样了用过拟合的模型去跑跑看误差
    • 继续问还有什么方法解决过拟合,我的论文里怎么解决的过拟合
  • 然后换回另一个面试官,又开始问ML的知识
    • 先介绍了一下我论文用到过什么传统机器学习内容
    • LR和SVM训练目标的区别,老问题了
    • 知道什么参数范数惩罚?我答L1,L2是主要的,我还在别人的论文里见过Frobenius做参数软共享的。进而问我L1和L2的区别。
    • 特征选择的方法,我说我是直接用树模型,树模型本身可以特征选择,还可以L1,降维,别的不了解。
    • 文本二分类的场景,问怎么提取特征,怎么设计评价指标,怎么调节超参数。

网易笔试三道编程,面试反而没有编程。感觉看了好多面经,网易这套问法是最符合面经里问法的。


总的来说,我做了两篇论文,所以面试会有很多时间花在聊论文上,而别的东西问的很简单,并且我编程题经常出状况的情况下,也都给过了。
如果是硕士本科,可能需要更多准备项目或者比赛来聊吧。而我论文是自己全程做全程写的,所以跟面试官讨论起来并不虚,基本没在聊论文的时候被问住过。那硕士本科同学可能要对自己参与的项目和比赛也了解非常仔细深入吧,问的再细也能一条一条回复过去,应该就问题不大了。
面试技巧方面,最重要的就是主动把自己知道的都说出来(当然要有条理有逻辑),不能面试官问什么说什么,尤其问到不太会的问题,更得从不太会的问题中,尽可能展示出聊出自己会的东西(比如问我xgboost我就不太会,于是就从boost的基本思路开始说,并简单说了adaboost和gdbt)。

最后就是面经还是非常有用的,虽然这些面试官问的问题和面试套路可能随心所欲,但是出题范围基本没超出我在牛客看到的面经内容。

大家都加油,拿到大把offer,找到dream job。

#实习##网易##腾讯##算法工程师##阿里巴巴#
全部评论
求问大佬刷leetcode有什么效率高点的办法么?
点赞 回复
分享
发布于 2018-04-17 22:18
Markdown写的,为什么网页上有排版,手机上读没有排版。??
点赞 回复
分享
发布于 2018-04-16 23:25
联想
校招火热招聘中
官网直投
居然是博士大佬。
点赞 回复
分享
发布于 2018-04-16 23:32
厉害
点赞 回复
分享
发布于 2018-04-16 23:33
膜博士叔叔
点赞 回复
分享
发布于 2018-04-16 23:55
看完觉得自己渣爆了😂
点赞 回复
分享
发布于 2018-04-17 00:49
好厉害
点赞 回复
分享
发布于 2018-04-17 00:55
请问楼主知道网易人工智能工程师啥时候给回复啊。上次面完说是16号面完总结给大家一个回复。昨天等了一天邮件没消息怕不是凉凉
点赞 回复
分享
发布于 2018-04-17 06:52
厉害👍
点赞 回复
分享
发布于 2018-04-17 09:37
讲道理,问的如果是leetcode上的hard也算要求比较高了。
点赞 回复
分享
发布于 2018-04-17 12:52
羡慕微信线路面试的竟然不用面面试***会。!!!!!! HR和你说可能去哪个部门了吗?
点赞 回复
分享
发布于 2018-04-17 14:46
多谢大佬指点
点赞 回复
分享
发布于 2018-04-18 09:48
刚刚反过来,微信全程没代码,都在聊项目;网易全程手撕代码。。微信早上刚面完hr,网易明天早上。。希望能和大佬做同事
点赞 回复
分享
发布于 2018-04-19 17:46
真心佩服
点赞 回复
分享
发布于 2018-04-19 20:44
大佬好,网易采样那个题目的意思是先从额外数据中采样适量的数据再来训练(或者微调网络)看看验证集效果吗?
点赞 回复
分享
发布于 2018-07-16 17:17
大佬你好,请问你网易游戏人工智能研发工程师二面的面试模式是怎样的啊?我之前面了一面跟你一样有两个面试官。
点赞 回复
分享
发布于 2018-08-23 20:42

相关推荐

腾讯暑期实习面经:①看很多牛友都找我求面经,其实鼠鼠一面和二面的时间到现在已经过了太久了,而且牛客上有很多类似的题目面经,所以鼠鼠觉得牛友门在牛客上搜对应的方向和岗位面经帖就行了。②鼠鼠在这里说下鼠鼠的学习心得吧。鼠鼠是第一次处女面给了鹅。在3.5号收到腾子的3.7号面试邀请后鼠鼠只有两天的复习时间,所以鼠鼠通宵了两天把以前学的java、操作系统、计网狠狠的复习了几遍,当初也抱着体验一下大厂面的心态试一试,没想着能走到最后拿到了鹅的实习offer。鼠鼠期间还面试了团子,团子也过了一面和二面,但是因为鼠鼠说已经拿到了腾子的offer所以拒绝了。③鼠鼠觉得面试讲究一个天时地利人和,这是鼠鼠偷懒学习的方法(大佬专心卷就行了)。所以面试的时候最重要的是放平心态,抱着跟面试官友好交流的态度面试。面试官抛出一个问题,然后鼠鼠首先会回答这个问题是什么,然后鼠鼠不会停下嘴,继续说这个问题的扩展,抛出几个新的概念(原先问题的延伸),目的是让对面面试官听到鼠鼠抛出的几个概念,然后继续追问这些问题。这样就可以将面试官套进你的节奏里来(虽然面试官一定会有打草稿问什么的,但是鼠鼠觉得你抛出概念面试官也会问的,这样可以很有效的水时长),你抛出的概念一定是你要了解或者是熟知的,真的知道这个背后的计算机原理是什么。鼠鼠给出总结的一个万能公式:操作系统+数据结构。例如面试官问你:malloc和new的区别是什么?鼠鼠没学过c++,但是知道malloc就是用来开辟内存空间存放变量的。鼠鼠先解释这个malloc有什么用。然后说这个malloc返回的是指针,又说这个指针的设计思想有什么用:方便虚拟机管理内存,能够在不连续的内存空间上虚拟出一片连续的内存空间。然后鼠鼠又说操作系统也是有类似的功能,操作系统的内存管理也是虚拟页的形式等等等等。这样鼠鼠就抛出了好几个概念,等面试官继续追问。这样的本质就是聊天嘛,把你知道的跟面试官讲,讲错了没关系,但是不能太离谱(偏离计算机的原理)。然后面试官就问鼠鼠:虚拟内存的做法会产生什么问题?鼠鼠知道肯定会造成内存碎片,然后鼠鼠说了以后又说操作系统里有对应的策略来尽量提高内存的利用率,例如什么什么策略等等。
点赞 评论 收藏
转发
岗位:阿里巴巴-高德-杭州-信息工程-Java后端笔试:3月14日,AK一面:3月20日,面的不错二面:3月26日,面的不错HR面:4月1日,等待一个OC,求你了德子OC:4月2日,发了意向,约了4月25日入职---------------------------------------一面:一个温柔的女面试官,问了一下我在美团智能助手RAG。提了一个她们现在业务中遇到的场景:如何根据海量语音聊天对话记录,分析特定问题的结论。例如给出保险销售代表和客户语音电话记录,如何用ChatGPT从日志中准确识别“用户是否想买保险”,“买哪个保险产品”。我提出了一种分治+局部意图分组+多级索引的策略。面试官觉得答得比较底层,看得出来挺满意的。又问了另一个场景题,智能助手回答问题时效性如何保证,我给出的策略是提高粗排和精排的阈值,减少召回日志数。如果因为高阈值导致没有召回结果,再根据用户意图匹配兜底回复,并用日志记录下本次失败消息。接下来聊了聊领域驱动设计,如何战略设计,如何划分实体和聚合根,限界上下文边界如何划分。美团的项目里是怎么做的。最后问了问我是怎么学习新领域知识的(我给他看了我手机上总结的800多道八股文的题)。反问:为啥不问我八股文不给个算法题,她说觉得我本科成绩好,笔试成绩不错,就不问了。二面:一个沉默的中年男性,感觉像高p。问快速排序的原理,最好和最坏的时间的case,如何优化避免最坏情况。问常见的JUC类,HashMap和ConcurrentHashMap,LongAdder对CAS的优化,AQS原理,双向链表的插入和删除,如何设计一个高并发的双向链表(答了如果要求最终一致性用写时复制,就像CopyOnWriteArrayList。如果追求强一致性用synchronized,如ConcurrentHashMap)。然后问了一下ThreadLocal原理。问我StackOverflow出现场景,和OOM的区别。如何排查OOM(答了看gc.log,用jmap或JVM启动参数保存堆转储文件,Mat分析,顺便答了一下JVM调优年轻代和老年代的策略,内存泄露的场景,回答模式用的美团的SOP)。最后问了领域驱动设计,如何写出高质量代码。
点赞 评论 收藏
转发
26 358 评论
分享
牛客网
牛客企业服务