
1.2 大数据挖掘
大数据挖掘在发展过程中,吸收了数理统计、数据库和人工智能中的大量技术。从挖掘的主要任务来看,可以将其分为以下五大类[5]。
• 关联分析:即寻找数据之间的关联关系。例如:我们通过对交易数据进行分析,可以得出“86%买‘啤酒’的人同时也买‘尿布’”这样一条“啤酒”和“尿布”之间的关联规则。
• 聚类分析:即根据最大化簇内相似性、最小化簇间相似性的原则,将数据对象集合划分成若干个簇的过程。例如:我们通过对电子商务网站记录的用户注册数据和购买行为数据进行分析,可以将消费者的消费层次划分为节约时间型消费、冲动型消费、价格敏感型消费、品牌忠诚型消费等。
• 分类分析:即找出描述并区分数据类的模型(可以是显式的或隐式的),以便能够使用模型预测给定数据所属的数据类。例如:P2P网贷平台可以将贷款人的信用等级分类为:AA(信用水平最高,代表极低的违约率)、A、B、C、D、E、HR(低信用水平,潜在的违约风险最高)。分类分析通过对这些数据及其类标签进行分析,给出一个信用等级的显式模型,例如:“AA级贷款者是年收入在***元和***元之间、年龄在***岁和***岁之间、居住面积达***平方米以上的人”。这样,对于一个新提交信用审核申请的贷款人,P2P网贷平台就可以根据他的特征预测其信用等级。
• 异常分析:即一个数据集中往往包含一些特别的数据,其行为和模式与一般的数据不同,这些数据被称为“异常数据”。对“异常数据”进行的分析被称为“异常分析”。例如,在对银行客户信用卡刷卡记录数据进行监测的过程中,发现某一笔交易明显不同于以往的消费模式。
• 演变分析:即描述时间序列数据随时间变化的规律或趋势,并对其建模。演变分析包括时间序列趋势分析、周期模式匹配等。例如:通过对交易数据进行演变分析,可能会得到“股票X上涨一周左右后,股票Y会上涨的概率是89%”这样一条序列知识;或者根据股票某一历史交易时间区间的价格变化情况,可以预测出该股票下一交易日的价格。
数据挖掘是从大量数据中寻找其规律的技术[5]。在大数据时代,“寻找”变得更具挑战性,因为挖掘的对象是“大数据集”。大数据具有高价值、低密度的特性,其规律不是显而易见的,而是隐含在大数据之中,需要使用新的方法和技术来寻找。因此,面向高价值、低密度的大数据集,存在这样一类数据挖掘需求:在给定的大数据集中,寻找由少数相似的、表现出相异于大多数数据对象的数据对象组成的异常群组。这个过程被称为特异群组挖掘。
在一个大数据集中,大部分数据对象是不相似的,而每个特异群组中的对象是相似的。这是一种大数据环境下的新型数据挖掘任务。
需要说明的是,无论数据挖掘技术如何发展,相似性依然是数据挖掘技术的核心[5]。在关联分析中,频繁模式挖掘可能涉及模式间的模糊匹配,这需要定义模式间的相似性度量;聚类分析的关键是定义对象间的相似性,以及探索簇间对象的相似性,因为聚类分析是根据对象之间是否相似来划分簇的;分类分析也是基于对相似对象赋予同一类标签的思想,对数据对象进行分类的;异常分析虽然是找到相异于大部分数据对象的少部分数据对象,但是,如何判断少部分对象不同于其他对象,这也离不开相似性;演变分析本身就是发现时间序列中有相似规律的片段用于预测,这也需要相似性的支撑。我们可以看到,相似性是所有数据挖掘任务的核心。关于相似性已经有很多研究,然而,相似性总是根据应用场景、用户需求的不同而有一定的差异,这就导致目前还没有一种相似性度量能够适用于任何场合。
此外,“大量”(Volume)、“多源、异质、复杂”(Variety)、“动态”(Velocity)、“价值高但价值密度低”(Value)的大数据特征决定了大数据挖掘技术不同于以前的数据挖掘技术[5]。这些差异主要表现在以下方面。
(1)“大量”这一特征扩展了并行分布式数据挖掘算法的研究
大数据的“大”通常指数据规模在PB级以上,这与之前的数据挖掘技术针对的数据对象的规模不同。因此,为了有效应对大数据的“大量”这一特征,需要更高性能的计算平台进行支持,例如采用大规模数据的分布式、并行处理。此外,大数据的“大量”特征给数据挖掘技术带来的挑战是I/O交换、数据移动的代价高,因此,应对该挑战还需要在不同站点间分析数据挖掘模型间的关系。
虽然以往也有与并行分布式数据挖掘算法相关的研究,但是,在大数据环境下,需要新的云计算基础架构进行支撑(如Hadoop、Spark等)。
(2)“多源”这一特征推动了不确定数据挖掘算法研究的发展
大数据时代,收集和获取各种数据倍受关注,更多来源、更多类型、更多领域的数据被收集。由于数据获取的方式不同、收集数据的设备不同,数据挖掘的对象常常具有不确定、不完整的特点,这要求大数据挖掘技术能够处理不确定、不完整的数据集,并且我们要考虑多源数据挖掘模型和决策融合。
一直以来,人们非常重视数据挖掘过程中的数据质量。数据质量决定了数据挖掘结果的价值。然而,在大数据环境下,数据获取能力逐渐高于数据分析能力。在数据获取的过程中,数据缺失、含有噪声的情况难以避免,更值得注意的是,数据获取的目标也与以前不同,数据不再是针对某个特定应用或特定任务收集的。数据填充、补全非常困难。因此,大数据挖掘技术要有更强的处理不确定、不完整数据集的能力。
(3)“异质”这一特征促进了基于语义的异质数据挖掘算法的研究
大数据时代,数据的组织形式发生了变化,数据更多的是以数据网络的形式组织的。大数据环境下的数据网络节点类型多样,路径表达有多种语义。理解语义、体现语义是对相似性进行定义和计算的重要需求,是提升数据挖掘质量的关键因素。
针对语义的研究是数据挖掘领域研究的一个重要部分。大数据组织形式通常呈现为数据网络形式,而针对异质数据网络[6]的研究仍处于初始探索阶段,尤其是对异质网络中代表各实体的节点间的相似性度量,也是之前的数据挖掘技术研究没有涉及的。
(4)“复杂”这一特征深化了关于非结构化、超高维、稀疏数据挖掘算法的研究
当前,针对网络文本(用户评论文本数据)、图像、视频的数据挖掘应用更加广泛,非结构化数据对数据挖掘技术提出了新的要求。特征抽取是非结构化数据挖掘的重要步骤,大数据挖掘算法的设计要考虑超高维特征和稀疏性,也需要新型非关系型数据库技术(HBase、MongoDB等)的支持。
超高维特征分析的需求使得深度学习技术成为热点。数据挖掘技术一直将统计学习、机器学习、人工智能等算法和技术与数据库技术结合使用,以发现数据中的规律。在大数据环境下,深度学习与大数据挖掘技术的结合也将成为寻找大数据中的规律的重要支撑技术之一。
(5)“动态(演变)”这一特征加强了对实时、增量数据挖掘算法研究的需求
时序数据挖掘是数据挖掘领域的一个研究主题[7]。然而,在大数据环境下,数据的获取更加高速,数据处理的实时性需求更高。早期,数据挖掘能容忍分钟级别,甚至更长时延的响应;现在,许多领域已经使用数据挖掘技术分析本领域的数据,各个领域对数据挖掘结果的响应需求存在差异,很多领域需要更高的响应度,例如实时在线精准广告投放、证券市场高频交易等。
(6)“价值高但价值密度低”这一特征形成了新型的数据挖掘任务
前已述及,数据挖掘包括关联分析、聚类分析、分类分析、异常分析和演变分析五大类任务,而大数据环境下,数据规律的寻找和挖掘变得更加困难,因为这些规律淹没在大数据中,不是显而易见的,例如,团伙作案手段极其隐蔽,往往是难以被发现的;又如,在客户营销过程中,往往不是对所有客户进行聚类,而是对核心的潜在客户进行分群并进行针对性营销。因此,需要使用新的方法和技术来寻找潜在客户。特异群组挖掘成为针对“价值高但价值密度低”这一大数据特征的一类新型的数据挖掘任务。
上述大数据特征决定的数据挖掘技术的发展和特点不针对某一个数据挖掘任务,而是面向各种数据挖掘任务的。同样地,本书中特异群组挖掘任务面对的数据来源也可能是多源异构的,在一些应用中也需要实时动态地返回挖掘结果。这些都给特异群组挖掘带来了技术挑战,本书会在后续章节中给出对应的方法和模型。