今天我们来解读Airbnb的朱赟写的微信文章《公司里的数据科学家在做些什么》。

首先,大家可以看看关于异常检测的两篇很有名的文章:《Airbnb支付平台如何进行异常检测》,《Breakout detection in the wild》。

看完这两篇文章,我们会觉得数据科学家似乎很高大上,他们做各种图,整理各种idea,梳理各种数据,成为整个公司的灵魂。很久以前我们就听过一句话:“人人都是产品经理”。如今这句话已经开始变成“人人都是数据科学家”了。

数据科学家日常在做些什么?

数据科学家的日常工作总结起来有四个方面:

  • 仪表盘
  • 采清算
  • 调模型
  • A/B测试

1.仪表盘

其实数据科学家人才最早是用在商业智能(Business Intelligence)上。说起商业智能,大家可以这样想:如果CEO每天早上到办公室,需要用五分钟的时间了解公司的运营情况,你会给CEO呈现什么?这就是CEO仪表盘。为了做这个仪表盘,我们需要找到公司最关键的指标,并发现里面的复杂联系,而且要一目了然。

举个例子,酷我音乐的一个团队有50多人,用户达到千万,收入也超过千万。那么每天早上需要准备什么数据呢?这几个数据比较重要:昨日的用户量,用户的登录比例,用户的付费比例,然后是人均消费。这是从财主的角度来看的。我们也可以从主播的角度看,昨天主播视频的播放量,平均播放时长,哪些留存哪些遗失了,整理出相关的数据。

其次,团队每个月要向CEO汇报整个事业线的运转情况,这时又需要汇报哪些指标呢?除了刚刚我们提到的,还要汇报流失率,以及流量的情况,如流量转化率、单流量价值等。数据科学家需要明确这些指标是如何整合起来的,哪些是关键指标,这是数据科学家要做的第一件事。

2.采清算

虽然已经规划好了整个流程,依旧需要落地实践,实际地做事。首先是埋点采集,比如我想收集所有流量的情况,那么首先要针对每一个流量源进行埋点。随后,对于用户流入之后的登录、注册、付费等各种行为,都需要埋点收集。

收集到这些数据之后,会有很多噪音,怎样清洗这些噪音成为一个非常重要的步骤。比如团队在做音乐推荐功能时,想统计用户喜欢的音乐的比例,收集用户为歌曲点红心的情况,结果发现有些噪音用户会一天点上千次的红心,那这样的用户还要保留吗?如果保留,会极大地影响整个系统的准确性,所以要清洗掉他们。

最后是统计整理。统计整理不仅是要把数据算出来,还要选择合适的指标。比如统计酷我音乐系统的服务等级(SLA)时,我们想看用户访问直播服务时的卡顿情况,如何评估呢?是统计大家的平均卡顿值还是其他指标呢?我们最后选择的是95%的指标,即把大家访问这个网站的卡顿排序,算出排在第95%位置人的卡顿指标,用它来评估整个服务的情况,也以此为依据来选择不同的服务提供商。

3.调模型

第三个任务是调模型。首先是搭建模型,现在模型已经越来越Popular,各种开源包也越来越多,因此找一个模型搭建起来往往不是最难的。

之后要分析模型的结果,因为不同模型跑出来的效果是不一样的,所以往往还要搭配很多测试的程序,来看模型跑的结果好不好,甚至还要在之前准备一些测试集、训练集来调整模型的参数。

最后一步是根据不同的结果调整参数。调整参数往往还包含两部分,一部分是对准确率的调整,即能不能算得更准;另一部分是性能调整,比如以前需要100台机器来做,能不能调成10台机器就能做呢?

举个例子,我们做音乐推荐系统时,模型是基于协同过滤(CF)来建的,当然也用了一些矩阵向量的方法,或一些更高级的机器学习方法。无论用什么方法,都需要分析各种结果,不同方法的性能也不一样,怎么去调整、整理是一个非常耗时的工作。

当这个模型应用了之后,其实还有很多领域知识能够增加你的结果。比如我们发现给用户推荐音乐时,要推荐20%他已经明确表达了喜欢的音乐,即点过红心的音乐,这样可以增加用户的满意度。此外,我们还需要增加多样性,让用户更持久地使用这个产品,所以我们添加了很多多样性的指标,来将整个系统调整得更好。

4.A/B测试

数据科学家最后一个任务是A/B测试。它的核心就是将用户分组,测试收集每组的不同结果,最后进行分析决策。

举一个有趣的例子,当年我们产品上线以后,需要放广告踩流量。我们的市场经理设计了几十种广告,把用户拆成了几十个小盒子。向每个盒子投广告,测出了广告的效果。但我们发现这种做法很慢,不够智能化。

后来我们是这样做的:不断地随机选择一定比例的用户,给他们推送我们排到队表里的一个广告。当用户展示数到达一定范围时,我们就开始认为这个结果有一定的置信度,于是就把这个结果作为我们想要的结果。我们以前做个测试往往需要几个小时,现在只要把广告设计出来,直接放到系统上,可能几分钟就能跑出来一个合适的结果,极大地优化了整个A/B测试的结果。

实际上,计算机之所以能如此快速地发展,背后的核心就是快速的A/B测试。因为能快速地A/B测试,所以能很快地进化。因为有了A/B测试,我们能够得到更精确的结果。

再举个例子,以前我们做广告投放喜欢做线下广告,其实大家根本不知道线下广告的效果如何。后来我们将线上和线下广告相结合,就能成功评估出线下广告的效果,其实大多数线下广告都是没什么用的。这个时候,很多线下广告商就想去线上买广告,结果发现他们根本就买不赢,为什么呢?我们当时做O2O广告定向时,想让那些线下广告商来线上买广告,但最后我们发现这个项目的方向是有问题的,因为线下广告商根本出不了线上广告商那么高的价格,因为他们的转化率和回报率非常低。因此最后我们把O2O广告做成了品牌广告,也就是大批量地一次购买很多广告。

数据科学家来自哪里?

其实现在人人都是数据科学家,学数学、统计、物理、机械、金融的都可以做数据科学家。数据科学家的硕博比例比较大。

这里有一张很有意思的图,名为Modern Data Scientist。我们可以看到,数据科学家拥有数学、统计、编程、数据库、领域知识、软技能、沟通能力和可视化等多方面的技能。但实际上,我们上文有讲数据科学家有四个方向可以做,所以数据科学家本身也是有很多事情做的,这些技能并不需要样样精通,精通一个就行。比如你的数学很好,你就可以做一些建模的事情;你的实战能力强,你可以做一些模型优化的事情。你的数据分析能力强,你就可以专门做数据分析。数据科学家本身就有很多分类,虽然所有的事情都需要完成,但这些往往不是一个人来完成的,往往需要一个团队合作。

数据科学家这个职位到底是从哪儿来的?其实早在五年前,我们就已经在大量地使用数据科学家这个概念了,只是那时还没起这个名字,我们一般称他们为产品经理或者市场经理,担任与现在的数据科学家相同的职责。

优秀的数据科学家具备什么特质?

  • 敏感性。对数据敏感,第一眼看到数据就能知道数据背后的东西。
  • 沟通性。能够把自己的理念很好地传递给别人。
  • 可视性。能够把自己的数据可视化地展示给别人,其实也是沟通性的一个子集。
  • 分析性。能够分析出结果。

这不就是一个合格的产品经理所要求的吗?所以一个合格的产品经理本身往往是一个合格的数据科学家。

数据科学家有多重要?

正确判断的基础是什么?怎样才能做好决策?需要有可信的数据和靠谱的解读。说到这里。也希望大家不要迷信数据科学家,因为有时候即使很多东西全都量化了,最后也可能挂掉。比如Zynga,这个公司当初做游戏的时候提倡的是数据驱动运营,最后公司也还是不行了。

因此,数据解读是很重要的,但大家不要迷信地认为它是成功的唯一标准。对行业的把握、对团队的管理、对人性的理解,以及你跟整个世界的合作关系,都是你成功路上很重要的扶手,不要认为数据就是一切的方法。

总结

  • 仪表盘,采清算,调模型,A/B测试是数据科学家的基本任务。
  • 敏感性,沟通性,可视化,分析性是数据科学家的基本素质。
  • 人人都是数据科学家。