本文摘自林子雨编著《大数据导论》(访问教材官网)
作者:厦门大学计算机科学系 林子雨 博士/副教授 全国高校知名大数据教师
E-mail: ziyulin@xmu.edu.cn
大数据,不仅是一次技术革命,同时也是一次思维革命。从理论上说,相对于人类有限的数据采集和分析能力,自然界和人类社会存在的数据是无限的。以有限对无限,如何才能慧眼识珠,找到我们所需的数据,无疑需要一种思维的指引。因此,就像经典力学和相对论的诞生改变了人们的思维模式一样,大数据也在潜移默化地改变人们的思想。
维克托•迈尔•舍恩伯格在《大数据时代:生活、工作与思维的大变革》一书中明确指出,大数据时代最大的转变就是思维方式的3种转变:全样而非抽样、效率而非精确、相关而非因果。此外,人类研究解决问题的思维方式,正在朝着“以数据为中心”以及“我为人人,人人为我”的方式迈进。
(1)全样而非抽样
过去,由于数据采集、数据存储和处理能力的限制,在科学分析中,通常采用抽样的方法,即从全集数据中抽取一部分样本数据,通过对样本数据的分析,来推断全集数据的总体特征。抽样的基本要求是要保证所抽取的样品单位对全部样品具有充分的代表性。抽样的目的是从被抽取样品单位的分析、研究结果来估计和推断全部样品特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。通常,样本数据规模要比全集数据小很多,因此,可以在可控的代价内实现数据分析的目的。比如,假设要计算洞庭湖的银鱼的数量,我们可以事先对10000条银鱼打上特定记号,并将这些鱼均匀地投放到洞庭湖中。过一段时间进行捕捞,在捕捞上来的10000条银鱼中,发现其中有4条银鱼有特定记号,那么我们可以得出结论,洞庭湖大概有2500万条银鱼。
但是,抽样分析方法有优点也有缺点。抽样保证了在客观条件达不到的情况下,可能得出一个相对靠谱的结论,让研究有的放矢。但是,抽样分析的结果具有不稳定性,比如,在上面的洞庭湖银鱼的数量分析中,有可能今天捕捞到的银鱼中存在4条打了记号的银鱼,明天去捕捞有可能包含400条打了记号的银鱼,这给分析结果带来了很大的不稳定性。
现在,我们已经迎来大数据时代,大数据技术的核心就是海量数据的实时采集、存储和处理。感应器、手机导航、网站点击和微博等能够收集大量数据,分布式文件系统和分布式数据库技术,提供了理论上近乎无限的数据存储能力,分布式并行编程框架MapReduce提供了强大的海量数据并行处理能力。因此,有了大数据技术的支持,科学分析完全可以直接针对全集数据而不是抽样数据,并且可以在短时间内迅速得到分析结果,速度之快,超乎我们的想象。比如谷歌公司的Dremel可以在2~3秒内完成PB级别数据的查询。
(2)效率而非精确
过去,我们在科学分析中采用抽样分析方法,就必须追求分析方法的精确性,因为,抽样分析只是针对部分样本的分析,其分析结果被应用到全集数据以后,误差会被放大,这就意味着,抽样分析的微小误差,被放大到全集数据以后,可能会变成一个很大的误差,导致出现“失之毫厘谬以千里”的现象。因此,为了保证误差被放大到全集数据时仍然处于可以接受的范围,就必须确保抽样分析结果的精确性。正是由于这个原因,传统的数据分析方法往往更加注重提高算法的精确性,其次才是提高算法效率。现在,大数据时代采用全样分析而不是抽样分析,全样分析结果就不存在误差被放大的问题,因此,追求高精确性已经不是其首要目标;相反,大数据时代具有“秒级响应”的特征,要求在几秒内就迅速给出针对海量数据的实时分析结果,否则就会丧失数据的价值,因此,数据分析的效率成为关注的核心。
比如,用户在访问“天猫”或“京东”等电子商务网站进行网购时,用户的点击流数据会被实时发送到后端的大数据分析平台进行处理,平台会根据用户的特征,找到与其购物兴趣匹配的其他用户群体,然后,再把其他用户群体曾经买过的商品、而该用户还未买过的相关商品,推荐给该用户。很显然,这个过程的时效性很强,需要“秒级”响应,如果要过一段时间才给出推荐结果,很可能用户都已经离开网站了,这就使得推荐结果变得没有意义。所以,在这种应用场景当中,效率是被关注的重点,分析结果的精确度只要到达一定程度即可,不需要一味苛求更高的准确率。
此外,在大数据时代,我们能够更加“容忍”不精确的数据。传统的样本分析师们很难容忍错误数据的存在,因为他们一生都在研究如何防止和避免错误的出现。在收集样本的时候,统计学家会用一整套的策略来减少错误发生的概率。在结果公布之前,他们也会测试样本是否存在潜在的系统性偏差。这些策略包括根据协议或通过受过专门训练的专家来采集样本。但是,即使只是少量的数据,这些规避错误的策略实施起来还是耗费巨大。尤其是当我们收集所有数据的时候,这就行不通了。不仅是因为耗费巨大,还因为在大规模的基础上保持数据收集标准的一致性不太现实。我们现在拥有各种各样、参差不齐的海量数据,很少有数据完全符合预先设定的数据种类,因此,我们必须要能够容忍不精确数据的存在。
因此,大数据时代要求我们重新审视精确性的优劣。如果将传统的思维模式运用于数字化、网络化的21世纪,就会错过重要的信息。执迷于精确性是信息缺乏时代和模拟时代的产物。在那个信息贫乏的时代,任意一个数据点的测量情况都对结果至关重要,所以,需要确保每个数据的精确性,才不会导致分析结果的偏差。而在今天的大数据时代,在数据量足够多的情况下,这些不精确数据会被淹没在大数据的海洋里,它们的存在并不会影响数据分析的结果及其带来的价值。
(3)相关而非因果
过去,数据分析的目的,一方面是解释事物背后的发展机理,比如,一个大型超市在某个地区的连锁店在某个时期内净利润下降很多,这就需要IT部门对相关销售数据进行详细分析找出发生问题的原因;另一方面是用于预测未来可能发生的事件,比如,通过实时分析微博数据,当发现人们对雾霾的讨论明显增加时,就可以建议销售部门增加口罩的进货量,因为,人们关注雾霾的一个直接结果是,大家会想到购买一个口罩来保护自己的身体健康。不管是哪个目的,其实都反映了一种“因果关系”。但是,在大数据时代,因果关系不再那么重要,人们转而追求“相关性”而非“因果性”。比如,我们去淘宝网购物时,当我们购买了一个汽车防盗锁以后,淘宝网还会自动提示你,与你购买相同物品的其他客户还购买了汽车坐垫,也就是说,淘宝网只会告诉你“购买汽车防盗锁”和“购买汽车坐垫”之间存在相关性,但是,并不会告诉你为什么其他客户购买了汽车防盗锁以后还会购买汽车坐垫。
在无法确定因果关系时,数据为我们提供了解决问题的新方法。数据中包含的信息帮助我们消除不确定性,而数据之间的相关性在某种程度上可以取代原来的因果关系,帮助我们得到我们想要知道的答案,这就是大数据思维的核心。从因果关系到相关性,并不是抽象的,而是已经有了一整套的方法能够让人们从数据中寻找相关性,最后去解决各种各样的难题。
(4)以数据为中心
在科学研究领域,在很长一段时期内,无论是做语音识别、机器翻译、图像识别的学者,还是做自然语言理解的学者,分成了界限明确的两派,一派坚持采用传统的人工智能方法解决问题,简单来讲就是模仿人,另一派在倡导数据驱动方法。这两派在不同的领域力量不一样,在语音识别和自然语言理解领域,提倡数据驱动的派比较快地占了上风;而在图像识别和机器翻译方面,在较长时间里,数据驱动这一派处于下风。这里面主要的原因是,在图像识别和机器翻译领域,过去的数据量非常少,而这种数据的积累非常困难。图像识别领域以前一直非常缺乏数据,在互联网出现之前,没有一个实验室有上百万张图片。在机器翻译领域,所需要的数据除了一般的文本数据,还需要大量的双语(甚至是多语种)对照的数据,而在互联网出现之前,除了《圣经》和少量联合国文件,再也找不到类似的数据了。
由于数据量有限,在最初的机器翻译领域,学者较多采用人工智能的方法。计算机研发人员将语法规则和双语词典结合在一起。1954年,IBM以计算机中的250个词语和六条语法规则为基础,将60个俄语词组翻译成了英语,结果振奋人心。事实证明,计算机翻译最初的成功误导了人们。1966年,一群机器翻译的研究人员意识到,翻译比他们想象得更困难,他们不得不承认他们的失败。机器翻译不能只是让电脑熟悉常用规则,还必须教会电脑处理特殊的语言情况。毕竟,翻译不仅仅只是记忆和复述,也涉及选词,而明确地教会电脑这些,是非常不现实的。在20世纪80年代后期,IBM的研发人员提出了一个新的想法。与单纯教给计算机语言规则和词汇相比,他们试图让计算机自己估算一个词或一个词组适合于用来翻译另一种语言中的一个词和词组的可能性,然后再决定某个词和词组在另一种语言中的对等词和词组。20世纪90年代,IBM的这个Candide项目花费了大概十年的时间,将大约有300万句之多的加拿大议会资料译成了英语和法语并出版。由于是官方文件,翻译的标准就非常高。用那个时候的标准来看,数据量非常之庞大。统计机器学习从诞生之日起,就聪明地把翻译的挑战变成了一个数学问题,而这似乎很有效!计算机翻译在短时间内就提高了很多。
在 20 世纪 90 年代互联网兴起之后,由于数据的获取变得非常容易,可用的数据量愈加庞大,因此,从 1994 年到 2004 年的 10 年里,机器翻译的准确性提高了一倍,其中 20% 左右的贡献来自方法的改进,80% 则来自数据量的提升。虽然在每一年,计算机在解决各种智能问题上的进步幅度并不大,但是十几年量的积累,最终促成了质变。
数据驱动方法从 20 世纪 70 年代开始起步,在八九十年代得到缓慢但稳步的发展。进入 21 世纪后,由于互联网的出现,使得可用的数据量剧增,数据驱动方法的优势越来越明显,最终完成了从量变到质变的飞跃。如今很多需要类似人类智能才能做的事情,计算机已经可以胜任了,这得益于数据量的增加。
全世界各个领域数据不断向外扩展,渐渐形成了另外一个特点,那就是很多数据开始出现交叉,各个维度的数据从点和线渐渐连成了网,或者说,数据之间的关联性极大地增强,在这样的背景下,就出现了大数据,使得“以数据为中心”的思考解决问题的方式优势逐渐得到显现。
(5)我为人人,人人为我
“我为人人,人人为我”是大数据思维又一体现,城市的智能交通管理便是一个例子。在智能手机和智能汽车(特斯拉等)出现之前,世界上的很多大城市虽然都有交通管理(或者控制)中心,但是它们能够得到的交通路况信息最快也有 20 分钟滞后。如果没有能够跟踪足够多的人出行情况的实时信息的工具,一个城市即使部署再多的采样观察点,再频繁地报告各种交通事故和拥堵的情况,整体交通路况信息的实时性也不会比2007年有多大改进。
但是,在能够定位的智能手机出现后,这种情况得到了根本的改变。由于智能手机足够普及并且大部分用户开放了他们的实时位置信息(符合大数据的完备性),使得做地图服务的公司,比如Google或者百度,有可能实时地得到任何一个人口密度较大的城市的人员流动信息,并且根据其流动的速度和所在的位置,很容易区分步行的人群和行进的汽车。
由于收集信息的公司和提供地图服务的公司是一家,因此从数据采集、数据处理,到信息发布中间的延时微乎其微,所提供的交通路况信息要及时得多。使用过Google地图服务或者百度地图服务的人,对比六七年前,都很明显地感到了其中的差别。当然,更及时的信息可以通过分析历史数据来预测。一些科研小组和公司的研发部门,已经开始利用一个城市交通状况的历史数据,结合实时数据,预测一段时间以内(比如一个小时)该城市各条道路可能出现的交通状况,并且帮助出行者规划最好的出行路线。
上面的实例很好地阐释了大数据时代“我为人人、人人为我”的全新理念和思维,每个使用导航软件的智能手机用户,一方面共享自己的实时位置信息给导航软件公司(比如百度地图),使得导航软件公司可以从大量用户那里获得实时的交通路况大数据,另一方面,每个用户又在享受导航软件公司提供的基于交通大数据的实时导航服务。