敢问Data Scientist,Data Analyst, Data Engineer,Machine Learning Engineer有什么区别?
这是2019年11月的更新。以上这个问题是我在简书发的第二篇文章的全部内容。当时是个真小白,经过了一年多的学习,终于感觉自己升级成了假小白,可以初步分析一下我眼中这个领域中各个职业的加点方式,同时也尝试回答一下开篇的问题。
误区
以前以为去上个Machine Learning和Deep Learning的网课,拿个证书就可以从另一个行业转职做Machine Learning Engineer混口饭了。理想很丰满,现实很骨感,永远别拿自己的业余爱好挑战人家吃饭的本事。在近半年的求职过程中,投递了60多个申请,接到了10多个电话和视频面试,3次onsite面试,被打击了无数次。电话面试一半以上是已经通过了筛选,但是在第二轮的时候因为缺少软件工程和算法编程经验欠缺而被拒。Face2Face面试里还有一次是因为数学和统计学基础不合格而没有录取。
申请了一圈下来,想做一个数据科学家或者机器学习工程师,软件工程能力,编程能力,数学、统计学能力缺一不可。基础的Machine Learning才是业界的主流需求,之前引以为傲的新技术Deep learning使用场景其实很少,因为对大部分公司而言不划算。
以前认为机器学习工程师的工作就是设计模型和改进模型,其实市面上的职位介绍里只有很少一部分的任务是在训练模型上,更多的技能需求是怎么收集数据,怎么清理数据,怎么部署模型输出的结果而变成一个可交付的产品。
很多工程师花很多时间提高模型的准确度1-2%,这个在Kaggle等数据科学竞赛里无可厚非,但是在科技公司的产品研发里,最基本的模型只要满足能让他的预测功能运行起来就可以了。学术圈里层出不穷的新模型都是科研结果,而产业界中使用那些新模型所需的成本是很高的,所以哪怕一些新兴的startup也只使用最基础的模型。企业的重点永远都是围绕如何交付产品,如何收集更新的数据,如何把已有的工作借助AI来提升效率,而不是如何发明一个新算法解决一个新问题。
技能需求
回到最开始的问题,我们需要根据公司规模来讨论各个职能所涵盖的任务[1]。
如上图所示,数据领域里的活大致分成这么几层。自下而上大致分成数据的收集和管理,应用数据做分析和决策,用算法完成一些更高级的任务。
初创公司:
Startup由于资源有限人手有限,有钱招一个Data Scientist那就物尽其用吧。这个DS将负责从最下面的基础建设到应用数据做决策的全部过程,可能不需要Deep Learning因为如上文所说的,这个方面的需求其实很少,学习和实践的成本也都很高。
中型公司:
手头稍微宽裕一些的公司有钱多招一些人,那就让一个Data Enginner做最下面的两层,也就是数据的采集管理和流通。分出一个Data Scientist来继续做数据的分析和决策。
大公司:
大公司的资源丰厚,可以分工在明确一些来让各个职位的工程师从事自己喜欢而且擅长的事情以提高产量。于是乎除了DE,DS以外还会来一个Research Engineer来做ML和DL的研究工作。尽管需求没有那么高,但是我们有钱所以可以尝试用更贵的算法来实现更强大的功能,这也是大公司的优势所在吧。
由此可见,DE负责底层数据的pipeline和infrastructure,DS负责中间的数据分析和应用,ML Engineer负责研究算法并融入到这个系统中来。至于Data Analyst目前接触的不多,应该是处于中间层,但是可能使用的方法更为传统一些。尽管看起来大公司里的岗位各司其职,但是毕竟是少数,大多数公司看了一圈下来基本上更需要的是这个领域的通用人才,而且归根结底,你必须是一个合格的软件工程师。
数据科学是由数据挖掘和计算机科学在大数据的时代里新融合出来的岗位。主要任务不是怎么做模型,怎么分析数据,而是让公司在大数据的一团雾水里发现新的洞察,为产品和服务的发展指引方向。至于什么工具来实现,那是你自己的事。
我的路径以及建议
根据上面的分析,我当前的路径是做中上需求层里的DS及MLE,这也和我的学术背景以及技能set最接近。
对于跟我一样的想法而且比我还新的小白们,我的建议是需要掌握以下知识:
软件工程的基本方法论,算法编程以及各种数据结构,机器学习,设计与改进模型,数学,统计学,软件的部署等等。
很早之前就听说了很多去Leetcode刷题的故事,还以为这和我的职业方向无关,我又不是来搞软件的,迟迟没有动手。但是各种被打脸以后,乖乖开始做题。苦是苦,但是入一行就得讲究这行的规矩,别人都得过这关,凭什么你舒舒服服就把钱挣了不是么?
然后就是想办法把的技能融入进一个EndtoEnd的产品里,走一遍基本就能把这些技能都在实战中用上,面试的时候也好说。我在琢磨一下的文章里有着重阐述这个的重要性,有兴趣的读者可以移步去看一眼。
另外有个好的商业想法也很重要,技术已经不是门槛,金点子才是一个好的ML应用的关键。
有用的资源
[1] 很多灵感和观点来自这个YouTube视频。Up主Joma很有意思,讲的东西也很实用。
[2] 最近吴恩达的deeplearning.ai上悄悄推出了新的玩法:Workera ---- 一个在数据科学领域的求职一站式服务。集成了学习、测试、评价、求职、推荐全套环节。求职者首先进行职业技能测试,系统生成评价报告,然后根据强项推荐职业方向以及欠缺知识学习以供充电,最后根据你的情况量身推荐最合适的职位,还有机会给出内推。这是一个很有创意而且受AI加持的解决方案,希望可以尽快走出美洲,走向全世界。