7ooJC

今天的这个天气,是对大家的一种考验,也是对大家对 R 的热情和数据挖掘这一个领域的一种挑战或考验,很高兴祝贺大家通过了这个考验。这是我第一次讲话不用 ppt,因为此前我讲过很多次了,只是以一种不同的身份、以学术研究的语言与同行交流。但今天我的身份稍微一转换——代表淘宝 IT 的阿里巴巴数据系统产品部。我们的副总裁车品觉老师,他最近写了一本书叫《决战大数据》,本来是想请他来,但是由于时间的冲突,所以我今天就来上台。我也很愿意做这样一件事情,因为我的背景——我是统计出身。R 语言的伟大之处在于它是统计学家创造的,但是后面一句话大家肯定也知道,它最糟糕的地方也就是 “它是统计学家创造的”。那么我一会儿讲一下我的三个经历,给大家分享一下这两句话的含义。最后我再解释今天我希望大家从这个会场得到怎么样的 message(信息)。

20 年前,如果你问我一个函数、一个分布是一个怎么样的性质,我会拿支笔来,用吉米多维奇里面的微积分的方式,用 PDF、CDF(密度函数、分布函数)来推。那么今天我可能会啪啪啪写一个 R 的 function(函数),然后 simulate(模拟)一下就出来了。那效果来说,可能是今天的会更高效,对吧,当然 20 年前的能力也是需要的。

那么今天,我所看到的情况就是,在我们大数据的业务当中,有非常多这样的场景:我有海量的数据,我要迅速地达到结论的时候,由于现有的工具的局限、性能的有限,导致我们只能屈就于那些很平庸的、传统的方法,即上一个大规模的集群,然后简单的做一个算术平均或者查询。这不是我们想要的,如果只做这样的事情,我们是对不起 “大数据” 这三个字的。那么我想要的是什么,我想要得到的是一种可以把 R 语言中最精髓的算法,在一个高效的系统当中实时地做出来的东西。这对我们的业务是最有价值的。我想,这是今天对 R 的一个挑战,也是 R 所面临的一个最好的机遇。那今天,我们离阿里巴巴几步之遥,两个月之前我们创造了世界上最大的 IPO,那么,这个信息是什么。从商业的角度来说,中国的信息在发展,中国的中产阶级在崛起;从技术的角度来说,我们有无穷多的场景,需要在座的各位——做数据挖掘的、做 R 语言开发的人,去关注、去解决我们的痛点。我们希望,将一些最先进的、最尖端的数据挖掘的算法,libraries(程序库),也就是 packages(程序包)这些东西,能够做成一种可并行化,甚至是说可以跟大数据的处理相兼容的一种产品,然后让我们工业界的人能够立刻的受益,我们的受益反过来也会反馈给大家。那么如果今天你是一个 R 的高级专家,你很快能够在我们这里拿到一个 job(工作)。

我想不光是在我们这儿,在硅谷也是一样的。曾经我回来之前在硅谷的时候,我们开玩笑,我们的 director(负责人)当时说,现在人很难招,做 data science(数据科学)的人抢的很厉害,Facebook、Twitter、Google 都在抢。那现在他说,我有一个最简单的办法,是什么呢。我就去硅谷,或者是洛杉矶,或者是东海岸的那些 R User Meetup(R 语言用户聚会),就有点儿像我们这样的会议,他说,我们去那边第一时间锁定那些人,然后把我的名片递上去,这样子招人。这也侧面的反映了我们工业界对这种能力的渴求。反映的另外一个问题就是供不应求。现在,我们今天这样高技能的人其实是非常抢手的。这就是为什么我们要赞助这个会议的动机之一。我们也希望将我们的声音传递给在座的各位,告诉大家在工业界有这样的机会,有这样的需求。如果你做得好,你能很快的得到一个机会,然后让在座的所有的人看到一个榜样,说只要 R 里面造诣精深,不仅能对工业界做出贡献,还能给自己找到一个你最好的位置。

十年前我写博士论文的时候,是很典型的学生作风,写一些 simulation(模拟)然后做一些 graph(图形),然后在做一些 test statistics(检验统计量),然后最后也能毕业。但是后来我们遇到一个问题,就是很多读者看了你的文章之后跟我说,你有没有你的 R code(代码),我想用一下你的算法。我说很抱歉,我只是做了我的毕业论文的时候的那个很短期的目标,完成了这样一个东西,肯定不是一个很 ready(现成的)、很 matured(成熟的)的一个 R function(函数)或者 library(程序库),所以很抱歉,我没有办法给你提供这样一个很好的 tool(工具)让你立刻就用起来。那结果就是我也受损失,他也受损失。原因是我丧失了一个机会让更多人了解我的工作,他的损失就是他需要花大量的时间来试图理解我的算法当中理论当中一些很拗口的东西。这是一个非常不好的现象,非常的 low efficiency(低效)。

那么在我到了 IBM 工作的时候,我从一些项目中观察到了一个特点,就是当我们做一个东西的时候,尤其是我们作为一个 statistician(统计学家)。首先可能还会用 R 来做一些算法的探索,找到 solution(解决方案)。找到 solution(解决方案)之后,当我们要 deploy(部署)的时候遇到一个问题,立刻遇到了一个问题——performance(性能)问题。我们要去找一些印度的 developer(开发者)或者用 Java 转化为那种可执行的代码,就是可以在系统当中但是能够执行的代码,最后才可以上线。2006 年的 10 月份,我和一个 developer(开发者)坐在一起,肩并肩地逐行 review 他从我的 R 代码当中解读出来的算法,最后得到计算结果。这个过程是很痛苦的,因为大家的背景是不一样的。但是我就在想,如果有一天,我能够有一种 R 的能力,直接就上系统,那我就变得更加的强大。或者反过来说,就是如果这个 Java developer(开发者)这位先生,他有了很好的这种做模型的能力,也可以把这件事情快速地编辑起来。所以那是我第一次深深地感受到了这种痛苦,就是对 R 的一种感触。这也使我慢慢地理解了第二句话,R 比较糟糕的地方就是,它是统计学家创造的。

那到了 Google 之后,情况有所改变。我们在 mountain view(山景城)做那个 mobile ads(移动广告),如果大家看去年 10 月 17 号福布斯杂志的一篇文章,讲到 Google 在那个季度的财报当中,特别发了两大段解释,叫 Enhanced Campaign(“增强广告”),它的原因是什么,就是说它要让大家从那个 PC 端转向 mobile(无线端),因为 traffic(流量)都在往 mobile(无线端)上面转。但是广告商并不愿意这样做,原因就是说在无线端的转化率太低。那后来我们就做了一件事情,就是叫 Enhance Campaign(“增强广告”)。我们做了一套模型,上线、部署、生产,帮助广告商实时地调整它在 PC 端和无线端的广告的 CPCD(Cross Platform Cross Device,跨平台跨终端系统),定价、进价的时候要出价多少,我们给它作调整、做优化,使得它在两个平台上的 Return on Investment(投资回报率)可比。在这种情况下,广告商就大规模的到无线端去。我们做这件事情,整个的过程,全部是用 R 来完成的。最后的部署是用 R 加上 flume——就是 google 自己的一套架构——实现的。我们支撑了几十万个广告组,而且效率上面,比以前用暴力的方法——用 Java 系统去做 simulation 系统——从 5000 个 CPU 小时每天,降低到 98 个 CPU 小时,而且准确性还大幅度提高。所以这件事就让我看到一个希望,就是 R 在工业界的大规模应用是有机会的。当时我们之所以选择了 R,因为当时跟 R 竞争的还有一些用 Java 的它们一些传统的方法,我们发现有一个非常 powerful(强大)的 package(程序包)在 R 中,叫 lme4,就是 Linear Mixed-Effect Model(线性混合效应模型)。在 Google 里面几乎所有做 search quality(搜索品质)、ads quality(广告品质)和那个 quality analysis of ads(广告品质分析)的这几个组都用到这个 lme4。原因是 by nature(天生的),在 Google 这个互联网做广告的时候,这种场景有多种的 factor(因素),有多种变量的一种混合效益,而且是有随机性在里面的:有 fixed effect(固定效应)和 random effect(随机效应)在一起的。如果你不注意到这一点的话,你所做出的统计判断,所谓的 A/B test 都是假的,在统计意义上都是站不住脚的。所以我们当时坚持说,我们必须要用这样一种方法,要用这样一个方法来做。但是,搜遍了所有的语言啊,编程包之类的,发现只有 R 当中有这个。所以之后我们被迫硬着头皮上,但是我们成功了。大家可以看看去年 10 月 14 号福布斯杂志。就这样一个例子让我看到 R 的机会和挑战。我们做这件事情当中,我们动用了十个 engineer(软件工程师),就是十个软件编程的人,把我们那个 R 和 flume 结合在一起,然后两个 data scientist(数据科学家),也就是用 R 来建模的,在一起做,做了 4 个月的时间。如果 R 本身已经很强大的话,实际上本来这十个人的开销也可以大幅度地缩减。

讲了这么多,这三个例子可以解释,R,它的伟大之处是 “它是统计学家创造的”,它的糟糕的地方也是 “它是统计学家创造的”。

那么今天,在大数据的背景下,我觉得第二句话大家特别要重视,否则我们可能要被淘汰。原因在哪里?包括在我们现在的工作场景当中,有很多的时候,我们的团队非常想用一些比较好的算法,或者比较严格的算法来做模型或者来做模型的探索,但是有由于 R 本身的单机版或者多机版性能的局限,是没有办法做到,尤其在淘宝、阿里巴巴这样的环境当中,业务变化、业务需求是非常的紧急的,我是没有时间坐下来慢慢的探索,所以如果这种事情重复太久的话,这样的热情和执着会慢慢被商业的这种短期的压力给打消掉。所以如果给我一个机会跟大家说一句话,我就是要打造一个可以在大数据环境中用的 R。R 也有挑战也有机会,机会在哪里。R 不仅仅是一种语言,因为它有一个灵魂,它跟 Java、C、C++ 不一样。它的灵魂就是那几千个软件包里面包含的最新的算法,还有就是像在座的各位这些有创新、有执着、有热情的专业人士。这一点的话,我相信是其他的 community(社区)里面是没有的。

曾经有人跟我讲说,R 就是搞 Q-Q plot(QQ 图)的,为什么要去赞助它。这句话说出来,我的第一反应就是说 Q-Q plot 背后的统计原理如果不知道的话,千万不能说这句话。如果大家有兴趣的话可以去查一查,为什么 Q-Q plot 是可以这样做的,对什么样的统计 family(族)是有效的。这句话的意思就是,我们的 differentiate(区别)。 我们在座的各位,包括这个 R 语言的 community(社区),跟其他的 Matlab,S+,或者是 SAS,我们区别在哪里?我们的区别就在于这几千个包。我讲到的就是这几千个算法,融合了学术界研究人员的最新的算法,这些成果,这种创新的动力,是别人很难重现的。至少在其他的 community(社区)里面我是没有看到的。这就是为什么我坚信 R 是有非常好的前景的,有很大的 potential(潜力)可以用到我们大数据的环境当中来。

最后我再讲一点,去年的 5 月 2 号,我在 Google 第 43 号 building(楼)里面。 我们在湾区,有一个类似这样的会议,在这个会上我遇见了一个人,这个人是以前的 Google 的 distinguish principal engineer(杰出首席工程师),他去创业了,他在硅谷里面创业,是个犹太人,叫 Olef。他坐在我旁边,我看他年纪蛮大的,头发很花白了。我问他说,“你对 R 语言很感兴趣吗?” 他的回答让我很吃一惊。他说我一点都不懂 R,我到这里来其实就是想知道,这些人在干什么,业界在发生什么。因为他所做的公司是干什么的呢?他做了一个 start-up(创业公司),也是帮广告商做事,focus on(着重于)帮那些广告商优化创意和 creative format(创新形态)。他说他要做很多数据分析,他现在做的还是用 Excel 来做,找的都是一些 community college(社区大学)里面的本科生,有的还是中专生,他会觉得他的这个竞争力会有问题。因为他说他去看其他公司做的都是那些高大上的什么 Harvard、MIT、Stanford 的 PHD,他觉得他的队伍可能会有问题,尤其是在硅谷这样的环境当中,所以他要到这样的地方来学,来看别人做什么。他的意思就是说:在这个环境当中,我的思想会变得更加的年轻。当然,最后他找没找到人我是不知道的,但他这一点我非常有触动。

我想在尤其在今天,我们的经济发展已经相当的不错,尤其是电商这一块,阿里巴巴在这么大的相当于一个旗帜的角色下,我们更要保持一种谦卑的心态,我想刚刚的那位 Olef,他已经 distinguish principal engineer(杰出工程师)出来还创业了,事业可谓追求不断,而且也竟然以一个非常谦卑的心态去一个自己完全不懂的领域去搜索人才、去学习。我觉得这一点的话,对于我们来说,甚至对于阿里巴巴、淘宝、天猫技术部啊,对我们来说也是一个很好的案例,就是一个警示吧。无论我们是做到世界第一、世界第二,中国第一、中国第二,我想大数据的发展,业务的驱动,对创造力、对技术的要求是永远存在的,而且要求越来越严,要求我们的步伐也越来越新,如果我们一个不留神,可能会在下一个关口落后。所以我希望大家能够在这个会议上面学到自己以前没有的、一些新的东西,但是更多的是希望大家能关注一下工业界当中诞生出的对 R 和类似 R 这样的东西的一种需求。如果在明年的时候,有一种成功的案例,从我们这个会场上研发出来一个新的 package(程序包),然后真正的在阿里巴巴上发挥一个巨大的用处,我想我们就达到了目的。

最后祝大家在今天的会议上有很好的收获,谢谢大家!

本文由北京数博思达信息科技有限公司整理 原贴地址 http://supstat.com.cn/blog/2014/12/04/minwanli-at-7th-chinar-conference-hangzhou

发表 / 查看评论