1 研究业务的技术特性要求
大数据相关技术和资源众多,先从市场研究的业务特点来分析其对技术性的一些要求:
1. 数据规模而言,因为客户主要偏传统企业客户(非互联网类),受其业务限制,可分析的大数据规模不会超过百亿/TB级,不像互联网企业达到千亿/PB级。
2. 数据格式还是以结构化数据为主,部分非结构化文本(如互联网/社交方面为主)。
3. 处理模式上,因为分析过程是多次迭代和不断深入,不需要实时出结论,所以离线非实时、批量化/AdHoc结合的OLAP分析是主要模式。这个和很多互联网企业的实时大数据业务要求不同。
4. 分析的属性维度多样,经常变化,关注整体特性。所以对数据管理中的多字段检索和汇总统计的能力要求较高。
基于以上的技术要求,我们来讨论研究业务适合的技术理论与资源。
2主要技术理论
在整个大数据相关技术体系中,研究公司大数据业务涉及的技术领域主要如下:
在大数据领域,大部分数据存储和高速计算都离不开分布式计算。日常生活中,我们一台电脑可完成所有计算和数据存储,当觉得不够用时,通常是更换更快的CPU和更大硬盘来解决。但当计算速度和存储要求越来越高时(如大数据环境下对TB甚至PB级数据管理计算),这种通过提升单台服务器性能的集中模式会导致服务器(如使用在运营商话单计费、银行交易系统的小型机)成本极为昂贵,且最终可能仍然无法满足要求。另外一种思路,则是将大的计算需求分摊到多台计算机一起来完成(如同一个大卡车的载货被分到很多台小卡车来运输一样)。相应的分布式计算(包括存储)就是通过多台(成千上万甚至百万)廉价、低性能服务器来实现超高的计算存储能力。在分布式计算系统中,任何计算和存储请求,被自动分为多个小的任务,分摊到各服务器上并行完成。同时,数据分布在多个服务器节点并有备份,这样即使部分服务器损坏并不影响系统运行。
相比集中模式,分布式计算成本和门槛更低,易扩展并具高可靠性。成为近10年来IT体系架构最重要的技术,支撑起了整个互联网的数据和业务,也是云计算和大数据的支撑技术之一。
机器学习(Machine Learning)
如果说分布式计算是IT体系架构的明星,那机器学习就是智能数据分析的利器了。作为人工智能的核心研究领域之一,机器学习是为了让计算机通过经验(先验知识数据)来模仿人类的学习能力,从而获得计算机系统能力的提升。上世纪末,随着统计学习理论出现和发展,机器学习从IT技术逐步扩展为一种交叉学科,在很多非IT领域也得到广泛应用。虽然相关算法在理论上需要较多的知识背景,但不要觉得它是多么高大上,比如研究行业常用到的决策树、分类(有监督学习)和聚类(无监督学习),实际都是机器学习的算法子集(其他常用的还有Bayes网络、支持向量机和神经元网络等)。基于训练-建模-分类-优化的迭代生成模式,使得机器学习在实际的分析性能和模型适用性方面,具有较大的优势。近两年来,基于多层神经网络的深度学习(Deep Learning)理论在一些领域(自然语言、音视频识别)具有突出的表现,有望进一步推动机器学习的深入分析能力。
大数据领域,机器学习由于其在数据分析方面的先天优势能力,当仁不让的成为相关数据分析的核心技术。该方面的技术水平成为当前衡量大数据分析能力的重要标志。
自然语言处理(Natural Language Process)
大数据的多种数据中,非结构化数据日趋庞杂和重要,其代表就是自然语言形式的语义内容(搜索、新闻、社交媒体、电商评论等),而对其内容的分析(如文本挖掘)离不开自然语言处理技术。相关学术学科叫计算语言学,作为计算机与语言的交叉学科,它以统计性、量化的方式来研究语言的规律。自然语言处理涉及分词、词法、句法、语法、语义分析等多个层面,相当复杂。而当前商业性应用,中文的主要集中在分词、词频统计、关键特征抽取等浅层分析、情感倾向与主题模型(如LDA/PLSA等)和机器翻译等方面。传统研究业务中,也可用于开放题/讨论文本的自动分析编码。实际上,NLP的应用领域应该可以更大。举一个有趣的例子,曹雪芹的《红楼梦》最后40章常被认为是高鹗续作,但相关观点的红学家/语言学家并不能有效证明。借助计算语言学,可对前80章和后40章的内容进行分析(包括用词习惯、句法、文法等等),可得到两部分文章在行文风格的多种量化指标,通过其差异就能判断是否为不同的作者。计算语言学的理论基础感觉近年来进展不大,但深度学习近来的表现有望帮助其在应用性能方面有所提升。
数据挖掘(Data Mining)
数据挖掘在非大数据时代(海量数据)就已经广泛使用(如CRM的用户分析、产品关联分析)。严格的说,其并不算是一种技术,而是一种分析模式:综合利用机器学习、数据库技术和自然语言处理等多种技术方法,从数据中获得相关的结果。在大数据时代,虽然数据的挖掘往往意味着数据金矿,但笔者认为,挖掘技术必须与业务分析思路紧密结合,才会发挥出较大的价值。
其他关键技术
在大数据时代,互联网社交媒体数据(尤其是用户间的关系数据)体现出了前所未有的价值。对上亿用户错综复杂的关系网络的快速分析,正是图计算理论擅长之处。图计算作为新兴的技术理论,主要聚焦节点之间关系的深度研究,其不仅在社交用户分析上价值很大,在恶意欺诈检测、生命科学等领域都有巨大应用前景。
而随着音视频数据的日益普及和传播,针对此类大数据的处理(比如语音识别/图像、视频识别分析)技术,也在大数据业务中逐步开始使用。这些其实都是模式识别(Pattern Recognition)技术的应用,核心问题是特征(维度较高)的抽取和相似/匹配性比较。
3主要技术资源与工具
在前面了解的技术理论之上,我们进一步介绍大数据业务中可使用的技术资源和工具。相关说明按业务流程顺序展开,以主流、免费的开源资源为主(主要为笔者熟悉了解的,其他资源不做相关的评论和推荐)
(1)分布式计算框架
分布式计算框架用于完成分布式计算所需的底层任务管理和调度等核心工作,是大数据计算体系结构的基石。当前主流的开源框架包括:
Hadoop和Map/Reduce。借鉴Google的分布式系统发展而来。09年笔者使用其早期版本时问题颇多,但几年后其已经成为事实的行业标准,并衍生出庞大的上层生态圈。其Map/Reduce计算范式解决分布式调度和结果归并的问题,大大降低了分布式程序开发的难度。Hadoop擅长的离线批量式处理适合研究公司的基础数据计算(如汇总和统计),其缺点是响应迟滞,速度慢,维护和编程也相对麻烦。
Spark.新的分布式开源框架,在迭代计算(如机器学习)场景下比Hadoop快几十倍,同时提供了MLLib机器学习、Spark Sql查询和GraphX图计算众多大数据工具包,也更易于维护和编程。众多优点使得其近一年发展极快,受到了广泛的支持,预计将代替Hadoop成为新的数据计算标准。Spark比Hadoop更加适合研究公司。在HCR(慧辰资讯)大数据平台中,其作为大数据分析计算的核心,完成机器学习的相关处理。
Strom.Hadoop和Spark都适合非实时处理,对于需要实时响应的业务(比如DSP/RTB广告实时竞价,电商平台实时购物推荐)场景,则是Storm流式计算框架的天下,高速和高容错使得它已经在此类业务环境中成为基本配置,如果研究公司存在类似实时处理特性的业务也可以考虑使用。
(2)数据管理
数据管理主要包括存储和快速检索。大数据环境中,研究业务相关的数据更多以数据库而不是文件方式存储,所以这里主要介绍几类数据库的选择
关系数据库(Mysql/Oracle)传统的关系数据库虽然对大数据的支持能力有些不足,但就研究公司而言,亿级以下的结构化数据的分析仍然会是未来分析的重要场景,此时使用关系数据库(无论免费的Mysql还是商业的Oracle)完全没有问题。其便于管理,工具成熟,适合研究中各种多维度的统计分析。同时,也适合在大数据业务中作为数据仓库存储大数据的中间分析结果,便于后续更上层分析。
键值数据库(HBase/Cassandra)真正意义上的大数据数据库,基于分布式计算体系和键值模式可轻松支持百亿规模以上的记录管理。但其最适合针对特定单一条件(如某用户的相关信息)的快速查询,不支持多级索引,所以研究中常用的多维分析(多字段条件)会很麻烦(方便性远不如关系数据库),对单用户的检索分析则很快。在HCR(慧辰资讯)(慧辰资讯)平台中,HBase主要作为基础大数据的存储和单用户行为标签的离线批量计算。
文档数据库(MongoDB)另一基于文档的大数据数据库,使用上最大特点是可随意增删记录的字段,尤其适合某些研究分析中随时自定义分析属性维度。如果有涉及地理空间的分析,其也比较方便。就实际应用而言,建议在<10亿级别的动态数据比较合适(否则对内存和硬盘空间需求太大)
(3)处理与计算
市场研究行业大数据业务中,分析相关的数据计算技术是最重要的技术内容,主要集中在以下几个领域:
并行机器学习(Mahout /Spark MLLib)机器学习本已是数据计算利器,而基于分布式的并行机器学习框架则将其能力又大大增强。Mahout中实现了大量的机器学习算法(包括推荐算法)的并行版本(甚至有并行SVD这种高大上),是当前大数据机器学习的主要工具包。MLib基于Spark框架,在性能上有优势,也开始受到广泛的关注。
自然语言处理在中文自然语言处理领域,当前可用的免费开放资源并不多(分词资源较多),一些开放资源主要来自学术院校(清华、中科院、复旦和哈工大等,相关内容不便列出,请自行查找),但在效果上面向工业应用尚有不足。当前常见方式是借助专业技术企业/院校合作获得深入分析能力。
图计算(GraphLab/Spark GraphX)如果有图计算相关的需求可考虑采用这些开源资源。前者是当前最主流的图计算框架,实现了图数据的存储和基础计算逻辑。后者GraphX是Spark体系下的图计算新贵。
R语言R语言作为统计性功能强大的计算语言,在传统研究行业具有较大应用前景。同时其在可视化和开源支持方面也有一定优势。如今R对Hadoop的支持也比较完善。对于熟悉R语言的研究公司,可从R语言更快切入大数据的计算领域。
(4)研究分析
在分析阶段,考虑研究员将成为重要的角色,此时资源聚焦在研究员可以使用的各种工具上。以下是相关的一些内容:
Hive/Impala/Spark Sql分布式的大数据(数据仓库)的分析工具,支持以传统关系数据库Sql语句进行大数据内容的检索,大大降低了研究分析人员的大数据分析门槛,是适合数据分析/研究人员的最佳工具。Hive最早由Facebook开源,应用最广,但性能最差。Impala在性能与稳定性的平衡较好,但限制较多。Spark Sql作为最新的工具,性能最强,但稳定性尚待完善。
TableAU 企业级大数据分析工具,多应用于世界500强企业内部业务分析,不过其是商业付费软件。其优点是大数据下的可视化和方便性,研究人员使用比较容易。就实际应用体会上,感觉更适合企业级内部数据、亿级以下的结构化大数据的场景。分析维度主要是统计性维度,可分析深度相对不足。
SPSS Modeler IBM的商用数据挖掘工具,对大数据支持能力不如TableAU(与其计算复杂度相关),其特点是提供专业的数据挖掘算法,研究中适合做深度/非统计性研究。
Gephi可视化分析如果要做一些传播关系的图形化分析,那不妨考虑Gephi。其支持多种可视化分析图生成。不过在较大数据量(比如2万节点以上)时性能下降较快,所以最好对数据预先做相关平滑和剪枝。
可视化开发框架数据可视化是大数据的一个特色,但这里放到研究分析来说明,是因为可视化技术的价值是帮助更有效的分析,不是花哨的展示。当前国内百度EChart(2.0以上版本)的易用性和功能相对不错(就是感觉样式配色不够专业),国外基于D3框架的应用更能体现可视化的价值(效果强大,但开发比较麻烦)。桌面办公软件中,微软GeoFlow支持Excel的Bing地图可视化。其他还有很多各有特色的可视化框架,不再一一介绍了。
HCR(慧辰资讯)认为,经过以上内容,想必研究同行们对大数据相关技术已经有了基本的认识。如果要想在大数据业务服务中发挥自身价值,研究人员除了转变方法论思路外,还要注意提升自身的技术能力。
传统研究业务中,研究员太依赖DP和其他IT人员进行数据计算处理,自身没有任何技术能力。大数据业态下,技术性分析与传统研究将紧密结合,技术手段的使用程度深入影响数据洞察的深度。研究员如果熟悉相关技术手段(至少分析工具的使用),将会极大扩展自身的分析能力。既熟悉大数据处理技术,又懂得研究业务思路的复合人才—数据科学家,将是未来数据分析业务的王者。
评论
查看更多