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

发表/查看评论