大数据的机会与风险

以下内容来自英文版《大数据分析前沿》报告,大数据分析委员会撰写,由厦门大学计算机科学系教师林子雨作为志愿者无偿翻译,仅供学术交流,严禁用于商业用途。

《大数据分析前沿》——前言:大数据的机会与风险

翻译:厦门大学计算机科学系教师林子雨(http://www.cs.xmu.edu.cn/linziyu)  翻译完成时间:2014年9月10日

在许多科学和商业领域中的实验、观察、数字模拟,当前都产生了TB级别的数据,在某些情形下,甚至超过PB级别的数据。对包含在这些数据集中的信息进行分析,已经带来了某些领域的重大突破,包括基因学、航天、高能物理等,并带动了新的基于信息的产业的发展。传统的分析方法主要基于的假设是,分析人员可以利用他们自己计算环境中的数据开展工作,但是,大数据的出现,给这种假设带来了严峻的挑战,尤其是在许多情形下数据是分布在不同的位置。

在产生和使用大规模数据集方面,虽然科学群体和国防企业在长期内都处于领导地位,但是,电子商务和大规模搜索引擎的出现,使得其他行业也要开始面对大数据的挑战。例如,Google、Yahoo!、Microsoft和其他互联网公司,都已经拥有EB级别(10的18次方字节)的数据。社区网络(比如Facebook、Youtube、Twitter)数据的爆炸式增长,已经超出了我们的想象,这些公司都拥有上亿用户。基于这些大规模数据集的数据挖掘,正在改变着我们对危机响应、市场营销、娱乐、计算机安全等问题的思考方式,也同时改变着我们对信息存储和检索的思考方式。文档、图像、网络和视频的集合,人们已经不仅仅认为他们只是简单的字节,而是潜在的知识和发现的源头,需要高级的分析技术,这些技术已经远远超出经典的索引和关键词统计等技术,旨在发现隐藏在数据底下的关系和语义信息。

在数据管理和数据分析领域的许多挑战,都需要新的方法来支持大数据时代。这些挑战涉及数据生成、分析准备工作、共享使用策略等内容:

(1)           处理高度分布的数据源

(2)           从数据生成到数据准备,全程跟踪数据源头

(3)           数据有效性验证

(4)           处理采样偏差和异构性

(5)           使用不同格式和结构的数据

(6)           开发能够充分利用并行和分布式结构的算法

(7)           保证数据一致性

(8)           保证数据安全性

(9)           支持数据发现和集成

(10)       支持数据共享

(11)       开发对大数据可视化方法

(12)       开发可扩展的、增量的算法

(13)       处理实时分析和决策支持的需求

我们希望大数据可以被高效地利用,科学研究可以不断延伸它的领域,技术可以变得更加具有自适应性、个性化和鲁棒性。例如,我们可以幻想一下,有一个健康医疗系统,它存储了每个公民的各种信息,包括基因数据和环境数据等,某个个体的数据可以和来自其他个体的数据以及基础生物、医学研究的数据进行整合,从而为每个个体提供最优的诊疗方案。我们还可以把个体的兴趣偏好、需求层次,与商品、技能和服务的细粒度描述等信息进行整合,从而产生新的市场。

对这种未来场景抱有乐观态度是很正常的。数据库和搜索引擎领域的几十年的发展,在可扩展的、以数据为中心的技术方面,已经产生了大量相关经验知识。尤其是,这些领域已经催生了云计算和其他并行、分布式平台,它们非常适合于大数据分析。而且,在机器学习、数据挖掘、统计、算法理论等领域的创新性研究,已经诞生了一些可以用来处理不断增加的数据的数据分析方法。但是,在抱有乐观心态的同时,也必须泼一盆冷水,我们必须意识到实现上述这些幻想场景可能遇到的大的困难。这些困难中,有一部分是来自大规模数据库的实现——发现和消除瓶颈、编程接口的简单性和通用性、传播元数据、设计一个可以很好兼容硬件错误的系统、开发并行和分布式硬件,所有这些都需要面临一个前所未有的数据规模。但是,大数据的挑战远不止存储、索引、查询(这些都是经典的数据库系统中的内容),而是要实现一个更加宏大的目标——推理。推理,是把数据变成知识,其中,知识通常会以实体的方式来表示,这些实体事先在数据中并不存在,但是,存在于以这些数据为基础的分析模型中。需要严谨的统计学知识来验证这种从数据到知识的推理,把统计学知识运用到这种大规模数据上,会面临很多难题。忽略这一点,就可能使得产生的结果没有什么用处。在任何关于大数据和推理的讨论中,必须清醒地认识到,我们很有可能把数据变成看起来很像知识的知识,但是,实际上并不是知识。而且,我们可能很难意识到这个问题发生了。

实际上,许多问题都取决于推理的质量。一个主要的问题是采样偏差。我们可能会根据某种标准来选择样本数据,但是,推理和决策这二者可能采用不同的采样标准。这个问题在某些大规模数据集中看起来会尤其严重,这些大规模数据集通常会包含很多数据子集,每个数据子集都是根据不同的数据采样标准得到的。另一个问题就是数据溯源。许多系统都包含了推理层,其中的数据并非原始数据,而是基于原始数据的推理结果。当原始的数据存在丢失的内容时,这种情况经常发生。在一个包含相互关联的推理的大系统中,很难避免形成回路,它会带来额外的偏差,并且放大了噪音。最后,当考虑了许多假设时,还有一个大的问题,那就是要控制误差。实际上,对于大规模数据集而言,不仅会在数据量方面会不断增加(也即是数据库行不断增加),在数据描述属性方面也会不断增加(也就是数据库列不断增加)。而且,我们经常对采用多个列组合进行预测的能力比较感兴趣,这可能导致需要考虑的假设的数量产生指数级别的增长,这对于误差会带来严重后果。也就是说,我们可能很难找到一条针对大规模数据的“大数据定律”,和统计波动相关的风险,实际上会随着数据集的增加而不断增大。

虽然,统计学领域已经开发了相关的工具,理论上可以解决这些问题,但是,在大规模数据环境下适用这些工具还是要注意,因为:(1)所有统计工具都是建立在数据集的特征、采样方式的一些假设基础之上的,在处理大规模数据集时,这些假设可能会被违反;(2)评估过程误差的工具以及诊断工具,本身就涉及计算过程,当数据集扩展到一定规模时,这些计算过程本身就会变得不可行。

尽管存在上述忧虑,大数据分析委员会仍然认为,基于大数据的推理所面临的许多挑战还是可以被解决的。这些挑战的解决,必须借助于大量持续的、建立在推理和计算理论基础之上的研究工作。这些研究工作必须开发出包含了推理理论的可扩展的计算框架,而且这些推理理论本身就必须已经考虑了可扩展性。研究工作必须考虑实时决策周期,并能有效权衡速度和准确性。在研究过程中,需要新的工具把人们融入到数据分析的各个阶段,因为,我们必须意识到,知识通常是主观的,依赖于具体内容,在某些方面,人类的智能是无法被机器完全取代的。

本报告的研究成果解决了以下方面的问题:

(1)评估“面向大规模数据挖掘和数据流的数据分析”这个领域的现状;

(2)明确当前实践和理论二者之间存在的鸿沟;

(3)提出填补这个鸿沟的研究计划。

因此,本报告梳理了大规模数据分析方面的前沿研究,主要的研究领域包括:

(1)数据表示:包括原始数据的特征化表示和转换,很多转换都是用来减少数据表示的复杂性。

(2)计算复杂性问题,以及针对该问题的理解是如何支持计算资源的特征化表示。

(3)在大规模数据环境下的统计模型的构建,包括数据清洗和验证。

(4)采样,既作为数据采集过程的一部分,也作为数据压缩的主要方法。

(5)把人类融入到数据分析过程中的方法,包括众包(它把人类作为训练数据的一部分提供给学习算法)和可视化(不仅帮助人类理解分析结果,而且把人类的输入提供给模型修正过程)。

结论

大数据分析的研究和发展,已经跨越了单个学科,本报告的主要结论是,在解决大数据分析问题时,必须采用多学科的知识。在构建一个大数据系统时,计算机科学家必须具备对推理问题的更深刻的认识,而统计学家也必须要考虑可扩展性、算法问题以及实时决策制定。数学家也将扮演重要的角色,因为,应用线性代数和优化理论(已经服务于大规模数据分析)的重要性正变得越来越强。同时,正像刚才指出的那样,在大数据分析中人类的判断是非常重要的,这就需要社会学家和心理学家以及可视化专家的参与。最后,领域科学家和技术用户在设计数据分析系统时也将扮演重要的角色,尤其是在大数据分析领域,因为设计决策以及分析可能遵从的方向,都有可能爆炸式增长。

当前的报告主要关注围绕大数据分析的技术问题——计算和推理,有意避开了其他领域的主要问题,比如公共政策、法律、伦理等。

委员会得出以下结论:

(1)近年来,并行和分布式计算系统发展非常迅速,大部分都是作为现代基于因特网的信息生态系统的核心支撑。这些系统可以很好的支持搜索引擎、电子商务、社会网络和在线娱乐,并且为大数据分析提供了平台。目前面临的挑战是如何对这些系统和算法进行扩展从而支持不断增长的数据集合。但是,我们必须认识到,大规模数据分析的目标已经不仅仅是计算和表示问题,这二者都是经典的搜索引擎和数据库处理的技术核心,用来解决统计推理问题,现在,大规模数据分析的目标是把数据变成知识,并且有效地支持决策制定。知识的论断需要控制错误,大规模数据分析面临的主要挑战就是,开发出建立在统计学理论基础之上的程序,并且可以在大规模数据环境下有效控制错误,而且,我们要注意到,这些程序本身就是需要消耗资源的计算过程。

(2)在大规模数据分析中,存在很多潜在的错误来源,许多都是由于与大规模数据相伴相随的“长尾效应”。在“长尾”中的事件可能是非常稀疏的,即使在大规模数据中也是如此。例如,在面对消费者的信息技术中,主要目标是提供细粒度、个性化的服务,但是,对于许多个体而言,都只能获得非常少量的个人信息,即使在大数据集中也是如此。科学研究的目标是发现不寻常的稀有现象,而这种现象所表现出来的外部特征可能很不明显,而且在对大量假设进行搜索时,还会大大增加误差。在大规模数据中普遍存在的其他错误来源包括:许多数据集的高维特性、异构、采样模式带来的偏差、数据库中未知的数据源等。总的来说,数据分析是基于假设,在许多经典数据分析方法下的假设,在大规模数据分析环境下,可能并不成立。

(3)大规模数据分析不只属于某个单个学科,而是跨学科的。大规模数据问题的解决方案,需要融合来自计算机和统计学领域的知识以及来自应用数学和纯粹数学领域的知识,还需要融合来自优化理论、工程领域、信号处理和信息理论等领域的知识。领域科学家和技术用户也需要参与到大规模数据分析系统的设计中来。也有许多围绕大规模数据分析的问题(主要是隐私问题),需要法律学者、经济学家和其他社会学家的积极参与,即使这些内容暂时没有纳入本报告。总的来说,把跨学科的不同知识融入到大规模数据分析中,我们就可以综合权衡一个问题中所涉及的计算、统计、科学和以人为本等方面的限制因素。当我们孤立地考虑这些限制因素时,我们最终解决的问题可能要比实际要解决的问题,要宽泛得多,问题变得宽泛之后,可能根本找不到可行的解决方案。交叉学科的多视角,可能可以帮助研究人员很快聚焦问题核心。例如,当缺少合适的观察和认识时,我们可能去分析最差的算法行为,这样做可能非常艰难而且误差很大,而当我们有了对问题的全面认识时,我们会发现,从统计学的角度来看,分析平均性能(而不是最差性能)的算法行为可能更加合适。类似地,典型的查询生成知识,就可以把查询结果缩小到一个比较小的子集当中,否则,就需要考虑更加庞大的可能查询结果集合。通过关注统计算法中有用的案例,就可以使用简化的并行算法,这样就可以规避一些通常情况下遇到的并行编程问题,而且这些简化后的并行算法,在分布式硬件平台上访问和存储数据时可以采用更加自然的方式。