来自:海边的拾遗者

写在前面

    作者是研二的学弟,非常优秀的C9大佬,方向为机器学习/推荐系统
    本文算个纪念贴吧,宣告春招实习正式结束,今天也提交了入职文件📃,马上就要开始我的第一份工作咯……略慌。
    这两个月过的还是有点像做梦,从一月末开始复习,当时连排序算法有多少个都不知道(哎本科非科班就是那么菜)…不停的刷题看面经,感觉那大半个月学的比研究生一年半还多(毕竟日常划水,每周只去一两次实验室hhh)……
    大概到了二月中下旬,开始小心翼翼地投出第一份简历,我清楚的记得是虎牙,激动、忐忑,每天都觉得马上虎牙就要联系我面试了啊啊啊啊好紧张…每天都要去公众号查无数次,对着那个申请成功的状态叹息…唉最后虎牙初筛了我一个多月然后挂了我的简历………淦…
这个时候阿里的提前批来了,反正不进系统,海投呗,大概投了9个组吧,五个组面了我,两个组过了一面。平均大概两天一次面试,但还是谢谢阿里给了我那么多练手的机会,让我把简历的东西背的滚瓜烂熟,能侃侃而谈,信手拈来了,终于不像第一次面京东数科的时候紧张的发抖,说话都感觉喘不上来气。
    到了三月中下旬日子就开始顺起来了,当时拿到了第一个口头offer…去哪儿的搜索推荐岗,心态就稍微free了一些,觉得哎我也不是没人要…然后就接二连三的笔试面试面试笔试,最多的时候我记着连着两天都是三个面试➕一个笔试……真的是又疲倦又兴奋。
    到了四月,拒了一个小公司的算法offer之后,就开始陆陆续续接到其他oc了,腾讯,快手,美团……不过还有些很挫败的时刻…pdd连着挂了我三次简历:牛客内推一次,牛客实习广场一次,组内直推一次,哎真的是跟pdd无缘……
    也还有些遗憾,比如微软没过…再比如一直听说作业帮的面试体验很好,所以很早就投了,结果一直没信,后来又各种渠道重新投,最后终于联系我面试了…可是那个时候我已经接了腾讯oc觉得稳了所以直接拒了,同样还拒了网易的面试,哎浪费我辛辛苦苦做的笔试………再最后阿里淘系又把我捞起来想面我,也是直接拒了,当时觉得真的一滴也没有了😥😥
其实开始最想去的厂是字节,所以一直捂着简历,想缓一缓再投,没想到一缓就缓到现在还没投…有缘秋招再见吧🤪🤪
    这三个月感觉过的飞快,历历在目又感觉模模糊糊,很多画面交织在一起,第一次找工作,体验还行😬😬😬
还是希望秋招能有个好结果吧…
    如下为部分面经,墙裂欢迎各互联网大佬来撩!

微软

一面
    介绍项目。
  • 一组二极管有七个,能表示0-9十个数,现在有n组二极管,每组二极管中有一些亮,有一些灭,灭可能是因为坏了也可能是因为不需要亮。要求出这n组二极管能显示的所有数字的组合。输入:二维数组,每行代表一组二极管,每行七个,0代表灭,1代表亮;输出:所有可以显示的数字组合。例:现在两组二极管,显示的是23,那输出23,83,88,28。用了个回溯搞定。
  • 反问。
二面
    介绍项目
  • 数组,从(0,0)出发,每一步有上下左右和停留五种选择,问k步之后回到原点的概率有多大,不能超出边界……,先用了回溯,后面用了dp,面试官说我最开始不该暴力,应该直接给出最优解……emmmm
  • 反问。

去哪儿

一面&二面
    自我介绍。
  • 你这个论文是怎么做的,场景是什么,你这个酒店数据集里面是个什么样子,推荐出的东西是啥,如果我要预测用户下一个购买的物品,你这个模型可以用吗?
  • xgboost和gbdt的区别。
  • 怎么判断过拟合,你一般怎么解决。
  • 参数初始化的作用是啥。
  • 会话的长度对你的效果有影响吗?
  • graph-embedding的流程,和普通的word2vec效果的区别。
  • 说一说偏差和方差吧。
  • 什么模型能减小方差。
  • xgboost的二阶泰勒展开为啥效果那么好?
  • 了解b+树吗?
  • 写个sql题吧。
  • 讲一下dp的思想,斐波拉契数列能用dp做吗?什么问题适用于dp?
  • http里面get请求和post请求有啥不同?
  • 你论文的数据预处理是怎么做的,你把那些出现次数少的给删掉了,那你怎么推荐那些物品呢?
  • 你的embedding维度是多少?
  • 你了解mutil-task吗?
  • 你了解point-wise,pair-wise,list-wise吗?
  • 你觉得树模型和神经网络的数据预处理有什么不同吗?
  • 讲一下整个推荐系统的流程。
  • 比如我要针对一个指标,如mrr,ndcg这种,它是不可微的,该怎么处理?
  • 推荐系统的可解释性你了解吗?有哪些方法,基于深度学习的推荐系统可解释性你知道些什么?
  • 你论文里面数据增强怎么做的?
  • 高维稀疏的特征为啥不适合用xgboost?

蘑菇街

一面
    自我介绍。
  • 介绍一下论文。

  • 做实验过程中遇到了些什么问题?
  • 过拟合怎么解决,sgd和adama的区别?
  • 一个场景,比如用户点击了广告跳转进来,要展示一屏幕的物品给他,该怎么做,说一下整个流程
  • 写一下矩阵相乘代码,有三列数据,itemid/category/ctr,我想取每一类的item里面ctr最高的100个,写一下代码。
  • 你这论文里想体现出用的不同类型为啥不多加特征
二面
    自我介绍
  • 大数相加。
  • 介绍论文,关于ctr方面的论文都看了哪些,你觉得这些论文的套路是啥?
  • 如果让你再写一篇这方面的论文你会怎么写?

阿里|主搜

一面
    自我介绍。
  • 介绍论文,你做了这些实验有想过为什么这些效果会好?

    讲一下这个graph-embedding,deepwalk的思路,word2vec的思路和变种。

  • 说一下fm,deepfm,为什么deepfmfm效果好,还有dcn说一下,为啥dcn比deepfm好?
  • bagging和boosting区别
  • 过拟合的解决
  • L1和L2正则化的区别
  • 一下CF的思想,两种CF的应用场景有啥不同?
  • 介绍下LR,应用场景有哪些?
二面
二面就隔了很久了,因为内推之后一直拖着没有做笔试,想着再练一下争取全ac,结果还是0ac收场,尴尬。。。做完笔试第二天就约面了。
    二面都是让讲论文,三篇论文挨个仔细的说,然后面试官边听边问,基础知识没有涉及到什么,反而是他根据我的论文提的很多问题倒是开拓了我的很多思路,有种打通任督二脉的感觉,对自己的论文的认识都加深了一些,不得不承认阿里的面试官都很强。
    聊的还挺开心的,面试结束的时候就直接说会给我过,搞得我还挺激动。
三面
二面完一个星期约的三面,一个一脸笑呵呵的大佬。
    还是照例讲论文,但是没有让直接讲,而是先问序列推荐是干啥的,基本的任务,思路,评价指标,还有经典的模型和发展脉络,然后讲自己的论文和他们的不同。ctr的也是。
中间问了一下gru对lstm的改进。但是面试官听完我的论文不太能理解我想干什么,然后在这上面纠结了几分钟,最后到时间了就结束了,问了下实习时间。

京东|广告部

一面
    自我介绍。
  • 第一篇论文你的序列有多长,怎么做数据增强?

  • 为什么gru和attention?
  • 怎么处理变长序列的
  • 介绍第二篇论文,效果提升怎么样?
  • 讲一下第二个比赛,做了哪些特征工程
  • 介绍一下gbdt原理。
  • boosting和bagging是怎么减小偏差的
  • 讲一下lstm和gru的区别
  • 代码题:一个二叉树和一个节点,找出该节点二叉树中序遍历下的下一个节点,然后如果树有父节点这个属性,在空间复杂度o(1)的情况下找出来。
二面
    自我介绍。
  • 介绍论文和比赛。

  • deepfm和dcn的理解
  • 图嵌入的理解。
  • 代码题:1.pow(x,n) 2.链表的中间结点。
三面
    自我介绍。
  • 同样也是问deepfm和dcn,还问了wide&deep。
  • 介绍了第二篇论文
  • rf和gbdt的区别
  • 问python的一些特性知识。
  • 有没有分布式开发经验
  • 代码题:1.链表反转 2.最长上升子序列。

快手

一面
    自我介绍。
  • 你的最早的这个项目是做推荐算法相关的开发是吧?那在这里面你有对cf做优化吗?
  • 介绍你的第二个比赛
  • 你最开始用fm,deepfm和dcn做baseline,那你分别介绍一下这三个模型吧
  • 手推fm
  • 第二个比赛的评价指标是啥,AUC吗?那你说一说auc的定义和计算方法
  • auc实际上衡量的是什么能力
  • roc曲线是否会出现先增后减的情况
  • 代码题有很多车从不同位置出发,速度也不一样,如果后面的车追上了前面的车,那两辆车合并为一组,然后同速行驶,问最后到终点的时候有多少组。最开始想了个思路说给她听了,她说可以,但是会比较麻烦,然后提示了我一下,最后写出来了
二面
自我介绍。
  • 三篇论文挨个问,问的也不深。
  • 代码题:有重复的twosum

美团

emmmm,都是问论文,和一些基础问题。
一面
    自我介绍。
  • 代码题:层次遍历二叉树。

二面
    自我介绍。
  • 代码题:有序旋转数组查找。二维数组解压缩,比如[1,[2,[3,4]]]解成[1,2,3,4]。

360

面到后面也很疲了,放弃了面试完就直接写面经的习惯,所以记不住太多问题了。
一面
自我介绍。
  • 让画图给讲论文。
  • 还是讲论文,好像还问了gbdt和xgboost的区别,还有bagging和boosting吧,反正都是些面经里面常见的机器学习问题。
  • 代码题:1.二维矩阵最短路径 2.任意节点开始的二叉树的路径和
二面
自我介绍。
  • 面了半个小时,也是画图讲了一篇论文,问了一些输入输出的细节,然后就开始跟我谈心,讲他做算法的感悟,半个小时的面试可能面试官自己就讲了20分钟。。。
    讲真,受益匪浅,这位面试官跟我说做这一行最重要的还是从数据出发,分析数据,从数据反应出的现象去寻找问题,再思考原因,然后去做出自己的假设,假设有可能对,有可能错,但这也正是做算法的魅力之处。有经验的算法工程师的假设都是建立在对数据和对模型底层特别了解的情况下。
    模型不仅仅只是工具,做模型的时候不要一蹴而就,要一点点的加东西,你要去弄懂你为什么要加,加了能带来什么改进等等。举了很多例子,很生动很形象。让我多学底层,多思考,不然以后就只能成为调参师了

腾讯

一面
自我介绍。
  • 问了个比赛,对我的特征工程表示不解,在那里纠结了好几分钟。
  • 介绍fm,deepfm和dcn
  • 代码题:1.有序数组查找target第一次出现的位置 2.链表选择排序。
二面
自我介绍。
  • 问了第二篇论文和第三篇,表示很感兴趣,说还没见过这么做ctr的。
  • 画图解释论文。发现腾讯面试的一个特点就是很抠各种奇奇怪怪的细节,关注的点都是其他公司从来没问过的)
  • 深度学习的过拟合怎么解决
  • 详细介绍l1和l2
  • 介绍bp
  • 介绍sgd和bgd还有mini bgd,和它们的区别
  • 为什么l1能选择特征问工程上是有哪技巧来做到
  • 代码题:kmp
三面
自我介绍。
  • 问了第一篇论文,直接开屏幕共享,拿着论文一点点给他讲,又是关注各种奇奇怪怪的细节,哎幸好所有的工作都是我自己做的,所以都应付过去了。
  • 代码题:处理文件的工程题。

阿里|钉钉/飞猪/淘系/新零售

  • 介绍整个推荐系统的流程。
  • 召回里面是每个用户和物品都需要去计算吗?比如十亿的量级。
  • CF用在哪儿?itemCF和userCF的区别。
  • 介绍你的一篇论文
  • 发一个最近写的代码过来吧,然后照着讲一讲
  • 比赛的难点和创新点是啥
  • 海量数据取topk,复杂度是多少,还有其他方法吗?
  • point-wise和pair-wise了解吗?说说区别,为什么要使用pair-wise
  • 你的毕设是啥方向,你这个多任务模型第一个是分类,第二个是推荐,可能不是很相关,你怎么理解?
  • 介绍第一篇论文。
  • 这个深度学习模型的复杂度是怎么样
  • 把用户分成看了不买和看了要买的,看了不买的你推荐给他有啥意义?
  • 介绍一下xgboost的原理
  • 为什么树模型不用归一化
  • 非平衡数据怎么处理
  • 深度学习过拟合了怎么办
  • 深度学习的梯度消失是为什么
  • 介绍你的第二篇论文。
  • 介绍你的第二个比赛,后面复盘过吗?觉得还有哪些可以提升的地方。
  • 介绍你最近看的论文
  • 只聊了论文,沿着论文问场景延伸。
  • 图嵌入的思想
  • 你觉得是做一个图好还是多个,比如你的长期做一个图,短期做一个图。
  • 如果我想要一个多兴趣的模型你怎么做

总结

    春招终于结束了,也收获了比较理想的offer,整体春招自己还是比较满意的,当然也还有一些遗憾,不过还是加强基础和提升编程能力吧,秋招加油了。最后祝大家面试顺利,一起加油!欢迎大家来交流~
添加个人微信,备注:昵称-学校(公司)-方向即可获得
1. 快速学习深度学习五件套资料
2. 进入高手如云DL&NLP交流群
记得备注呦
继续阅读
阅读原文