第1章 绪 论
英国科学家詹姆斯•马丁认为,人类的知识在19世纪是每50年增加1倍,20世纪中叶是每10年增加1倍,到20世纪70年代就已经缩短为每5年增加1倍。如今的信息,特别是互联网上的Web信息,更如爆炸般产生,且信息的生产能力已超过了人们对其处理和吸收的能力。正如美国作家奈斯比特在其著作《大趋势》一书中曾指出的那样:“我们虽淹没在信息的海洋中,但是却渴求所需的知识。”为什么会出现这种情况呢?主要原因之一是缺乏有效的大数据搜索、挖掘与知识获取手段。因此,帮助人们快速、方便、准确地从大数据海洋中搜索并挖掘到所需信息,已成为时代发展的需要(高凯,2010)。
随着以Twitter与FAcebook等为代表的新型社交媒体的出现和迅猛发展,基于互联网的社交媒体已经成为信息传播的重要渠道和载体。截至2012年3月,
Twitter共有1.4亿活跃用户,每天约3.4亿条推文。截至2012年5月,FAcebook
拥有约9亿用户,月活跃用户接近8.5亿。《第31次中国互联网络发展状况调查统计报告》显示:截至2012年12月,我国微博用户规模为3.09亿,网民中的微博用户比例达到54.7%,手机微博用户规模达到2.02亿,新浪微博注册用户已超5亿,用户每日发博量超过1亿条(CNNIC,2013)。社交媒体在短短几年内快速覆盖了全球10亿以上的主流人群,影响着大多数人生活的方方面面,对社会经济生活、管理创新甚至国家战略都产生了深远的影响。互联网已成为人们获取信息的首选途径,也成为大数据的重要来源。
让我们以一分钟为窗口看一组数据,感受一下大数据时代的信息传播。
(1)每分钟FAcebook用户评论数超过50万。每分钟FAcebook用户主页状态更新数超过29万,图片上传量接近14万张。按照这个速度计算,只需15分钟,FAcebook图片上传量就相当于纽约公共图片档案馆中的图片总量。可见,用户将为FAcebook创造数量惊人的内容。
(2)Twitter用户每分钟发布12万条信息。但是,Twitter用户每分钟通过第
三方服务上传的图片量并不大,仅为FAcebook的1%。
(3)图片社交网络Flickr每分钟图片上传量为3500张。
(4)照片分享应用InstAgrAm每分钟图片上传量为1350张。
(5)地理定位服务FourSquAre用户每分钟签到数超过2000人。
(6)轻博客Tumblr每分钟博文发布量为1000篇,博文转发量为300篇。
(7)点评网站Yelp每分钟接收20条新评论,每小时接收120张新图片。
(8)视频网站YouTube每分钟上传大约48小时的视频。
(9)2012年,天猫与淘宝的“双十一”交易总额为53亿元,“双十一”全天,支付宝交易笔数超1亿笔,最高峰时处理交易数达20.5万笔/分钟。
(10)新浪微博用户平均每天发布超过1亿条微博内容,每分钟平均处理微博
7万条。
何谓大数据?研究机构GArtner给出了这样的定义:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产;大数据通常用来形容大量的非结构化和半结构化数据。
大数据的主要特点如下:
(1)数据量巨大———从TB级别,跃升到ZB级别;伴随着数据规模的剧增,数据的价值密度在减小,从大数据中挖掘有价值的知识,需要在搜索与挖掘方面采用一些新的技术手段与方法。
(2)数据多样化———传统的数据挖掘主要是以结构化数据为主,而大数据更加多样化,结构化数据、半结构化以及非结构化数据融合,来源多样化,数据质量良亮不齐。利用成熟的关系型数据仓库与数据挖掘手段,基本解决了结构化数据的存储、检索与挖掘问题,已经成就了OrAcle、SQLServer、IBMDB2等成熟的产品。目前,结构化数据不过是冰山一角,规模更大的是非结构化数据,其规模是结构化数据的十倍乃至百倍。海量异构文本内容数据(如网页、微博与社交网络、网络日志、视频、图片、RFID、地理位置信息等)的处理挑战更大,还缺乏成熟的技术,需要运用新的处理和发现模式,来挖掘大数据背后隐藏着的知识。因此,大数据的处理更大意义上是对非结构化数据的处理,本书的主旨也是聚焦于非结构化大数据分析处理技术的研究。
(3)数据速度变更快———大数据时代之前的处理数据一般都是静态化的内容,或者数据的产生与变化速度较低,采用批处理的方式即可解决。而微博等社交网络数据以及电子商务等交易数据是以实时数据流的方式出现的,采用静态的处理架构已经无法应对大数据稍纵即逝的特点。
面对大数据的新特点,如何解决大数据规模大、速度快、多样化以及价值密度低等挑战?我们的观点是:采用大数据分析方法学,即从客观存在的全量超大规模、多源异构、实时变化的微观数据中,利用自然语言处理、信息检索、机器学习等技术抽取知识,转化为智慧的方法学。下面以图1.1为例来研究我们对大数据正确认识的方法论。一般的认识过程包括以下三个有序的过程:
(1)知著:从宏观上认识大数据的轮廓、结构、宏观特征。首先能从图中发现总体是一个“大”字,而且是由多个一样的“小”字按照“大”字的结构有机组成的;大数据处理的要领就在于开始时忽略细枝末节,从宏观上尽快挖掘出统一的结构特性,获取综合的共同点,发现相关性。
(2)显微:细究大数据的微观构成特征。从微观可以发现每个细节都是由“小”字组成,但仅仅聚焦于微观的“小”字,会跌入盲人摸象式的片面误区。因为大数据本身的价值密度极低,而且大数据处理的效率要求实时,不可能针对每个微观部分都做细致的分析处理,更多的是分析关键节点。正如我们在做微博分析的时候,会发现大量用户的内容实际上是没有分析价值的,而单→用户有分析价值的内容也是有限的。
(3)晓意:在大数据中引入语言语义的分析与理解。如果不懂汉语,不懂“大”与“小”的语义,不清楚“大中有小”、“小中喻大”的辩证关系,整个图的精妙所在也就无从知晓。大数据的关键在于非结构化数据,因此将自然语言处理的技术引入大数据处理是大势所趋。
随着大数据时代的来伍,大数据也吸引了越来越多的关注。另→方面,近年来,随着语料库语言学的兴起,尤其是随着以互联网为主的大数据真实文本的出现,自然语言处理和文本挖掘技术也有了突飞猛进的发展。拿汉语来说,其信息处理技术已有几十年的历史,也取得了许多成就,其中→个重要的方面就是浅层分析技术的研究与应用。目前,汉语分词和命名实体识别的精度不断提高,已进入实用阶段,而与此同时,信息抽取、文本分类、聚类等文本挖掘技术也取得了巨大的进展,成为大数据分析与网络信息挖掘的有效手段。在这种情况下,人们已经不满足
于对语言本身进行分析,而是希望利用语言分析的手段从大数据中挖掘一些感兴趣的抽象对象(如事件、人物、地点、机构、音乐、软件等)。大数据搜索与挖掘就是在这个应用背景下诞生的。
大数据搜索和挖掘是建立在网络搜索、数据挖掘等基础上的。虽然传统的信息检索有很长的历史(可追溯到古代),但它真正受到人们的关注还是近半个世纪的事。如何在浩如烟海的Web信息中快速检索和挖掘到所需信息,已成为大数据时代必须要认真面对和解决的问题;而对网络信息的搜索和挖掘,也即本书的关注点,就成为大数据分析的重点内容之一。
1.1 大 数 据
大数据这个术语的出现大概可追溯到ApAche的开源项目Nutch。当时,大数据———BigDAtA———是用来描述为更新网络搜索索引需同时进行批量处理或分析的大量数据集。随着MApReduce和GoogleFileSystem(GFS)的发布,从2009年开始,大数据才开始成为互联网行业的流行词汇,也引起了越来越多的关注。物联网、云计算、移动互联网、手机与平板电脑、PC以及遍布各个角落的各种各样的传感器,无一不是大数据的来源或承载方。可以说,大数据就在我们的身边———从阿里巴巴、1号店、京东商城等电子商务数据,到QQ、MSN等即时聊天内容,再到Google、Bing、百度,又到社会网络与微博数据等,都在生产、承载着大数据。随着信息处理量的增大(据统计,FAcebook对某一主题进行搜索时,需在超过50TB的数据中迅速找出相关内容;在eBAy存储了超过2PB的数据以备查询),很多传统方法(如RDBMS、SQL查询等)都不能直接应用在对海量数据的处理上,否则时间开销将会变得非常大。对大数据的挖掘和分析正变得愈发重要。而对Google、百度、Bing、FAcebook、网页文本、微博消息等的挖掘与分析,使人们的行为和情绪的细化测量成为可能。挖掘用户的行为习惯和喜好,从凌乱纷繁的大数据背后找到符合用户兴趣和习惯的产品和服务并对产品和服务进行有针对性的调整和优化,本身就蕴含着巨大的商机。可以说,手握大数据的公司是“站在金矿上的富翁”。虽然一些小机构或商业组织不需要对几百TB的数据进行挖掘处理,但有些任务的运行已超出了单机方案所提供的能力,因此也需要一些规模较小的大数据处理系统。因此,针对大数据的处理,特别是大数据搜索与挖掘,就显得非常必要。
对大数据的智能处理,常常涉及对非结构化和半结构化数据处理、自然语言处理、信息检索、数据挖掘、大规模并行处理与云平台的构建等(因为对实时大数据进行分析需要用像MApReduce那样的框架来向数十、数百或甚至数千的电脑分配工作)。限于篇幅,本书不对MApReduce及相关的开源系统HAdoop、Nutch等进行详细介绍,而是将重点放在对大数据的智能化信息处理与数据挖掘上,并介绍在中
文自然语言处理、网络信息预处理、网络情报挖掘(包括网络语言分析、新特征语言抽取、汉语词法分析、文本自动分类、自动聚类、自动摘要、关键词抽取)、网络精准搜索(包括信息检索模型、句子搜索)、任务搜索等方面的研究成果,并介绍其在人物搜索与追踪中的应用。
从大数据这座金矿中挖掘有价值的信息,是本书的目的所在;而如何在云平台下组织大数据、搭建并行编程框架,则超出了本书涵盖的范围(本书只在1.2节简单介绍云计算及HAdoop相关技术),有兴趣的读者,可以参阅其他相关文献。
1.2 云计算及HAdoop简介
随着大数据时代信息量的快速增长,其对计算能力的需求远远超出自身IT架构的计算能力,这就需要不断加大系统的硬件投入,从而实现系统的可扩展性。由于传统并行模型应用的局限性,客观上要求一种易使用、易部署的并行编程框架。
从历史发展来看,网格计算的实现思路主要是通过将工作任务分发到一系列的计算机集群中,通过一些共享的文件系统等协同工作,对于要求具有繁重计算任务的程序来说,它往往具有良好的效果,但当计算需要随时读写大量数据时,其瓶颈就显现出来了。另外,它部署任务时的灵活性不够。为了节省成本和实现系统的可扩展性,云计算的概念被提了出来。
云计算是分布式计算、并行处理和网格计算的进一步发展,是基于互联网的计算,能够向各种互联网应用提供硬件服务、基础架构服务、平台服务、软件服务、存储服务。它是整个IT产业发展的趋势,也是新一代互联网、物联网和移动互联的引擎和基础。云计算与网格计算有许多相似之处,也是利用大量的计算机,构建出强大的计算能力。但云计算有更为宏大的目标,它希望能利用并发计算能力,构建稳定而快速的存储及其他服务。通常,云系统由第三方拥有的机制提供服务,用户只关心云提供的服务,而无需关心服务所在的具体位置。目前,美国政府已经建立了多个政府云。除此之外,欧盟、英国、日本、加拿大也都启动了相应的计划。我国也将云计算纳入“十二五”规划之中,并推出系列措施推动云计算的研发和应用。目前,包括Google、微软、IBM、AmAzon、EMC、惠普等在内的许多IT业巨头都宣布要在云计算上进行重点研究,也有了一些供企业使用的云计算案例———如Google和IBM联合宣布推广云计算的计划等,包括卡内基梅隆大学、斯坦福大学、加州大学伯克利分校、华盛顿大学、麻省理工学院等在内的许多高校也都参加了这项计划。AmAzon也提供了著名的EC2服务,这项服务可看成是一个云计算系统,能够为用户提供大规模的计算能力并有效降低响应时间。
得益于FAceBook、阿里巴巴、腾讯等行业领先企业的现身说法,HAdoop被看成是大数据分析的利器。提到大数据的价值,就不得不谈谈HAdoop。HAdoop是一个由ApAche基金会开发的开源的分布式系统基础架构,实现了Google的MApReduce,主要包括MAp/Reduce和HDFS文件系统。其中,主从式HDFS文件系统位于下层,主从式MAp/Reduce处理位于上层,基本思想是“计算向存储迁移”———计算时各节点读取存储在自己节点的数据并进行处理。MAp处理过程一般没有数据传输,只是在Reduce过程中向主节点传送计算结果,有效地解决了并行计算中网络数据传输的瓶颈问题。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力,完成高速运算和存储。一般地,HDFS集群由一个名字节点(是一个管理文件的命名空间和调节客户端访问文件的主服务器)以及数据节点组成,其内部处理机制是将一个文件分割成一个块或多个块,这些块存储在一组数据节点中,名字节点操作文件命名空间的文件或目录操作,同时确定块与数据节点的映射;数据节点负责来自文件系统客户的读写请求,同时执行块的创建、删除和来自名字节点的块复制指示等。一般地,HAdoop主要由以下几个子项目组成(刘鹏,2011)。
(1)HAdoopCommon:支撑HAdoop的公共部分,包括文件系统、远程过程调用(RPC)和序列化函数库等。
(2)HDFS:提供高吞吐量的可靠分布式文件系统,是GFS的开源实现。
(3)MApReduce:大型分布式数据处理模型,是GoogleMApReduce的开源实现。
与HAdoop直接相关的配套开源项目一般包括以下几个方面。
(1)HBAse:支持结构化数据存储的分布式数据库,是BigtAble的开源
实现。
(2)Hive:提供数据摘要和查询功能的数据仓库。
(3)Pig:是在MApReduce上构建的一种高级的数据流语言,可以简化MApReduce任务的开发。
(4)CAssAndrA:由FAcebook支持的开源高可扩展分布式数据库,是AmAzon
底层架构DynAmo的全分布和GoogleBigtAble的列式数据存储模型的有机结合。
(5)ChukwA:一个用来管理大型分布式系统的数据采集系统。
(6)ZooKeeper:用于解决分布式系统的一致性问题,是Chubby的开源实现。
1.3 Web搜索、全文索引与Lucene简介
Web搜索工具已经成为人们通过网络获取信息的必备工具。作为大数据应用中的重要成员,Web搜索也已成为互联网中的基础应用,也是网民在互联网中获取所需信息的重要工具,其用户规模仍会随着网民总体规模的增长而进一步提
展开