云计算环境下对大数据挖掘与知识发现提出了新的挑战,主要反映在如下方面。
1 大数据挖掘与知识发现技术挑战
1.1 描述与存储的挑战
云计算环境下对大数据管理技术提出了新的挑战,主要反映在传统的关系数据库不能满足大数据处理的需求,如海量用户的高并发读写、海量数据的高效存储与访问、系统的高可用性与高扩展性等。随着数据规模的增大,原来高效的算法会变得低效,关系数据库事务处理要求的 ACID 特性,即原子性 (atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的开销巨大。目前的 NoSQL 运动正在通过放弃关系型数据库强大的 SQL 查询语言、事务的一致性以及范式的约束,或者采用键 – 值数据格式存储,以获得高效灵活的大数据处理能力。在业界,全球著名的 Google、EMC、惠普、IBM、微软等互联网公司都已经意识到大数据存储的重要意义,研发了一批包含分布式数据缓存、分布式文件系统(GFS、HDFS)、非关系型 NoSQL 数据库(Amazon 的 Dynamo、Apache Cassandra 和 HBase),以及新关系型 NewSQL 数据库等新技术。Gupta 等提出分析大数据过程中面临的挑战,包括静态数据与动态数据。对于静态的大数据,Gupta 等描述了面向交互数据服务环境的 NoSQL 系统,以及基于 MapReduce 编程模式的面向大规模数据分析的系统。
1.2 分析与理解的挑战
大数据集往往来源于对多源异构数据的融合和集成,具有超高维、稀疏和多模态等内在分布特征。这些内部特征导致现有机器学习算法的性能和效率降低,导致对大数据的分析的理解如同盲人摸象。
1.3 挖掘与预测的挑战
大数据中所蕴含的有价值的知识需要挖掘。大数据挖掘增加样本容易,降低算法复杂度难。很多传统的数据挖掘算法不一定能适用大数据环境,目前常用的数据挖掘的算法并不都能被并行化,也就是说并非所有的算法都具有高度的并行性,并行不能降低算法复杂度,因此需要研究和开发新的适应大数据环境的算法。
2 大数据挖掘与知识发现技术
2.1 大数据处理技术
由于海量数据的大数据量和分布性的特点,使得传统的数据处理技术不适合处理海量数据。这对海量数据的分布式并行处理技术提出了新的挑战,开始出现以 MapReduce 为代表的一系列工作。
(1)数据并行处理MapReduce 是 2004 年谷歌提出的一个用来并行处理大数据集的并行处理模型。而 Hadoop是 MapReduce 的开源实现,是企业界及学术界共同关注的大数据处理技术。针对并行编程模型易用性,出现了多种大数据处理高级查询语言,如 FaceBook 的 Hive、Yahoo 的 Pig、Google 的Sawzall 等。这些高层查询语言通过解析器将查询语句解析为一系列的 MapReduce 作业,在分布式文件系统上执行。与基本的 MapReduce 系统相比,高层查询语言更适合用户方便地进行大规模数据的并行处理。MapReduce 及高级查询语言在应用中也暴露了在实时性和效率方面的不足,因此有很多研究针对它们进行优化提高效率。
另一种基于新兴的 NoSQL 数据库,Oracle NoSQL DB、MySQL Cluster、MyFOX即是典型系统,通过扩展 NoSQL 数据库的查询能力的方法来满足大规模数据处理需求,最典型的例子就是 Google的 BigTable 及其一系列扩展系统。如何处理海量分布式的复杂数据也是目前的研究热点。Google MapReduce 的设计初衷是分析 WebGraph,但处理图数据常常需要大量的迭代运算,而 MapReduce不是很适合处理这类复杂数据,已有的并行图算法 库 Parallel BGL 或 者 CGMgraph 又没有提供容错功能。于是 Google 开发了 Pregel,一个可以在分布式通用服务器上处理 PB 级别图数据的大型同步处理应用,与之对应的开源项目 Graph 也得到学术界的关注。现在基于 MapReduce 基础又发展了 Spark。Spark 是专为大规模数据处理而设计的快速、通用的计算引擎。Spark 是 UC Berkeley AMP lab( 加州大学伯克利分校的 AMP 实验室 ) 所开源的类 Hadoop MapReduce 的通用并行框架,其拥有 Hadoop MapReduce 所具有的优点;但不同于MapReduce 的是,Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于知识发现中的大数据挖掘与机器学习等需要迭代的 MapReduce 的算法。
(2)增量处理技术如何采用增量处理技术设计高效的增量算法来解决分布式大数据的动态更新问题,也是目前的研究热点。Google 已经采用增量索引过滤器(percolator for incremental indexing), 而不是MapReduce 来对频繁变化的数据集进行分析,使得搜索结果返回速度越来越接近实时。通过只处理新增的、改动过的或删除的文档和使用二级指数来高效率建目录,返回查询结果。Percolator 将文档处理延迟缩短了 100 倍,其索引 Web 新内容的速度比用 MapReduce 快很多。
(3)流式计算技术目前流式计算是一个业界研究的热点, 最 近 Twitter、LinkedIn 等公司相继开源了流式计算系统 Storm、Kafka 等,加上 Yahoo! 之前开源的S4,流式计算研究在互联网领域持续升温。百度已经引入了流计算系统 DStream,能提供灵活的、可伸缩的效率解决方案,又能在数据完整性、高可用、可扩展性及收缩性方面支撑上层业务。
2.2 大数据挖掘与知识发现
数据的价值只有通过数据挖掘与知识发现才能从低价值密度的数据中发现其潜在价值,而大数据挖掘与知识发现技术的实现离不开云计算技术。在业界,全球著名的 Google、EMC、惠普、IBM 和微软等互联网公司都已经意识到大数据挖掘的重要意义。数据挖掘与知识发现通常需要遍历训练数据获得相关的统计信息,用于求解或优化模型参数,在大规模数据上进行频繁的数据访问需要耗费大量运算时间。数据挖掘与知识发现领域长期受益于并行算法和架构的使用,使得性能逐渐提升。过去 15 年来,效果尤其显著。试图将这些进步结合起来,并且提炼。GPU 平台从并行上得到的性能提升十分显著。这些 GPU 平台由于采用并行架构,用并行编程方法,使得计算能力呈几何级数增长。即便是图形处理、游戏编程是公认的复杂,它们也从并行化受益颇多。研究显示数据挖掘与知识发现、图遍历、有限状态机是并行化未来的热门方向。2017 年谷歌公布了张量处理器(TPU)的论文——TPU 已经在谷歌数据中心内部使用大约三年,而且 TPU 在推理方面的性能要远超过 GPU。尽管在一些应用上利用率很低,但 TPU 平均比当前的 GPU 或 CPU 快15~30 倍,性能功耗比高出约 30~80 倍。TPU 的出现,以及谷歌研发芯片这一举动,本身都对整个智能产业有着深远的意义。
MapReduce 框架已经被证明是提升 GPU 运行数据挖掘算法性能的重要工具。D.Luo 等提出一种非平凡的策略用来并行一系列数据挖掘与知识发现与数据挖掘问题,包括一类分类 SVM 和两类分类 SVM,以及非负最小二乘问题及 L1 正则化回归(lasso)问题。由此得到的乘法算法,可以被直截了当地在如 MapReduce 和 CUDA 的并行计算环境中实现。K. Shim 在 MapReduce 框架下,讨论如何设计高效的 MapReduce 算法,对当前一些基于 MapReduce 的数据挖掘与知识发现和数据挖掘算法进行归纳总结,以便进行大数据的分析。Junbo Zhang 等提出一种新的大数据挖掘与知识发现技术,即利用 MapRedue 实现并行的基于粗糙集的知识获取算法;还提出了下一步的研究方向,即集中于用基于并行技术的粗糙集算法处理非结构化数据。F. Gao 提出了一种新的近似算法使基于核的数据挖掘算法可以有效地处理大规模数据集,开发了一个变种的谱聚类算法,此外设计了一个所提出算法的基于 MapReduce 的实现。在合成和真实数据集上的实验结果显示,所提出的算法可以获得显著的时间和空间节省。
Christian Kaiser 等还利用 MapReduce 框 架分布式实现了训练一系列核函数学习机,该方法适用于基于核的分类和回归。Christian Kaiser 还介绍了一种扩展版的区域到点建模方法,来适应来自空间区大量数据。Yael Ben-Haim 研究了三种 MapReduce 实现架构下并行决策树分类算法的设计 , 并在 Phoenix 共享内存架构上对 SPRINT算法进行了具体的并行实现。F.Yan 考虑了潜在狄利克雷分配(LDA)的两种推理方法——塌缩吉布斯采样(collapsed Gibbs sampling,CGS)和塌缩变分贝叶斯推理(collapsed variational Bayesian,CVB)在 GPU 上的并行化问题。为解决 GPU 上的有限内存限制问题,F.Yan 提出一种能有效降低内存开销的新颖数据划分方案。这种划分方案也能平衡多重处理器的计算开销,并能容易地避免内存访问冲突。他们使用数据流来处理超大的数据集。大量实验表明 F.Yan 的并行推理方法得到的 LDA 模型一贯地具有与串行推理方法相同的预测能力;但在一个有 30 个多核处理器的 GPU 上,CGS 方法得到了 26 倍的加速,CVB方法得到了 196 倍的加速。他们提出的划分方案和数据流方式,使其方法在有更多多重处理器时可伸缩,而且可被作为通用技术来并行其他数据挖掘模型。Bao-Liang Lu 提出了一种并行的支持向量机,称为最小最大模块化网络 (M3),是基于“分而治之”的思想解决大规模问题的有效的学习算法。针对异构云中进行大数据分析服务的并行化问题,G.Jung 提出了最大覆盖装箱算法来决定系统中多少节点、哪些节点应该应用于大数据分析的并行执行。这种方法可以使大数据进行分配使得各个计算节点可以同步的结束计算,并且使数据块的传输可以和上一个块的计算进行重叠来节省时间。实验表明,这种方法比其他的方法可以提高大约 60% 的性能。在分布式系统方面,Cheng 等提出一个面向大规模可伸缩数据分析的可伸缩分布式系统——GLADE。GLADE 通过用户自定义聚合(UDA)接 口,并且在输入数据上有效地运行进行数据分析。文章从两个方面论证了系统的有效性,第一,文章展示了如何使用一系列分析功能来完成数据处理;第二,文章将GLADE 与两种不同类型的系统进行比较——一个用 UDA 进行改良的关系型数据库(PostgreSQL) 和MapReduce(Hadoop),然后从运行结果、伸缩性,以及运行时间上对不同类型的系统进行了比较。
3 大数据挖掘与知识发现实践
随着云计算概念的不断普及与推广,云计算核心技术的不断突破,云计算应用的不断深入,云计算得到了国内外工业界、学术界乃至政府部门的热烈响应。国内高校与科研院所针对云计算的不同领域开展了深入研究。例如,清华大学的云存储平台着力于构建存储云;中国科学院计算技术研究所利用云计算开展数据挖掘工作;上海交通大学注重于数据的安全和隐私关键性技术研究。清华大学在云存储研究方面,以分布式文件系统为基础的云存储平台,为校园网用户设计开发了用于数据存储与共享的云存储服务,利用底层云存储平台所提供的基础存储服务,提供用户管理与目录管理功能,增加了文件检索功能,并对数据传输进行了优化,为用户提供简单实用的云存储访问接口。2008 年底,中国科学院计算技术研究所在 Hadoop 基础上开发实现了并行数据挖掘工具平台,实现了高性能、低成本的海量数据挖掘。上海交通大学针对云计算中存在的数据安全问题,利用密码理论与技术、网络与信息安全技术、编码理论等方向所取得的成果,解决数据安全存在的一些基础问题,提高云计算的安全性。
另外,在云计算大潮中,许多本土 IT 厂商或是自主创新,或是强强联合,在不同的行业和领域开展了丰富多样的创新商业实践。科大讯飞股份有限公司针对当前移动互联网时代智能语音技术的人机交互需求,立足智能语音交互和云计算的结合,实现了面向移动互联网最终用户及开发者的科大讯飞智能语音云平台,使得手机等各种移动终端均可以通过自然的语音交互方式获取移动互联网上的各种信息和知识服务,提升用户获取信息的效率,以获得更好的用户体验。
4 富格式文本知识发现
以金融领域举例来说,大部分金融文档和数据都惯常以图表的形式整理文字,是典型的富格式文本。传统的文本处理算法大多只能处理扁平化数据,这无形中提高了数据分析工作的人力成本,而且分析质量也难以得到保证。因此,目前文本分析水平事实上无法满足行业日新月异的需求。再如,对于一篇文档其生命周期往往要经历“撰写、审核和阅读”三个阶段,在每个阶段人们对这些图表分析都有迫切需求。因而,利用可靠的文本分析技术,从非结构化的富格式文档中提取知识,构建领域相关知识图谱就成了目前亟待解决的问题。通过有效的知识图谱构建技术研究可以:
● 将业务部门外的公开数据和业务部门内的私有数据分别建立知识图谱,通过比较公开和私有两个知识图谱的异同,研究业务部门对领域状况的认知是否存在偏差,可用于帮助领导感知业务工作整体态势,从而辅助宏观决策。
● 利用知识图谱,辅助特定领域智能搜索及智能问答系统。“巧妇难为无米之炊”,搜索和问答系统的基础便是优质的结构化数据和知识图谱。富格式文本,包括但不限于文件扫描件、跨平台文件格式(PDF 文档和 Word 文档等)和网页等,它们是标题、文字章节和段落、表格和图像等组成成分的复合有机排版。需要强调的是,知识图谱构建的研究工作往往假设文字段落已事先给定,因而仅需要在自然语言理解的范畴内进行语义提取。然而,结合多年的研究积累,从特定领域的文本资料中进行语义提取,并不单纯是自然语言理解的问题,还需要进行文档结构理解、表格内容语义提取等研究工作。这包括以下知识工程问题:
● 特定领域的文本资料往往以富格式的形式存在,其中包含标题、文字章节和段落、表格和图像等多种组成成分,并将这些成分进行精美排版,以方便读者阅读。在排版后的文档中,获取文档主体内容(标题、章节名和文字段落),确定阅读顺序(在双栏或多栏的排版下),并识别表格(特别是无边框表格)和图片位置,仍是未解决的问题。
● 从自然语言中提取结构化知识,包含实体识别、关系提取和事件提取等相关工作;然而,这些已有工作的问题定义相对简单,在实际问题 中,尚不能处理多元关系(超过三元)的 提取、有层次嵌套结构的多元关系提取和无触发词(trigger words)的多元关系提取等科学问题。因 此,为了挖掘更深层次的结构化知识,需要开展“自然语言的复杂关系提取”研究。
● 重要的信息通常存在于富格式文本的表格中;然而,为了便于人阅读,这些表格往往采用多层次的“二维结构排版”,其中大量表格以无边框的形式存在。在富格式文本中识别复杂排版表格,并获取其结构化知识,是需要关注的又一科学问题。
综上,在富格式文本中进行语义理解,其基本的研究路线是,以各种类型的富格式文档为输入,首先进行“富格式文本的文档结构理解”,将整个文档拆解为标题、章节、文字段落、表格、图片和图标等基本文档子结构,并确定它们的阅读顺序。文档结构识别之后,再分别从文字段落和表格(或图表)中分别进行语义理解,即进行“自然语言的复杂关系提取”和“复杂排版的表格内容语义提取”。上述过程中建立深度神经网络是目前热点的技术方向。最后,将获得的结构化知识整合为全景的知识图谱。
5 结束语
大数据的超大容量自然需要容量大、速度快、安全的存储,满足这种要求的存储离不开云计算。高速产生的大数据只有通过云计算的方式才能在可等待的时间内对其进行处理。同时,云计算是在大数据中发现知识,提高对大数据的分析与理解能力的一个可行方案。大数据的价值也只有通过数据挖掘才能从低价值密度的数据中发现其潜在价值,而大数据挖掘技术的实现离不开云计算技术。大数据知识工程的实际应用中,富格式文本知识发现是极具技术挑战的任务。总之,云计算是大数据处理的核心支撑技术,是大数据挖掘与知识发现的主流方式。没有互联网,就没有虚拟化技术为核心的云计算技术,没有云计算就没有大数据知识工程的支撑技术。
(参考文献略)
选自《中国人工智能学会通讯》2020年第10卷第9期
知识工程专题