深度分享 | 数据科学家眼中的 “Strata+Hadoop World 大会”(上篇)

381 阅读14分钟
原文链接: mp.weixin.qq.com

本文作者:TalkingData首席数据科学家 张夏天

张夏天

2007年北京邮电大学硕士毕业,长期从事数据挖掘,机器学习相关领域的研究和应用工作。曾在IBM中国研究院,腾讯数据平台部,华为诺亚方舟实验室任职,2013年加入TalkingData任首席数据科学家,全面负责移动大数据挖掘工作,包括移动应用推荐系统、移动广告优化、移动应用受众画像等工作。同时负责大数据机器学习算法的研究和实现工作。发表学术论文10篇,申请专利9个。


在今年的“TalkingData硅谷行”期间,张夏天老师参加了在美国圣何塞举办的全球顶尖大数据峰会“Strata+Hadoop World”,在会中与全球多家顶尖技术团队进行了深入的沟通和分享,并对当下数据科学平台的发展趋势有了全新的启发和认识。本文正是夏天老师在“Strata大会”之后,对此行的感悟与总结,今天由TalkingData整理分享给广大数据爱好者。

关于“Strata+Hadoop World”大会

Strata+Hadoop World是由O’Reilly和Cloudera联合出品,专注于大数据、机器学习和数据分析以及它们对企业乃至整个社会带来改变的全球顶尖会议。

每年,来自全球最优秀的数据科学家、分析师和来自各种规模的创新企业高管将在此汇聚一堂,分享令人信服的数据案例研究、成熟的最佳实践、有效的新分析方法以及关键技能。

此外值得关注的是,“Strata+Hadoop World大会”将于8月3日—8月4日首次在北京主办,如果你正在或计划成为数据世界的一员,“Strata中国大会”不容错过!

想要参加的朋友可点击下方【阅读原文】购票,输入折扣码“TalkingData”即可享受8折优惠。

查看图片

以下为文章正文

前些日子有幸去硅谷参访并参加了Strata大会。这是我第一次去硅谷,怀着朝圣的心情拜访了十多家科技公司,在Strata上重点跟机器学习、人工智能相关的技术公司做了交流。浮光掠影的看了这些公司,有些管中窥豹的感想:首先是数据科学工具正在蓬勃发展,而这个潮流是由创业公司在引导,那些在数据科学工具相关领域有很多年历史的公司在功能上、设计思想上、以及UI方面都落后了;其次,虽然我们只拜访交流了NovuMind和Numenta这2个AI技术公司,但收获很多,我们看到吴韧老师将Deep Learning推向新高度的思路和Hierarchy TemporalMemory这一不同于一般Deep Learning的神经网络发展道路。本文将介绍这两方面的见闻。

数据科学家的发展趋势

大数据的发展和数据科学需求的快速增长对数据科学工具和平台提出了更高的要求。SAS和SPSS这类商用的数据分析和建模工具已经不能满足市场上的需求。一方面是数据规模的增大,Hadoop的普遍使用,使得SAS和SPSS这类主要基于RDMS的传统商用工具变得不太适用。另一方面,新的机器学习算法和工具不断涌现,这些商用软件很难跟上算法和工具创新的脚步。新的开源工具的接受度已经大大超过这些传统分析和建模工具,但是不同的工具侧重点各有不同,各有优缺点,如何充分利用好这些工具又对数据科学人才提出了较高的要求。而市场上的数据科学人才又比较稀缺,如何能够提高工具的效率,降低工具的使用门槛就是很有价值的问题,因此也就催生了诸多数据科学平台类的创业公司。

在Strata上与H2O,Domino Data Lab, Data Robot, Skytree, Ananconda, SAS,Dato等几个提供数据科学平台的公司进行了交流,看了一些产品的Demo,看到了很多有意思的东西。总的说来目前数据科学平台的发展趋势有以下几个特点:一是整合多种数据科学工具,二是提高分析建模过程的效率,三是简化模型部署,四是对模型和实验结果的管理,五是引入协作机制。下面分别介绍这几个特点。

1整合多种数据科学工具 

由于目前有很多不同的开源和商用的数据科学工具,很多数据科学平台没有考虑自己重新发明这些轮子,而是考虑如何把这些不同的工具整合到一个平台里去。典型的如Domino Data Lab, Data Robot, H2O等公司。H2O虽然自己提供了算法库,但其平台也可以兼容Spark的MLLib。DataRobot则可以兼容H2O、Spark MLLib、Python和R。Domino DataLab的整合能力是最强的,除了整合各种开源工具,还可以整合Matlab、SAS等商用工具和平台。从功能角度来说,有两种整合方式:一是将这些工具内的模型进行统一封装,成为平台中的内置模块;二是提供Notebook,可以在平台上直接编程使用这些工具,通常能够支持Python、R和Spark。通过这两种方式的整合,使得在同一平台内可以很方便的切换使用不同的工具来完成分析和建模的工作。

技术上如何整合不同平台,Domino Data Lab的方案应该是最先进的。Domino Data Lab使用Docker做为容器来装载不同的数据科学工具,是一个灵活性和可扩展性都很好的方案。而且这个容器的粒度是到一次具体的模型训练和测试,这就使得在一个工程中,可以非常方便的使用不同的工具。

2高效的分析建模能力 

如何支持高效的分析建模能力,目前看到的有三个特点:可视化分析建模Pipeline、自动建模、强大的数据和模型可视化能力。

分析建模的可视化Pipeline,通过简单的拖拽就可以快速建立一个分析流程,包括从数据的导入到数据的处理,模型建模到最后的。当然,这一功能并不是新出现的,SPSS和SAS很多年前就已经具备这样的能力。目前的数据科学工具普遍接受这一概念,说明这确实是提高分析建模效率的好功能。

模型训练的自动化是DataRobot特别强调的卖点,选定数据后只需要一键就可以得到最好的模型。这可能也是Data Robot名称的由来,尽可能的把建模过程自动化。对于一个问题,Data Robot会同时尝试多种算法和各种参数组合,有可能同时会训练和测试上千个模型来得到最好的模型。Skytree也具备这个能力而且为他们的AutoModel模式还申请了专利,但是没有像Data Robot这样来强调。与Skytree交流时,他们在做自动建模时不是暴力搜索所有算法的参数空间,而是有一定的搜索策略会对搜索路径进行剪枝。建模自动化这一功能对于降低分析建模的难度,提高建模效率有很大的意义,使得非专业人士也可以使用数据科学工具来获得不错的结果。这就像相机上的自动模式,普通人也可以照出不错的照片。对于专业人士而言,也有很大的帮助,可以快速的比较不同算法的效果,获得几个备选的模型,然后在这些模型基础上进行精调。

公允的讲,模型训练或者说模型选择自动化,并不是特别新的思想,在学术上早已有人研究。但是实际应用中面临的最大问题是计算资源的问题,以往的数据科学工具,如果要像Data Robot那样为一个问题训练上千个个模型,时间开销上是不可接受的。DataRobot和Skytree之所以能支持快速的模型自动训练和选择,得益于目前大数据技术提供的集群并行能力,可以把大量的模型训练任务分布到不同的节点上来同时进行。

提高分析建模效率的就是强大的可视化能力。首先是数据的可视化能力,除了特征的简单统计信息的可视化外,还能可视化特征与目标变量之间的相关关系等信息,方便数据科学家进行特征选择和数据处理。而更强大的是模型测试结果和解释模型的可视化,可以展示模型的精度性能和模型中特征的重要性等信息。Data Robot把这一功能称为Model X Ray, 个人觉得确实很精妙。通过可视化把黑箱的模型展示出,就像给模型照了X光片一样。

要说可视化做得好的,那还得说Continuum Analytics。Continuum Analytics不但有炫酷的可视化展示,尤其是精细的地理可视化能力,而且还支持在可视化界面上对数据做交互,可以直接在界面上选取数据进行下一步分析,能够极大的提高分析和建模的效率。这与自动建模尽可能排除人工工作来提高效率不同,这是通过便于人的参与来提高分析建模的效率和质量。当然,这两种思想并不矛盾,一方面是把机器的能力发挥到极致,另一方面是把人的能力发挥到极致,两个极致加在一起,就可以把分析建模的效率和质量推到极致。

3简化模型部署 

目前开源的数据科学工具,对于模型的部署支持都不是很好,之前的商用软件基本都是通过PMML标准来实现模型的导出和部署。但是这一标准在实际应用中并不是那么理想,很多企业需要模型部署的地方,很少会使用支持PMML的商用解决方案,更多的是自己写代码来完成模型的部署,这种情况下解析PMML反而变成一种负担。而这次看到的这些数据科学平台,很多都使用了一种更为简单直接的方式:直接生成Code, 如Java Code、Python Code、C/C++ Code等。这个Code可以直接从界面上Copy,也可以导出成文件,这就极大的方便了模型的部署。

除了直接导出Code,Domino Data Lab提供了更为简单高效的部署方式。只需要一步操作,就可以把一个训练好的模型,部署成一个Restfull API供人调用。这种方式除了简单以外,也把数据科学平台的边界从分析建模扩展到模型的部署应用上,把分析建模和预测做了无缝衔接。为了实现这一功能,Domino Data Lab又使用了Docker技术,把模型用Docker来承载,从而实现了模型的快速部署和下线。

4模型和实验的管理 

在每一个数据科学工程下,都会有很多不同的模型和实验结果。这几个数据科学平台都对训练好的模型及其实验测试结果做了很好的管理,会对任何模型和实验结果做自动存档,使得数据科学家可以随时查阅这些模型和实验结果。而使用开源工具时,则经常需要手动对这些模型和实验结果进行管理,不但效率低,而且容易出错和遗漏。这一功能也可以看做知识和经验的积累,对于新问题,如果有以前的类似问题参考,则可以提高解决新问题的效率。

Skytree还提高了模型和实验结果的比较能力,在一个界面中可以同时比较多个不同模型,优点就像汽车之家提供的车型比较功能一样,使得数据科学家可以更方便对不同模型的优缺点做系统比较。、

这里又要单独说说DominoData Lab的这一功能,除了管理模型和实验结果外,Domino Data Lab还会把训练模型和测试模型的上下文环境保存下来。上下文环境包括硬件环境、软件环境、使用的数据、设定的参数和执行的测试。这就使得数据科学家可以方便的复现任何一个模型的训练过程和测试实验。当然,这一功能又是通过Docker来实现的。

5协作机制

Domino Data Lab的另一个特色,就是提供了数据科学家之间的协作能力。包括对工程权限的管理,以及对每一个数据,模型和实验结果,都提供了评论的能力,使得数据科学家之间可以方便的一起协作来完成一个数据科学项目。也能方便数据科学家之间的知识和经验的共享。这对于提高数据科学团队整体工作效率还是很有帮助的。

除了数据科学平台发展的极大趋势以外,Continuum Analytics公司是值得单独拿出来一说的。该公司的数据科学平台解决方案与其他几家有很大不同,其他几家都是本着兼收并蓄的精神如何更好的整合不同的工具,而Continuum公司则是致力于用Python搞定一切。两位创始人Travis Oliphant和Peter Wang都是Python方面的资深专家,公司也有很多Python的Contributors。在展台上,我们非常有幸的听了Peter Wang亲自给我们做的讲解和Demo Show。Peter非常有激情,让我们感受到他对Python平台的极致热爱。个人感觉他们就是想创造一个纯Python的数据科学平台来与其他平台分庭抗礼。首先是他们提供了Ananconda这个Python集成环境,其中集成了300多个Python库,简化基于Python的数据科学环境安装和配置工作。其次为了克服Python对大数据支持不好的问题,他们为多个重要的数据科学相关的Python库提供了并行化支持。现场他们用12台树莓派组成的集群来演示平台的并行能力。前面提到的可视化能力也是非常令人深刻的一点。

除了功能和技术,我对目前这些数据科学平台是什么客户也非常感兴趣。在Strata上,对这些公司交流的最后两个问题都是你们目前主要的客户是些什么客户?在中国有没有客户?几乎所有的公司对第一个问题的回答都是Finance Company,而对第二个问题的回答则是No。可以看到,在美国除了互联网公司(互联网公司很少采购商用软件和平台,他们有着全球最好的工程师)外,对数据科学需求最大的是金融行业,美国最NB和繁荣的行业。在国内,我们TalkingData也感觉到了国内金融企业对数据科学的需求和渴望,这些数据科学平台公司在国内几乎就没有业务,也许这也是国内创业的一个机会。

关于TalkingData

TalkingData,中国领先的独立第三方移动数据服务平台,自2011年起即始终专注于移动端数据服务,管理团队来自于Oracle,IBM,Microsoft,腾讯,百度,360等企业,既融合了互联网的“开放精神”又传承了传统IT的“严谨服务”这两种文化。伴随4年移动互联网的高速发展,TalkingData打造了由开发者服务平台、数据服务平台、数据商业化平台组成的完整数据服务链条。服务超过10万款移动应用及8万多应用开发者,覆盖超过30亿独立智能设备。

关注TalkingData了解更多详细移动数据信息!

查看图片点击下方【阅读原文】进入大会官方网站!