查看原文
其他

我的算法实习经验分享:打铁仍需自身硬!

Datawhale 2024-03-22

 Datawhale干货 

作者:W同学,Datawhale优秀学习者

写在前面

大家好,我是西交W同学,本硕都非计算机科班,2023春季找暑期实习的时候收获了还不错的结果,拿到了阿里,百度,米哈游在内的几家互联网大小厂的offer,最终决定去和阿里进行暑期实习,大家分享一下我的心得体会。

相比于其他人,我的准备时间开始的比较晚,是在2月份左右才彻底放弃读博的打算,开始全身心投入到找工作的大军里的,一切与找工作相关的准备也是从那个时候开始的。所以从应试和速成的角度,确实有一些可以分享的干货和心得。但在长期的积累方面,我也做的远远不够,会提出一些方向,我与大家一起努力。这个经验贴主要会分为两个部分,知识干货和心得分享。

知识干货

在很多场面试中,面试官都透露出一个信息,就是实习面试的要求会比秋招面试低很多,比如场景题回答得很浅显,有的面试官会表示没事,毕竟你们在学校也接触不到,比如力扣没有手撕出来,有的面试官会表示这道题对实习生来说确实有些难了,所以同学们在准备的时候不要有太大压力,把自己简历上的内容复习完了就开始投递吧,ML/DL的内容是学不完的,边面边学,甚至做好终身学习的准备。

所以基于上述内容,我认为下面的三个干货中,最重要的是干货1,就是基础知识点的掌握,干货2和干货3只能说作为加分项或者和面试官侃大山的一些资料。

干货1:打铁仍需自身硬

想要求职算法实习,这里是第一处需要关注的地方。算法面试有一些相当高频的问题,所以有一些知识是一定要掌握的,包括但不限于写到简历里的项目,机器学习和深度学习方面的八股,考察对实际业务理解能力的场景题,力扣代码题。

下面罗列一些经常问到的知识点和一些推荐的资料:

机器学习知识:过拟合,欠拟合,优化器,特征工程,评价指标,常见ML算法(分类/回归/降度),经常会被问到的模型有GBDT,XGBoost,会问到它们的算法原理,建树过程,优缺点,改进方法等内容。这里推荐百面机器学习牛客网算法工程师题库统计学习方法

深度学习知识:具体考查的内容跟面试的岗位有关,推广搜就会问双塔模型,单目标DIN,DIEN,多目标MMOE,ESSM这些模型。大体上来说会考察一些基础DL模型,比如CNN,RNN,LSTM,也会考察Attention,Transformer,RL这些内容,问一些网络模型,反向传播,实习的面试不会太难,最多是手写一下LR的损失函数和梯度,但我在别人面经上看到,校招的时候好像难度会提高到手写SVM和CNN,推荐去看一下百面深度学习和你所面试岗位领域内的经典论文

场景题:会问一些和实际业务有关的问题,比如ab测试,线上线下不一致的原因,有的时候面试官也会和你描述一下他们现在正在解决的问题,让你提供一些思路和解决方案,来考察(白嫖)一下你,推荐咱们Datawhale的fun-rec开源教程

力扣:手撕代码基本已成为每场面试的保留曲目,也是衡量面试是否通过的依据之一。可以按照tag分类,套路分类,高频题榜单这些来刷,算法岗的力扣不会太难,会在medium左右,按照上面的方法大概刷150-200道左右,手撕就没有太大问题。

这里建议大家在准备的时候不要光自己弄懂一个模型,要尝试去把知识点复述出来,因为是线上视频面试,是不能真正拿一张白纸给面试官手推这些模型的,要么是写伪代码,要么是口述,所以思路清晰,详略得当相当的重要,如回答XGBoost的时候,先把和基于残差建树,贪心这两点回答出来,后续再看情况或者跟着面试官的提问把二阶taylor展开,损失函数这些东西补充出来。

干货2:关注前沿技术分享

能跟踪业界前沿技术也是一个算法工程师应具备的能力,从实习面试的角度来说,面试官会希望一个理解他现在所做事情的实习生,可以在进来之后帮他分担一些任务,所以他在面试的时候也会就自己正在做的东西进行提问,因为这也是他最了解的知识,作为实习生的我们也有必要去关注一些业界正在做的事情。

我了解到的有美团技术分享(pdf手册),淘宝人技术分享(pdf手册),小红书技术分享(b站视频)。业界整体大方向是搜推一体化,不同模态一体化,粗排精排一体化,大模型,这里值得提一下,有的部门开始做一些大模型方向的尝试,所以也会问chatgpt的四个步骤。

干货3:关注模型之间的发展脉络

这也是考察的一个点之一,就是模型的发展轨迹。多目标的几个模型,hard-parm-sharing,到mmoe,到ple,到esmm,到esm2,为什么要这么优化,在实际的业务中,每次优化都是为了解决一些问题的,或者实际使用中,平行的两个模型之间孰优孰劣。

这些问题的难度比较高,也是开放问题,是一个面试者和被面人相互探讨的过程,如果这些问题回答得不错,面试官可能就会觉得你还挺了解业务全貌的,会有很高的加分。

心得分享

心得1:多投多面

每一场面试都有很多不确定的成分,比如和面试官是否聊得来,部门是否还有hc,以及是否和岗位是否匹配。不确定性永远无法消除,寻求确定性的办法就是多投多面,把时间花在不同的公司上,把鸡蛋放在不同的篮子里。

心得2:面试过程主动沟通

面试的重点是人岗匹配,核心就是自我展示,主动和面试官沟通不仅会让他更了解你的技术水平,也会让他认为之后和你可以顺利地开展工作。尽量要避免一问一答的形式,但注意不是通过抢话来做到,而是通过适当的补充和举例子。比如面试官问你a问题,你回答不上来,但你可以说你之前了解过比较相关的b问题,它的思路是什么什么,扬长避短呗。

心得3:做好打持久战的准备

面试流程一般都比较拖拉,少数能在一周内解决战斗的都算快,这段时间保持好自己的节奏,该吃吃该睡睡该运动运动。如果结果不够好,一定是因为没有到达最后的重点,再坚持坚持,一碗朴素的鸡汤送给大家。

希望读完本文的人能有所收获

致谢

最后感谢一下Datawhale就业小组的小四哥和然哥哈,我在2023年3月12号参加了Datawhale组织的模拟面试,没有问枯燥乏味的八股,而是结合面试者自身背景提出了对应的问题,让我在正式开始面试前意识到了很多问题,向他们致以真诚的感谢。

整理不易,三连
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存