CN110543588A - 一种面向大规模流数据的分布式聚类方法及系统 - Google Patents
一种面向大规模流数据的分布式聚类方法及系统 Download PDFInfo
- Publication number
- CN110543588A CN110543588A CN201910795304.4A CN201910795304A CN110543588A CN 110543588 A CN110543588 A CN 110543588A CN 201910795304 A CN201910795304 A CN 201910795304A CN 110543588 A CN110543588 A CN 110543588A
- Authority
- CN
- China
- Prior art keywords
- micro
- data
- cluster
- clustering
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种面向大规模流数据的分布式聚类方法及系统,通过构造时序化的微批式增量计算模型及基于多维划分的并行化方法,实现了可以对典型流式聚类算法进行并行化的分布式系统框架,解决了当前流式聚类分析算法难以并行化、吞吐率低的问题。通过真实的数据集对本发明进行聚类质量、吞吐率和扩展性测试,结果表明基于本发明的系统实现的流式聚类算法可以随着集群规模增长,达到亚线性的吞吐率提升,且保持与标准单机流式聚类算法相近的聚类质量,同时比其他并行化方式(如无序更新方式)实现的流式聚类算法在聚类质量方面提升2.5倍、吞吐率方面提升1.9倍。因此,本发明能够满足大规模高流速数据所需的低延时、高吞吐率的数据聚类分析需求。
Description
技术领域
本发明涉及大规模流数据下的数据挖掘技术,更具体地涉及一种面向大规模流数据的分布式聚类方法及系统。属于软件技术领域。
背景技术
现如今,流数据挖掘技术被广泛应用到各种应用场景中,比如,物联网数据挖掘,网络流量入侵检测、网络点击率分析、实时商品推荐等。传统的数据挖掘技术利用静态的批式数据进行挖掘,这种方式不适合动态的流数据挖掘。首先,静态数据挖掘预先知道所有的数据进行挖掘,而流数据是无限的,流数据挖掘技术需要处理的是未知数据,这就需要流数据挖掘技术快速及时处理流入的数据;其次,流数据是动态变化的,传统数据挖掘技术无法及时检测反馈动态的数据变化;再次,因为流数据动态变化的特性,流数据挖掘需要更关注新产生的数据,即赋予新产生的数据更高的权重;但是静态数据挖掘技术将所有的静态数据视为一样的权重,不区分新数据和旧数据。
及时准确挖掘并得到无限数据流潜在的数据模式是至关重要的。以新闻推荐系统为例,具有相似特征的新闻可以被聚在一起,形成一个类。属于相同类的新闻可以被推荐给喜欢这个类的用户,然而新闻实时产生,新闻推荐系统需要及时处理每一条新闻,以便作出及时推荐;此外,新闻推荐系统应该更关注新产生的新闻。
流式聚类作为流数据挖掘技术中的一大类,被广泛应用到网络攻击检测,天气预测,流量点击预测等(参考文献:J.de Andrade Silva,E.R.Faria,R.C.Barros,E.R.Hruschka,A.C.P.de Leon Ferreira de Carvalho,and J.Gama.Data streamclustering:A survey.ACM Computing Surveys,46(1):13:1–13:31,2013.),流式聚类算法通过将数据流中的相似数据聚合在一起,可以有效捕捉到数据流中的数据变化;此外,流式聚类算法可以作为其他机器学习算法的基础,数据通过流式聚类得到数据概要,更多的数据挖掘工作可以直接在得到的数据概要上进行。流式聚类算法通过采用不同的时间窗口技术,对新旧数据赋予不同的权重,进而在数据处理时更关注新数据。但是,现阶段的流式聚类算法采用“一条数据更新一次”的模式,即算法对下一条数据的处理要等到之前一条数据处理完成以后才能进行,因此,现有的流式聚类算法只能单机进行,无法进行并行化。经典的流式聚类算法CluStream的单机实现,只能保证5k(参考文献:C.C.Aggarwal,J.Han,J.Wang,and P.S.Yu.A framework for clustering evolving data streams.InProceedings of 29th International Conference on Very Large Data Bases(VLDB),pages 81–92,2003.)左右的吞吐率,这无法满足现如今高流速动态变化的数据所需的低延时和高吞吐率数据处理需求。
然而,现有工作无法支持典型流式聚类算法的并行化;传统的并行机器学习框架或系统,比如Spark MLlib或者Petuum,基本采用全部数据集进行迭代计算,不能满足流数据挖掘算法一次计算和按序更新的需求。已有研究者在不同的流式分布式计算框架上实现了流式聚类算法,然而这些工作均是面向单一流式聚类算法,不能满足更多典型流式聚类算法的计算逻辑,比如,数据权重根据时间衰减等;此外,现有工作(参考文献:O.Backhoffand E.Ntoutsi.Scalable online-offline stream clustering in apache spark.InIEEE International Conference on Data Mining Workshops(ICDMW),pages 37–44,2016.)也无法保证流数据处理中按时间顺序处理数据的需求。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种面向大规模流数据的分布式聚类方法及系统,适用多种典型的流式聚类算法,在保证聚类质量的前提下,降低算法的计算时延,提高算法的吞吐率,并保证算法具有良好的扩展性。
本发明技术解决方案:一种面向大规模流数据的分布式聚类方法,包括以下步骤:
步骤一:流数据是一个随时间延续而无限增长的动态数据集合;本方法面向高流速动态变化的大规模流数据,高流速描述数据产生快,可以达到GB/s级别;动态变化描述数据分布随着时间不断变化,没有一个稳定的数据分布;大规模描述产生数据的总量多并且数据维度高,数据总量可以达到PB级别,数据维度可以从几十维到几千维不等。针对上述数据特点,本发明面向高流速动态变化的大规模流数据,构建时序化的微批式增量计算模型,解决了传统计算模型下流式聚类算法难以进行并行化的问题。典型的流式聚类算法维护一个微簇集合,算法根据接收得到的流数据对微簇集合进行更新。时序化的微批式增量计算模型将得到的流数据划分成不同批次,微批式增量计算模型根据一个批次内的数据对微簇集合进行更新,本批次数据处理完成后,微批式增量计算模型再处理下一个批次的数据。时序化的微批式增量计算模型将典型的流式聚类算法解耦成三个保证数据按序更新的计算阶段,解决了现有并行化方案无法保证数据按序处理的问题,具体解耦的三个计算阶段如下:
(1)寻找最近微簇的计算阶段:对于每条新到数据,此阶段计算其与所有微簇的距离,并选择最近的微簇检查是否可以加入,根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点;
(2)微簇集合的本地更新阶段:将每一条数据以数据增量的方式更新到第一阶段计算得到的对应的微簇中;
(3)微簇集合的全局更新阶段:将更新过的微簇与全局微簇集合进行融合;
其中每个阶段内的计算和更新过程由具体流式聚类算法的微簇集合表示、更新过程、衰老机制以及离群点处理过程决定;
步骤二:基于步骤一构建的时序化的微批式增量计算模型,采用基于多维划分的并行化方法对流式聚类算法的各个计算与更新阶段进行并行化,其中计算与更新阶段为步骤一中所述的寻找最近微簇的计算阶段、微簇集合的本地更新阶段与微簇集合的全局更新阶段,其中基于多维划分的并行化方法包括以下两种:
(1)数据并行方法:将每条数据分发到不同的计算节点上,每个计算节点保存全部的微簇集合,每条数据与全部的微簇集合进行计算更新;
(2)模型并行方法:将微簇集合分发到不同的计算节点上,每个计算节点保存部分微簇集合,每条数据找到最优的部分微簇再在该部分微簇集合上进行更新;
本发明综合考虑网络传输量、计算时延、并行化程度因素,选取在各个计算与更新阶段最优的并行化方法,对流式聚类算法进行并行化实现。
步骤三:将更新后的微簇集合中的每个微簇当做一个单独的数据点,进行典型迭代式聚类算法的计算,如KMeans、DBSCAN等,得到最终的聚类结果。
所述步骤一中,构建时序化的微批式增量计算模型的具体步骤如下:
(1)初始化阶段:根据用户设定的微簇个数m对初始数据集进行迭代计算,得到m个微簇{Q1,Q2,…,Qm-1,Qm},每个微簇Qi,1≤i≤m,由一个CF向量进行表示,CF向量为其中是属于这个微簇的数据的各维度之和,是属于这个微簇的数据的各维度的平方和,是属于这个微簇的数据的时间戳之和,n是属于这个微簇的数据的权重之和;
(2)寻找最近微簇的计算阶段:每条数据x与每个微簇Q的中心点O进行距离计算,其中微簇Q的中心点为距离计算公式为 其中Oi和xi分别代表O和x的第i维数据;
(3)微簇集合的本地更新阶段:找到离每条数据x最近的微簇Q,判断它们之间的距离dis是否小于等于微簇Q的半径范围ε,其中半径范围公式为 若dis小于等于微簇Q的半径范围ε,则将数据x更新至微簇Q内。具体地,是将数据x中各维数据更新到微簇Q的CF向量里,其中 n=decay*n+1。否则将数据x生成一个新的微簇Q′加入到微簇集合中。具体地,是生成一个新的CF向量来代表微簇Q。其中n=1。其中xi分别代表各个向量里的第i维数据,decay为用户设置的衰减参数。
(4)微簇集合的全局更新阶段:算法的微簇个数是固定的m个,若微簇个数目前大于m,则需要对微簇个数进行限制。首先删除现有微簇集合中最小的微簇Q,若微簇个数仍大于m,则一直合并两个距离最近的微簇成一个微簇,直到微簇个数等于m,其中距离计算公式为CF向量更新公式为n=decay*n+1。
所述步骤二中,采用基于多维划分的并行化方法对算法的各个计算阶段的并行化过程如下:
(1)寻找最近微簇的计算阶段:对于每条新到数据,此阶段计算其与所有微簇的距离,并选择最近的微簇检查是否可以加入。根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点。从网络传输量、计算时延和并行化程序三个方面对数据并行和模型并行三种方式进行比较,最终在此阶段采用数据并行的方式进行并行化实现。
(2)微簇集合的本地更新阶段:本阶段需要将每一条数据以数据增量的方式更新到对应的微簇中。从数据的时序性、计算时延、网络传输量和并行化程度四个方面对数据并行和模型并行两种方式进行比较,最终在此阶段采用模型并行的方式进行并行化实现。
(3)微簇集合的全局更新阶段:在微簇集合的模型全局更新阶段,需要将更新过的微簇与全局微簇集合进行融合。由于微簇集合的模型全局更新阶段在三个阶段中需要最小的计算量,并且需要保持更新顺序,所以此阶段在单机环境下进行。
本发明的系统架构如图1所示,从整体上看,系统可以分为以下四个部分:
一种面向大规模流数据的分布式聚类方法实现的聚类系统,包括:接入层,应用层,计算层和存储层;
接入层:将数据以数据流的形式接入应用层,其中数据流可以是网络流或实时数据流;数据流分发到不同的节点上,节点通过拉拽的方式将数据接入;
应用层:本层提供四个接口,分别是模型表示、更新过程、衰老机制以及离群点处理过程;用户组合上述这些接口实现具体的流式聚类算法,为业务场景定制解决方案;应用层面向算法开发人员,开发人员不需要考虑算法具体的分布式实现,只需要按照给定的接口实现模型表示、更新过程、衰老机制以及离群点处理过程的计算逻辑;应用层完成构建时序化的微批式增量计算模型和微簇集合的具体实现步骤;
计算层:各个计算节点接收接入层传递过来的流数据,并且根据应用层中具体的流式聚类算法的计算与更新过程,执行相应的处理过程,其中计算层在每批数据结束之后需要将各个计算节点的结果进行合并操作,然后将增量数据更新至微簇集合里,最后再将微簇集合进行反馈;计算层将基于多维划分的并行化方法对流式聚类算法及具体要求实现过程进行并行化实现;
存储层:该层采用分布式存储架构,负责微簇集合状态的存储;微簇集合分散到各个存储节点上进行存储和备份,同时还提供了持久化接口,也将这些微簇集合备份到永久性介质上,进一步提高可靠性。
本发明通过提出一种时序性的微批式增量更新模式,克服了现有计算模式下,流式聚类算法不易进行并行化的难题;通过对计算模式解耦成三个保证数据按序更新的计算阶段,克服了现有并行化方案无法保证数据按序处理的难题;通过对各个阶段进行不同的并行化设计,克服了现有并行化方案无法兼顾聚类质量和计算吞吐率的问题。
与现有技术相比,本发明的优点是:
(1)本发明通过提出一种时序性的微批式增量更新模式,克服了现有计算模式下,流式聚类算法不易进行并行化的难题,通过对计算模式解耦成三个保证数据按序更新的计算阶段,克服了现有并行化方案无法保证数据按序处理的难题。
(2)本发明通过对各个阶段进行不同的并行化设计,克服了现有并行化方案无法兼顾聚类质量和计算吞吐率的问题。
(3)本发明在Spark Streaming基础上实现了一种面向大规模流数据的分布式系统,提供了相应的接口供用户实现具体的流式聚类算法。
(4)本发明在提出的面向流式聚类分析的分布式计算系统上实现了具体的流式聚类算法,并对它们做了聚类质量、吞吐率和扩展性的测试。实验结果表明,基于本发明提出的方法和系统实现的流式聚类算法,可以达到单机流式聚类算法聚类质量的99%,同时在多机环境下达到亚线性增长的吞吐率;可以在保证聚类质量的前提下,满足高流速动态变化的流数据所需的低延时和高吞吐率数据处理的计算需求。
附图说明
图1为本发明的系统架构图;
图2为本发明的时序化微批式增量计算模型图;
图3为本发明的并行化后的时序化微批式增量计算模型图;
图4为实例在KDD-99数据集上的聚类质量展示图;
图5为实例在CoverType数据集上的聚类质量展示图;
图6为实例在KDD-98数据集上的聚类质量展示图;
图7为实例的吞吐率展示图;
图8为实例的扩展性展示图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细说明。
图1为本发明的系统架构图,从整体上看,系统可以分为接入层、应用层、计算层以及存储层四个部分。其中应用层与计算层涉及本发明的一种面向大规模流数据的分布式聚类方法,具体包括:
(1)一种时序化的微批式增量计算模型,放宽典型流式聚类算法的计算依赖,解决算法不易并行性化,无法处理高流速动态变化的流数据的问题;
(2)基于时序化的微批式增量计算模型,采用基于多维划分的并行化方法对流式聚类算法的各个计算阶段进行并行化,用于解决流式聚类算法的并行化问题。
下面对各个步骤进行详细说明。
1.时序化的微批式增量计算模型
传统的流式聚类算法的计算模式包括两个串行步骤:(1)找到离当前数据最近的微簇;(2)将数据以衰减的方式更新到最近的微簇里,同时对整个微簇集合进行合并、删除等全局性操作;然后新的数据在更新后的微簇集合上进行计算,这样完整的一次计算被称作一次反馈循环。这种计算模式的缺点是,每一条数据的计算过程严格依赖于前一条数据的计算结果,即只有前一条数据对模型的更新完成后,下一条数据才可以开始计算;这种模式限制了算法的并行化实现,无法应对高流速、动态变化的流数据场景。
为了解决上述问题,本发明提出的微批式增量计算模型放宽了数据之间严格的处理顺序。该模型让一批数据在相同的微簇集合上进行计算,当一批数据计算完成后,根据计算结果,按序更新模型。这种微批式的增量计算模型可以让更多的并行化策略得以适用,从而提升算法性能。
同时为了提升更新过程的计算性能,本发明将计算模型解耦成三个阶段:寻找最近微簇的计算阶段->微簇集合的本地更新阶段->微簇集合的全局更新阶段。在寻找最近微簇的计算阶段,对于每条数据,计算其与所有微簇的距离,并选择最近的微簇检查是否可以加入。根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点;在微簇集合的本地更新阶段,将数据融合至离其最近的微簇中,对微簇的时间与空间表示作出相应的更新;在微簇集合的全局更新阶段,根据不同算法的计算流程,对微簇集合中的部分微簇进行合并、删除等操作,以此来反应最新的数据流趋势。
另外,流数据场景下的数据具有时序性特征,虽然上述基于微批式的增量计算模型放宽了数据处理顺序,在数据寻找最近微簇的过程中,不严格遵守时序性;但为保证聚类质量,本发明在两个更新阶段保持数据处理的时序性:
(1)在微簇集合的本地更新阶段,每个微簇会接收到一定数量的数据,这些数据都认定该微簇是离数据最近的微簇,本地模型可以选择将这些数据以增量更新的方式一起更新到对应微簇中;但是,本发明为了保证数据处理的时序性,同时保证较新的数据对模型的影响更大,本发明采用时序性的增量更新的方式。
(2)在微簇集合的全局更新阶段,模型的删除、合并等操作是不可撤销的,即一旦进行了删除、合并等操作,微簇就不能再恢复到原状了,因此保障数据的时序性至关重要。本发明将结合数据流特征和计算时延需求,采用应对不同场景的保证时序的模型全局更新方案。
时序化的微批式增量计算模型实例如图2所示,实例中将一个批次中的四条数据同时按阶段进行计算,首先找到离每条数据最近的微簇,然后将每个微簇的数据进行整合得到增量信息,最后对整体模型进行更新。除了第一阶段,第二阶段和第三阶段的更新过程,严格保证算法处理时序性;同时,第三阶段的模型的全局更新,可以减弱第一阶段对数据处理顺序缩放可能带来的对算法聚类质量的影响。
2.基于多维划分的并行化方法
基于多维划分的并行化方法指数据并行、模型并行等常见的并行化方法的综合使用。本发明在网络传输开销、计算时延、并行化程度等方面,结合设计的时序性增量更新模型,对每个计算阶段,设计合理的并行化方案。图3为采用多维划分的并行化方法后的时序化微批式增量计算模型的示意图。
(1)寻找最近微簇的计算阶段
此阶段计算数据与所有微簇的距离,并选择最近的微簇检查是否可以加入。根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点。因为数据和微簇之间的计算是微簇独立和数据独立的,因此,可以考虑模型并行或数据并行。此阶段,本发明考虑网络传输量、计算时延和并行化程度对并行化造成的影响,来选择最合适的并行化方案。
网络传输量方面,由于数据量远大于计算节点数以及模型大小,模型并行需要将全部数据传输到每个节点,而数据并行只需要将数据传输一次;此外,模型并行的方式需要对中间计算结果进行聚合,因此,数据并行的网络传输量最小。计算时延方面,两种并行化策略在计算距离时的计算时延相同,但模型并行方式还需要对各个计算节点的结果进行聚合,产生了额外的计算时延。并行化程度方面,数据并行方式的并行化程度取决于数据量大小;模型并行方式的并行化程度取决于为微簇个数的多少。由于微簇个数可变范围较小,而基于微批式的计算模型可以保证改变计算窗口大小,调整每一批需要处理的数据量,因此,数据并行方式的并行化程度最高。
在比较了这两种并行方式在性能方面的表现之后,本发明选择最有效的数据并行方式来对此阶段进行并行化处理。数据并行还有一个优点就是,可以按照数据的时间顺序对数据进行处理,方便保持后续更新阶段的时序性。
(2)微簇集合的本地更新阶段
在寻找最近的微簇之后,接下来需要将若干条数据更新到离其最近的微簇里。具体来说,是将多条数据xi按照衰减方式合并成Δx,然后将Δx更新至该微簇里。因为数据增量更新在数据和微簇之间都是独立的,因此可以采用数据并行或模型并行。此阶段,本方案拟考虑数据更新的时序性问题,网络传输与计算时延问题。
时序性方面,模型并行方式将与当前微簇相关的数据收集起来,然后进行排序与更新操作,可以保证更新的时序性;数据并行方式不仅打破了数据之间的时序性,还需要设计合理的方法来将各部分结果进行合并。计算时延方面,两种并行方式均需要对数据进行排序并按序进行模型更新,但是数据并行需要额外的操作对中间的计算结果进行聚合,因此,模型并行的计算时延最小。网络传输量方面,模型并行只需要传输数据,而数据并行需要额外传输中间计算结果,因此,模型并行的网络传输量最小。
在比较了这两种并行方式在性能方面的表现之后,本发明选择最有效的模型并行方式来对此阶段进行并行化处理。
(3)微簇集合的全局更新阶段
在微簇集合的模型全局更新阶段,需要将更新过的微簇与全局微簇集合进行融合。由于微簇集合的模型全局更新阶段在三个阶段中需要最小的计算量,并且需要保持更新时序,所以本发明在单机环境下进行此阶段的计算。同时,考虑数据流特征和计算时延等问题,发明在本阶段考虑根据数据流特征的更新方案。
一种面向大规模流数据的分布式聚类方法及系统的评测如下:
本发明采用了三个广泛用于评估流式聚类算法的真实数据集,如表1所示,这些数据集具有不同的聚类分布和数据维度。数据以原始数据顺序流入系统。下面从聚类质量、吞吐率和扩展性三个方面介绍流式聚类算法评测方法及实验结果。
表1.三个数据集的特征
数据集 | 数据量 | 维度数 | 聚类个数 |
KDD-99 | 494021 | 34 | 23 |
CoverType | 581012 | 54 | 7 |
KDD-98 | 95412 | 315 | 5 |
(1)聚类质量
本发明使用CMM指标(参考文献:H.Kremer,P.Kranen,T.Jansen,T.Seidl,A.Bifet,G.Holmes,and B.Pfahringer.An effective evaluation measure forclustering on evolving data streams.In Proceedings of the 17th ACM SIGKDDInternational Conference on Knowledge Discovery and Data Mining(KDD),pages868–876,2011.)来评测流式聚类算法的聚类质量。CMM会衰减过时数据的权重,同时会对三种常见的错误聚类数据进行惩罚:遗失数据、放错数据、噪声数据。CMM会计算实际聚类结果与数据真实聚类的差异来量化这些错误聚类数据,然后将差异归一化为0到1之间的值,其中较大的值代表较高的聚类质量。
对于每个数据集,本发明以1000条数据/秒的速率对数据进行传输,为了与单机流式聚类算法实现进行公平比较,将基于本发明实现的时序性分布式流式聚类算法的并行度设置为1,将批处理间隔时间设置为10秒,然后在每一批数据结束时对模型进行离线聚类操作,然后再将结果用CMM值进行评测,本发明重复五次实验然后记录平均结果进行展示。
图4、图5、图6为CluStream算法在三个数据集上的聚类质量实验结果,可以看出基于时序化的微批式增量更新的CluStream算法与原有的CluStream算法在聚类质量上相差不大,平均差值为1.1%。但基于无序更新的CluStream算法在三个数据集上都呈现出较低的聚类质量,最多比单机和有序并行化实现要差60%。因此,通过本发明实现的面向流式聚类分析的分布式计算方法及系统,可以使其上的流式聚类算法保持良好的聚类质量。
(2)吞吐率
由于原始数据集较小,难以体现基于本发明实现的时序性分布式流式聚类算法在吞吐率上的优势,本发明通过多次读取同一原始数据集来形成更大的数据集,在原数据集的基础上命名为large-KDD99、large-CoverType、large-KDD98。根据数据维度不同,设定不同的数据流速。在large-KDD99、large-CoverType、large-KDD98三个数据集上分别设置数据流速为100,000条数据/秒,100,000条数据/秒和10,000条数据/秒,三个数据集设置相同的批处理间隔时间为10秒。重复五次实验然后记录平均结果进行展示。
图7为CluStream算法在三个数据集上的吞吐率实验结果,结果表明在单个计算节点,基于本发明实现的时序性分布式CluStream算法的吞吐率比基于无序更新的分布式CluStream算法提高30%。
(3)扩展性
与吞吐率实验类似,本发明在扩展性方面的实验也在三个较大的数据集上进行,同时采用了与吞吐率实验相同的数据流速和批处理间隔时间。此外,本发明改变分布式实现的并行度,具体值为1、2、4、8、16和32,记录每个并行度下的吞吐率,观察随着并行度的改变,吞吐率的具体变化情况。由于三个数据集的维度不同,吞吐率的绝对值也会有所差异,所以本发明将吞吐率转换为对并行度为1的吞吐率增长率进行展示。其中并行度为n的吞吐率增长率为并行度为n的吞吐率具体值除以并行度为1的吞吐率具体值,这样相当于将吞吐率值进行归一化,更加方便比较。同样地,重复五次实验然后记录平均结果进行展示。
图8为CluStream算法在三个数据集上的扩展性实验结果,可以看到随着并行度的增加,三个数据集的吞吐率增长率都能呈现亚线性增长趋势,具有良好的扩展性。
本发明通过提出一种时序性的微批式增量更新模式,克服了现有计算模式下,流式聚类算法不易进行并行化的难题;通过对计算模式解耦成三个保证数据按序更新的计算阶段,克服了现有并行化方案无法保证数据按序处理的难题;通过对各个阶段进行不同的并行化设计,克服了现有并行化方案无法兼顾聚类质量和计算吞吐率的问题。实验结果表明,本发明在保证聚类效果的情况下,降低算法的计算处理时延,提高了算法的并行化程度,能够处理大规模动态变化的流数据所需的低延时和高吞吐率的计算需求。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (4)
1.一种面向大规模流数据的分布式聚类方法,其特征在于,包括以下步骤:
步骤一:面向高流速动态变化的大规模流数据,构建时序化的微批式增量计算模型,解决了传统计算模型下流式聚类算法难以进行并行化的问题;典型的流式聚类算法维护一个微簇集合,算法根据接收得到的流数据对微簇集合进行更新;时序化的微批式增量计算模型将得到的流数据划分成不同批次,微批式增量计算模型根据一个批次内的数据对微簇集合进行更新,本批次数据处理完成后,微批式增量计算模型再处理下一个批次的数据;时序化的微批式增量计算模型将典型的流式聚类算法解耦成三个保证数据按序更新的计算阶段,解决了现有并行化方案无法保证数据按序处理的问题,具体解耦的三个计算阶段如下:
(1)寻找最近微簇的计算阶段:对于每条新到数据,此阶段计算其与所有微簇的距离,并选择最近的微簇检验是否可以加入,根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点;
(2)微簇集合的本地更新阶段:将每一条数据以数据增量的方式更新到第一阶段计算得到的对应的微簇中;
(3)微簇集合的全局更新阶段:将更新过的微簇与全局微簇集合进行融合;
其中每个阶段内的计算和更新过程由具体流式聚类算法的微簇集合表示、更新过程、衰老机制以及离群点处理过程决定;
步骤二:基于步骤一构建的时序化的微批式增量计算模型,采用基于多维划分的并行化方法对流式聚类算法的各个计算与更新阶段进行并行化,其中计算与更新阶段为步骤一中所述的寻找最近微簇的计算阶段、微簇集合的本地更新阶段与微簇集合的全局更新阶段,其中基于多维划分的并行化方法包括以下两种:
(1)数据并行方法:将每条数据分发到不同的计算节点上,每个计算节点保存全部的微簇集合,每条数据与全部的微簇集合进行计算更新;
(2)模型并行方法:将微簇集合分发到不同的计算节点上,每个计算节点保存部分微簇集合,每条数据找到最优的部分微簇再在该部分微簇集合上进行更新;
步骤三:将更新后的微簇集合中的每个微簇当做一个单独的数据点,进行典型迭代式聚类算法的计算,如KMeans、DBSCAN等,得到最终的聚类结果。
2.根据权利要求1所述的一种面向大规模流数据的分布式聚类方法,其特征在于:所述步骤一中,时序化的微批式增量计算模型的具体实现步骤如下:
(1)初始化阶段:根据用户设定的微簇个数m对初始数据集进行迭代计算,得到m个微簇{Q1,Q2,…,Qm-1,Qm},每个微簇Qi,1≤i≤m,由一个CF向量进行表示,CF向量为其中是属于这个微簇的数据的各维度之和,是属于这个微簇的数据的各维度的平方和,是属于这个微簇的数据的时间戳之和,n是属于这个微簇的数据的权重之和;
(2)寻找最近微簇的计算阶段:每条数据x与每个微簇Q的中心点O进行距离计算,其中微簇Q的中心点为距离计算公式为 其中Oi和xi分别代表O和x的第i维数据;
(3)微簇集合的本地更新阶段:找到离每条数据x最近的微簇Q,判断数据x与微簇Q之间的距离dis是否小于等于微簇Q的半径范围ε,其中半径范围公式为 若dis小于等于微簇Q的半径范围ε,则将数据x更新至微簇Q内,即是将数据x中各维数据更新到微簇Q的CF向量里,其中 n=decay*n+1;否则将数据x生成一个新的微簇Q′加入到微簇集合中,即生成一个新的CF向量来代表微簇Q,其中n=1,xi分别代表各个向量里的第i维数据,decay为用户设置的衰减参数;
(4)微簇集合的全局更新阶段:流式聚类算法的微簇个数是固定的m个,若微簇个数目前大于m,则需要对微簇个数进行限制,限制过程是首先删除现有微簇集合中最小的微簇Q,若微簇个数仍大于m,则一直合并两个距离最近的微簇成一个微簇,直到微簇个数等于m,其中距离计算公式为CF向量更新公式为n=decay*n+1。
3.根据权利要求1所述的一种面向大规模流数据的分布式聚类方法,其特征在于:所述步骤二中,采用基于多维划分的并行化方法对流式聚类算法的各个计算与更新阶段进行并行化过程如下:
(1)寻找最近微簇的计算阶段:对于每条新到数据,此阶段计算其与所有微簇的距离,并选择最近的微簇检查是否可以加入,根据距离以及微簇的边界条件,判断数据能否加入微簇;如果不能加入微簇,则数据会成为离群点;从网络传输量、计算时延和并行化程序三个方面对数据并行和模型并行两种方式进行比较,最终在此阶段采用数据并行的方式进行并行化实现;
(2)微簇集合的本地更新阶段:将每一条数据以数据增量的方式更新到对应的微簇中,从数据的时序性、计算时延、网络传输量和并行化程度四个方面对数据并行和模型并行两种方式进行比较,最终在此阶段采用模型并行的方式进行并行化实现;
(3)微簇集合的全局更新阶段:在微簇集合的全局更新阶段,需要将更新过的微簇与全局微簇集合进行融合,由于微簇集合的模型全局更新阶段在三个阶段中需要最小的计算量,并且需要保持更新顺序,所以此阶段在单机环境下顺序进行。
4.一种基于权利要求1-3任意之一所述的面向大规模流数据的分布式聚类方法实现的聚类系统,包括:接入层,应用层,计算层和存储层;
接入层:将数据以数据流的形式接入应用层,其中数据流可以是网络流或实时数据流;数据流分发到不同的节点上,节点通过拉拽的方式将数据接入;
应用层:本层提供四个接口,分别是模型表示、更新过程、衰老机制以及离群点处理过程;用户组合上述这些接口实现具体的流式聚类算法,为业务场景定制解决方案;应用层面向算法开发人员,开发人员不需要考虑算法具体的分布式实现,只需要按照给定的接口实现模型表示、更新过程、衰老机制以及离群点处理过程的计算逻辑;应用层完成构建时序化的微批式增量计算模型和微簇集合的具体实现步骤;
计算层:各个计算节点接收接入层传递过来的流数据,并且根据应用层中具体的流式聚类算法的计算与更新过程,执行相应的处理过程,其中计算层在每批数据结束之后需要将各个计算节点的结果进行合并操作,然后将增量数据更新至微簇集合里,最后再将微簇集合进行反馈;计算层将基于多维划分的并行化方法对流式聚类算法及具体要求实现过程进行并行化实现;
存储层:该层采用分布式存储架构,负责微簇集合状态的存储;微簇集合分散到各个存储节点上进行存储和备份,同时还提供了持久化接口,也将这些微簇集合备份到永久性介质上,进一步提高可靠性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795304.4A CN110543588A (zh) | 2019-08-27 | 2019-08-27 | 一种面向大规模流数据的分布式聚类方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910795304.4A CN110543588A (zh) | 2019-08-27 | 2019-08-27 | 一种面向大规模流数据的分布式聚类方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110543588A true CN110543588A (zh) | 2019-12-06 |
Family
ID=68712086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910795304.4A Pending CN110543588A (zh) | 2019-08-27 | 2019-08-27 | 一种面向大规模流数据的分布式聚类方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543588A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800629A (zh) * | 2021-03-02 | 2021-05-14 | 王希敏 | 多数据流驱动的信号处理系统确定时序计算方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993005478A1 (en) * | 1991-08-28 | 1993-03-18 | Becton, Dickinson & Company | Gravitational attractor engine for adaptively autoclustering n-dimensional data streams |
US6760765B1 (en) * | 1999-11-09 | 2004-07-06 | Matsushita Electric Industrial Co., Ltd. | Cluster server apparatus |
KR20090044149A (ko) * | 2007-10-31 | 2009-05-07 | 연세대학교 산학협력단 | 지속적으로 발생되는 데이터 객체들로 구성되는 비한정적데이터 집합인 데이터 스트림으로부터 클러스터를 찾는방법 및 장치 |
CN102663141A (zh) * | 2012-05-17 | 2012-09-12 | 西安交通大学 | 一种基于多核并行的多路量化分级聚类方法 |
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
CN104503844A (zh) * | 2014-12-29 | 2015-04-08 | 中国科学院深圳先进技术研究院 | 一种基于多阶段特征的MapReduce作业细粒度分类方法 |
CN104537279A (zh) * | 2014-12-22 | 2015-04-22 | 中国科学院深圳先进技术研究院 | 一种序列聚类方法及装置 |
CN106203507A (zh) * | 2016-07-11 | 2016-12-07 | 上海凌科智能科技有限公司 | 一种基于分布式计算平台改进的k均值聚类方法 |
CN110047016A (zh) * | 2019-04-25 | 2019-07-23 | 国网浙江省电力有限公司 | 一种基于Spark Streaming的流式大规模电力数据分析方法 |
-
2019
- 2019-08-27 CN CN201910795304.4A patent/CN110543588A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993005478A1 (en) * | 1991-08-28 | 1993-03-18 | Becton, Dickinson & Company | Gravitational attractor engine for adaptively autoclustering n-dimensional data streams |
US6760765B1 (en) * | 1999-11-09 | 2004-07-06 | Matsushita Electric Industrial Co., Ltd. | Cluster server apparatus |
KR20090044149A (ko) * | 2007-10-31 | 2009-05-07 | 연세대학교 산학협력단 | 지속적으로 발생되는 데이터 객체들로 구성되는 비한정적데이터 집합인 데이터 스트림으로부터 클러스터를 찾는방법 및 장치 |
CN102663141A (zh) * | 2012-05-17 | 2012-09-12 | 西安交通大学 | 一种基于多核并行的多路量化分级聚类方法 |
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
CN104537279A (zh) * | 2014-12-22 | 2015-04-22 | 中国科学院深圳先进技术研究院 | 一种序列聚类方法及装置 |
CN104503844A (zh) * | 2014-12-29 | 2015-04-08 | 中国科学院深圳先进技术研究院 | 一种基于多阶段特征的MapReduce作业细粒度分类方法 |
CN106203507A (zh) * | 2016-07-11 | 2016-12-07 | 上海凌科智能科技有限公司 | 一种基于分布式计算平台改进的k均值聚类方法 |
CN110047016A (zh) * | 2019-04-25 | 2019-07-23 | 国网浙江省电力有限公司 | 一种基于Spark Streaming的流式大规模电力数据分析方法 |
Non-Patent Citations (3)
Title |
---|
CHARU C.AGGARWAL等: "A Framework for clustering evolving data streams", 《VLDB》 * |
张玉侠: "基于 Spark Streaming 的流聚类算法 StreamCKS 的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
熊俊杰: "分布式流处理关键技术研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800629A (zh) * | 2021-03-02 | 2021-05-14 | 王希敏 | 多数据流驱动的信号处理系统确定时序计算方法 |
CN112800629B (zh) * | 2021-03-02 | 2024-02-27 | 王希敏 | 多数据流驱动的信号处理系统确定时序计算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945240B (zh) | 一种支持分布式计算的关联规则挖掘算法实现方法及装置 | |
US20030208284A1 (en) | Modular architecture for optimizing a configuration of a computer system | |
US7353218B2 (en) | Methods and apparatus for clustering evolving data streams through online and offline components | |
Gao et al. | An improved clonal selection algorithm and its application to traveling salesman problems | |
US11854022B2 (en) | Proactively predicting transaction dates based on sparse transaction data | |
CN104268260A (zh) | 一种流数据的分类方法及其装置和系统 | |
J. Toal et al. | Performance of an ensemble of ordinary, universal, non-stationary and limit Kriging predictors | |
Ryu et al. | Occupancy‐based utility pattern mining in dynamic environments of intelligent systems | |
CN110543588A (zh) | 一种面向大规模流数据的分布式聚类方法及系统 | |
JP2013105215A (ja) | レコメンド情報生成装置、レコメンド情報生成方法及びレコメンド情報生成プログラム | |
US11157267B1 (en) | Evaluation of dynamic relationships between application components | |
US20210241171A1 (en) | Machine learning feature engineering | |
WO2015102514A1 (en) | Systems and methods for providing music recommendations | |
da Cunha et al. | Evolutionary and immune algorithms applied to association rule mining in static and stream data | |
US20150134307A1 (en) | Creating understandable models for numerous modeling tasks | |
CN109919219A (zh) | 一种基于粒计算ML-kNN的Xgboost多视角画像构建方法 | |
Bae et al. | Label propagation-based parallel graph partitioning for large-scale graph data | |
CN115544719A (zh) | 一种基于张量的流式计算系统一致性综合优化方法 | |
Cheng et al. | Globally optimal selection of web composite services based on univariate marginal distribution algorithm | |
CN111107493B (zh) | 一种移动用户位置预测方法与系统 | |
Vats et al. | A junction tree framework for undirected graphical model selection | |
Kim et al. | Efficient method for mining high utility occupancy patterns based on indexed list structure | |
Han et al. | An efficient algorithm for mining closed high utility itemsets over data streams with one dataset scan | |
Boratto et al. | Exploring the ratings prediction task in a group recommender system that automatically detects groups | |
Zhao et al. | Combining influence and sensitivity to factorize matrix for multi-context recommendation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191206 |