查看: 3994|回复: 55
收起左侧

[找工就业] quant 转 DS/MLE 全系列面试准备+经验分享

    |只看干货
本楼: 👍   95% (20)
 
 
4% (1)   👎
全局: 👍   97% (48)
 
 
2% (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 暴富了)的向往,就开始准备跳槽了。

1. 确定自己的 target position-baidu 1point3acres
市场上主要的 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的见解和准备过程。
根据 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 一些。
. check 1point3acres for more.
依据重点排序
- 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 不好的印象

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’],这几个得会


两个经典的题库,最好都要做完,个人觉得 1-2 遍足够了,不一定要写出来,脑子里可以很快的浮现出 query 就可以
https://www.hackerrank.com/domains/sql
https://leetcode.com/problemset/database/

- AB testing
这里泛指 ab testing 中的Hypothesis Testing 以及前后期的实验设计和对 pm 的实验解释和建议。

实验设计的话,这个希望大家能上一下 udacity 的ab testing 课。
  • 前期实验设计:

metric design,sample size,population,flow design, experiment period,
每一个都有很多的考点,基于 business 的metric,sample size计算的四个要素(其中的标准差怎么算,基于什么分布),实验过程中就已经显著了怎么办,这些都是考点。

  • 后期实验分析:

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 亲身体验一下是最好的,在面试的过程“有意”的提及自己的使用感受,会比较加分。这里我提供一个我分析的框架,附上图片了,大家可以按照这个模板挑一些重点分析,千万别生搬硬套。如果有不理解的,欢迎留言交流。. check 1point3acres for more.

- 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 很久也不知道为什么过不了,气的睡不着,最后做出来后又十分的畅快,建议大家加个小分队,相互鼓励!

这个算法的介绍推荐大家看看 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,并行的工具是什么?


广度的话就是 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 了,如果大家有相关的问题的话,可以留言讨论一下。

- 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. From 1point 3acres bbs

3. 一些 tricky things 和碎碎念
  • 准备 cheat sheet,像附件的 case study 的 framework,太多了记不住,我面试的时候也会看的,没什么不好意思的。如果大家能多练习,背下来当然是最好的。
  • 多找人内推,地里是个很不错的资源,每天都会刷一些有没有新的帖子来内推,很高效。如果有想去的公司,我也会先搜一下地里有么有同胞内推 。内推的模板,自我介绍都准备好,到时候发邮件效率高。. check 1point3acres for more.
    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

评分

参与人数 68大米 +82 收起 理由
Johanna + 1 给你点个赞!
hukeying + 2 谢谢分享!
JoannaQiao + 1 赞一个
pewpewpew + 1 谢谢大哥
syang620 + 1 很有用的信息!
bendd + 1 这地里每天能加的米越来越少了...
schnappixu + 1 赞一个
davidwangv5 + 1 赞一个

查看全部评分


上一篇:AWS IoT
下一篇:有人用过thinksoftwarelearning的资源吗

本帖被以下淘专辑推荐:

 楼主| seewhatsee 2021-10-11 08:53:34 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   97% (48)
 
 
2% (1)    👎
匿名者 发表于 2021-10-10 14:11
楼主你好,我目前也是quant,也想转tech方向, 谢谢你的分享。想请教你几个问题:
1. 你提到做PM 每天主要 ...

谢谢你的提问呀,谈不上请教,可以互换一下意见。

1. Totally same,paper 里的 assumption 和 model result,其实都是有很多的局限性,一般我们不会去直接 采用 paper 的方法,都是希望能从中学到新的 idea,和新的data source,尤其是来自学界的论文,可以想一下他们的 idea 和 alpha 来源,会不会和现有的 strategy 弱相关。业界的 paper 就更要留意,要知道他们 performance 好的原因是什么?像一些 bank 的 paper,就不说哪家了,用了一些 analyst report 做 NLP,结果效果不好,又给加了一个 momentum,效果就好了,然后就拿出来卖了,这种都是要小心的。新的策略都是要做一些 attribution analysis,加以甄别。

2. 我们主要用的就是 ML,注意的方面就是数据的准确性,no look-ahead bias,别一上来就ML model,先用简单的,参数少的方法看看效果,不错的话再慢慢加。另一方面就是 model 的可解释性,这个资料很多,ML 的参数的鲁棒性,alpha decay 的情况,都是可以去 measure model 的能力。

3.  纯技术的来说,没有很大的差别,像我做 NLP,一些语义理解,其实和 DS没很大差别,更多的差别还是在应用层面,DS 更 focus 在 product,PM 更 focus 在 performance 和 market . From 1point 3acres bbs

4. 这个也是我前期面试的痛点难点,我觉得可以拿一些小公司练练手,看看地里的过经,最重要要的就是形成一个产品分析的框架,可以参考我 po 的图片。这个每个公司focus 的点都不一样,确实是准备的难点,如果有不同公司的DS朋友,多请他们吃饭学习一下。平时练习的话,可以想象一下自己是 product manager,如果你要设计一款产品,在公司不同的阶段,会去准备什么 feature 和对应的 metric。

5. Feature engineering的思路你可以考虑不同的 factor 呀like value/ mom etc,还有就是不同的 data source 有不同的feature。model evaluation 是LZ 自己写的内部 tools,没有的话建议团队写一个或者网上选一个改一改,focus on 不同时间的 performance,risk,turnover,factor exposure,alpha decay,market impact etc

6. AB test 我觉得主要就是数理统计基础(各种假设检验)和实验设计,这个网上都有很多资料。DS project 的话,我觉得 kaggle 里有很多,主要分 EDA 和 modeling,你可以选那些 vote 很高的 notebook 学习一下。

有后续问题我们再继续交流!
回复

使用道具 举报

地里的匿名用户
匿名用户-529  发表于 2021-10-11 05:11:48
本楼: 👍   100% (1)
 
 
0% (0)   👎
楼主你好,我目前也是quant,也想转tech方向, 谢谢你的分享。想请教你几个问题:
1. 你提到做PM 每天主要read 和implement paper。可在我们实践中发现,很多paper的idea实盘效果并不好,os period都不赚钱,不知道你们会不会有同样的感觉。
2. 你在做PM 的时候用ML 的model多吗,很多金融数据非常noise, 拟合优度甚至在0.01以下,用ML的model非常容易overfit. 你们用ML的时候会注意哪些方面呢?
3. data science 的哪些领域和你做PM时候做的比较类似?
4. 我平时基本就是测model,想idea, 所以product sense 方面可能有所欠缺。这方面如何训练呢。-baidu 1point3acres
5. 对于ML的知识,我们平时用ML相对粗糙,feature eng和model evaluation部分都不精细,因为预测股价实在太难,精细了也没提高多少T_T。这方面的训练是有什么project 或者文献可以参考吗
6. 除了楼主提到的AB test 可以看udacity的project, ,其他data science 方面有有哪些 project推荐呢,最好是能短一点但能cover 面试的那种。

再次感谢楼主, 愿之后能一直交流哈
回复

使用道具 举报

dongporou 2021-10-11 01:35:19 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   95% (359)
 
 
4% (16)    👎
楼主,可以分享一下quant和mle/sde 行业对比吗?
你在buy side 做pm,其实之后去hedge fund自己干应该是可以几个million的package?
很多在buy side 做quant research role的, 跳槽都需要track record,还在想怎么能变成pm track.
看见你从pm转走了,想问问原因?
加米!
回复

使用道具 举报

mountsouth 2021-10-9 13:45:21 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   95% (1224)
 
 
4% (63)    👎
问下lz简历里写的是工作中的项目还是有自己额外做的项目?我作为ds想转MLE但很难拿到面试。。
回复

使用道具 举报

Wangdong8500 2021-10-9 14:50:32 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (1167)
 
 
3% (45)    👎
吊啊,三个月就搞定了,我三个月题才刚刷完,又面了三个月才转成码
回复

使用道具 举报

 楼主| seewhatsee 2021-10-9 15:06:28 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (48)
 
 
2% (1)    👎
mountsouth 发表于 2021-10-08 22:45:21
问下lz简历里写的是工作中的项目还是有自己额外做的项目?我作为ds想转MLE但很难拿到面试。。
都是工作的项目,由于team很小,做的都是end to end work,会follow 整个process 。如果你做的是偏model的ds,建议多写一些ml的工作内容,即使没有也可以自己写一些project 尽量和现有工作挂钩,也可以写上去的
回复

使用道具 举报

mountsouth 2021-10-9 15:10:53 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (1224)
 
 
4% (63)    👎
seewhatsee 发表于 2021-10-9 03:06
都是工作的项目,由于team很小,做的都是end to end work,会follow 整个process 。如果你做的是偏model的 ...

多谢。那你说关于ml的内容是关于数据pipeline和model deployment方面的对吗,比如用到了哪些tools一类的?
回复

使用道具 举报

 楼主| seewhatsee 2021-10-9 15:22:25 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (48)
 
 
2% (1)    👎
mountsouth 发表于 2021-10-9 00:10
多谢。那你说关于ml的内容是关于数据pipeline和model deployment方面的对吗,比如用到了哪些tools一类的 ...

就看你对哪块比较熟悉以及以后想去公司的要求, 如果是 model 的话 regression classification model 的 keywords 要有,有什么样的效果。model deployment 如果你有熟悉的工具 like sagemaker 也可以写上去。你可以参考一下 ML system design 里的每个步骤,根据自己的工作内容写成 bullet points
回复

使用道具 举报

 楼主| seewhatsee 2021-10-9 15:23:55 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (48)
 
 
2% (1)    👎
Wangdong8500 发表于 2021-10-8 23:50
吊啊,三个月就搞定了,我三个月题才刚刷完,又面了三个月才转成码

我要求不高,大概刷了半个月的样子,慢慢找到感觉了就去面了,有个不错的 offer 也就不折腾了,跳槽太心累了。
回复

使用道具 举报

mountsouth 2021-10-9 15:25:41 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (1224)
 
 
4% (63)    👎
seewhatsee 发表于 2021-10-9 03:22
就看你对哪块比较熟悉以及以后想去公司的要求, 如果是 model 的话 regression classification model 的  ...

恍然大悟。我基本是围绕modeling来写的,确实不适合投MLE。。感谢
回复

使用道具 举报

zjspm 2021-10-9 15:38:57 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (15)
 
 
0% (0)    👎
好贴啊 谢谢楼主 DS转MLE进行时中 对面coding算法那轮没多少信心 楼主是怎么做到刷50题就都面过了的!太牛了吧!我刷200感觉就跟都忘了似的……哎
回复

使用道具 举报

_DOGGY_ 2021-10-9 15:51:59 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   79% (531)
 
 
20% (140)    👎
楼主,谢谢总结。原谅我懂得少。额,LR是什么😂?我也是MLE,真的不知道。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表