雷锋网按:本文作者朱赟,Airbnb资深美女程序媛一枚(友情提示:头像即真人)。
(图:Emily Cheng 手绘,Airbnb 程序媛,我的邻座)
硅谷的大部分公司,都有很多的Data Scientist,简称 DS,不知道国内是不是叫数据科学家。
前几天 InfoQ 的网站上发布了一篇文章《Airbnb支付平台如何进行异常检测》,翻译的是 Airbnb 公司博客上的一篇英文原文。
这篇文章讲的是 Airbnb 的一个异常探测系统:
Airbnb为全球190个国家提供服务,支持多种货币类型。大部分情况下,支付系统会成功支付,但有时会出现暂歇性故障,比如,某些货币不能处理或者支付渠道不可访问。为了能够尽可能快的捕捉到这些故障信息,公司的数据团队开发了一个实时的异常检测系统来甄别这些问题。这个异常检测系统可以很好的帮助产品团队定位问题,也让数据分析师能腾出更多的时间来做其它工作,比如,新的付费方式或者产品上线的A/B 测试、定价或者价格预测和构建机器学习模型来做个性化推荐。
注:InfoQ 作为 IT 媒体界的翘首,在规范翻译英文博客的流程上起了一个很好的表率。首先就翻译的准确性来说,InfoQ 网站上的翻译总的来说质量是很高的,也有专人校对。此外,我知道他们翻译的文章是联系授权的,就说这一篇,也是得到了 Aribnb 的 eng 部门和 PR 部门首肯的。在此对 InfoQ 对知识产权的尊重表示一下个人小小的敬意。
这个异常检测系统我们现在仍然是在使用的,不过略有进一步的改进和完善。英文原文是我们组的一位 Data Scientist 陆竞骁写的。发布之后,也有几个朋友私下问了一些细节问题,比如:“这样的系统是怎么从无到有做出来的?” “需要什么样的人来做?” 等等。所以今天就大概聊聊公司对 Data Scientist 的技能要求以及平时工作的一些大概内容吧。
顺便提一句,Twitter 其实也有一个类似的异常检测系统的基于R语言的开源包 。和我们的主要区别在于对于 seasonality 的处理。Airbnb 使用 FFT 模型来模拟 seasonality 的方式可能使用起来更加灵活一些。有兴趣的可以下载 Twitter 的开源包,然后根据自己的需求做类似的系统。我们的系统目前还没有开源。
在一般的互联网公司,DS 的工作可能包括(却不止于)下面四类:
构建 Dashboard。这在有些公司是由 Business Intelligence(BI)来做的。主要是使用一些统计工具和画图工具来用创建 Dashboard,使得关键的 metrics 和信息可以一目了然的表示出来。并将一些数据之间错综复杂的联系用最直观的方式,为公司别的员工展示。让包括 PM、经理等人员对于公司各个层次、各个方向的信息有更准确的了解。
和数据工程师一起采集和清理数据,构建数据管道。这包括使用各种脚本语言(如 Python),写一些程序,获取需要的数据,并对数据进行一定的处理。
机器学习方向的数据科学家和机器学习方向的软件工程师一起构建机器学习模型。并一起对学习的结果进行分析,和参与到参数和模型的调整中。
各种数据分析。包括对 A/B 测试的结果的统计分析。A/B 测试可能在很多公司的使用和机器学习差不多的广泛了。简单有效,尤其适合面向用户的产品特性或者 UI 方面的决策选取。方法很简单,将一个产品的两种/多种设计随机均等地推送给不同的用户组,根据用户的使用反馈回来的数据的分析,快速有效地决定哪一种设计更优。或者说哪一种设计针对不同的人群和场景更优。这些结果有时甚至会与设计时的直觉判断相悖。但是当采样范围和数据累积均达到一定的程度时,提供的结果还是相当有说服力的。
大都 DS 都是来自于数学和统计专业。然而也有很多来自物理、机械工程、金融等专业。相对而言,DS 比码工的平均学历要高,也就是硕士博士的比例更大一些。
知乎日报上《如何成为一名数据科学家?》一文中提到:
数据科学(Data Science)是从数据中提取知识的研究,关键是科学。数据科学集成了多种领域的不同元素,包括信号处理,数学,概率模型技术和理论,机器学习,计算机编程,统计学,数据工程,模式识别和学习,可视化,不确定性建模,数据仓库,以及从数据中析取规律和产品的高性能计算。数据科学并不局限于大数据,但是数据量的扩大诚然使得数据科学的地位越发重要。
数据科学的从业者被称为数据科学家。数据科学家通过精深的专业知识在某些科学学科解决复杂的数据问题。不远的将来,数据科学家们需要精通一门、两门甚至多门学科,同时使用数学,统计学和计算机科学的生产要素展开工作。所以数据科学家就如同一个team。
曾经投资过 Facebook,LinkedIn 的格雷洛克风险投资公司把数据科学家描述成“能够管理和洞察数据的人”。在 IBM 的网站上,数据科学家的角色被形容成“一半分析师,一半艺术家”。他们代表了商业或数据分析这个角色的一个进化。
其实除了金融等领域对 DS 的技术背景有着上面的严格的要求,很多互联网公司如 Square、Airbnb、Facebook 等对于技术背景达到一定的水准后,更看重的其实是另外一些软技能,如:
对数据的敏感性。能不能将数据里隐藏的信息通过建模等的方式找到并加以验证。
和各种非 DS 的沟通能力。Data Scientest 通常都是分配到组里的,需要和产品经理、工程师等很紧密的合作。协调组员之间的信息传递,将一个数据驱动的测试方案执行出来,都是一个优秀的 DS 应该具备的素质。
数据的可视化表示。知道怎样选取最有效的方式,将数据中的信息准确明了的表示出来。
对数据和公司核心 Metrics 之间的依赖性、相关性能做出准确的分析。这样才能有助于提出更有利于提高公司 Metrics 的方案。
这也是为什么很多硅谷的公司在招 DS 的时候,更愿意招有工作经验的 DS,很多中小公司甚至干脆不招毕业生。而因为各种数据生成的 dashboard, 更是公司高层做决定的一些主要依据。
这个问题我的数据不够,不好以偏概全的来误导。不过倒是让我想起来另外一件事。
大家经常看到 LinkedIn、GlassDoor 等网站对各个职业的平均水平进行统计。我和我的一些朋友觉得,这些数据其实是很 bias 的,而且基本可以说是偏低的。为什么这么说呢?我猜有两个原因。第一,刚入职场的人更喜欢参与这样的统计调查。而比较 Senior 的人,其实几乎没有人或者很少有人去参与这样的调查。第二,很多高工资的公司参与这样的统计调查的人要相对较少。我为什么这么猜?只是从我认识的人提起这样的一些统计数据都觉得比实际情况偏低推测的。不用跟我争辩,我只是说出我的观点,信不信由你。
没啥可说的了:可信的数据、靠谱的解读,是做出正确判断的重要基础。
所以对于很多公司而言,招到优秀的 Data Scientest,其实和招到优秀的软件工程师一样重要。
而一个公司在多大程度上由数据驱动,看看他们 Data Scientist 与工程师的比例,也就大概有个谱了。
雷锋网注:题图来自ju.outofmemory.cn。转载本文请联系授权并保留完整信息,注明出处和作者,不得修改文章。