推荐算法上岸历程—备战实习秋招

2022.2.23 update:
2022字节跳动春招(正式+实习)开始了,欢迎投递商业化技术
投递链接: https://job.toutiao.com/campus/m/position/list?external_referral_code=6NFB4Y8


秋招正式结束,记录一下从备战到秋招的整个过程和一些体会。具体公司的面经已经单独发过,所以这里着重介绍准备的过程和心得体会。

背景介绍

211本硕,计算机科班,没有顶会顶刊,找实习和秋招的时候只有一篇水会和一篇在投SCI期刊。研究方向是***络表示,属于数据挖掘,在推荐算法里有落地场景。研一和研二上半学期基本完成了学院毕业要求,也和老师谈好了实习的事情,整个过程大致分为4个时间段:

  • 2019.7 ~ 2020.9 打比赛
  • 2020.9 ~ 2021.3 刷题,夯实机器学习、深度学习基础,整理以往竞赛
  • 2021.3 ~ 2021.5 实习面试,刷题,夯实机器学习、深度学习基础
  • 2021.6 ~ 2021.9 实习,秋招面试

个人主要优势在竞赛经历,当然不是ACM那种大佬竞赛,这里指数据挖掘竞赛。实习+秋招所有大厂的推荐算法都面了一遍,秋招上岸广告推荐算法。

备战

确定读研后就明确工作要走数据挖掘(后面在竞赛中慢慢了解到推荐算法这个方向,并以此为目标)方向,当时了解到算法岗位3大敲门砖:实习,项目和论文。考虑到自己和研究组的水平,发顶会顶刊基本不太可能,所以整个努力的方向集中在实习和项目上。学生没资源,搞项目也很难,所以这里项目特指数据挖掘竞赛。

竞赛

竞赛是一个周期比较长的过程,所以准备的比较早,也没啥打基础的过程,以赛带练,边学边打。第一个比赛是大四暑假参加的,预测学生考试成绩,赛题很简单但却很经典,基本上囊括了数据挖掘竞赛需要掌握的所有东西。做竞赛的经验就是多去找之前竞赛的开源方案或者代码,学习他们是怎么做特征工程的,怎么构建流程的,甚至是一些场景下面的trick。这方面的资料其实挺多,有很多赛圈大佬愿意在赛后开源代码或者开文章介绍方案细节,愿意去找,愿意去学,愿意去实现,进步会很快很大。另外就是竞赛中组队的事情,很多人喜欢在群里找人带,但其实很少有前排愿意这样做,一方面大家都喜欢强强联合,所以一般会找和自己成绩差不多的人组队或者和熟悉的人组队,一方面前期大家都是单干的,后期组队融合上分。所以竞赛小白更重要的是自己先变强,尽可能把分数刷高点,后期组队更进一步,赛后多学习前排代码和方案,刚开始成绩理想不可怕,一次完整的竞赛经历对自己的帮助是巨大的,后面会越来越成功。

最开始打的比赛基本都是表格数据,纯数据挖掘,这一段时期主要是锻炼特征工程(python,pandas)和熟悉树模型(xgboost,lightgbm,catboost梭哈)了。推荐相关的竞赛比较少,完整的推荐流程包括召回,(粗排),精排。大部分和推荐相关的竞赛都集中在精排那部分,也是就点击率预估(ctr)竞赛,比如我参加过的图灵联邦视频点击预测大赛(2019),一点资讯技术编程大赛CTR赛道(2021)。但近些年的趋势,纯ctr的竞赛也不多了,前些年的腾讯广告算法大赛很多是ctr相关的,现在慢慢转向多任务多模态了,这其实也是业界关注的问题风向。如果想蹲这方面的竞赛,可以多关注华为的DIGIX全球校园AI算法精英大赛和腾讯广告算法大赛,每年都有推荐算法方面的赛题,如果能获奖,面试的时候作为项目来讲加分不少。我参加的包含完整推荐流程的就两个:KDD Cup Debias 竞赛(2020)和天池新闻推荐竞赛(2020,入门赛,没奖金,竞争小)。KDD Cup Debias 方案流程包含了召回和排序,所以业务相关性非常强,而且比赛规格高(KDD和阿里合办的),如果能获奖牌子也比较硬。在实习面试和秋招面试的时候,KDD Cup Debias竞赛被问的最多,基本上每个面试官都要问一次,导致后面要说的词都背的滚瓜烂熟了,实习的时候mentor也说没有这个经历你简历过不了。也有一些比赛使用深度学习去做,比如2020腾讯广告算法大赛和Kaggle的Answer Correctness Prediction。

纵观来说,竞赛对自己的帮助是很大的,夯实基础(python,pandas,深度学习,机器学习),了解业务流程(推荐算法相关),丰富简历。但最开始也说过竞赛是一个周期比较长的过程,每个竞赛基本都会持续2-3个月,而且短时间内不一定有好的竞赛(平台大,赛题方向好)出现,所以如果想在这方面有所受益,需要投入的时间不少,而且现在狼多肉少,想进前排也越来越难了。如果想走这条路,平时多关注各大平台的赛题,比如kaggle,天池,华为DIGIX校园赛和腾讯广告算法大赛等等,我自己做了个聚合网站,用爬虫抓取比赛信息,感兴趣可以看看MLCompetitionHub

刷题

现在找工作做题是必不可少的,所以刷题也很重要,我个人主要在LeetCode上完成。我刷题的经验比较简单粗暴,按照编号刷,median的题为主,常见的hard题为辅,中间穿插一些专题专攻,多做几遍《剑指offer》和《程序员面试金典》(这两本书不要买,LeetCode都有),遇到不会的题收藏起来,空闲时间拿出来再过一遍。作为一个菜鸡,我觉得就是多刷多记,勤能补拙,刷的多见得也多,基本上能覆盖面试官问的题目,大部分面试官都是出的原题。我从2020年8月份开始大批量刷题,LeetCode有个进度管理功能,我开了两个进度,总共做了近800道题,当然这中间有重复的。此外就是持之以恒,保持做题的状态,我基本上一天的安排,做5道新题,复习10道收藏的当时不会做的题。中后期注重做高频题目,推荐codetop,可以分公司分部门分岗位查看高频题。



基础

基础包括机器学习,深度学习和业务相关。主要学习途径就是看书,结合别人的面经抓抓重点。

机器学习我看的《统计学习方法》和周志华的西瓜书。周志华大佬的西瓜书讲的很细致,数学的东西比较多,看的时候感觉不是太适合我,所以主要还是以《统计学习方法》为主。《统计学习方法》内容比较全面,不需要全过,结合自己的面试经验来看,掌握常见的机器学习模型就好:线性回归,逻辑回归,SVM,朴素贝叶斯,决策树,集成学习,K近邻。需要知道以上模型的原理和优缺点,会手推(尤其是逻辑回归的求梯度)。lightgbm和xgboost也很重要,经常被问原理和优缺点,这里推荐几篇文章:LightGBM算法梳理机器学习 | XGBoost详解。此外推荐《百面机器学习》,有常见面试点的总结和讲解。

大四看吴恩达的课入门深度学习,面试备战主要看《百面深度学习》,然后自己总结了一些点:RNN,CNN(没被问过),Dropout,激活函数,正则化,优化器,Transformer。Word2Vec也被问的比较多,暂且也把他归到深度学习这块,主要了解negative sampling,hierarchical softmax,CBOW和Skip-gram区别。深度学习比较频繁的考察点有:

  • 如何解决过拟合
  • 梯度爆炸和梯度消失
  • BN原理
  • Dropout原理
  • 常见的优化器和他们的优缺点
  • Transformer结构
  • self-attention原理
  • 自己搞深度学习的有啥心得和体会(各讲各话了)

业务相关就看个人了,看你的岗位方向。我主要看的是推荐算法相关的,推荐《深度学习推荐系统》,包含了推荐系统的各大模型和其他问题,适合入门和了解初步的推荐系统体系。除了这本书之外,也可以多关注业界发展,比如大厂发的论文或者业界大佬发的文章,追踪一下热点,比如冷启动问题,长序列建模,多任务模型。尽可能丰富自己对推荐系统的了解,让面试官看到你身上的亮点,会有面试官让你谈谈你对推荐系统的认识或者最近看的论文。

实习

实习有利有弊,好处在于实习转正相对比较容易,有个保底,也可以提前了解组内业务和环境;坏处就是会和秋招冲突,耽误面试。今年因为疫情,面试都是线上,所以对我来说实习的好处还是远远大于坏处的。还有一点建议,如果有高追求的话,不要实习转正就躺平,哪怕你非常想待在实习的组,因为你all in之后有可能被压价,而且不能预料业务会不会发生变动。

实习面试的时候建议先从小公司面起,积累经验,形成自己的自我介绍和项目介绍模板,另外也可以看看公司注重哪些点,查漏补缺。具体的面经就不在这里展开了,可以查看算法暑假实习面经或者进我的牛客主页看。小公司的实习消息和投递可以关注牛客的实习广场,大公司的实习投递时间基本上参考往年就可以了,都有自己的投递系统。我个人的时间安排如下,基本上过完年回来就开始高强度面试了,3月份最为忙碌。面试内容基本围绕做的比赛展开,介绍方案,由方案引出一些细节。

  • 2021.2 阿里各部门开始宣传收简历,支持提前面试
  • 2021.2 ~ 2021.3 面试了一些小公司
  • 2021.3.1 阿里系统正式开放
  • 2021.3月初 字节,阿里,快手,腾讯,百度开始面试
  • 2021.4月初 美团开始面试
  • 2021.5月初 拼多多开始面试

秋招

秋招我是一边实习一遍准备的,6月底去实习后刷题就不多了,面试时间也尽量安排在晚上或者早上,甚至周末。大部分公司都是会提前约面试时间,和面试官沟通就好。各个公司校招开始可以关注牛客的校招日历,比较全面。秋招时间不是太充裕,要保证实习工作的完成,所以基本都投的大厂。实习在北京,后面正式工作想去上海,所以后面放弃了不在上海的大厂。上海腾讯算法岗太少了,我在BOSS上勾搭了好几个腾讯的招聘人员都没啥进展,系统里也没上海的捞。秋招面经可以看算法秋招面经,也不展开了。

#面经##校招#
全部评论
头像好熟悉2333,是【第一次打比赛】嘛🤣
1 回复 分享
发布于 2021-12-14 22:45
楼主分享的好实在,受益匪浅!!!感谢感谢😁
1 回复 分享
发布于 2021-12-28 10:00
蟹蟹楼主!辛苦惹
点赞 回复 分享
发布于 2021-12-03 16:06
楼主最后去哪了
点赞 回复 分享
发布于 2021-12-05 13:14
学长好强!
点赞 回复 分享
发布于 2021-12-05 22:25
大佬当时KDD的成绩是多少。我想对比一下自己的竞赛成绩看好不好找实习
点赞 回复 分享
发布于 2022-02-05 11:30
tql,快赶上我师兄了🙃
点赞 回复 分享
发布于 2022-02-25 17:21
大佬可以恰微信嘛😃
点赞 回复 分享
发布于 2022-03-22 22:52

相关推荐

评论
48
191
分享
牛客网
牛客企业服务