朱建秋 , 张晓辉 , 蔡伟杰 , 朱扬勇
(复旦大学计算机科学系 , 上海 , 200437 )
【摘要】 本文介绍了几种数据挖掘语言及其标准化方面的研究进展,提出了数据挖掘语言分类的方法,在此基础上,对数据挖掘语言的结构和组成进行了探讨和研究,最后指出了数据挖掘语言的发展趋势,以及若干待解决的问题。
【关键词】 数据挖掘,查询语言,建模语言, XML
随着网络技术的发展和计算机使用的日益广泛,电子化数据越来越多,人们正面临“数据丰富而知识贫乏”的问题。八十年代末兴起的数据挖掘( data mining )技术或数据库中的知识发现( knowledge discovery in database , KDD )技术为解决此问题开辟了一条道路。数据挖掘是在大量的数据中发现潜在的、有价值的模式和数据间关系(知识)的过程。经过十多年的工作 ,数据挖掘技术的研究与应用已取得了很大的成果,然而,我们还面临着许多问题:(1)各种数据挖掘问题及挖掘方法基于不同的模型和技术,彼此互相孤立,联系很少;(2)缺少简明精确的问题描述方法,挖掘的语义通常是由实现方法决定的;(3)数据挖掘系统仅提供孤立的知识发现功能,难于嵌入大型应用;(4)数据挖掘引擎与数据库系统是松散耦合, T.Imielinski 和 H.Mannila 称其为 " 文件挖掘 (file mining) 系统 " ,它没有提供应用独立的操作原语。
到目前为止,数据挖掘行业是高度分散的,公司和研究机构独立开发各自的数据挖掘系统和平台,没有形成开放性的标准;同时数据挖掘本身是一门多学科综合跨度非常大的技术,这两点是上述问题存在的根本原因。近年来数据挖掘语言的研究为解决上列问题,提出一个新的研究方向。
本文组织结构如下:在第 2 节提出了数据挖掘语言分类的方法,将数据挖掘语言分为:查询语言,建模语言,以及通用语言三种类型,然后,分别在 2.1 、 2.2 与 2.3 小节举例阐述这三种数据挖掘语言的特点。在第 3 节对三种数据挖掘语言进行分析与评价,指出了各自的优缺点。最后指出了数据挖掘语言的发展趋势,以及若干待解决的问题。
设计一个好的数据挖掘语言的重要性可以通过观察关系数据库系统的历史来证实。在数据库市场上,关系数据库系统已经占支配地位数十年了。关系查询语言的标准化,发生在关系数据库开发的早期阶段,关系数据库领域的成功广泛地依赖于关系数据库查询语言的标准化。尽管每个商业的关系数据库系统都有各自的图形用户接口 GUI ,每个接口的根本的核心仍然是标准化的关系数据库查询语言。关系查询语言的标准化为关系数据库的开发和发展提供了基础。它使得信息交换更加容易,同时提升了关系数据库技术的商业性和被广泛接受的程度。因此,有一个好的数据挖掘语言可以有助于数据挖掘系统平台的标准化的开发,甚至可以象 HTML 推动 Internet 的发展一样,推动数据挖掘行业的开发和发展。
设计全面的数据挖掘语言是一个巨大的挑战,因为数据挖掘覆盖了宽广的任务,从数据特征化到挖掘关联规则,数据分类,聚集和偏差检测,等等。每个任务都有不同的需求。设计一个有效的数据挖掘语言需要对各种不同的数据挖掘任务的能力、限制、以及运行机制都有深入地理解。
数据挖掘语言的研究经历了两个阶段,第一个阶段是研究单位和公司自行研究和开发阶段;第二阶段是研究单位和公司组成联盟,研制和开发数据挖掘语言标准化的阶段。这两个阶段趋势界限是很明显的。第一个阶段成果包括 Jiawei Han 等研制的 DMQL ; Imielinski 和 Virmani 提出的 MSQL ; Meo 、 Psaila 、和 Ceri 提出 MINE RULE 操作器;等。第二阶段主要包括数据挖掘组织协会( DMG )提出的预言模型标记语言 PMML ,以及微软公司提出的 OLE DB for Data Mining 规范。
对于上述数据挖掘语言,根据功能和侧重点不同,我们将其分为三种类型:数据挖掘查询语言;数据挖掘建模语言;通用数据挖掘语言。第一阶段的数据挖掘语言一般属于查询语言; PMML 属于建模语言; OLE DB for DM 属于通用数据挖掘语言。下面我们分别介绍其特点和功能。
数据挖掘系统应该有能力支持特殊的和交互的数据挖掘 (sad-hoc and interactive data mining) ,目的是为了灵活和有效的知识发现。数据挖掘查询语言即是设计用来支持这个特点的。我们首先以加拿大 Simon Franser 大学 Jiawei Han 等开发的数据挖掘系统 DBMiner 中数据挖掘查询语言 DMQL ( Data Mining Query Language )来介绍查询语言的特点,接着简单介绍其它研究工作。
数据挖掘查询语言 DMQL 由数据挖掘原语组成,数据挖掘原语用来定义一个数据挖掘任务。用户使用数据挖掘原语与数据挖掘系统通信,使得知识发现更有效。这些原语有以下几个种类:数据库一部分的规范以及用户感兴趣的数据集(包括感兴趣的数据库属性或数据仓库的维度);挖掘知识的种类;在指导挖掘过程中有用的背景知识;模式估值的兴趣度测量;以及挖掘出的知识如何可视化表示。数据挖掘原语允许用户在挖掘过程中从不同的角度或深度与数据挖掘系统进行交互式地通信。
数据挖掘查询的基本单位是数据挖掘任务,通过数据挖掘查询语言,数据挖掘任务可以通过查询的形式输入到数据挖掘系统中。一个数据挖掘查询由以下五种基本的数据挖掘原语定义:
1 ) 任务相关数据原语
这是被挖掘的数据库的一部分。挖掘的数据不是整个数据库,只是和具体商业问题相关、或者用户感兴趣的数据集,即是数据库中一部分表,以及表中感兴趣的属性。该原语包括以下具体的内容:数据库或数据仓库的名称;数据库表或数据仓库的立方体;数据选择的条件;相关的属性或维;数据分组定义。
2 ) 被挖掘的知识的种类原语
该原语指定被执行的数据挖掘的功能,在 DMQL 中将挖掘知识分为五种类型,即五种知识的表达:特征规则;辨别规则;关联规则;分类 / 预言;聚集。
3 ) 背景知识原语
用户能够指定背景知识,或者关于被挖掘的领域知识。这些知识对于引导知识发现过程和评估发现的模式都是非常有用的。背景知识原语包括:概念层次( concept hierarchy );对数据关系的用户信任度( user beliefs about relationships in the data )。
4 ) 兴趣度测量原语
这个功能是将不感兴趣的模式从知识中排除出去。兴趣度测量能够用来引导数据挖掘过程,或者在发现后评估被发现的模式。不同种类的知识有不同种类的兴趣度测量方法。例如对关联规则来说,兴趣度测量包括支持度( support )和可信度( confidence )。低于用户指定的支持度和可信度阈值的规则被认为是不感兴趣的。兴趣度测量原语包括:简单性( simplicity );确定性( certainty ,比如:可信度);效用( utility ,比如:支持度);新颖性( novelty )。
5 ) 被发现模式的表示和可视化原语
这个原语定义被发现的模式显示的方式,用户能够选择不同的知识表示形式。该原语包括:规则,表格,报告,图表,图形,决策树,和立方体;向下钻入和向上累积( drill-down and roll-up )。
DMQL 正是基于这些原语设计的数据挖掘查询语言。它允许从关系数据库和数据仓库中多个抽象层次上特殊( ad-hoc )和交互地挖掘多种种类的知识。 DMQL 采用类似 SQL 语言的语法,因此它能够很容易地和关系查询语言 SQL 集成。
除了 DMQL 以外,我们简单介绍其它一些数据挖掘查询语言的研究工作。 MSQL 是一个数据挖掘查询语言,它有 Imielinski 和 Virmani 提出。这个语言使用了类似 SQL 的语法和 SQL 原语(包括排序、分组、和其它原语)。既然在数据挖掘中可能产生大量的规则, MSQL 提供了一个称作 GetRule 和 SelectRule 的原语,用于规则产生和规则选择。它统一地对待数据和规则,因此,能够在执行数据选择,以及基于查询的规则产生时进行优化工作,同时也能在操纵或者查询产生规则的集合时进行优化。其它在数据挖掘语言设计方面的研究工作包括 Meo 、 Psaila 、和 Ceri 提出 MINE RULE 操作器。它同样遵循类似 SQL 的语法,是为挖掘关联规则设计的规则产生查询语言。
数据挖掘建模语言是对数据挖掘模型进行描述和定义的语言。如果我们设计一种标准的数据挖掘建模语言,使得数据挖掘系统在模型定义和描述方面有标准可以遵循,那么各系统之间可以共享模型,既可以解决目前各数据挖掘系统之间封闭性的问题,有可以在其它应用系统中间嵌入数据挖掘模型,解决孤立的知识发现问题。“预言模型标记语言”( Predictive Model Markup Language , PMML )正是这样一种数据挖掘建模语言。
PMML 被一个称作数据挖掘协会( The Data Mining Group , , DMG )的组织开发。该组织由 Angoss , Magnify , NCR , SPSS 和芝加哥 Illinois 大学 等企业和单位组成,它的目的是开发预言模型开放标准,策略是将此标准推荐给 W3C 工作组,使 PMML 成为 W3C 的正式推荐物。目前 DMG 宣布了定义预言模型开放标准的第一个版本 PMML 1.0 。 PMML 主要目的是允许应用程序和联机分析处理( OLAP )工具能从数据挖掘系统获得模型,而不用独自开发数据挖掘模块。另一个目的是能够收集使用大量潜在的模型,并且统一管理各种模型的集合。这些能力在商业应用领域是有效的配置分析模型的基础。
PMML 是一种基于 XML 的语言,用来定义预言模型。它为各个公司定义预言模型和在不同的应用程序之间共享模型提供了一种快速并且简单的方式。通过使用标准的 XML 解析器对 PMML 进行解析,应用程序能够决定模型输入和输出的数据类型,模型详细的格式,并且按照标准的数据挖掘术语来解释模型的结果。
PMML 提供了一个灵活机制来定义预言模型的模式,同时支持涉及多个预言模型的模型选择和模型平衡( model averaging )。对于那些需要全部学习、部分学习和分布式学习( ensemble learning, partitioned learning, and distributed learning )的应用程序,这种语言被证明是非常有用的。另外,它使得在不同的应用程序和系统之间移动预言模型变得容易、方便。特别地, PMML 非常适合部分学习、元学习、分布式学习、以及相关领域。
使用 PMML 进行模型定义由以下几部分组成:
1) 头文件( a header )
2) 数据模式( a data schema )
3) 数据挖掘模式( a data mining schema )
4) 预言模型模式( a predictive model schema )
5) 预言模型定义( definitions for predictive models )
6) 全体模型定义( definitions for ensembles of models )
7) 选择和联合模型和全体模型的规则( rules for selecting and combining models and ensembles of models )
8) 异常处理的规则( rules for exception handling )
其中第 5 项组件是必不可少的。另外预言模型的模式必须被定义,这能够利用一个或多个模式(组件 3 , 4 , 5 )来定义。其它几项组件是可选的。
PMML1.0 标准版提供了一个小的 DTD (文档类型定义, XML 术语)集合, DTD 详细说明了决策树和多项式回归模型的实体和属性。 DTD1.0 遵循着一个通用模式,该模式将一个数据字典和一个或多个模型的定义相结合,数据字典能够立即应用于模式。数据字典的元素是非常简单的。
DMG 当前正在制定 PMML 版本 1.1 ,该版本提供独立于应用程序定义模型的方法,使得版权问题和不兼容问题不再成为应用程序之间交换模型的障碍。
通用数据挖掘语言合并了上述两种语言的特点,既具有定义模型的功能,又能作为查询语言与数据挖掘系统通信,进行交互和特殊的挖掘。通用数据挖掘语言的标准化是解决目前数据挖掘行业出现问题的最优的解决方案。 2000 年 3 月,微软公司推出了一个数据挖掘语言,称作 OLE DB for Data Mining ( DM )。这是朝数据挖掘语言原语标准化方面最显著的努力。我们将 OLE DB for DM 归类成通用数据挖掘语言。
OLE DB for DM 的规范包括创建原语以及许多重要数据挖掘模型的定义和使用(包括预言模型和聚集)。它是一个基于 SQL 预言的协议,为软件商和应用开发人员提供了一个开放的接口,该接口将数据挖掘工具和能力更有效地和商业以及电子商务应用集成。同时, OLE DB for DM 已经与 DMG 发布的 PMML 标准结合。通过与 PMML 标准结合,微软将数据挖掘分析应用带入了一个更加强大的开放规范。这意味着大量的组织或公司现在都可以有一种简单的并且易实现的方式将数据挖掘模型与他们自己构建的应用相结合,增强了应用系统的分析能力,却没有增加复杂性。
OLE DB for DM 扩充了 SQL 语言语法,使得商业分析和开发人员只是调用单一确定的 API (应用程序接口)函数即可实现数据挖掘功能,而不需要特殊的数据挖掘技能。它与关系数据库自然的集成能够加快数据挖掘进入高利润的电子商务应用领域,例如站点个性化设计和购物篮分析。
微软的目的是为数据挖掘提供行业标准,以至于任何数据挖掘软件的算法,只要符合这个标准,都能容易地嵌入应用程序中。 OLE DB for DM 支持多种流行的数据挖掘算法。使用 OLE DB for DM ,数据挖掘应用能够通过 OLE DB 生产者接进任何表格式的数据源,数据挖掘分析现在能够依赖一个关系数据库直接进行。
为了更容易访问, OLE DB for DM 没有增加任何新的 OLE DB 接口;相反,这个规格定义了一个简单的查询语言,它的语法非常类似于 SQL 语言,它专门研究了模式的行集合( rowset ),经过 OLE DB 或者 ADO ,消费者应用程序能够使用行集合与数据挖掘生产者进行通信。
为了填补传统的数据挖掘技术和目前流行的关系数据库管理系统之间的缝隙, OLE DB for DM 定义了重要的新的概念和特点,包括如下几点:
1 )数据挖掘模型( Data Mining Model , DMM )
DMM 类似一个关系表,但是它包含了一些特殊的列,这些列被数据挖掘中的数据训练和预言制定使用。 DMM 既可以用来创建预言模型,又可以产生预言。不象标准的关系表存储原始数据, DMM 存储被数据挖掘算法发现的模式。对于从事基于 WEB 数据挖掘项目的开发人员, DMM 所有的结构和内容都可以用 XML 字符串表示。
2 )预言联接操作( Predication Join Operation )
这是一个简单的操作,类似于 SQL 语法中的联接操作,它在一个训练好的数据挖掘模型和设计的输入数据源之间映射一个联接查询,开发人员能够容易地产生确切符合商业需求的度身定制的预言结果。这个预言结果通过 OLE DB 的行集合或者 ADO 记录集( recordset )发送到消费者应用程序内。
3 ) OLE DB for DM 模式行集合( Schema Rowsets )
这些特殊目的的模式行集合允许消费者应用发现临界的信息,例如可以利用的挖掘服务,挖掘模型,挖掘列,和模型内容。数据挖掘生产者在模型创建和训练阶段组装模式行集合。
目前 OLE DB for DM 规范最新版本是 1.0 。
数据挖掘查询语言能与数据挖掘系统通信,进行交互和特殊的挖掘。它提供了独立于应用的操作原语,简明 精确的问题描述方法。但是,由于各查询语言是研究机构和公司为自己的数据挖掘系统开发,没有形成标准,它并没有实质性地解决各个数据挖掘系统彼此互相孤立,难于嵌入大型应用的问题。
PMML 为处理和交换预言模型提供了一个简单、开放的构架,使得各公司能够更加迅速地使用他们从在线和传统的数据中挖掘出的信息。这种标准使得公司在 IT 基础构架中更加容易构建商业智能。 PMML 允许用户在一个软件商的应用程序内开发模型,而使用其它软件商的应用程序对模型可视化、分析、估值或者以别的方式使用该模型。它使得在不同应用程序之间能够无缝地交换模型变为可能,解决了数据挖掘系统彼此孤立,难于嵌入大型应用的问题。
然而, PMML 是预言模型标记语言,数据挖掘模型包括预言模型和描述模型,因此 PMML 并不是全面的数据挖掘模型定义语言。同时, PMML1.0 不是一个全面的集合,我们期望 PMML 最终将发展成一个全面的、具有丰富建模能力的模型定义语言。我们预见并且盼望这个标准接下来的版本能够介绍优化,比如种类字段( categorical fields )的位向量扩充( bit vector expansions )或者连续字段( continuous fields )的 log 变换。 PMML ,或者类似于 PMML 的事物,随着商业系统对统计和数据挖掘工具与技术需求的日益增加,对它的要求显得特别迫切。
OLE DB for DM 规范的发布在预言和描述分析模型被商业应用广泛使用的道路上是一个重大的里程碑。它同时具备了数据挖掘查询和建模语言的优点,它的推广必将推动数据挖掘行业的发展。但是,对于一些数据挖掘模型,比如:概念描述(特征和辨别规则)和关联规则,还有数据仓库模型, OLAP 的创建和使用,在目前的版本中仍然没有涉及。我们期望微软公司将继续动态地扩充和丰富它的内容。
本文介绍了数据挖掘语言及其标准化方面的研究进展,分析并比较了几种商用数据挖掘语言的特点,我们发现标准化是数据挖掘语言发展的趋势。开发一种全面的开放的数据挖掘语言标准,必然将是各公司和研究机构的核心课题。但是,正如关系数据库查询语言 SQL 由关系代数理论的支持,数据挖掘语言的标准化也需要一种理论的基础, 基于高阶逻辑和Rough Sets理论的数据挖掘问题的分类描述理论,将作为今后我们进一步深入研究的课题。
【参考 文 献】
[1] Jiawei Han, Yongjian Fu, Wei Wang, Krzysztof Koperski, Osmar Zaiane. “DMQL:A Data Mining Query Language for Relational Database”. VLDB’96
[2] Jiawei Han, Micheline Kamber. ”Data Mining: Concepts and Techniques” 97-116.Morgan Kaufmann Publishers. August 2000
[3] Robert Grossman, Stuart Bailey, Ashok Ramu, Balinder Malhi, Michael Cornelison, Philip Hallstrom, and Xiao Qin. “The Management and Mining of Multiple Predictive Models Using the Predictive Modeling Markup Language (PMML)”,AFCEA’99
[4] Microsoft Corporation. ”OLE DB for Data Mining Specification” Version 1.0. July 2000