1.2 浅析大数据工作流程、技术与应用 |
|
大数据已经悄然改变了我们的工作与生活,那么大数据到底是怎样工作的?
图 1.2.1 简单演示了大数据的主要处理步骤,主要包括数据采集、数据存储、数据处理、数据运用等主要环节。
图1.2.1 简易的大数据处理流程图
(1)数据采集
大数据处理的第一步是数据的收集或汇总。现在的中大型项目通常采用微服务架构进行分布式部署,所以数据的采集会在多台服务器上进行,且采集过程不能影响正常业务的开展。基于这种需求,就衍生了多种日志收集工具,如 Flume、Logstash、Kibana 等,它们都能通过简单的配置完成复杂的数据收集和数据聚合。
(2)数据存储
收集到数据后,数据该如何进行存储?MySQL、Oracle等传统的关系型数据库是大家最为熟知的,它们的优点是能够快速存储结构化的数据,并支持多种访问和处理方式。但大数据的数据结构通常是半结构化(如日志数据)、甚至是非结构化的(如视频、音频数据),为了解决海量半结构化和非结构化数据的存储,衍生了Hadoop HDFS、KFS、GFS等分布式文件系统,它们都能够支持结构化、半结构化和非结构化数据的存储,并可横向扩展。
分布式文件系统完美地解决了海量数据存储的问题,但是一个优秀的数据存储系统必须同时考虑数据存储和访问两方面的问题,比如你希望能够对数据进行随机访问,这是传统的关系型数据库所擅长的,但却不是分布式文件系统所擅长的,那么有没有一种存储方案能够同时兼具分布式文件系统和关系型数据库的优点呢?基于这种需求,就产生了HBase、MongoDB。
(3)数据处理
大数据处理通常分为数据批处理和数据流处理两种。
数据批处理:对一段时间内海量的离线数据进行统一的处理,对应的处理框架有Hadoop MapReduce、Spark、Flink等;
数据流处理:对运动中的数据进行处理,即在接收数据的同时就对其进行处理,对应的处理框架有Storm、Spark Streaming、Flink Streaming 等。
数据批处理和数据流处理各有适用的场景,时间不敏感或者硬件资源有限时,可以采用数据批处理;时间敏感和及时性要求高就可以采用数据流处理。随着服务器硬件的价格越来越低和大家对及时性的要求越来越高,数据流处理将越来越普遍,如股票价格的实时预测和电商运营数据分析等。
(4)数据运用
这是前面数据采集、数据存储、数据处理的目的所在,是数据的具体应用之所在,也是数据核心价值体现之所在。它所涉及的领域广、种类多、形式复杂、效果巨大,具体细节见后续介绍。
在对大数据的工作流程有了一个简单的认识后,下面进一步对其中的流程环节进行介绍。
数据采集是指从传感器、数据终端、智能设备、企业在线系统、企业离线系统、社交网络和互联网平台等获取数据的过程。包括 RFID 数据、传感器数据、用户行为数据、社交网络交互数据及移动互联网数据等各种类型的结构化、半结构化及非结构化的海量数据。
大数据主要来源于:
(1)企业系统:客户关系管理系统、企业资源计划系统、库存系统、销售系统等。
(2)机器系统:智能仪表、工业设备传感器、智能设备、视频监控系统等。
(3)互联网系统:电商系统、服务行业业务系统、电子政务系统等。
(4)社交系统:微信、QQ、微博、博客、新闻网站、朋友圈等。
在大数据体系中,将数据分为:
(1)业务数据:消费者数据、客户关系数据、库存数据、账目数据等。
(2)行业数据:交通流量数据、能耗数据、气象数据与水文数据等。
(3)内容数据:应用日志、电子文档、机器数据、语音数据、社交媒体数据等。
(4)线上行为数据:页面数据、交互数据、表单数据、会话数据、反馈数据等。
(5)线下行为数据:车辆位置和轨迹、用户位置和轨迹、动物位置和轨迹等。
数据源与数据类型的关系如图1.2.2所示。
图1.2.2 数据源与数据类型的关系
企业系统从传统企业的生产环境中获取相关的业务数据。机器系统产生的数据可分为两大类:
(1)通过智能仪表和传感器获取行业数据,例如,公路路口设备获取车流量数据,智能电表获取用电量等。
(2)通过各类监控设备获取人、动物和物体的位置和运动轨迹信息。
互联网系统会产生相关的业务数据和线上行为数据,例如,商品信息、销售信息、用户的反馈和评价信息,用户的行为信息等。
社交系统会产生大量的内容数据,如博文与照片等,以及线上行为数据。
从数据源方面来看,传统数据采集的数据源单一,就是从传统企业的客户关系管理系统(CRM)、企业资源计划系统(ERP)及相关业务系统中获取数据,而大数据采集系统还需要从社交系统、互联网系统及各种类型的机器系统上获取数据。
从数据量方面来看,互联网系统和机器系统产生的数据量要远远大于传统企业系统的数据量。
从数据结构方面来看,传统数据采集的数据都是结构化的数据,而大数据采集系统需要采集大量的视频、音频、照片等非结构化数据,以及网页、博文、日志等半结构化数据。
从数据产生速度来看,传统数据采集的数据多是人为操作生成的,通常比机器生成数据的速度低。
可见,传统的数据采集方法,数据来源单一,而且存储、管理和分析数据量也相对较小,大多采用关系型数据库或数据仓库即可处理。而大数据采集系统数据来源种类多、数据类型复杂、数据量大,并且产生的速度极快,传统的数据采集方法难于胜任。
大数据的采集是指利用多个数据库或存储系统来接收发自客户端(Web、App 或者传感器等)的数据。针对4种不同的数据源,大数据采集方法有以下4大类。
(1)数据库采集
传统企业会使用传统的关系型数据库,例如MySQL和Oracle等,来采集数据。随着大数据时代的到来,Redis、MongoDB、HBase、NoSQL数据库是数据采集的最重要来源。企业通过在采集端部署大量数据库,并在这些数据库之间进行负载均衡或分片,自动或程序控制完成大数据采集工作。
(2)系统日志采集
系统日志采集主要是收集公司业务平台日常产生的大量日志数据,供离线或在线的大数据分析系统使用。它所具有的高可用性、高可靠性、可扩展性是日志收集系统所具有的基本特征。系统日志采集工具多采用分布式架构,能够满足数据量及数据传输率均较大的日志数据采集和传输需求。
(3)网络数据采集
网络数据采集是指,通过网络爬虫、专用网络数据获取工具或网站公开API等方式从网站上获取数据信息的过程。网络爬虫会从一个或若干个初始URL开始,获得相关网页或网站的内容,并且在抓取内容的过程中,不断分析、抽取新的URL放入队列,直到满足设置的停止条件为止。这样可将结构化数据、半结构化数据、非结构化数据提取出来,存储在本地或其指定的存储系统中。
(4)感知设备数据采集
感知设备数据采集是指,通过传感器、摄像头或其他智能终端自动采集信号、图片或录像来获取数据。大数据智能感知系统需要实现对结构化、半结构化、非结构化的海量数据的智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理和管理等。其关键技术包括针对大数据源的智能识别、感知、适配、传输、接入等。
大数据预处理将数据划分为结构化、半结构化、非结构化数据,分别采用传统ETL工具或分布式并行处理框架来实现,总体架构如图1.2.3所示。
图1.2.3 大数据预处理总体架构
结构化数据可以存储在传统的关系型数据库中,关系型数据库在处理事务、及时响应、保证数据的一致性方面具有天然的优势。
非结构化数据可以存储在新型分布式存储系统中,如Hadoop HDFS,半结构化数据可以存储在类似NoSQL数据库中。
分布式存储在系统的横向扩展性、存储成本、文件读取速度等方面有着显著的优势。
传统关系型数据库的数据与分布式数据库的数据之间可以按照数据处理的需求进行迁移(或称转换)。例如,为了进行快速并行处理,需要将传统关系型数据库中的结构化数据导入到分布式存储系统中。
可以利用Sqoop等工具,先将关系型数据库的“表状结构数据”导入到分布式数据库,然后再向分布式数据库的表中导入结构化数据。
数据预处理工作的主要任务有:数据清洗、数据集成、数据转换、数据归约。
现实世界的数据一般是不完整的、有噪声的和不一致的。数据清洗过程的任务便是,填充缺失的值,识别离群点特性并滤除噪声,纠正数据中的不一致性问题。
数据清洗在汇聚多个维度、多个来源、多种结构的数据之后,对数据进行抽取、转换和集成加载。在以上过程中,除了更正、修复系统中的一些错误数据之外,更多的是对数据进行归并、整理,并存储处理后的数据。其中,数据的质量至关重要。
下面介绍数据清洗的主要处理方法:
(1)遗漏(不完整)数据处理
假设在分析一个商场销售数据时,发现有多个记录中的属性值为空,如客户未填写其月收入,则该属性值为空,这时可以采用以下方法进行遗漏数据处理。
①忽略该条记录
若一条记录中有属性值被遗漏了,则将此条记录排除(视为作废),尤其是没有类别属性值而又要进行分类数据挖掘时。当然,这种方法并不很有效,尤其是个别属性(如月收入)遗漏比例较大时。
②手工填补遗漏值
这种方法一般比较耗时,而且对于存在许多遗漏情况的大规模数据集而言,可行性较差。
③利用默认值填补遗漏值
对一个属性的所有遗漏的值均利用一个事先确定好的值来填补,例如,“健康状况”都用“OK”来填补。但当一个属性的遗漏值较多时,若采用这种方法,有可能误导数据挖掘进程。
因此这种方法虽然简单,但并不推荐使用,或使用时需要仔细分析填补后的情况,以尽量避免对最终数据挖掘结果产生较大误差。
④利用均值填补遗漏值
计算一个属性值的平均值,并用此值填补该属性所有遗漏的值。例如,若客户的平均月收入为 10000 元,则用此值填补客户“月收入”属性中所有被遗漏的值。
⑤利用同类别均值填补遗漏值
这种方法尤其适合在进行分类数据挖掘时使用。
例如,若要对商场客户按信用风险进行分类挖掘时,就可以用在同信用类别(如良好)的客户“月收入”平均值,来填补那些遗漏的“同信用类别”客户“月收入”属性值。
⑥利用“最可能值”填补遗漏值
可以利用回归分析、贝叶斯计算公式或决策树推断出该条记录特定属性的最大可能的取值。
例如,利用数据集中其他客户的属性值,可以构造一个分布函数或决策树来预测出客户“月收入”的遗漏值。
最后一种方法是一种较常用的方法,与其他方法相比,它最大限度地利用了当前数据所包含的信息来帮助预测所遗漏的数据。
(2)噪声数据处理
噪声是指,大多数数据符合规律性分布或取值时,但个别的或少量的值出现随机性错误或异常的情况。“去噪”就是找到和去除噪声数据,使数据整体更规范可信,下面介绍两种常用方法。
① Bin方法
Bin方法通过利用噪点数据点的周围点(近邻点),对一组数据排序进行平滑处理。排序后的数据被分配到若干桶(称为 Bin)中。Bin 划分方法一般有两种,如图 1.2.4 所示,一种是等高方法,即每个Bin中的元素的个数相等,另一种是等宽方法,即每个Bin的取值间距(左右边界之差)相同。
图1.2.4 两种典型的Bin划分方法
下面通过给定一个数值型属性(如价格)来说明“平滑去噪”(Bin方法)的具体做法。
如图1.2.5所示,首先,对价格数据进行排序;然后,将其划分为若干等高度的Bin,即每个Bin包含3个数值;最后,既可以利用每个Bin的均值进行平滑,也可以利用每个Bin的边界进行平滑。
图1.2.5 利用Bin方法平滑去噪
利用均值进行平滑时,第一个Bin中4、8、15均用该Bin的均值替换;利用边界进行平滑时,对于给定的Bin,其最大值与最小值就构成了该Bin的边界,利用每个Bin的边界值(最大值或最小值)可替换该Bin中的所有值。
一般来说,每个Bin的宽度越宽,其平滑效果越明显。
②聚类分析方法
通过聚类分析方法可帮助发现异常数据。相似或相邻近的数据聚合在一起形成了各个聚类集合,而那些位于这些聚类集合之外的数据对象,自然而然地就被认为是异常数据(即噪声数据)。
图1.2.6 基于聚类分析方法的异常数据监测
③人机结合检查方法
通过人机结合检查方法,可以帮助发现异常数据。例如,利用基于信息论的方法可帮助识别手写符号库中的异常模式,所识别出的异常模式可输出到一个列表中,然后由人对这一列表中的各个异常模式进行检查,并最终确认无用的模式(真正异常的模式)。这种人机结合检查方法比手工方法的手写符号库检查效率要高许多。
④回归方法
可以利用拟合函数对数据进行平滑。例如,借助线性回归方法,包括多变量回归方法,就可以获得多个变量之间的拟合关系,从而达到利用一组变量值来预测另一个变量取值的目的。利用回归分析方法所获得的拟合函数,能够帮助平滑数据并去除其中的噪声数据。
许多数据平滑方法,同时也是“数据消减”方法。例如,上面例子的Bin方法可以帮助消减一个属性中的不同取值,这也就意味着Bin方法可以作为基于逻辑挖掘方法的数据消减处理方法。
(3)不一致数据处理
现实世界的数据库经常会岀现数据记录内容不一致的问题,其中的一些数据可以利用它们与外部的关联关系,通过手工解决这种问题。
例如,数据录入错误可以通过与原稿进行对比来加以纠正。也可以让三个人同时录入一篇文章,出现不一致时,进行比较,取出现次数多者(假设两人正确一人错误)作为“正确”数据。此外还有ECC纠错码等方法可以帮助纠正一些数据不一致问题。知识工程工具也可以帮助发现违反数据约束条件的情况,从而帮助纠错。
由于同一属性在不同数据库中的取名不规范,常常使得在进行数据集成时,导致不一致问题的发生。
数据集成是指,将多个数据源中的数据合并,然后存放到一致的数据存储机制(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。在进行数据集成时,有许多问题需要考虑。
(1)模式集成问题
模式集成问题是指,如何使来自多个数据源的现实世界的实体相互匹配,这其中就涉及实体识别问题。例如,如何确定一个数据库中的“customer_id”与另一个数据库中的“customer_number”是否表示同一实体(“客户编号”)。
数据库与数据仓库通常包含元数据,这些元数据可以帮助避免在模式集成时发生错误。每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或null值的空值规则。这样的元数据可以用来帮助避免模式集成的错误。元数据还可以用来帮助变换数据(例如,pay_type 的数据编码在一个数据库中可以是“H”和“S”,而在另一个数据库中是1和2)。因此,这一步也与前面介绍的数据清洗有关。
(2)冗余属性问题
冗余属性问题是数据集成中经常发生的另一个问题。若一个属性可以从其他属性中推演出来,那么这个属性就是冗余属性。
例如,一个客户数据表中的月平均收入属性就是冗余属性,显然它可以根据月收入属性计算出来。此外,属性命名的不一致也会导致集成后的数据集出现数据冗余问题。
利用相关分析可以帮助发现一些数据冗余情况。
例如,给定两个属性 A 和 B ,则根据这两个属性的数值可分析出这两个属性间的相互关系。
如果两个属性之间的关联值 r >0,则说明两个属性之间是正关联,也就是说,若 A 增加,则 B 也增加。 r 值越大,说明属性 A 、 B 的正关联性越强。
如果关联值 r =0,则说明属性 A 、 B 相互独立,两者之间没有关系。如果 r <0,则说明属性 A 、 B 之间是负关联,也就是说,若 A 增加,则 B 就减少。r的绝对值越大,说明属性 A 、 B 的负关联性越强。
(3)数据值冲突的检测与处理
对于现实世界的同一实体,来自不同数据源的属性值可能不同。这可能是因为表示方法、比例或编码不同。例如,重量属性可能在一个系统中以公制单位存放,而在另一个系统中以英制单位存放。对于连锁旅馆,在不同城市其房价不仅可能涉及币种,还可能涉及不同的服务(如免费早餐)和税负。
数据转换是将数据进行转换或归并,从而构成一个适合数据处理的描述形式。数据转换包含以下处理内容。
(1)平滑处理
帮助除去数据中的噪声数据,主要技术方法有Bin方法、聚类方法和回归方法等。
(2)合计处理
对数据进行汇总或合计操作。例如,每天的数据经过合计操作可以获得每月或每年的总额。这一操作常用于构造数据立方或对数据进行多粒度的分析。
(3)数据泛化处理
用更抽象(更高层次)的概念来取代低层次或数据层的数据对象。
例如,街道属性可以泛化到更高层次的概念,如城市、国家,数值型的属性,如年龄属性,可以映射到更高层次的概念,如年轻、中年和老年。
(4)规格化处理
将有关属性数据按比例投射到特定的小范围之中。例如,将工资收入属性值映射到 0到1范围内。
(5)属性构造处理
根据已有属性集构造新的属性,以帮助数据处理过程。
(1)数据立方聚集:聚集操作用于数据立方结构中的数据。
图 1.2.7 展示了在三个维度上对某公司原始销售数据进行合计所获得的数据立方。它从时间(年代)、公司分支,以及商品类型三个维度描述了相应(时空)的销售额(对应的小立方块)。
图1.2.7 数据立方合计描述
每个属性都可对应一个概念层次树,以帮助进行多抽象层次的数据分析。例如,一个分支属性的(概念)层次树,可以提升到更高一层的区域概念,这样就可以将多个同一区域的分支合并到一起。
在最低层次所建立的数据立方称为基立方,而最高抽象层次对应的数据立方称为顶立方。
顶立方代表整个公司三年中,所有分支、所有类型商品的销售总额。显然每一层次的数据立方都是对低一层数据的进一步抽象,因此它也是一种有效的数据消减。
(2)属性子集选择:通过删除不相关的或冗余的属性(或维度)可以缩小数据集。属性子集选择的目标是,找出最小属性集,使得数据类的概率分布尽可能地接近使用全部属性数据所对应的原分布。对于属性子集的选择,一般使用压缩搜索空间的“启发式算法”。通常,这些方法属于“贪心算法”,在搜索属性空间时,总是做看上去是当时最佳的选择。其策略是,做局部最优选择,期望由此导致全局最优解。在实践中,这种“贪心算法”是有效的,并可以逼近最优解。
①逐步向前选择:该过程由空属性集作为归约集(存放选出的属性)开始;然后,再次选定原属性集中最好的属性,并将它添加到归约集中。在其后的每一次迭代中,均将剩下的原属性集中最好的属性添加到归约集中。
②逐步向后删除:该过程由整个属性集开始,在每一步,删除尚存于属性集中的最差属性。
③向前选择和向后删除的结合,即一方面选出最好属性者移入归约集;另一方面删除当前集合的最差属性。
④决策树归纳:决策树算法中的 ID3、C4.5 和 CART 最初是用于分类算法的。决策树归纳构造一个类似于流程图的结构,其中每个内部节点(非树叶)表示一个属性的测试,每个分枝对应于测试的一个输出,每个外部(树叶)节点表示一个类预测。在每个节点,算法选择最好的属性,将数据划分成类。
(3)维度归约:使用编码机制减小数据集的规模,例如:小波变换和主成分分析。
(4)数值归约:用替代的、较小的数据表示替换或估计数据,如参数模型(只需要存放模型参数,不是实际数据)或非参数方法,如聚类、抽样和使用直方图。
(5)离散化和概念分层产生:属性的原始数据值用区间值或较高层的概念替换。数据离散化是一种数据归约形式,对于概念分层的自动产生是有用的。离散化和概念分层产生是数据挖掘强有力的工具,允许挖掘多个抽象层的数据。
很重要的是,用于数据归约的计算时间不应超过或“抵消”对归约数据挖掘节省的时间。
当前,根据数据处理的形式,人们把大数据分析的典型应用场景分为两种:
同步方式,即实时的或者近似实时的大数据分析;
异步方式,这种方式下,首先获取数据,然后再进行处理和分析。
可以想象,近似实时的大数据分析的最早例子就是,超市工作人员根据销售数据及时统计消费者行为习惯并提供相应的优惠促销券的。事实上,消费者购买行为的统计与计算很可能在用户付款前就已经完成。另外一个相关的例子是,在线社交网站可以通过访问用户的行为建立属于其个人的行为数据库,这样就可以根据每位消费者的消费习惯而有针对性地提供广告推送。
例如,医院急诊科会根据急救病人的当前状况,结合大数据系统中已经存在的被急救病人病历信息及身体状况,结合医疗系统类似病例的处置情况,快速实时分析出患者的病情、病况和危险程度,进而有针对性地快速施救。
在实时使用场景下,响应效率是最为关键的,因此大数据存储架构本身的设计需要满足最小延时的要求。
(1)针对同步大数据分析的存储
大数据的实时分析应用通常会运行在例如 NoSQL 之类的数据库和能支持海量可扩展的商用硬件(例如云)上。另一方面,Hadoop非常合适于异步大数据分析。由于在很多场合下,存储本身的延时问题会成为瓶颈,那么固态存储设备对于实时数据分析是很有帮助的。闪存存储器(Flash Memory)可以以多种形式进行部署,例如作为传统存储磁盘阵列的一层;或采用NAS(Network Attached Storage,网络附属存储)方式;再或者以应用服务器本身的方式实现。
这种服务器端的闪存存储器架构方式因体积小、速度快、实施方便而广受用户欢迎。之所以这样,是由于它能够实现最低程度的延时(因该方式下的存储速率最为接近CPU总线频率),并且提供了很灵活的容量选择。1GB~10TB容量就可以实现。SAS接口或SATA接口的固态硬盘本身已经很强大,而PCIe接口的固态设备逐渐成了“高性能应用”的事实标准(比如实时分析),因为相对于前者,其延时更低。
如今,业界有许多提供PCIe闪存存储器的公司,包括Fusion-io、LSI、Micron Technology、SanDisk、sTec(现在是HGST的一部分,属于Western Digital公司)、Violin Memory以及Virident(也被Western Digital收购)。许多主流服务器及存储器生产厂商提供PCIe解决方案,大多数使用与上述公司兼容的OEM协议。
尽管PCIe单卡最大容量可达32TB,但仍无法满足用户的需求,因此可考虑使用共享的存储资源池。一个解决方案是使用Virident的FlashMAX Connect软件将PCIe卡连接的固态硬盘资源通过服务器上的InfiniBand,进行存储资源的池化。
这对扩展闪存容量会非常有帮助,尤其是对于那些 PCIe 插槽不足的服务器或者需要使用VMware vSphere的Storage vMotion功能的时候。通过在不同服务器之间实现闪存的池化,这些解决方案可以提供冗余以及高可用性方面的支持。
另外一个选择是通过InfiniBand、光纤通道或者甚至PCIe的连接方式使用全闪存的固态硬盘阵列(容量可达10 TB~100 TB),可以以模块的方式进行增减容量。以全闪存阵列构成的“高端解决方案”可以提供至少100万IOPS。
(2)针对异步大数据分析的存储架构
异步处理的大数据分析采用了“捕获+存储+分析”的流程,过程中数据首先由传感器、服务器、数据终端、移动设备等获取,之后再存储到相应设备上,再后进行处理和分析。由于这些类型的分析都是通过传统的关系型数据库管理系统(RDBMS)进行的,数据形式都需要转换或者转型成为RDBMS能够使用的结构类型,例如行表或者列表的形式,并且需要和其他的数据库相连续。
处理的过程称之为“提取、转换、加载”或者称为ETL(Extract-Transform-Load)。首先,将数据从源系统中提取处理,再将数据标准化处理且将数据发往相应的数据仓库等待进一步分析。在传统数据库环境中,这种ETL步骤相对直接,因为分析的对象往往是为人们熟知的金融报告、销售或者市场报表、企业资源规划等。然而在大数据环境下,ETL可能会变得相对复杂,因此转换过程对于不同类型的数据源之间处理方式是不同的。
当分析开始的时候,数据首先从数据仓储中会被提取出来,放进RDBMS里以产生需要的报告或者支撑相应的商业智能应用。在大数据分析的环节中,元数据以及经转换了的数据大都会被保存下来,因为可能在后面还需要再次转换。
Hadoop技术也被应用于存储架构,企业能够以较低的硬件成本与较高的灵活性,搭建属于自己的可扩展性、可靠性均较高的存储系统。Hadoop运行在集群各个节点上,每个节点都有自己的存储及计算资源,尤其是在面对数据处理任务时,其他节点会协调这些处理任务,并以分布式资源池的方式进行处理。Hadoop架构中的数据通常是以HDFS(分布式文件系统)文件形式存储。
Hadoop在大数据应用中广受欢迎得益于其自身在数据提取、转换和加载方面上的天然优势。Hadoop分布式架构,将处理引擎尽可能地靠近存储设施,特别适合于像ETL这样的批处理操作,因为这类操作的批处理结果可以直接转向数据存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务发送(Map)到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。
但是对于 Hadoop,特别是 Hadoop 分布式文件系统(HDFS)来说,数据至少需要三份以支持数据的高可用性。对于 TB 级别的数据来说,HDFS 看起来还是可行的,但当达到 PB 级别海量数据的时候,其带来的存储成本压力不可小觑。即便是可横向扩展存储亦不能减缓其压力。一些厂商选择了使用RAID技术实现卷级别的数据保护机制,而在系统级别则使用了“复制”的方式。对象存储技术可以提供面对大型环境的数据冗余问题的解决方案。
用基于对象的存储架构替代分层存储架构极大地提升了可横向扩展存储的优势,具体的实现方式则是,以单一索引来关联灵活的数据对象。这将解决无限制扩展问题,从而提升了性能本身。对象存储系统包含了纠删码(Erasure Coding,EC)方案,极大提升了存储的使用效率。这样可不必依赖RAID或其他存储备份方案。
与HDFS或RAID机制不同,对象存储系统的纠删码方案以50%~60%的额外容量就能达到较好的数据保护效果。对于大数据存储系统,节省存储本是一件非常重要的贡献。可选的对象存储系统还有许多,例如 Caringo、DataDirect Networks Web Object Scaler、NetApp StorageGRID、Quantum Lattus以及OpenStack Swift和 Ceph等。
一些对象存储系统,比如Cleversafe,甚至可与Hadoop兼容。在这些项目的实施过程中,Hadoop软件组件可以运行在这些对象存储节点的CPU上,对象存储系统将替换存储节点的Hadoop分布式文件系统。
大数据逐渐成为业界的热门话题,越来越多的企业相信它能助力企业走向成功。但是,大数据应用也会受到各方面的限制,主要体现在存储技术本身。传统存储系统在“超低延时响应”“实时大数据应用”或“海量数据的数据挖掘应用”等场景均会遇到瓶颈。为了保证大数据业务能正常运行,相应的存储系统需要足够快、可扩展并且性价比有优势。
对于“闪存解决方案”来说,不管是以服务器端“闪存卡”的形式还是以“全闪存阵列”的形式,都提供了一些对于高性能、低延时、大容量存储的替代解决方案。基于对象存储系统、带有擦写功能编程、可横向扩展架构的特性,为使用传统RAID等备份方式的存储结构提供了一种能具备更高效率和更低价格的选择。
数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际数据中,提取出蕴涵在其中的,人们事先难以分辨的,但是具有潜在价值的信息和知识的过程。
用来进行数据挖掘的数据源必须是真实的和大量的,并且可能不完整或包含一些干扰数据项。发现的信息和知识必须是用户感兴趣的和有用的。一般来讲,数据挖掘的结果并不要求是完全准确的知识,而是发现某种规律或某种趋势。
数据挖掘可简单地理解为,通过对大量数据进行操作而发现有用知识的过程。它是一门涉及面很广的交叉学科,包括机器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学等相关技术。
从具体应用角度,数据挖掘是一个利用各种分析工具在海量数据中发现模型和数据间关系的过程,这些模型和关系可以用来做预测。
数据挖掘的知识发现,不是要去发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和理论数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件的,是面向特定领域的,同时还是易于被用户理解并且能用自然语言表达的。
数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去,数据收集和分析的目的是用于科学研究。另外,由于当时计算能力方面的限制,对大量数据进行分析的复杂程度受到了很大限制。
现在,由于企业数字化、自动化的实现,生产和服务领域产生了大量的业务数据,分析这些数据也不再是单纯为了研究的需要,更主要是为生产或服务企业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是,企业数据量非常大,而其中真正有价值的信息却很少,对大量的数据进行深层分析,进而获得有利于企业生产经营、提高市场竞争力的信息,就像沙里淘金一样,数据挖掘也因此而得名。
数据挖掘就是在海量的数据中找到有价值的知识,为企业经营决策提供依据。价值通常包括相关性、趋势和特征。
(1)相关性分析
相关性分析是指,对两个或多个具备相关性的变量元素进行分析,从而衡量变量因素之间的密切程度。
元素之间需要存在一定的(或概率上的)联系才可以进行相关性分析。相关性不等于因果性,所涵盖的范围和领域几乎覆盖了我们所见到的各个方面。相关性分析用于确定数据之间的变化情况,即其中一个属性或几个属性的变化是否会对其他属性造成影响?影响有多大?图1.2.8就是几种常见的相关性的示例。
图1.2.8 属性之间的几处相关性的示例
(2)趋势分析
趋势分析是指,对有关元素的各时期相对于基期的变化趋势进行分析。例如,财务趋势分析便是,与不同时期财务报表中同类指标的历史数据进行比较,从而确定财务状况、经营成果和现金流量的变化趋势和变化规律。可以通过折线图预测数据的走向和趋势,也可以通过“环比”“同比”等方式对比较得出的结果进行说明,如图1.2.9所示。
图1.2.9 发展趋势
(3)特征分析
特征分析是指,根据具体分析的内容寻找主要对象的特征。例如,互联网“类数据挖掘”就是找出用户行为方面特征来对用户进行画像,并根据不同的用户给用户群加上相应的标签,如图1.2.10所示。
图1.2.10 以用户行为信息进行特征分析
在大数据挖掘中,我们的目标是如何用一个(或多个)简单而有效的算法或算法组合来提取有价值的信息,而不是去追求算法本身或算法模型的完美。
常用的数据挖掘算法一般分为两大类:有监督学习和无监督学习,如图1.2.11所示。
图1.2.11 常用数据挖掘算法的类型
有监督学习是基于归纳的学习,是通过对大量已知分类或输出结果的数据进行训练,建立分类模型或预测模型,用来对未知的实例进行分类或对未知值的可能结果进行预测。
无监督学习是在学习训练之前,对没有预定义好分类的实例按照某种相似性度量方法,计算实例之间的相似程度,并将最为相似的实例“聚类”成组,解释每组的含义,从而发现聚类的意义。
数据可视化技术,是将数据以某种视觉表现形式加以直观表现的技术。其中,这种数据的视觉表现形式被定义为“一种以某种概要形式抽提出来的信息”,包括相应信息单位的各种属性及其变量。
数据可视化技术是一个变化之中的概念,其边界在不断地扩大。它采用多种高级技术,例如图形与图像处理、计算机视觉以及图形用户接口技术,通过数据表达、建模等方法,将数据以三维形体、二维曲面、数据属性或动画等形式显示出来,对数据加以可视化解释。与三维建模之类的专用技术方法相比,数据可视化所涵盖的技术方法要广泛得多。
数据可视化主要旨在借助于图形化手段,清晰有效地传达或沟通信息。但是,这并不就意味着为数据的功能化用途而容忍其形式上枯燥乏味;或者是为了看上去绚丽多彩而显得极端复杂。为了有效地传达思想或观念,美学形式与功能需要兼容并蓄,通过直观的手段传达关键的特点与特征,从而实现对于多样且复杂的数据集的深入洞察。
数据可视化技术的基本思想,是将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表现出来,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。
经过几年的发展,大数据技术已经慢慢地渗透到各个行业。不同行业的大数据应用普及速度,与行业的信息化水平、行业与消费者的距离、行业的数据拥有程度紧密相关。总体看来,大数据技术应用较好的行业可以分为以下 4 大类。
互联网行业是离消费者距离最近的行业之一,同时拥有超大量的既有数据和即时数据。业务数据化是其企业运营的基本特征,因此,互联网行业的大数据应用程度是最高的。与互联网行业相伴的营销行业,是围绕着互联网用户行为数据分析,以为消费者提供个性化营销服务为主要目标的行业。
金融服务、电信运营两大行业中的企业大多比较早地完成了信息化建设,企业内部业务系统的信息化相对比较完善,对内部数据有大量的历史积累,并且有一些深层次的分析类应用,目前正处于将内部数据与外部数据融合起来、深入挖掘数据价值,进而为其业务和服务升级、增值的阶段。
不同政府部门的信息化程度和数据化程度差异较大,例如,交通部门目前已经有了不少大数据应用案例,但有些行业还处在数据采集和积累阶段。政府部门将会是未来整个大数据产业快速发展的关键,通过政府及公共数据开放可以使政府数据在线化走得更快,从而激励大数据应用的大发展。
上述行业的大数据应用水平还处在初级阶段,但未来消费者驱动的C2B(Customer to Business,消费者到企业)模式会倒逼着这些行业的大数据应用进程逐步加快。
据统计,中国大数据 IT 应用投资规模最高的有五个行业,其中互联网(行业)占比最高,其次是电信(行业)、第三为金融(行业)、交通(行业)和政府(部门)分别为第四和第五,如图1.2.12所示。
图1.2.12 中国大数据IT应用行业投资结构
大数据技术应用之前,企业营销多依靠传统数据进行市场营销分析,例如客户关系管理系统中的客户信息、广告评估信息、展览等线下活动的效果数据。数据的来源仅限于消费者某一方面的有限信息,不能提供充分的线索或提示。互联网带来了新类型的数据,例如网站访问数据、地理位置数据、邮件数据、社交媒体数据等。
大数据时代的企业营销可以借助大数据技术将新类型的数据与传统数据进行整合,从而更全面地了解消费者的状况、需求与偏好,对客户群体进行细分,然后对每个细分群体采取符合具体其需求的定制营销,也就是所谓的“精准营销”。
精准营销是指企业通过定量和定性相结合的方法,对目标市场的不同消费者进行细致分析,并根据其消费心理和行为特征,采用具有针对性的现代技术、方法和营销策略,从而实现对目标市场不同消费者群体强有效性、高投资回报的营销沟通。
精准营销最大的优点在于“精准”,即在市场细分的基础上,对不同消费者进行细致分析,确定目标对象。精准营销的主要特点有以下4点。
(1)精准的客户定位是营销策略的基础。
(2)精准营销能提供高效、高回报的个性化沟通。过去营销活动面对的是大众,目标不够明确,沟通效果不明显。精准营销是在确定目标对象后,划分客户生命周期的各个阶段,抓住消费者的心理,进行细致、有效的沟通。
(3)精准营销为客户提供增值服务,为客户细致分析,量身定制,降低了用户挑选商品的盲目性,节约了客户的时间成本和精力,同时满足客户的个性化需求。
(4)信息技术可帮助企业实现精准营销,大数据技术的应用,意味着人们可以利用数字映射出现实世界的个性特征。
精准营销运用先进的互联网技术与大数据技术等手段,使企业和客户能够进行长期个性化的沟通,从而让企业和客户达成共识,帮助企业建立稳定忠实的客户群。通过可量化的市场定位技术,精准营销打破了传统营销只能对市场进行模糊定性的局限,使企业营销达到了可调控和可度量的要求。此外,精准营销改变了传统广告形式的成本构成。
传统的营销理念是根据客户的基本属性,如客户的性别、年龄、职业和收入等来判断客户的购买力和产品需求,然后再进行市场细分,并制定相应的产品营销策略,这是一种“静态营销方式”。
大数据不仅记录了人们的行为轨迹,还记录了人们的偏好与生活习惯,能够精准预测客户的需求,从而实现以客户生命周期为基准的精准营销,这是一个动态的营销过程。
(1)客户信息收集与处理
客户数据收集与处理是一个数据准备的过程,是数据分析和挖掘的基础,是做好精准营销的关键和基础。精准营销所需要的信息内容主要包括描述信息、行为信息和关联信息等3大类。
①描述信息是客户的基本属性信息,如年龄、性别、职业、收入、居住地址和联系方式等基本信息。
②行为信息是客户的购买行为相关的数据,通常包括客户购买产品或服务的类型、消费记录、购买数量、购买频次、成交时间、付款方式、退货行为、客户与客服的联络记录,以及客户的消费偏好等。
③关联信息是客户行为的内在心理因素,常用的关联信息包括满意度和忠诚度、对产品与服务的偏好或态度、流失倾向及与企业之间的联络倾向等。
(2)客户细分与市场定位
如果企业要对不同客户群体进行高效管理和差异化营销,就需要对客户群进行细分。在实际操作中,传统的市场细分变量,如人口因素、地理因素、心理因素、收入因素等由于只能提供较为模糊的客户轮廓画像,难以为精准营销的决策提供可靠的数据依据。
大数据时代,利用大数据技术能在收集的海量非结构化信息中快速筛选出对公司有价值的信息,对客户行为模式与客户价值进行准确判断与分析,使我们有可能深入了解“每一个人”,而不只是通过模糊的“目标人群”来进行客户洞察并以此为依据提供营销策略。
大数据可以帮助企业在众多用户中筛选出重点客户,它利用某种规则关联,确定企业的目标客户,从而帮助企业将其有限的资源投入到对重点客户的服务中,以较小的投入获取较大的收益。
(3)辅助营销决策与营销战略设计
在基于现有数据得到不同客户群特征后,市场人员需要结合企业战略、企业能力、市场环境等因素,在不同的客户群体中寻找可能的商业机会,为每个客户群定制出个性化的营销战略。每个营销战略都有特定的目标,如获取相似的客户、交叉销售或关联销售,还可以采取合理措施预防客户流失等。
(4)精准的营销服务
动态的数据追踪可以改善客户体验。企业可以追踪了解客户使用产品的情况,做出适时的提醒。例如,食品是否快到保质期;汽车使用磨损情况,是否需要保养维护等。
数据的流动可以使产品“活”起来,企业可以随时根据客户反馈数据做出方案,精准预测客户的需求,提高客户服务质量。针对潜在的客户或消费者,企业可以通过各种现代化网络传播工具直接与消费者进行一对一的沟通,也可以通过社媒将相关信息发送给消费者,并追踪消费者的反应。
(5)营销方案设计
在大数据时代,一个好的营销方案可以聚焦到某个目标客户群,甚至精准地根据每一位消费者不同的兴趣与偏好为他们提供专属的市场营销组合方案,包括针对性的产品组合方案、产品价格方案、渠道设计方案、一对一的沟通促销方案等。
(6)营销结果反馈
在大数据时代,营销活动结束后,可以对营销活动执行过程中收集到的各种数据进行综合分析,从海量数据中挖掘出最有效的企业市场绩效度量,并与企业传统的市场绩效度量方法展开比较,以确立基于新型数据的度量的优越性和价值,从而对营销活动的执行、渠道、产品和广告的有效性进行评估,为下一阶段的营销活动打下良好的基础。
在大数据的背景下,有许多精准营销的实例。例如,百度等公司掌握了大量的搜索引擎用户的数据资源,这些用户的前后行为将能够被精准地关联起来。
(1)实时竞价(RTB)
简单地说,RT B智能投放系统的操作过程就是当用户发出浏览网页请求时,该请求信息会在数据库中进行比对,系统通过推测来访者的身份和偏好,将信息发送到后方需求平台,然后再根据广告商(预先提供的广告付费方案)竞价高低情况,出价最高的企业可以把自己的广告瞬间投放到用户的页面上。
RTB运用Cookie技术记录用户的网络浏览痕迹和IP地址,并运用大数据技术对海量数据进行甄别分析,得出用户的需求信息,向用户展现相应的推广内容。这种智能投放系统能精准确定目标客户,显著提高广告接受率,具有巨大的商业价值和广阔的应用前景。
关于客户个人信息、客户Cookie和客户机器ID及IP地址等信息的获取、跟踪、保存及商用,例如提供给第三方或用于商业广告投放等做法,在国际上一直存有争议,并有相关法律进行限制。例如欧盟GDPR(《通用数据保护条例》)和美国CCPA(《加州消费者隐私保护法案》)都对此有严格的界定和限制,对此需要特别留意。——本书编辑注。
(2)交叉销售
“啤酒与尿布”捆绑销售案例是数据挖掘的经典案例。海量数据中含有大量的信息,通过对数据的有效分析,企业可以发现客户的其他需求,为客户制定套餐服务,还可以通过互补型产品的促销,为客户提供更多更好的服务,如银行和保险公司的业务合作,通信运营商的手机“话费和流量包月套餐”等。
(3)点告
“点告”就是以“点而告知”取代“广而告知”,改变传统的片面追求广告覆盖面的思路,转向专注于广告受众人群细分以及受众效果。具体来讲,当用户注册为点告网的用户时,如果填写自己的职业和爱好等资料,点告网就可以根据用户信息进行数据挖掘分析,然后将相应的问答题目推荐给用户,继而根据用户的答题情况对用户进行自动分组,进一步精确地区分目标用户。“点告”以其精准性、趣味性、参与性及深入性,可以潜移默化地影响目标受众,达到企业广告宣传的目的。
(4)窄告
“窄告”是针对广告而言的,是一种把商品信息有针对性地投放给企业希望的特定人的宣传形式。广告是“广而告之”,窄告是“专而告之”。窄告基于精准营销理念,在投放窄告时,采用语义分析技术将广告主的关键词及网文进行匹配,从而有针对性地将窄告投放到相关文章周围的联盟网站的宣传位上。窄告能够精确区分目标区域,锁定目标客户所在地,最后成功地定位目标受众。
(5)定向广告推送
社交网络广告商可以对互联网和移动应用中大量的社交媒体个人页面进行搜索,实时查找提到的品牌厂商的信息,并对用户所发布的文字、图片等信息进行判断,帮助广告商投放针对性广告,使得投放的广告更加符合消费者的实际需要,因而更加准确有效。
随着互联网的发展和大数据时代的到来,人们逐渐从信息匮乏的时代走入了“信息过载”的时代。为了让用户从海量信息中高效地获取自己所需的信息,推荐系统应运而生。
推荐系统的主要任务就是将用户与信息之间建立联系。它一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。基于大数据的推荐系统通过分析用户的历史记录了解用户的偏好,从而主动为用户推荐其感兴趣的信息,满足用户的个性化推荐需求。
推荐系统是自动联系用户和信息的一种工具,它通过研究用户的兴趣爱好,来进行个性化推荐。以Google和百度为代表的搜索引擎可以让用户通过输入关键词精确找到自己需要的相关信息。但是,搜索引擎需要用户提供能够准确描述自己的需求的关键词,否则搜索引擎就无能为力了。
与搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为来对用户的兴趣进行建模,从而主动给用户推荐可满足他们兴趣和需求的信息。每个用户所得到的推荐信息都是与自己的行为特征和兴趣有关的,而不是笼统的大众化信息。图 1.2.13 展示了推荐引擎的工作原理,它接收的输入是需要的数据源,一般情况下,推荐引擎所需要的数据源包括以下几点:
●要物品信息(或内容的元数据),如关键字、基因描述等。
●已有的用户信息,如性别、年龄等。
●用户对物品(或者信息)的偏好,根据应用本身的不同,可能包括用户对物品的评分、查看、购买等行为的记录情况。
图1.2.13 推荐引擎的工作原理
用户的偏好信息可以分为显式用户反馈和隐式用户反馈两大类。
(1)显式用户反馈是用户在网站上自然浏览或者用户(显式地)提供的反馈信息,如用户对物品的评分或评论等。
(2)隐式用户反馈是用户在使用网站时产生的数据,隐式地反映了用户对物品的偏好,如用户购买了某物品,用户多次查看了某类物品等信息。
显式用户反馈能准确地反映用户对物品的真实偏好,但需要用户付出额外的劳动;而用户的行为、习惯或做法,通过一些分析和处理,也能分析出用户的偏好,只是数据不是很精确,有些行为的分析存在较大的“噪声”。但只要选择正确的行为特征,隐式用户反馈也能得到很好的效果。例如,在电子商务的网站上,网上商品浏览其实就是一个能很好体现出用户偏好的隐式用户反馈。
根据不同的推荐机制或推荐算法,推荐引擎可能用到数据源中的不同部分,然后根据这些数据,分析出一定的规则或者直接根据用户对其他物品的偏好进行预测和推理。这样,推荐引擎就可以在用户进入的时候给他推荐他可能感兴趣的物品。
大部分推荐引擎的工作原理是基于物品或者用户的相似集进行推荐,所以可以对推荐机制进行以下分类:
●基于人口统计学的推荐:根据系统用户的基本信息发现用户之间的相关程度。
●基于内容的推荐:根据推荐物品或内容的元数据,发现物品或者内容的相关性。
●基于协同过滤的推荐:根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户之间的相关性。
(1)基于人口统计学的推荐
基于人口统计学的推荐机制可根据用户的基本信息发现用户的相关程度,然后将相似用户喜爱的物品推荐给当前用户,图1.2.14描述了这种推荐机制的工作原理。
从图中可以很清楚地看出,首先,系统对每个用户都有一个用户基本信息的模型,其中包括用户的年龄、性别等;然后,系统会根据用户的基本信息计算用户的相似度,可以看到用户A的基本信息和用户C一样,所以系统会认为用户A和用户C是“相似用户”,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品,图1.2.14所示为将用户A喜欢的物品A推荐给用户C。
基于人口统计学的推荐机制的主要优势是,对于新用户来讲没有“冷启动”的问题(缺少更多的用户信息又需要启动用户服务所产生的问题),这是因为该机制不使用当前用户对物品的偏好历史数据。该机制的另一个优势是它是领域独立的,不依赖于物品本身的数据,所以可以在不同的物品领域都得到使用。
图1.2.14 基于人口统计学的推荐机制的工作原理
基于人口统计学的推荐机制的主要问题是,基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,如图书、电影和音乐等领域,难以得到很好的推荐效果。另外,该机制可能涉及一些与需要查找的信息本身无关却比较敏感的信息,如用户的年龄等,这些信息涉及了用户的隐私。
(2)基于内容的推荐
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是,根据推荐物品或内容的元数据,发现物品或内容的相关性,然后基于用户以往的偏好记录,推荐给用户相似的物品。图1.2.15描述了基于内容推荐的基本原理。
图1.2.15中给出了基于内容推荐的一个典型的例子,即电影推荐系统。首先,需要对电影的元数据进行建模,这里只简单地描述了电影的类型。然后,通过电影的元数据发现电影间的相似度,由于电影A和电影C的类型都是“爱情、浪漫”,所以它们会被认为是相似的电影。最后,实现推荐,由于用户A喜欢看电影A,那么系统就可以给他推荐类似的电影C。
图1.2.15 基于内容推荐机制的工作原理
基于内容的推荐机制的好处在于,它能基于用户的偏好建模,能提供更加精确的推荐。但它也存在以下几个问题:
●需要对物品进行分析和建模,推荐的质量依赖于物品模型的完整性和全面程度。
●物品相似度的分析仅仅依赖于物品本身的特征,而没有考虑人对物品的态度。
●因为是基于用户以往的历史做出推荐,所以对于新用户有“冷启动”的问题。
虽然基于内容的推荐机制有很多不足和问题,但它还是成功地应用在一些电影、音乐、图书的社交站点。有些站点还请专业的人员对物品进行基因编码,例如,在潘多拉网站的推荐引擎中,每首歌有超过 100 个元数据特征,包括歌曲的风格、年份、演唱者等。
(3)基于协同过滤的推荐
随着移动互联网的发展,网站更加提倡用户参与和用户贡献,因此基于“协同过滤”的推荐机制应运而生。协同过滤的原理就是,根据用户对物品或者信息的偏好,发现物品之间或者内容之间的相关性,或者发现用户之间的相关性,然后再基于这些相关性进行推荐。
基于协同过滤的推荐可以分为3个子类:基于用户的协同过滤推荐、基于项目的协同过滤推荐和基于模型的协同过滤推荐。
①基于用户的协同过滤推荐
基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群。一般的应用是采用计算“k-邻居”的算法,然后基于这k个邻居的历史偏好信息,为当前用户进行推荐的。图1.2.16 演示了基于用户的协同过滤推荐机制的工作原理。
如图1.2.16所示,假设用户A喜欢物品A和物品C,用户B喜欢物品B,用户C喜欢物品A、物品 C和物品D。从这些用户的历史喜好信息中可以发现,用户A和用户C的偏好是比较类似的,同时用户C还喜欢物品D,那么系统可以推断用户A很可能也喜欢物品D,因此可以将物品D推荐给用户A。
图1.2.16 基于用户的协同过滤推荐机制的基本原理
基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是比较用户的相似度,把相似的用户视为“邻居”并基于“邻居”用户群进行推荐的。它们的不同之处在于,如何计算用户的相似度。基于人口统计学的机制只考虑用户本身的最基本特征,而基于用户的协同过滤机制是在用户的历史偏好的数据基础上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的偏好。
②基于项目的协同过滤推荐
基于项目的协同过滤推荐的基本原理是,使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户,图1.2.17描述了它的基本原理。
图1.2.17 基于项目的协同过滤推荐机制的基本原理
假设用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A。从这些用户的历史喜好可以分析出物品A和物品C是比较类似的,因为喜欢物品A的人都喜欢物品C。基于这个数据可以推断用户C很有可能也会喜欢物品C,所以系统会将物品C推荐给用户C。
基于项目的协同过滤推荐和基于内容的协同过滤推荐其实都是基于物品相似度的预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好进行推断的,而后者是基于物品本身的属性特征信息进行推断的。
③基于模型的协同过滤推荐
基于模型的协同过滤推荐就是指,基于样本的用户偏好信息,采用机器学习的方法训练一个推荐模型,然后根据实时的用户偏好的信息进行预测,从而计算推荐。
这种方法使用离线的历史数据进行模型训练和评估,需要耗费较长的时间,依赖于实际的数据集规模、机器学习算法计算复杂度较高。
基于协同过滤的推荐机制是目前应用最为广泛的推荐机制,它具有以下两个优点。
●它不需要对物品或者用户进行严格的筛选和建模,而且不要求物品的描述是机器可理解的,所以这种方法也是“领域无关”的。
●这种方法计算岀来的推荐是开放性的,可以共用他人的经验,能够很好地支持用户发现潜在的兴趣或偏好。
基于协同过滤的推荐机制也存在以下几个问题。
●方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。
●推荐的效果依赖于用户历史偏好数据的多少和准确性。
●对于一些具有个性化偏好(或兴趣)的用户不能给予很好的推荐。
●由于以历史数据为基础,抓取数据并完成用户偏好建模后,很难修改或者根据用户的使用情况进行更新,从而导致这种方法不够灵活。
(4)混合推荐机制
在现行的Web站点上的推荐往往不是只采用了某一种推荐机制和策略的,而是将多种方法混合在一起,从而达到更好的推荐效果。有以下几种比较流行的组合推荐机制的方法。
●加权的混合:用线性公式将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
●切换的混合:对于不同的情况(如数据量、系统运行状况、用户和物品的数目等),选择最为合适的推荐机制计算推荐。
●分区的混合:采用多种推荐机制,并将不同的推荐结果分不同的区域显示给用户。
●分层的混合:采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各种推荐机制的优点,得到更加准确的推荐。
目前,在电子商务、社交网络、在线音乐和在线视频等各类网站和应用中,推荐系统都起着很重要的作用。下面将简要分析两个有代表性的推荐系统(Amazon 作为电子商务的代表,豆瓣作为社交网络的代表)。
(1)推荐在电子商务中的应用:Amazon
Amazon 作为推荐系统的成功先例,已经将推荐的思想渗透在其应用的各个角落。Amazon 推荐的核心是,通过数据挖掘算法将当前用户与其他用户的消费偏好做对比,来预测用户可能感兴趣的商品。Amazon采用的是“分区混合机制”,即将不同的推荐结果分不同的区显示给用户。图1.2.18展示了用户在Amazon上能得到的推荐页。
图1.2.18 Amazon推荐机制生成的推荐页
Amazon 利用了可以记录的用户在站点上的浏览和点击行为,并根据不同数据的特点对它们进行处理,从而分成不同区为用户推送推荐。
猜您喜欢:通常是根据用户的近期的历史购买或者查看记录给出的推荐商品。
热销商品:采用了基于内容的推荐机制,将一些热销的商品推荐给用户。
图1.2.19显示了用户在Amazon浏览物品的页面上能得到的推荐。
图1.2.19 Amazon推荐机制,在浏览物品时显示的推荐商品
当用户浏览物品时,Amazon 会根据当前浏览的物品和当前用户在站点上的行为,然后在不同区为用户推送推荐商品。
浏览此商品的顾客也同时浏览:这也是一个典型的基于模型的协同过滤推荐的应用,客户能更快更方便地找到自己感兴趣的物品。
购买此商品的顾客也同时购买:采用数据挖掘技术对用户的购买行为进行分析,找到经常被一起或同一个人购买的物品集,然后进行捆绑销售,这是一种典型的基于项目的协同过滤推荐机制。
(2)推荐在社交网站中的应用:豆瓣
豆瓣是国内做得比较成功的社交网站,它以图书、电影、音乐的讨论和评析及同城活动为社区话题中心,形成了一个多元化的基于内容的社交网络平台,下面来介绍豆瓣是如何进行推荐的。
在豆瓣“电影”频道中,当用户将一些看过的或是感兴趣的电影加入“看过”或“想看”列表之中时,可为它们做相应的评分,豆瓣的推荐引擎就已经“感知”了用户的一些偏好信息。基于这些信息,豆瓣将会给用户展示类似图1.2.20所示的电影推荐。
图1.2.20 豆瓣的推荐机制,基于用户偏好推荐电影
豆瓣的推荐是根据用户的收藏和评价自动计算出来的,对每位用户的推荐清单都是不同的,每天推荐的内容也会有变化。用户活跃度越高、收藏和评价越多,豆瓣给用户的推荐就会越准确、越丰富。
豆瓣是基于社会化的协同过滤的推荐,用户越多、用户行为越明确、用户的反馈信息越丰富,则推荐的效果越准确。相对于Amazon的用户行为模型,豆瓣“电影”的推荐模型更加简单,就是“看过”和“想看”,这也让他们的推荐更加专注于用户的品位,毕竟买东西和看电影的动机还是有很大不同的。
另外,豆瓣也有基于用户偏好的推荐,当用户查看一些电影的详细信息时,它会给用户推荐出“喜欢这个电影的人也喜欢的电影”,这是一个基于协同过滤的推荐的应用。
大数据预测是大数据最核心的应用之一,它将传统意义的预测拓展到“现测”。大数据预测的优势体现在,它把一个非常困难的预测问题,转化为一个相对简单的描述问题,而这是传统“小数据集”难以企及的。从预测的角度看,大数据预测所得出的结果不仅仅可以用来处理现实业务的简单决策,更大的价值在于帮助企业进行中远期的重大经营决策。
大数据的本质是分析和解决问题,大数据的核心价值就在于预测,而企业经营的重要出发点也是基于对市场的预测和判断。在谈论大数据应用时,最常见的应用案例便是“预测股市”“预测流感”“预测消费者行为”等。
大数据预测是基于数据和预测模型去预测未来某件事情的处理过程。让分析从“面向已经发生的过去”转向“面向即将发生的未来”是大数据与传统数据分析的最大不同。
大数据预测的逻辑基础是,每一种非常规的变化事前一定有征兆,每一件事情都有迹可循,如果找到了征兆与变化之间的规律,就可以进行预测。大数据预测无法确定某件事情必然会发生,它更多的是给出一个事件会发生的概率。
实验的不断重复、大数据的日渐积累让人类不断发现各种规律,从而能够预测未来。利用大数据预测可能的灾难,利用大数据分析癌症可能的引发原因并找出治疗方法,都是未来能够惠及人类的事业。
例如,大数据曾被洛杉矶警察局和加利福尼亚大学合作用于预测犯罪的发生;Google利用搜索关键词预测禽流感的分布状态;麻省理工学院利用手机定位数据和交通数据进行城市规划;气象局通过整理近期的气象情况和卫星云图,准确地判断未来的天气状况。
在过去,人们的决策主要是依赖结构化数据,而大数据预测则可以利用结构化数据和更多的非结构化数据。大数据预测具有更多的数据维度、更快的数据频度和更广的数据宽度。与传统数据分析相比,大数据预测的思维具有3大改变:全样而非抽样、预测效率而非精确和相关关系而非因果关系。
(1)全样而非抽样
过去,由于缺乏获取全体样本的手段加之数据处理能力不足,人们发明了“随机抽样数据”的调查方法。理论上,抽样样本随机性越高,就越能代表整体样本。但问题是,获取一个随机样本的代价极高,而且很费时。人口调查就是一个典型例子,一个国家很难做到每年都完成一次人口调查,因为随机抽样实在是太耗时费力,然而云计算和大数据技术的出现,使得获取足够大的样本数据甚至全样本数据成为可能。
(2)效率而非精确
过去,基于抽样方法,在数据样本的具体运算上要求非常精确,否则就会“差之毫厘,失之千里”。例如,在一个总样本为1亿人的群体中随机抽取1000人进行人口调查,如果在1000人上的运算出现误差,那么放大到1亿人中时,偏差将会很大。但在全样本的情况下,偏差为实际值,不再会放大。
在大数据时代,快速获得总体状态和发展趋势,要比严格、精确的结果重要得多。有时候,当掌握了大量可信数据时,结果的精确性就不再那么重要了,因为我们仍然可以掌握事情的发展趋势。大数据基础上的简单算法比数据有限的复杂算法更有效。数据分析的目的并非仅限于分析结果,而是在于用结果去辅助决策,故而数据分析的时效性(效率)便显得更加重要了。
(3)相关性而非因果关系
大数据研究不同于传统的逻辑推理研究,它需要对数量巨大的数据做统计性的搜索、比较、聚类、分类等分析归纳,并关注数据的相关性(或关联性)。相关性是指两个或两个以上变量的取值之间存在某种规律性。相关性不是绝对的,只有可能的。但是,如果相关性强,则表明该相关性成功的概率是很高的。相关性可以帮助我们捕捉现在状况或预测未来。如果A和B经常一起发生,则我们只需要观测到B发生了,就可以预测“A也发生了”。
根据相关性,我们理解世界不再需要用“假设—推理—证明”逻辑线路。其中的假设是指,针对现象建立有关其产生机制和内在机理的假设,之后人类再用相关的理论和方法去推理、证明假设。现在,我们不再依赖这样的假设,即哪些检索词条可以表示流感在何时何地传播;这种状态下航空公司应该怎样给机票定价;沃尔玛的客户的烹饪喜好是什么……取而代之的是,我们可以对大数据进行相关性分析,从而知道哪些检索词条是最能显示流感的传播的,机票价格随时间或事件的变化规律,哪些食物是飓风期间待在家里的人最想吃的。
数据驱动的关于大数据的相关性分析法,取代了基于假想的易出错的传统方法。大数据的相关性分析法更准确、更快捷,而且不易受偏见的影响。建立在相关性分析法基础上的预测是大数据的核心。
相关性分析本身的意义重大,同时它也为研究因果关系奠定了基础。通过找出可能相关的事物,我们可以在此基础上进行深入的因果关系分析。如果存在因果关系,则再进一步找出原因。这种便捷的机制通过严格的实验降低了因果分析的成本。我们也可以从相互联系中找到一些重要的变量,这些变量可以用到验证因果关系的实验中去。
互联网给大数据预测应用的普及带来了便利条件,结合国内外案例来看,以下11个领域是大数据预测最容易发挥所长的领域。
(1)天气预报
天气预报是典型的大数据预测应用领域。天气预报粒度已经从天缩短到小时,有严苛的时效要求。如果基于海量数据通过传统方式进行计算,则得出结论时时辰已过——预报变旧报——已无价值。而大数据技术的发展,使天气预报既有巨量的天气数据也有超强、超高速的计算能力,大大提高了天气预报的实效性和准确性。
(2)体育赛事预测
2014 年世界杯期间,Google、百度、微软和高盛等公司都推出了比赛结果竞猜平台。百度的预测结果最为亮眼,全程 64 场比赛的预测准确率为 67%,进入淘汰赛后准确率为94%。这意味着未来的体育赛事结果会被大数据预测所探知。Google世界杯比赛结果预测使用了英国体育数据提供商Opta Sports的海量赛事数据来构建其预测模型。百度则是通过搜索过去5年内全世界987支球队(包括国家队和俱乐部队)的3.7万场比赛数据,同时与中国彩票网站“乐彩网”“欧洲必发”指数数据供应商 SPdex 进行数据合作,导入博彩市场的预测数据,建立了一个囊括近20万名球员和1.12亿条数据的预测模型,并在此基础上进行计算并预测结果。
从互联网公司的成功经验来看,只要有足够多的体育赛事历史数据,并且与相关数据统计公司进行合作,便可以完成对于比赛结果的有效预测,如欧洲冠军杯、NBA(美国职业篮球联赛)等赛事。
(3)股票市场预测
英国华威商学院和美国波士顿大学物理系的研究发现,用户通过Google搜索的金融关键词或许可以预测金融市场的走向,相应的投资战略收益曾超过 300%。此前曾有专家尝试通过Twitter推文情绪来预测股市波动。
(4)市场物价预测
CPI(Consumer Price Index,消费者物价指数)是反映居民家庭购买的消费品和服务项目价格水平变动情况的宏观经济指标。但有时市场统计数据并不准确或实效性不强。大数据则可能帮助人们了解未来物价的走向,提前预测通货膨胀或经济危机。最典型的案例是,马云通过阿里B2B大数据提前预测了1997年“亚洲金融危机”的发生。
单个商品的价格预测更加容易,尤其是机票这样的标准化产品,“去哪儿网”提供的“机票日历”就是典型的价格预测,它能告知你几个月后机票的大概价位。
由于商品生产、渠道成本和总体毛利水平在充分竞争的市场中是相对稳定的,与价格相关的变量也是趋于稳定的,商品的供需关系在电子商务平台上可实时监控,因此价格可以得到较为准确的预测。基于预测结果可提供购买时间建议,或者指导商家进行动态价格调整和营销活动以实现利益最大化。
(5)用户行为预测
基于用户搜索行为、浏览行为、评论历史和个人资料等数据,企业可以洞察消费者的整体需求,进而有针对性地实施产品生产、改进和营销。《纸牌屋》选择演员和剧情,百度基于用户喜好进行精准广告营销,阿里巴巴根据天猫用户特征包下生产线定制产品,Amazon预测用户点击行为提前订货均是受益于互联网用户行为预测,如图1.2.21所示。
图1.2.21 依据用户行为分析,可以预测用户行为
受益于传感器技术和物联网的发展,线下的用户行为洞察正在酝酿。免费商用Wi-Fi,iBeacon 技术、摄像头监控网络、室内定位技术、NFC 传感器网络、排队叫号系统,可以探知用户线下的移动、停留、出行规律等数据,从而进行精准营销或者产品定制。
(6)人体健康预测
中医可以通过“望闻问切”的传统手段得知人体的健康情况和体内疾病,甚至可知晓一个人将来可能会出现什么疾病。人体的健康变化有着特定的规律,而慢性病发生前人体会有一些持续性异常。理论上来说,如果大数据掌握了这样的异常情况,便可以进行慢性病预测。
科学杂志《自然》报道过 Zeevi 等人的一项研究,即一个人的血糖浓度如何受特定的食物影响的复杂问题。该研究根据肠道中的微生物和其他方面的生理状况,提岀了一种可以提供个性化的饮食建议的预测模型,比目前的通行标准能更准确地预测血糖反应,如图1.2.22所示。
图1.2.22 血糖浓度预测模型
智能硬件和大数据使慢性病的预测变为可能。可穿戴设备和智能健康设备可帮助网络收集人体健康数据,如心率、体重、血脂、血糖、运动量、睡眠量等状况。如果这些数据比较准确、全面,并且可以进行建模和机器学习,从而预测慢性病,未来可穿戴设备协助用户身体对慢性病进行预测。
(7)疾病和疫情预测
疾病和疫情预测是指基于人们的搜索情况、购物行为预测流行性发生的可能性,最经典的“流感预测”便属于此类。如果来自某个区域的“流感”“板蓝根”搜索需求骤然增加,可以推测该处有流感传染状况发生。
百度已经推出了疾病预测产品,目前可以就流感、肝炎、肺结核、性病这四种疾病,对全国每一个省份以及大多数地级市和区县的活跃度、趋势图等情况,进行数据收集与监测。未来,百度疾病预测监控的疾病种类将扩展到几十种,覆盖更多的常见病和流行病。用户可以根据当地的预测结果进行针对性的预防。
(8)自然灾害预测
气象灾害预测是最典型的自然灾害预测。地震、洪涝、高温、暴雨这些自然灾害如果可以利用大数据的能力进行更加提前的预测和告知,会有助于减灾、防灾、救灾、赈灾。与过往不同的是,过去的数据收集方式存在着难实现、成本高等问题,而在物联网时代,人们可以借助传感器摄像头和无线通信网络,进行实时的数据监控收集,再利用大数据预测分析,做到更精准的自然灾害预测。
(9)环境变化预测
除了进行短时间局地天气预报、灾害预测之外,还可以进行更加长期和宏观的环境和生态变化趋势预测。森林和农田面积缩小、野生动物或植物濒危、海平面上升、温室效应等类问题是地球面临的“慢性恶化问题”。人类获取的地球生态数据及自然环境数据越多,就越容易对未来环境的变迁建模、计算和预测,进而阻止其变坏。大数据可帮助人类收集、储存和挖掘更多的地球环境数据,同时还提供了预测的工具。
(10)交通行为预测
交通行为预测是指基于交通参与者(人与车辆)的LBS(Location Based Services,基于位置的服务)定位数据,分析人与车辆出行的个体及群体特征,进行交通情况的预测。交通部门可通过预测不同时点、不同道路的车流量,来进行智能的车辆调度,或应用“潮汐车道”;用户则可以根据预测结果选择拥堵概率更低的道路。
百度基于地图应用的LBS预测涵盖范围更广,在“春运”期间,可预测人们的迁徙趋势来指导高铁列车线路和航线的设置;在节假日期间,可预测景点的游客流量,来指导游客合理地选择景区;平时,百度“热力图”可以显示城市商圈、餐饮区的人流情况,从而提供购物和餐饮方面的参考。
(11)能源消耗预测
利用能源大数据和客户端采集器(例如数字电表、燃气表、热力表),可以综合分析来自天气、能源供应系统、用户使用计量设备等各种数据源的海量数据,预测各地的能源需求和供给情况,进行智能化的能源调度,平衡全网络电力、燃气、热力等能源的供应和需求,并对潜在风险做出预测和事前响应。
除了上面列举的11个领域之外,大数据预测还可被应用在房地产预测、就业情况预测、高考分数线预测、电影节奖项预测、保险投保者风险评估、金融借贷者还款能力评估等领域,让人类具备可量化、有说服力、可验证的洞察未来的能力,大数据预测的魅力正在释放出来。
习题与思考
1.请简述大数据中数据处理的工作流程。
2.你知道的大数据应用案例有哪些(请从身边的生活中举例)?