Spotify Machine Learning Internship

拿到Spotify MLE实习,我做对了什么?

时刻留意校内/校外的工作招聘争取内推

2018年初冬的时候,我在NYU内部的一个职业发展网站上看到了Spotify 2019年Summer Intern的招聘广告,我准备好了一份面向MLE的简历之后便投递了过去。那时候在忙着Capstone Project,就也没有想太多,幸运地是成功拿到了面试。大家要时刻留意学校内部提供的求职网站,如果有认识的学长/学姐/朋友在心仪的公司则要尽可能去争取一个内推。内推的最大好处是确保你的简历能够被HM看到。

详读Job Description, 准备一份有态度的简历

ML所需要解决的问题种类实在是太广了,再加上众多不同的MLOps框架,不同的公司,不同的职位,甚至当前所需要解决的任务都可能会导致HM带着一个预设的模板去寻找候选人,这些在JD上都会体现出来。根据JD来精修自己的简历能大大提高拿到面试的成功率!根据后来我们组的Senior透露,我当初的研究生论文主要做的是强化学习方面的研究,这和面试我的组一拍即合,面试过程中我也详细介绍了我的项目,这给我的面试加了很多分。

Get your hands dirty!

MLE的面试与一般的软件工程师面试有一个很明显的区别,就是多了or更侧重ML方面的知识,经验和解决问题的能力。这又可以分为三个方面:ML Breath, ML Depth 和ML System Design。除了最后一个和System Design有很密切的联系之外,前两者都非常的吃项目经验。推荐经常去Kaggle等网站上练练手,或者去Coursera上参与一些实在的项目。同时,一定,一定,一定不要满足于“调包”。在真正的工作中的确import一个现成的library的现象很普遍,但在积累知识和经验的过程中,我还是强烈建议能用numpy手动地去实现一些经典的ML solution(比如CNN,SVM,KMeans,etc). 这对自己理解整个模型的数学原理有非常大的帮助。 区分平庸的调包者和有思考有经验的MLE的一个重点,就是ta是不是对这背后的数学意涵理解得足够透彻。

成为T型ML人才 有的放矢

Natural Language Processing,Computer Vision,Recommendation System,Audio Processing… 不同公司不同项目组都会有特定的领域。以Spotify为例,即便公司本身在ML领域走得已经很深入,但日常所解决的问题也都是包含在了推荐系统,音频处理,最多加上自然语言处理,平时基本不会碰到计算机视觉上的问题。在某个领域钻研一下,让它成为你的强项,远好过样样都懂但样样都不精。

Bigger Picture

就像基本上每一个程序员的生涯都是从一句”hello world”开始,再逐渐分化到系统,应用,网络,架构等等不同的方面中去。整个互联网的生态是由众多个小的牛角尖组合起来的。ML领域也一样。举个例子,从CNN,到LSTM,到最近大热的Attension Based,我们很容易能找到一个track去把一个一个模型的提出,它们所解决的问题串起来。与此同时,在ML的应用开发生命周期中,MLE也离不开和ML Infra的交互:数据准备,特征工程,模型训练,检验,部署等等都和公司的其它团队息息相关(数据工程师,数据科学家,后端工程师,ML架构师等等),尽早地知道这其中的关联,尽早地能以点带面地了解整个开发周期的样貌,这在面试中会让你不经意地流露出一个成熟独立的MLE所需要具备的思维。