活跃农民
积分 444
大米 颗
鳄梨 个
水井 尺
蓝莓 颗
萝卜 根
小米 粒
学分 个
注册时间 2021-6-19
最后登录 1970-1-1
2021(7-9月) -MFE/Fin/FinMath 硕士 +1-3年 | 猎头|BayArea湾区 MachineLearningEng 全职 @自动驾驶
本帖最后由 seewhatsee 于 2021-10-8 15:01 编辑
. .и
三个月全力跳槽终于结束了,最后去了一家做自动驾驶的公司做 MLE,中途走了许多的弯路,也总结了一些个人的经验,希望大家求职能一切顺利!
我现在主要在buyside 做 portfolio manager,做一些 modeling,alpha signal etc,平时工作不太忙,主要是读 paper 和 implement,老板不太管,所以也给跳槽留有了充分的时间。由于一些个人原因,要去西海岸,也对 tech culture (比 finance 真的 flexible 很多!)和包裹(finance 基本都是没有 stock 的,更别说 ipo 暴富了)的向往,就开始准备跳槽了。
-baidu 1point3acres
1. 确定自己的 target position
市场上主要的 data 的岗位太多了,data scientist,applied scientist,research scientist,machine learning engineer(i.e. SDE, data science)。. ----
由于前期对 data 的行业不太了解,走了许多弯路,前期投的主要岗位都是偏 product 相关的 DS,发现在面试的过程中对 product sense,ab testing 和实验设计的考察非常多,如果大家本身是做 product 相关的 DS/DA,这个应该是最容易 transfer 的了。也在面试的过程中,学习和了解到了很多的product 相关的名词和技术,后面在具体说一下准备的过程和材料。在面 DS过程中了解到 MLE也是一个不错的选择,相对于 product sense,算法刷题对一个理工男来说,是比较好掌控和量化的,在 JD 中也对 ML 的要求比较高,结合自身的情况,刷题会比刷 product和实验会更有动力。于是开始主要找 MLE 的岗位。希望大家不要像 LZ 这样前期对 target position 模糊不定,造成一定的时间和资源的浪费。
2. 准备和一些小技巧
2.1 DS
其实 DS 面试占了全部的 60-70%,就先说一下自己对 DS的见解和准备过程。.google и
根据 JD 确定一下这个岗位是否是自己想去的,如果这个公司 ds 有很多个 track,注意是analytic or model,现在很多 DS 其实对应着DA的工作,主要看一些 keywords,SQL/AB testing/ Dashboard 一般对应着analytic work,看他对 ML的要求有多高,一般 basic ML like regress/SVM 这样,一般也是偏analytic的。像 FB,robinhood 他们的 DS 都比较analytic,像 Google,Uber 的 DS 比较hard core 一些。
依据重点排序
- SQL/ Python
SQL 基本是 DS的必考选项,join/groupby/where/order/limit/subquery/case when 这些都是必考的,如果大家平时工作中就用到了这些,其实不需要太多的准备,如果这个 DS 是非常偏 dashboard / reporting/ pipeline的话,window function 也是会考的,lz 也有遇到,但是不多,像 dropbox,confluent 都会考察,其中 rank,rolling 频率最高。另一个注意的点就是,sql 不光考察 query 的能力,也考察 product 能力,一定要 clarify 面试官要求是什么,你可以说明一下你的 metric/ ratio 会怎么计算,得到肯定答复后再写,别上来就直接写,最后发现写的的东西不是面试官要的,一是浪费时间,二是留下一个 product sense 不好的印象.1point3acres
Python 不一定是必考,但是考的话主要是 easy 的algo 或者是 pandas 的 data manipulation
Algo 一般只考 string 的处理 like split,array 和 dictionary 的结构使用。 data manipulation 就是对 dataframe的处理了,像 df.groupby(col_1)[col_2].mean(), df.col.rolling().mean()…,df[lambda x: x.col==‘abc’],这几个得会. From 1point 3acres bbs
两个经典的题库,最好都要做完,个人觉得 1-2 遍足够了,不一定要写出来,脑子里可以很快的浮现出 query 就可以
https://www.hackerrank.com/domains/sql
https://leetcode.com/problemset/database/
- AB testing.google и
这里泛指 ab testing 中的Hypothesis Testing 以及前后期的实验设计和对 pm 的实验解释和建议。
.--
实验设计的话,这个希望大家能上一下 udacity 的ab testing 课。. ----
metric design,sample size,population,flow design, experiment period,
每一个都有很多的考点,基于 business 的metric,sample size计算的四个要素(其中的标准差怎么算,基于什么分布),实验过程中就已经显著了怎么办,这些都是考点。. 1point 3 acres
.1point3acres
Hypothesis Testing 之前的数理统计学过,主要就是 t-test 和 z-test,他们的区别是什么,什么时候用哪个(像proportion就是用 z-test)。检验结果的解释,常考 p-value 的tech/ no-tech 解释,这个要背好,有时会问区间估计。然后就是怎么和 product manager沟通,怎么解释,不显著怎么办,他坚持要 launch 怎么办,其他的指标trade off (e.g engagement and ads revenue) …
- Case study
这个也是必考的,是不是感觉 DS 真的非常多分析和 collab工作。一般来说有几个大类,某个指标上升/下降了怎么分析,要 launch 一个新的 feature 怎么分析,这都是case by case,希望面的时候有机会可以下载他们的 product 亲身体验一下是最好的,在面试的过程“有意”的提及自己的使用感受,会比较加分。这里我提供一个我分析的框架,附上图片了,大家可以按照这个模板挑一些重点分析,千万别生搬硬套。如果有不理解的,欢迎留言交流。
. 1point 3 acres
- take home challenge
我一共做了 8 个。现在一般公司要求做一个 take home,确实挺花时间的这个,大家可以认真的做 1-2 个 project,然后都把内容写成 function,尤其是画图和 modeling,这样的话基本所有的 take home 都可以套用。大家提交 Jupiter notebook的时候最好在顶部写一个 summary markdown,把目录和重要结论写上,会比较加分。然后就是代码尽量多写一写 comments,图片或者分析结果后面多加一些解释。建议大家也别话太长时间,一般 10-12 小时足够了。不太好 share my code,附件share了其中一个的 framework,供大家参考,GitHub 里有很多优秀的 project,建议大家多看看,构建一个自己的 framework。
. ----
- ML
DS 的话看具体的岗位,一般来说对 linear regression/ LR 掌握细节,然后把ML八股文那些准备一下就够了。具体的准备细节放在下面的 MLE 里写。. ----
2.2 MLE
大家搜岗位的时候别只看 data scientist,MLE。有的时候,岗位的名称是 software engineer, data science/AI framework。
- Algo
Algo 就是重中之重了,估计占 50-60%的时间,把自己去面 sde 去准备,medium - hard level 的题。刷题应该其他地里的帖子说的更好,我就简单说一下我自己刷题的情况,我刷了大概 50 题左右。建议大家多看看地里面经,一边面一边刷,一定要按照算法类型刷,像 DFS/BFS 是刷的重点。每个题下面都有 similar question,建议一起刷了。每个题都可能有很多解法,多看看 discussion,总结一下别人的思路以及复杂度。lz 从最开始的DFS都不会写,到最后 AWS SDE vo coding 都做出来了,题不在多,相信大家多思考和总结,每晚睡前like洗澡的时候,回想一下自己今天刷了哪些题,属于什么类型,有什么样的写法,把他们像快照一样存起来,第二天刷题前再回想一下。刷题真的是一个痛并快乐的过程,有的时候 debug 很久也不知道为什么过不了,气的睡不着,最后做出来后又十分的畅快,建议大家加个小分队,相互鼓励!.1point3acres
这个算法的介绍推荐大家看看 https://www.bilibili.com/video/BV1sy4y1q79M?p=67
- ML
因为 LZ 平时工作接触这块比较多,就没有花太多的时候,把网上的 ML 面试题看了一下就没有太多的复习了。这一块一般考察深度和广度,深度就是具体的理论,广度就是各个算法之间的 pros and cons。
深度一般考察logistic,linear regression,naive bayesian,尤其是 LR,一定要吃透。LZ 举几个例子,看看大家觉得自己有没有准备到位。
LR 的基本假设是什么,数据服从什么分布,是生成还是判别模型 LR 的优缺点 LR 和 linear regression有什么不一样(都是广义的线性回归,优化目标区别,LR 鲁棒性更好) 怎么防止过拟合 为什么正则可以防止过拟合,L1/L2 区别,分别是什么先验?L1不可导怎么办(坐标轴下降法,最小角回归) Cost function 是什么,优化目标函数是似然函数,会推导么,为什么要用对数似然 参数怎么求解(梯度下降法,随机梯度下降法,区别是什么,后面这几个知道更好 like 牛顿法,LBFGS,BFGS, OWLQN) 特征高度相关怎么办,参数会有什么影响 不一定考,LR 在怎么并行,batch gradient descent,并行的工具是什么?. 1point 3 acres
广度的话就是 ML 的八股文,地里应该有,一定会考的比如各种 metric(precision, recall, AUC 是重点,怎么来的,数据 balance 和 imbalance 应该用什么),random forest 和 xgb 有什么差别,这个一般是根据对话和 resume 确定的,自己不懂的东西不要说,不要写。一般不会让你去推 xgb 的,深度到 2阶导,重要的参数,并行就可以了。网上有人推荐 ESL 什么的,真的不太推荐,耗时耗力。我一般都是直接搜某个算法考点,推导等等,看别人总结的帖子,如果能 cover 住就可以了,其实面试官也不一定能深度理解的,面试嘛,让他相信你懂就可以了。
另一块就是 deep learning 的东西,这个看具体的岗位,有的需要 NLP,有的需要 perception。如果不是很对口的话,其实没有必要浪费时间面试,因为 resume 里写了一些 NLP,所以买时的时候考了 topic modeling,BERT,transformer 等等,怎么调参,怎么防止 overfit,怎么还有一些工程实现的东西,这个 case by case 了,如果大家有相关的问题的话,可以留言讨论一下。
.1point3acres
- ML system design
这个一般 experienced hire 会考的,看你面的岗位,我没有被问到 MLOps的东西。这个平时有时间多看看 blog,like airbnb,Uber,Netflix 的,可以学到很多,短效的话,把下面的两个 link 多看看。有的面试管是告诉你一个情况,让你设计,也有的是让你说你的一个 project,然后从 data collection 一直go through 到 deployment,各个环节的细节一定多练习,自己不熟悉的板块可以问问其他组员了解一个大概,到时候说别的 team 负责这一块,但是你知道大概的 framework,就可以了。
. https://towardsdatascience.com/h ... estion-a98656bb7ff0
https://huyenchip.com/machine-learning-systems-design/toc.html
3. 一些 tricky things 和碎碎念
准备 cheat sheet,像附件的 case study 的 framework,太多了记不住,我面试的时候也会看的,没什么不好意思的。如果大家能多练习,背下来当然是最好的。 多找人内推,地里是个很不错的资源,每天都会刷一些有没有新的帖子来内推,很高效。如果有想去的公司,我也会先搜一下地里有么有同胞内推 。内推的模板,自我介绍都准备好,到时候发邮件效率高。
https://jobs.1point3acres.com/referral 准备一个 Excel 记录自己的申请过程,时间,job link,及时和 hr follow up
https://docs.google.com/spreadsh ... /edit#gid=815296917 准备多个简历,DS 的,MLE 的,SDE 的,关键词不一样的,像 DS 的话一些 collaboration,metric 的 keyword 一定要有,根据自己的 dream company 设计一下 一定要注意身体,千万别把身体累坏了,奖励餐多安排安排。 工作嘛,缘分最重要。LZ 一个 quant,做偏 ML 和 NLP 的东西,也是跳到了一个自己完全不熟悉的自动驾驶领域,也成了转码大军的一员。以为自己会 quant 一路到黑,最后创业做一个自己 fund。也会思考自己是不是就远离金融了,之前的经验和学习都白费了。但是人生无尽可能,谁知道未来会发生什么呢,趁还年轻可以奋斗,何不尝试一下呢。 希望大家找工作一切顺利!多加米!
本帖子中包含更多资源
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
上一篇:背景调查 Unpaid intern 经历 下一篇:有人用过thinksoftwarelearning的资源吗