【算法】算法秋招个人总结
首先简单介绍一下我自己的情况,本人将要毕业于某不知名的985统计学硕,算是笨鸟先飞从2020年12月就开始投简历准备实习,最后也有幸收到了腾讯ieg增长平台部的算法offer,之后开始了长达4个月的实习,虽然没能转正但是还是感谢我的mentor和一起实习的小伙伴们让我学到了很多收获了很多,再然后就开始了我漫长的秋招之旅。截止到现在拿到了阿里、网易、华为等一些厂的offer,最后接了腾讯天美的算法offer结束了整个秋招。在这简单做一下实习和秋招的一些总结希望能帮上要准备春招和23届的同学。
前期准备就是一些老生常谈的内容,包括但不仅限于机器学习的相关知识、推荐算法的相关知识以及数据结构的相关知识等。这些知识属于算法同学的一个基本功,需要有一个长期的积累的过程,这里我给大家稍微总结一下我在学习这些知识的时候所用到的一些资源。
机器学习相关
面试期间主要看的两本书一个是周志华的《机器学习》以及李航的《统计学习方法》这两本书基本把机器学习的一些常用的算法都讲了一遍。学习过程中最好把里面的每一个算法相应的数学公式都给认认真真的推导一遍,涉及到的算法细节要弄清楚,因为面试中面试官很可能会对这些细节进行提问。初学者也可以看看course里Andrew Ng的机器学习课程,相信这也是很多人入门机器学习时候必看的入门课程吧。
https://www.coursera.org/learn/machine-learningAndrew Ng机器学习课程
https://www.coursera.org/specializations/machine-learning
http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
https://www.edx.org/course/artificial-intelligence-ai
https://www.youtube.com/watch?v=jr0zdqhBxBY
http://blog.fukuball.com/lin-xuan-tian-jiao-shou-ji-qi-xue-xi-ji-fa-machine-learning-techniques-di-1-jiang-xue-xi-bi-ji/
推荐系统相关
这里推荐学习项亮的《推荐系统实践》以及王喆的《深度学习推荐系统》,这两本书简要的介绍了推荐系统的构成与发展,里面涉及到的像协同过滤、Wide & deep和DIN等常见的推荐算法都需要熟练掌握,包括模型的基本结构优势劣势应用场景等,跟上面提到的原因一样这些都将是你面试时的必考内容之一。
https://github.com/km1994/RS_paper_study
https://github.com/km1994/GCN_study
https://github.com/km1994/RES-Interview-Notes
数据结构相关
算法面试的最后一环通常都会给你出几道算法题限时20分钟左右让你写出来,因此数据结构也会是必考内容之一,本人复习的时候主要使用的两本书一个是《剑指offer》和《代码随想录》,另外还有刷题网站Leetcode和CodeTop这些都能帮你快速上手数据结构。可能初学者刚开始刷会比较痛苦,但是当你熟练掌握一些基本算法后能感受到刷题速度的明显提升。
https://leetcode-cn.com/
https://codetop.cc/home
当然光知道知识点还不够,还需要一些实践经验对知识进行补充,能有效提升自己对知识细节的掌握程度,这些经验可以来自于学校老师给到的项目,也可以通过去公司实习来获得,如果两个都没有也可以考虑参加一些算法类竞赛。我本人就属于后者,之中大大小小参加了十来个这样的算法类比赛,也取得了一些还不错的成绩,也因为这些成绩摸到了大厂的门槛。这里给到一些竞赛的baseline供大家学习。
竞赛
全网首发! 2021 CCF 爱奇艺剧本角色情感识别赛道 baseline
结构化比赛: 如何在比赛初期建立一个稳健的 baseline
练习赛
预测分析·用户贷款违约预测:
https://www.heywhale.com/home/activity/detail/615ff7bdc270e400182b249e/content
情感分析·推特文本情感分类: https://www.heywhale.com/home/activity/detail/611cbe90ba12a0001753d1e9 视频评分预测挑战赛: https://www.heywhale.com/home/competition/61a08b7ef2ce6b001732f9c9
一般一场面试由以下几个部分组成:自我介绍-项目介绍-技术提问-数据结构与算法题,接下来我将简单讲解一下这几个阶段的一些细节。
1.自我介绍
一个常规的面试通常会在面试一开始让面试者做一个简单的自我介绍,时间要求上通常为3到5分钟,一般不会超过10分钟,内容上需要简单的将自己的个人履历介绍清楚,包括自己的个人信息、教育经历和自己最近做过什么事等。介绍的过程中需要把握“重点突出”原则,即对于自己熟悉的或者最近在做的事情重点展开来说,而对于自己接触过但是不熟悉或者时间比较久有所遗忘的事情则可以一笔带过。
2.项目介绍
简单的自我介绍结束,面试官通常会让面试者对自己简历上提到的一两个项目进行展开的介绍,面试官也会根据你的项目介绍来判断你对项目的熟悉程度以及思考的深度,因此提前准备好尤为重要。面试的过程中,面试者应该将每一个项目按照一定的逻辑叙述出来,当然在算法的项目中最重要的就是数据、特征、模型、效果,按照这个框架把项目讲清楚,让面试官听懂,这样接下来的面试也会更流畅一些。这里有个点需要注意的是自己讲出来的东西一定要做到比面试官更懂,那些含糊不清的就不要搬进来了,否则迟早会露馅。
3.技术提问
项目介绍结束,面试官会根据你项目中提到的知识点进行提问,所以自己简历上写了那些知识点一定要做到了如指掌,你的简历就是面试时候的考试大纲。这里我给大家简单列举几个在我面试过程中经常问到的一些问题,仅供大家参考。
XGBoost为什么使用泰勒二阶展开
XGBoost如何处理不平衡数据
比较LR和GBDT,说说什么情景下GBDT不如LR
XGBoost如何评价特征的重要性
XGBoost为什么对缺失值不敏感?相比普通的GBDT,XGBoost怎么处理缺失值?
XGBoost的正则化是如何实现的?
XGBoost和LightGBM的区别
请介绍下常见的几种集成学习框架:boosting/bagging/stacking
推导一下逻辑回归的损失函数,并解释其含义。
在广告LR模型中,为什么要做特征组合?
为什么 LR 模型要使用 sigmoid 函数,背后的数学原理是什么?为什么不用其他函数?
机器学习中,有哪些特征选择的工程方法?
广告点击率模型中,LR, GBDT+LR, FM, DNN等模型的优点和缺点?实际效果如何?
DIN论文中使用了GAUC作为评价指标,它的好处是什么?
DIEN引入序列信息的动机是什么?
请绘制DIEN各层的结构?兴趣抽取层和兴趣进化层。
如何理解Wide&Deep模型的Memorization?
Wide&Deep中的Memorization存在哪些缺点?
Wide&Deep模型的创新和优势是什么?
ESMM是如何解决样本选择偏差问题的?
ESMM是如何解决数据稀疏问题的?
ESMM的结构基于“乘”的关系设计而不是基于除的原因是什么?
PLE模型的创新和优势是什么?
4.算法题
面试的最后就是几道算法题让你现场进行coding,题目均来自于Leetcode,所以面试前的刷题就尤为重要。这里同样列举几个我自己在面试中常常遇到的一些算法题。
反转链表
三数之和
手撕快速排序
买卖股票的最佳时机
二叉树的层序遍历
无论面试失败与否,每一轮面试结束都需要对整个面试进行复盘,去想想面试中答不出或者答不好的问题的答案是什么,因为相比于面试中紧张的环境面试后轻松的氛围较利于我们去冷静思考自身在面试中存在的问题,也能帮助我们在下一次面试中把握机会。
往期精彩回顾
适合初学者入门人工智能的路线及资料下载 中国大学慕课《机器学习》(黄海广主讲) 机器学习及深度学习笔记等资料打印 机器学习在线手册 深度学习笔记专辑 《统计学习方法》的代码复现专辑 AI基础下载 本站qq群955171419,加入微信群请扫码: