CN104951505A - 一种基于图计算技术的大规模数据聚类方法 - Google Patents

一种基于图计算技术的大规模数据聚类方法 Download PDF

Info

Publication number
CN104951505A
CN104951505A CN201510260191.XA CN201510260191A CN104951505A CN 104951505 A CN104951505 A CN 104951505A CN 201510260191 A CN201510260191 A CN 201510260191A CN 104951505 A CN104951505 A CN 104951505A
Authority
CN
China
Prior art keywords
summit
value
bunch
cluster
label value
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
Application number
CN201510260191.XA
Other languages
English (en)
Inventor
周薇
马宏远
包秀国
程工
刘纬
刘春阳
王卿
韩冀中
庞琳
李雄
刘玮
贺敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
National Computer Network and Information Security Management Center
Original Assignee
Institute of Information Engineering of CAS
National Computer Network and Information Security Management Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS, National Computer Network and Information Security Management Center filed Critical Institute of Information Engineering of CAS
Priority to CN201510260191.XA priority Critical patent/CN104951505A/zh
Publication of CN104951505A publication Critical patent/CN104951505A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or 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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于图计算技术的大规模数据聚类方法。本方法为:1)从待处理图数据的所有顶点中选取N个顶点作为候选聚类中心;2)设置每一候选聚类中心的簇标签值,然后根据一加权无向图G将候选聚类中心合并,将属于同一聚类簇的候选聚类中心划分到同一集合中;3)候选聚类中心将包含自己当前簇标签值以及权重的消息传递给相邻顶点;收到消息的顶点根据簇标签值将本次迭代收到的所有消息分成不同的类别,然后生成新的消息并在下一迭代时传递给相邻顶点;4)迭代结束后,对于每一顶点,计算具有相同标签类型的边的权重之和,得到每一顶点最后的结果值;将具有相同结果值的顶点聚为一类。本发明节约了时间和存储开销。

Description

一种基于图计算技术的大规模数据聚类方法
技术领域
本发明涉及一种基于图计算技术的大规模数据聚类方法,属于软件技术领域。
背景技术
聚类技术是最重要的数据挖掘技术之一,获得了极大的关注,比如专利ZL 200910211714.6聚类方法和***;ZL 201110418812.4,一种面向SNP数据的聚类方法等技术,聚类技术根据特定标准来查找具有相似之处的对象。例如,在社区检测,话题追踪和意见领袖等社交网络应用中,根据用户的行为和兴趣爱好,利用聚类技术可以快速的发掘类似的群体。传统的聚类解决方案,如CLARANS,BIRCH和DESCAN是单机聚类算法,适合于小规模数据集,具有较低的可扩展性。
为了解决上述问题,学者提出了并行聚类算法。这些方法包括基于MapReduce的K-Means并行算法,基于Pregel的半聚类算法以及RankCompete等。
MapReduce是一个分布式编程模型,它使用迭代的方式执行聚类,采用本地文件***或者分布式文件***维护中间结果,这种方式会导致过度的存储开销,同时也影响执行性能。因此,基于MapReduce的K-Means并行聚类算法非常耗费时间。
为了提升性能,业界学者提出将大同步模型(Bulk Synchronization Model,BSP)应用到大规模聚类算法中。BSP模型采用消息传递来保存中间结果,减小了性能开销。例如,Pregel就是Google提出的基于BSP的图计算模型,基于Pregel及基于它的一种半聚类方案。
然而,基于BSP的聚类算法并不能彻底解决上述问题。在存储中间结果方面,它们仍然存在较高的内存开销。除此之外,它们还需要在顶点之间进行若干消息传输。如果一个顶点有繁重的工作负载,在指定的时间内无法完成需要的计算,消息传输可能会有延迟,从而极大的降低BSP模型的整体性能。此外,还有其他大规模聚类解决方案,如RankCompete,其仅被用于聚类web图片,其应用领域较为狭窄。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提出一种基于分布式图计算平台的聚类算法,相比于当前其它主流的解决方案而言,具有更小的时间和存储开销。
本发明采用一种基于分布式PageRank的算法来确定聚类中心。聚类中心代表社交网络中最重要的顶点,具有较高PageRank值的顶点将被视为聚类中心的候选顶点。该方法与那些随机选择聚类中心的传统方法相比,有更好的聚类效果。也可以使用其他方法来确定聚类中心,比如Canopy算法来获取聚类中心,或者由程序开发人员指定。
本发明在聚类中心的基础上,设计了一种高效的分布式聚类算法,它不仅占用较少的物理内存空间,也可以在短时间内完成。其主要思想是利用PageRank信息传递的优势实现快速收敛,可以非常快的扩散聚类中心的影响。本发明使用影响力来表示一个顶点对其它顶点的影响程度,一个聚类中心在比其它中心点更靠近某一顶点时,该聚类中心对这一顶点的影响力越大。
本发明的技术方案为:
一种基于图计算技术的大规模数据聚类方法,其步骤为:
1)从待处理图数据的所有顶点中选取N个顶点作为候选聚类中心,得到一候选聚类中心列表;
2)设置每一候选聚类中心的簇标签值,然后根据一加权无向图G将所述候选聚类中心进行合并,将属于同一聚类簇的候选聚类中心划分到同一集合中,将顶点聚为k类;其中,N大于k,同一集合中的候选聚类中心采用同一标签;
3)根据该加权无向图G,每个候选聚类中心将包含自己当前簇标签值以及权重的消息传递给相邻顶点;收到消息的顶点根据消息中的簇标签值将本次迭代收到的所有消息分成不同的类别,然后生成新的消息并在下一迭代过程中将其传递给相邻顶点;
4)迭代结束后,对于每一顶点,计算具有相同标签类型的边的权重之和,得到每一顶点最后的结果值;然后将图数据中具有相同结果值的顶点聚为一类。
进一步的,采用PageRank算法计算所有顶点的PageRank值;然后选取PageRank值最高的N个顶点作为所述聚类中心。
进一步的,N为k的10倍。
进一步的,所述步骤2)的具体步骤包括:
41)将所述候选聚类中心设置不同的簇标签值,且簇标签值有一定的间隔区间;
42)根据图G,每个顶点把自己的簇标签值发送给邻居顶点;
43)如果顶点a的簇标签值小于接收到的消息中的簇标签值,则顶点a更新自己的簇标签值为收到的消息中的簇标签值;
44)重复步骤42)、43)直到迭代结束,然后将具有相同簇标签值的候选聚类中心合并到同一集合中。
进一步的,计算所述结果值的方法为:其中,SUMa是顶点a具有同一标签类型e的所有边的权重之和,m是标签类型e的边数目,EDGEa为每条边的权重。
进一步的,所述迭代结束的条件为满足设定的迭代次数或簇标签值不再发生变化。
与现有技术相比,本发明的积极效果为:
本发明相比于当前其它主流的解决方案而言,更加适合处理大规模图数据,具有更小的时间和存储开销。
附图说明
图1为本发明的聚类算法流程图;
图2为两种算法的时间开销对比图;
图3为两种算法的模块化值对比图;
图4为内存开销对比图;
图5为顶点A计算它的标签示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明提供了一种基于图计算技术的分布式聚类算法,将同一聚类结果中的顶点确定为相似对象,如图1所示。
选择聚类中心
聚类算法使得同一簇中的顶点比在不同簇中的顶点具有更紧密的联系(相似度更大)。合理的选择聚类中心对准确的将顶点聚类成若干子集有很大的帮助。在本发明的方法中,首先使用标准的PageRank算法计算所有顶点的PageRank值。然后,降序排列所有的顶点的PageRank值。在此过程中,本发明算法并没有保存所有顶点信息,而是保存了处于最高PageRank值范围的小部分顶点信息,忽略其他顶点,这种方法大大降低了存储消耗。最后,从列表中选择足够数量的顶点将其作为聚类中心。需要注意的一点是,选择的顶点数一般要大于***实际需求的聚类中心数目,这样可以避免一些具有很高PageRank值的顶点已经被包含在同样的簇中导致的数据重叠问题。
本发明算法的输入包括一个加权无向图G,它的输出是10k个按照顶点PageRank值降序排序的列表,其中k是最终聚类的簇数目。
算法1选择聚类中心
步骤1初始化每个顶点的初值;
步骤2每个顶点把自己的初值发送给邻居顶点;
步骤3每个顶点收到信息后,累加其收到的所有信息
步骤4按照一定权重更新该顶点的值,如a×顶点的值+b×累加值(其中a+b=1),然后得到更新后的顶点值;
步骤4顶点把自己更新的值再发送给邻居顶点;
步骤5重复步骤3一直到达到迭代次数或者顶点的值不再发生变化;
步骤6排序每个顶点最后的PageRank值;
步骤7选取10k个排序最高的PageRank值作为初步候选聚类中心。
算法1选择聚类中心
上述算法生成的候选聚类中心列表将被应用于下一步的聚类簇扩展操作。
聚类过程
聚类中心确定后,本发明使用一种新的聚类算法来扩展每个聚类簇的范围,该算法可以迅速扩散聚类中心的影响,并快速收敛。
步骤1:合并同一聚类簇中的多个候选聚类中心。方法如下:最初,当为这些候选聚类中心生成簇标签时,加大标签之间的间隔。例如,有五个候选聚类中心A、B、C、D和E,分配给它们的标签分别为10、50、100、150和200。接下来,每个顶点生成包含此值的消息并向邻居顶点传递此消息。在这个过程中,对于每个顶点而言,收到的消息中最多的标签将被设置为新标签。当前它们自己的老标签将会成为下一次传递消息的值,这个迭代过程将一直持续直到标签不再发生改变。
算法2详细描述了在一个聚类簇中合并多个聚类中心的算法,输入是一个加权无向图G以及由算法1生成的排序中心列表,输出是属于同一聚类簇的聚类中心(顶点)集合。
算法2在同一个簇中合并簇中心
步骤1)将算法1获得的初步聚类中心设置不同的簇标签值,且簇标签值有一定的间隔区间,如聚类中心A的簇标签值为10,聚类中心B的簇标签值为20,依次类推;
步骤2)根据图G,每个顶点把自己的簇标签值发送给邻居顶点;
步骤3)如果本顶点的簇标签值小于接收到的消息中的簇标签值,那么就更新本顶点的簇标签值为收到的消息中的簇标签值;
步骤4)重复步骤2)、3)一直达到迭代次数。将具有相同簇标签值的候选聚类中心合并到同一集合中,同一个集合中的候选聚类中心采用同一标签。
步骤2:扩展聚类中心的范围。聚类中心可以通过其相邻顶点的输出边扩散它的影响,因此,通过反复迭代让聚类中心能够影响到越来越多的顶点。操作如下:
首先,根据图G,每个中心将包含自己当前簇标签值以及权重的消息传递给相邻顶点。例如,假设中心A有两个邻居M和N,A通过它的输出边将它自己的影响以及标签信息传输出去。顶点M和N,相应地在下一轮迭代中传送它们的影响给自己的邻居。对于每一个顶点,每一次迭代接收到消息之后,它会根据消息包含的簇标签值将所有的消息分成不同的类别。然后,自己生成新的消息并在下一个迭代过程中将它们传递出去。这一过程将一直持续直到满足用户的需求(可以有两种结束方式,一种是用户指定了迭代多少次,一种是自动的方式,就是直到簇标签值不再发生变化)。最后,迭代结束后采用公式5计算具有相同标签类型的边的权重之和,得到的SUMa是顶点a最后的结果值。
SUM a = Σ i = 1 m EDGE a - - - ( 5 )
式中SUMa是具有同一标签类型e的所有边的权重之和。m是标签类型e的边数目,EDGEa为每条边的权重。
算法3生成聚类簇的过程
步骤1对于每个顶点,值相同的作为同一个簇,写到一个队列中;
步骤2输出每个聚类簇;
实例1聚类算法的性能
本实验在三个数据集上比较本发明提出的算法与半聚类算法的响应延迟,结果如图2所示。结果表明,本发明提出的算法性能显著优于半聚类算法。例如,对于拥有326186个顶点的数据集2而言,本发明算法的平均响应时间为230秒,而半聚类算法需要4286秒以上。本发明算法用不到半聚类算法5%的时间就可以得到结果。在数据集3中(862664顶点),只花了半聚类算法12%的时间。
为了测量聚类的准确度,本发明也比较了两种算法的模块度,如图3所示。在所有的情况下,本发明提出的算法比半聚类取得更好的性能。例如,对于具有69244个顶点的数据集1,本发明的算法的模块度是0.5638,而半聚类算法得到是0.4806,本发明的算法比半聚类算法高17.3%。在数据集3上,本发明算法的模块化值为0.7127,而半聚类算法只有0.6233,仍然比它高14.3%。
实例2聚类算法的内存开销
下面在内存消耗方面比较了本发明的算法和半聚类算法,结果如图4所示,本发明算法的内存消耗比半聚类算法小很多。对于69244个顶点的数据集,在程序执行若干秒后,半聚类算法的内存开销迅速增加。在第10秒时,内存开销达到5GB,并且不断的增长,在它释放所有内存之前,最高内存开销达到7GB。而本发明算法在12秒内只需要2GB左右内存的开销。在其它的数据集获得了类似的对比结果。
表1~3是使用上述算法计算出的PageRank值。顶点1比其它相邻顶点具有更高的PageRank值,因而被选作簇A的聚类中心,同理可知,顶点6,12被选为簇B和C的中心。
表1聚类簇A中PageRank的值
簇A 1 2 3 4 5
PR值 0.138 0.038 0.038 0.038 0.038
表2聚类簇B中PageRank的值
簇B 6 7 8 9 10 11
PR值 0.126 0.046 0.031 0.053 0.031 0.031
表3聚类簇C中的PageRank的值
簇C 12 13 14 15 16 17 18
PR值 0.165 0.033 0.033 0.033 0.054 0.033 0.033
在一个聚类簇中合并聚类中心(初始:顶点A:10顶点B:50顶点C:100顶点D:150顶点E:200;结果:顶点A:100顶点B:100顶点C:100顶点D:200顶点E:200)。
图5举例描述了步骤2的过程,在此图中,图数据有6个顶点。顶点A通过比较接收到消息的不同标签值计算它自己的标签,然后根据权重之和选择对应的标签。消息权重之和可以根据公式5计算得到,标签a生成之后,它将这个标签发送给它的邻居。

Claims (6)

1.一种基于图计算技术的大规模数据聚类方法,其步骤为:
1)从待处理图数据的所有顶点中选取N个顶点作为候选聚类中心,得到一候选聚类中心列表;
2)设置每一候选聚类中心的簇标签值,然后根据一加权无向图G将所述候选聚类中心进行合并,将属于同一聚类簇的候选聚类中心划分到同一集合中,将顶点聚为k类;其中,N大于k,同一集合中的候选聚类中心采用同一标签;
3)根据该加权无向图G,每个候选聚类中心将包含自己当前簇标签值以及权重的消息传递给相邻顶点;收到消息的顶点根据消息中的簇标签值将本次迭代收到的所有消息分成不同的类别,然后生成新的消息并在下一迭代过程中将其传递给相邻顶点;
4)迭代结束后,对于每一顶点,计算具有相同标签类型的边的权重之和,得到每一顶点最后的结果值;然后将图数据中具有相同结果值的顶点聚为一类。
2.如权利要求1所述的方法,其特征在于,采用PageRank算法计算所有顶点的PageRank值;然后选取PageRank值最高的N个顶点作为所述聚类中心。
3.如权利要求1或2所述的方法,其特征在于,N为k的10倍。
4.如权利要求1或2所述的方法,其特征在于,所述步骤2)的具体步骤包括:
41)将所述候选聚类中心设置不同的簇标签值,且簇标签值有一定的间隔区间;
42)根据图G,每个顶点把自己的簇标签值发送给邻居顶点;
43)如果顶点a的簇标签值小于接收到的消息中的簇标签值,则顶点a更新自己的簇标签值为收到的消息中的簇标签值;
44)重复步骤42)、43)直到迭代结束,然后将具有相同簇标签值的候选聚类中心合并到同一集合中。
5.如权利要求1所述的方法,其特征在于,计算所述结果值的方法为:其中,SUMa是顶点a具有同一标签类型e的所有边的权重之和,m是标签类型e的边数目,EDGEa为每条边的权重。
6.如权利要求1所述的方法,其特征在于,所述迭代结束的条件为满足设定的迭代次数或簇标签值不再发生变化。
CN201510260191.XA 2015-05-20 2015-05-20 一种基于图计算技术的大规模数据聚类方法 Pending CN104951505A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510260191.XA CN104951505A (zh) 2015-05-20 2015-05-20 一种基于图计算技术的大规模数据聚类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510260191.XA CN104951505A (zh) 2015-05-20 2015-05-20 一种基于图计算技术的大规模数据聚类方法

Publications (1)

Publication Number Publication Date
CN104951505A true CN104951505A (zh) 2015-09-30

Family

ID=54166163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510260191.XA Pending CN104951505A (zh) 2015-05-20 2015-05-20 一种基于图计算技术的大规模数据聚类方法

Country Status (1)

Country Link
CN (1) CN104951505A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808779A (zh) * 2016-03-30 2016-07-27 北京大学 基于剪枝的图漫游并行计算方法和应用
CN105893481A (zh) * 2016-03-29 2016-08-24 国家计算机网络与信息安全管理中心 一种基于马尔可夫聚类的实体间关系消解方法
CN108804226A (zh) * 2018-05-28 2018-11-13 中国人民解放军国防科技大学 一种用于分布式图计算的图分割划分方法
CN112800253A (zh) * 2021-04-09 2021-05-14 腾讯科技(深圳)有限公司 数据聚类方法、相关设备及存储介质
CN110287977B (zh) * 2018-03-19 2021-09-21 阿里巴巴(中国)有限公司 内容聚类方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893481A (zh) * 2016-03-29 2016-08-24 国家计算机网络与信息安全管理中心 一种基于马尔可夫聚类的实体间关系消解方法
CN105893481B (zh) * 2016-03-29 2019-01-29 国家计算机网络与信息安全管理中心 一种基于马尔可夫聚类的实体间关系消解方法
CN105808779A (zh) * 2016-03-30 2016-07-27 北京大学 基于剪枝的图漫游并行计算方法和应用
CN110287977B (zh) * 2018-03-19 2021-09-21 阿里巴巴(中国)有限公司 内容聚类方法及装置
CN108804226A (zh) * 2018-05-28 2018-11-13 中国人民解放军国防科技大学 一种用于分布式图计算的图分割划分方法
CN108804226B (zh) * 2018-05-28 2021-09-03 中国人民解放军国防科技大学 一种用于分布式图计算的图分割划分方法
CN112800253A (zh) * 2021-04-09 2021-05-14 腾讯科技(深圳)有限公司 数据聚类方法、相关设备及存储介质

Similar Documents

Publication Publication Date Title
US10152557B2 (en) Efficient similarity ranking for bipartite graphs
WO2019238109A1 (zh) 一种故障根因分析的方法及装置
CN104951505A (zh) 一种基于图计算技术的大规模数据聚类方法
Cai et al. Solving nonlinear water management models using a combined genetic algorithm and linear programming approach
CN107169628B (zh) 一种基于大数据互信息属性约简的配电网可靠性评估方法
CN102591915B (zh) 一种基于标签迁移学习的推荐方法
Candelieri et al. A graph based analysis of leak localization in urban water networks
CN105630800B (zh) 一种节点重要性排序的方法和***
CN103325061A (zh) 一种社区发现方法和***
Ghanbari et al. Solving bus terminal location problems using evolutionary algorithms
CN103116611A (zh) 社交网络意见领袖识别方法
CN105718943A (zh) 基于粒子群优化算法的特征选择方法
CN107276843B (zh) 一种基于Spark平台的多目标进化社区检测方法
De Sousa et al. Evaluating and comparing the igraph community detection algorithms
CN103399868A (zh) 一种外贸物流路径的优化方法
CN115358487A (zh) 面向电力数据共享的联邦学习聚合优化***及方法
CN104281664A (zh) 分布式图计算***数据切分方法和***
CN110838072A (zh) 一种基于社区发现的社交网络影响力最大化方法及***
CN107247753A (zh) 一种相似用户选取方法及装置
CN105139282A (zh) 一种电网指标数据处理方法、装置以及计算设备
CN103440275A (zh) 一种基于普利姆的k均值聚类方法
Guo et al. Budgeted coupon advertisement problem: Algorithm and robust analysis
CN112783747B (zh) 一种应用程序的执行时间预测方法及装置
CN105160357A (zh) 基于全局一致性和局部拓扑的多模态数据子空间聚类方法
CN110851282B (zh) 一种基于内存网格的分布式数据计算方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150930

RJ01 Rejection of invention patent application after publication