CN112818178B - 一种基于(k,p)-core的快速高效社群发现方法及系统 - Google Patents
一种基于(k,p)-core的快速高效社群发现方法及系统 Download PDFInfo
- Publication number
- CN112818178B CN112818178B CN201911042151.2A CN201911042151A CN112818178B CN 112818178 B CN112818178 B CN 112818178B CN 201911042151 A CN201911042151 A CN 201911042151A CN 112818178 B CN112818178 B CN 112818178B
- Authority
- CN
- China
- Prior art keywords
- core
- value
- graph
- points
- calculating
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 42
- 238000005065 mining Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 241000234282 Allium Species 0.000 description 3
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于(k,p)‑core的快速高效社群发现方法,挖掘新型密集子图模型(k,p)‑core,以进行社群挖掘和网络分解分析,包括以下步骤:步骤A:对网络和社群进行建模;具体包括:(a)用图结构表示网络,其中每个节点代表一个实体,每条边代表节点之间的连接关系;(b)将图中的(k,p)‑core定义为一个节点的集合,其中每个节点在这个集合中的邻点数至少有k个,且该点在这个集合中的邻点数占其总邻点数的比例大于等于p;步骤B:进行(k,p)‑core的分解;具体包括:对于k值从1到图的简并度,计算每一个节点的p值;步骤C:计算每一个k,p值对,并使用索引进行存储,便于查询。
Description
技术领域
本发明涉及图网络数据上的社群发掘技术领域,为一种基于(k,p)-core的快速高效社群发现方法及系统。
背景技术
图被广泛应用于对社交网络,万维网,协作网络,以及生物网络的建模。其中,有一类问题致力于寻找一些高度连接的点,被称为紧密子图的挖掘。这类问题对于图结构的分析有着重要的作用,同时,很多紧密子图的模型也被提出,最早被提出的模型是clique,也被称为完全图,它要求一个子图中的任意两个点之间都有一条边。因为clique的定义十分严格,所以一些其他的基于clique的模型也被提出,包括,n-cliques,k-plex,quasi-clique,n-club,n-clan。以上提到的这些模型的计算都是NP难的。
同时,k-core模型的提出吸引到了更多对紧密子图的挖掘的注意力,因为k-core模型有着优秀的结构属性,并且可以在线性时间内计算完成。下面给出k-core的定义,给定一个图,k-core被定义为这个图上的一个子图,且在这个子图中,每个点都要至少与k个其他的点相连接。k-core在许多实际问题中得到了广泛的应用,例如社区检测,网络聚类,网络拓扑分析,网络可视化和蛋白质网络的分析。K-core在图论界也是非常受欢迎的,它可以作为解决困难的问题的子问题,如n-cliques的计算。最近的研究表明,一个图中点的效用随时间的增加或减少主要基于的是它与社区中其他点的连接数,这使得k-core成为理解和解释用户参与度,用户合作过程和社交网络中的信息传播的强大工具。
在最近的社会科学著作中指出,用户的度越大,在这个网络中,他就需要更多的朋友/邻居采取某个行动,使他也能采取同样的行动。K-core模型分配一个统一阈值的k给图中的所有顶点,因此,这个模型并不能表明,一个度较大的顶点只有在其多数邻点成员的参加某个活动的情况下才加入这个活动。
发明内容
本发明的目的是为了解决现有技术的缺陷,提供了一种基于(k,p)-core的快速高效社群发现方法,挖掘新型密集子图模型(k,p)-core,以进行社群挖掘和网络分解分析,包括以下步骤:
步骤A:对网络和社群进行建模;具体包括:
(a)用图结构表示网络,其中每个节点代表一个实体,每条边代表节点之间的连接关系,;(b)将图中的(k,p)-core定义为一个节点的集合,其中每个节点在这个集合中的邻点数至少有k个,且他在这个集合中的邻点数占总邻点数的比例大于等于p。
步骤B:进行(k,p)-core的分解;具体包括:对于k值从1到图的简并度,计算每一个节点的p值。
具体做法为,首先对图中所有的点做k-core的分解,然后对k值从1到图的简并度,每次计算一个p的最小值,从图中删掉这个点把其p值设为当前计算的值,依次删除其他不满足k值和p值要求的点,再计算下一个最小p值。
步骤C:计算每一个k,p值对,并使用索引进行存储,便于查询;具体包括:
计算每一个k值以及其计算过程中产生的p值对,并对其中的点进行索引。
本发明提出的基于(k,p)-core的快速高效社群发现方法,在给定k和p时,设计了一个时间复杂度为O(|G|)的算法来计算(k,p)-core,其中|G|是图G中的顶点和边的数量。
本发明设计了一个时间复杂度为O(d|G|)的算法进行(k,p)-core分解,并支持对所有给定k和p的(k,p)-core查询,其中d是这个图的简并图。
本发明给定一系列基于实际数据集的实验证明方法的有效性和实用性。
本发明(k,p)-core的计算及分解方法的有益效果包括:提出了一个新的紧密集团的模型,并给出了其计算和分解的方法,对紧密子图的查询起到了一定作用。
附图说明
图1是本发明(k,p)-core示例图的工作示意图。
图2为本发明中算法的示意图。
图3为本发明中算法的示意图。
图4为本发明中索引示例图。
图5为本发明中kp索引示意图。
图6为本发明中算法的示意图。
图7为本发明中(k,p)-core和k-core大小比较示意图。
图8为本发明全局聚类值的协同系数示意图。
图9为本发明中图密度示意图。
图10为本发明中DBLP示例分析示意图。
图11为本发明中Gowalla的登录次数的示意图。
图12为本发明中所有数据集的分解时间示意图。
图13为本发明中(k,p)-core分解的可扩展性示意图。
图14为本发明所有数据集的(k,p)-core查询时间示意图。
图15为本发明数据集Orkut的计算时间示意图。
具体实施方式
结合以下具体实施例和附图,对发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
本发明中,图被定义为G=(V,E),其中V是图中的点集,E是图中的边集。n=|V|表示图中点的数量,m=|E|表示图中边的数量,并且假设n>m。N(u,G)表示u在图G中的邻点的数量。S表示G的一个子图,用deg(u,S)表示点u在S中的度。同时,如果上下文内容清晰,deg(u)即表示u在图G中的度。
定义1:k-core。给定一个图G,子图S是G的k-core,表示为Ck(G),如果(1)S满足度的约束,即对于S中的每一个点u,deg(u,S)≥k;(2)S是最大的,即任何S的超图都不是k-core。
定义2:分数约束。给定一个图G,和G的子图S,分数约束被定义为,u在S中的度除以u在G中的度,即frac(u)=d(u,S)/d(u,G)。
定义3:(k,p)-core。给定一个图G,如果子图S是G的(k,p)-core,表示为C{k,p}(G),则对于S中的每个顶点u,需要(1)满足度约束,即deg(u,S)\ge{k},(2)满足分数约束,即,frac(u)≥p。
实施例1
在图1中,本发明给出了一个有13个点的社交网络。整张图是一个1-core。并且可以发现{v4,v6,v7,v8,v9,v10,v11,v12,v13}是一个3-core。当给定不同的p值,0.5,0.6,本发明分别在图中用不同的线性圈出了这三个(k,p)-core。从图中可以看出,(3,)-core由点{v9,v10,v11,v12,v13}组成跟(3,0.5)-core和(3,0.6)-core相比,它的大小更小。
1)(k,p)-core的计算:
如图2所示,算法1描述了给定一个图G,k和p怎样计算(k,p)-core的算法。在第1行,首先对每一个点v计算一个阈值,这个阈值为k和中较大的那一个。在整个计算中,这个阈值是不会变化的。然后检查G上其他点的度。对于一个点,如果它的度不满足条件(第3行),则删掉这个点及与它相连的边(第4行)。本发明用一个队列来存储待删的点(第3行)。当一个点被删除时,它的所有邻点的度都减一,一旦一个点的度从t[v]减小到t[v]-1,就把v加入到待删队列Q中。同时对每个点都保存一个标志T用来区别这些点的状态:(1)在G中但不在队列Q中,(2)在G中也在队列Q中,和(3)不在G中。本发明不需要更新那些度已经小于阈值的点。
复杂度分析:在算法1中,点的删除和边的删除分别需要O(n)和O(m)时间。找到度小于阈值的点,需要O(n)时间。更新点的阈值需要O(m)时间。所以整个算法的时间复杂度为O(m)。
正确性分析:从算法1中,可以很直接的得出,每个在子图S中的点都满足度约束k和分数约束p;否则,此算法会继续删除不满足度约束k和分数约束p的点。如果返回的S不是最大的(k,p)-core,并且假设还有一个S的超图S'。那么就与算法1的第3行矛盾。因此,算法1可以正确的计算出图G的(k,p)-Core。
2)(k,p)-core的分解:
定理1:给定一个图G,如果k≥k’且p≥p’,则G的(k,p)-core是G的(k',p')-core的子图,即Ckp(G)=Ck′p′(G)。
证明:用S表示G的(k,p)-core,用S'表示G的(k',p')-core。因为k≥k′且p≥p′,所以对于S中的每一个点v,它在S中至少有 个邻点。假设,在S\S′有个非空的点集U$,U∪V(S′)的导出子图是一个更大的(k',p')-core,这与S'是(k',p')-core相悖。因此S是S'的子图。
定理1说明了在给定k和p时,(k,p)-core有层次结构。虽然输入k的范围从1到d(G),p的范围却是连续的,因此在实际给定k和p时,许多(k,p)-core是相同的。例如,图1中,(3,0.55)-core与(3,0.6)-core相同。在下面,给出p值的定义以方便进行(k,p)-core的分解。
定义3:p值。给定一个图G以及度约束k和分数约束p,如果这个小数p被称为一个点u的p值,记为pn(u,k,G),需满足(1)(k,p)-core包括u,(2)对于p'>p,(k,p')-core不包括u。当上下文清晰时,用pn(u,k)代表pn(u,k,G)。
给定一个图和一个输入k,根据定义,一个顶点的p值是唯一的。对于图中的每一个点,它都有若干对的k和p值,而p值是根据k值确定的。下面阐述(k,p)-core分解的算法。因为p值是变化的,因为根据不同的k进行(k,p)-core的分解,在分解过程中不断提高p值。
如图3所示,(k,p)-core分解算法:算法2给出了(k,p)-core的分解过程。这个分解过程是从k=1到k=d(G)进行的(第1行)。对于给定的k值,k-core中有很多不同的p值。根据定理2,(k,p)-core是k-core(p=0)的一个子图,k的最大值是d(G),d(G)就是使图G中k-core不为空的最大的值。给定k值的(k,p)-core分解可以基于G的k-core计算(第2行),因为一个不属于k-core的点不可能存在于给定的k值以及任意p值的(k,p)-core中。可以通过一次k-core的分解找到所有的k-core,这是远快于对于每个k都要计算k-core的。分数约束对于每个k-core中的点都是不同的。第4行,对于k-core中的每个点,找到最小的分数约束值。对于其余图S中的点,如果它的度约束不满足k或者分数约束不满足pmin(第5行),把这些点的p值记为pmin(第6行)并且从S中删除这个点与这个点相连的边(第7行)。与(k,p)-core的计算相似,用一个队列记录待删的点及其状态。当删除完所有的点,继续寻找下一个最小的分数约束值,然后重复以上删除的过程,直到S为空。最后返回对于每个k值的所有的p值。
例2:对于图1,当k=1时,根据算法2,pmin是1。所以G本身是一个(1,1)-core。
当k=2时,G的2-core是V(G)减去v_2和v_4的导出子图5。此时v_5是2-core中p值最小的点,为因此,k=2时v_5的p值是同时,删除v5会导致图上所有的点被删除,因此其他点在2-core的p值也是
当k=3时,用三个不同颜色的圈圈出了三个不同的(k,p)-core,根据(k,p)-core分解算法可以计算出此结果。
复杂度分析:对于给定的k进行k-core分解的时间复杂度为O(m),pmin的计算为O(n*p),其中p是不同k-core中的p值的数量。点的删除的时间复杂度为O(n),边的删除的时间复杂度为O(m)。更新的时间复杂度最多为O(m)。队列和标注更新的时间复杂度为O(n)。分解需要d(G)计算,因此,时间复杂度为O(dm),d=d(G)。
正确性分析:算法的正确性主要依据是对于不同的k计算了正确的p值。给定一个k-core,第一个p值的计算一定是正确的,因为每一个点在k-core中都满足(k,p1)-core的约束,其中,p=p1是能让(k,p)-core包括所有所有k-core中的点的最大值。当删除了所有的以p1作为他们p值的所有点后,第二个p值p2可以用相同的算法算出。不断递归调用这个算法,可以正确的计算出对于给定的k,所有点的p值。
3)(k,p)-core的索引:
在算法2中,计算了每个k-core里不同点的p值,因此可以建立一个索引,名为KP索引,对于每一个k,维护一个两层的结构lk(linek)第一层:PN,即在这个k-core中的不同的p值。2)第二层,VC,即此k-core中的点。对于一个给定的k,那些有相同p值的所有的点,PN中的p值只指向第一个点v,所有在v之后出现的点都有同样的p值除非它连接另一个p值。
KP索引的空间复杂度:证明了KP索引的空间复杂度是被O(m)约束的,m是图中边的数量。
引理1:KP索引的空间复杂度是被O(m)约束的。
证明:对于G中的一个点u,使core(u)代表点u的core值。可以很清楚的看到,u在KP索引中最多出现core(u)次。让t(u)代表u在KP索引中出现core(u)的次数,这个索引的大小是∑u∈V(G)t(u)≤∑u∈V(G)core(u)≤∑u∈V(G)deg(u)=|E(G)|。同时,这个索引的第二层的大小是被这个图中的边数约束的。考虑索引的第一层PN,PN的数量不可能超过第二层点的数量。所以整个KP索引的空间复杂度为O(m)。
4)(k,p)-core的查询:
如图6所示,使用KP索引,可以最优的查询给定k和p时的(k,p)-core。给出算法3进行(k,p)-core的查询。
定理2:给定一个图G和k,$p$值,QueryKP(算法3计算整个子图Ckp的时间复杂度是O|Ck,p|。
5)实验:
进行了大量的实验以评估提出的算法的有效性和效率。
数据集:在实验中使用了8个真实生活中的图。其中DBLP是下载于http://dblp.uni-trier.de/且其他数据下载于http://snap.stanford.edu。在DBLP}中,每一个作者对应一个点,如果两个作者至少合作过一篇论文,则他们之间有一条边。其他数据集本身就有边。
表格1给出了所有数据集的具体参数,并且按照边的数量进行排序。
表1实验数据集
数据集 | 点的数量 | 边的数量 | 平均度 | 最大度 |
4,039 | 88,234 | 43.69 | 1,045 | |
Brightkite | 58,228 | 214,078 | 7.35 | 1,134 |
Gowalla | 196,591 | 950,327 | 9.66 | 14,730 |
YouTube | 1,134,890 | 2,987,624 | 5.26 | 28,754 |
Pokec | 1,212,349 | 8,320,600 | 13.72 | 7,266 |
DBLP | 1,431,977 | 8,221,193 | 11.48 | 2,268 |
LiveJournal | 3,997,962 | 34,681,189 | 17.34 | 14,815 |
Orkut | 3,072,441 | 117,185,083 | 76.28 | 33,313 |
算法:从已知的工作来看,目前没有其他的工作涉及到(k,p)-core的计算问题,因此比较的(k,p)-core算法和k-core算法,因为k-core是一个十分相关且有很多工作涉及到的一个模型。评价以下5个算法:
kCore:目前最好的k-core计算算法。
kpCore:的(k,p)-core计算算法(算法1)。
coreDecomp:目前最好的k-core分解算法。
kpCoreDecomp:的(k,p)-core分解算法(算法2)。
QueryKP:从KP索引中查找(k,p)-core(算法3)。
所有的实验都是由C++代码实现的并且用GNU GCC 4.8.2和O3优化进行编译的。所有的实验都在有Intel Xeon 2.2GHz CPU和64GB主存的机器上进行。
参数:通过变化度的约束k和分数约束p来展开实验,其中k和p的默认值分别是10和0.6。
有效性评估:
本章中,首先比较(k,p)-core和k-core的大小。同时通过全局聚类值的协同系数和图密度来评价(k,p)-core和k-core。同时也给出了在DBLP上的案例研究。
(k,p)-core和k-core大小比较:在图7中,展示了在8个不同数据集上(k,p)-core和k-core的大小。可以清楚的看到,除了Facebook和Orkut,(10,0.6)-core的点集大小是远小于10-core的。(10,0.6)-core和10-core在Facebook和Orkut大小变化不大是因为他们的图密度非常高,所以大部分的点都有较大的分数约束值。
(k,p)-core和k-core性质比较:
图8说明在所有的数据集上(k,p)-core与k-core相比有明显的更高的全局聚类值的协同系数.
图9说明在大部分的数据集上(k,p)-core比k-core有更高的图密度。这个实验说明,考虑到(k,p)-core与k-core相似的计算复杂度,(k,p)-core是一个更加理想的模型。
DBLP示例分析:
图10(a)描述了(k,p)-core(k=15 and p=0.5)和k-core在DBLP-3中的连通分量,当且仅当两个作者合作至少3篇论文时,他们之间有一条边。因为整个(k,p)-core和k-core都很大,所以只展示了在DBLP-3的一个连通分量。K-core中的点被标记深灰色和浅灰色,(k,p)-core中的点被标记为深灰色。其中浅灰色的点是k-core中点的一跳邻居,这些点表明了k-core中的点和图上其他点的连通性。点的大小代表了他的分数约束值的大小,即就是它在k-core中的度除以它在整张图的度。可以看出,在有分数限制的条件下,(k,p)-core中的点和其他k-core中的点连通性不是非常强。
图10(b)(c)给出了两个在DBLP-10(至少要合作10篇论文才能有一条边)上k-core的连通分量。同样的,(k,p)-core的点被标记为深灰色,k-core的点被标记为深灰色和浅灰色。在图10(b),作者“Xiangfang Gu”有最小的分数约束,因此“Xiangfang Gu”的离开导致了其他7个作者的离开。
相似的,在图10(c),“Hans-PeterKriegel”的离开导致这个组里其他作者的离开,形成了这个(k,p)-core。
Gowalla示例分析:
图11中说明了在数据集Gowalla上(k,p)-core和k-core进行用户参与度分析上的有效性。数据集Gowalla是一个基于位置的社区数据,它记录了在2009年2月到2010年10月间朋友网络之间的友谊,以及每个用户登录的次数。认为,用户的参与度(活跃性)与他们的登录次数有关。比较了基于k-core分解,(k,p)-core分解和洋葱层(即退化顺序)的登录次数的比较。
图11(a)中,对于core分解中的每一个core值k,计算出了有相同core值的点的评价登录次数,以及计算出了对于有同各一个k值和p值的点的登录次数。对于k-core而言,X轴是k值,对于(k,p)-core而言,X轴是(k+p-0.5)。可以看出在k-core中,平均登录次数是不断在增长的,然而,像在(k,p)-core中找到的那样,有些很小k值的点却登录次数很多。同时也发现,那些活跃点度非常高的点通常都有一个较大的p值。(k,p)-core相比于k-core而言,是一个更细粒度的分解。
在图11(b)中,进一步比较了(k,p)-core和洋葱层分解。洋葱层分解并不能区别出那些有相同的k值的点的区别。
效率评估:
本章中,展示了k-core和(k,p)-core的计算和分解时间。
分解时间:
图12比较了coreDecomp和kpCoreDecomp在所有数据集上的分解时间。可以看出kpCoreDecomp比coreDecomp计算花了更多时间,因为它必须要做d(G)次分解。但是通常的(k,p)-core分解算法在小数据集上都可以在10s内完成,在有1亿边的数据集上也可以在1000s之内完成。
(k,p)-core分解的可扩展性:
为了测试算法的可扩展性,通过分别随机抽样20%到100%的点和边和抽取他们的导出子图做为测试的输入图。只展示了在数据集Orkut上的实验结果,因为其他数据集上的实验结果大致相同。
如图13所示,随着点和边的增多,k-core和(k,p)-core的分解都需要更多的时间。虽然(k,p)-core的分解比k-core的分解耗时更多,但是他们的趋势大致是相同的,所以(k,p)-core和k-core一样,有良好的可扩展性。
计算时间:
图14给出了给定默认值k和p,计算k-core和(k,p)-core的时间,分别为算法kCore,kpCoreandQueryKP。可以看出kpCore比kCore稍微慢点,主要是因为(k,p)-core需要删除k-core中的一部分点。这两个算法的效率几乎是差不多的,因为可以用一个结合的阈值去做(k,p)-core的计算,它和直接用度是一样高效的。QueryKP在其他两个算法上有显著的提高,基本比其他两个算法快10倍,因为它的输出时间是直接和输出图的大小有关的。
为了说明不同k和p效率,在图15中展示了改变k和p的情况下,(k,p)-core计算和k-core计算的时间。kCore和kpCore的计算时间随着k的增加略微增加,因为它们都需要移除更多的点。kpCore的变化更大因为它需要移除的点更多。QueryKP的运行时间最快,且k和p值的变化对其影响不大。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (3)
1.一种基于(k,p)-core的快速高效社群发现方法,其特征在于,挖掘新型密集子图模型(k,p)-core,以进行社群挖掘和网络分解分析,包括以下步骤:
步骤A:对网络和社群进行建模;具体包括:
(a)用图结构表示网络,其中每个节点代表一个实体,每条边代表节点之间的连接关系;
(b)将图中的(k,p)-core定义为一个节点的集合,其中每个节点在这个集合中的邻点数至少有k个,且在这个集合中的邻点数占其总邻点数的比例大于等于p;
步骤B:进行(k,p)-core的分解;具体包括:对于k值从1到图的简并度,计算每一个节点的p值;所述步骤B包括:首先对图中所有的点做k-core的分解,然后对k值从1到图的简并度,每次计算一个p的最小值,从图中删掉这个点,把其p值设为当前计算的值,依次删除其他不满足k值和p值要求的点,再计算下一个最小p值;
步骤C:计算每一个k,p值对,并使用索引进行存储,便于查询。
2.如权利要求1所述的基于(k,p)-core的快速高效社群发现方法,其特征在于,所述步骤C包括:计算每一个k值以及其计算过程中产生的p值对,并对其中的点进行索引。
3.一种基于(k,p)-core的快速高效社群发现系统,其特征在于,采用如权利要求1或2所述的基于(k,p)-core的快速高效社群发现方法,所述系统包括:
建模模块,其用于对网络和社群进行建模;
分解模块,其用于进行(k,p)-core的分解;具体包括:对于k值从1到图的简并度,计算每一个节点的p值;
存储模块,其用于计算每一个k,p值对,并使用索引进行存储,便于查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911042151.2A CN112818178B (zh) | 2019-10-30 | 2019-10-30 | 一种基于(k,p)-core的快速高效社群发现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911042151.2A CN112818178B (zh) | 2019-10-30 | 2019-10-30 | 一种基于(k,p)-core的快速高效社群发现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818178A CN112818178A (zh) | 2021-05-18 |
CN112818178B true CN112818178B (zh) | 2022-10-25 |
Family
ID=75851378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911042151.2A Active CN112818178B (zh) | 2019-10-30 | 2019-10-30 | 一种基于(k,p)-core的快速高效社群发现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818178B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462260A (zh) * | 2014-11-21 | 2015-03-25 | 深圳大学 | 一种基于k-核的社区搜索算法 |
CN106844500A (zh) * | 2016-12-26 | 2017-06-13 | 深圳大学 | 一种k‑core‑truss社区模型及分解、搜索算法 |
CN107909497A (zh) * | 2017-10-17 | 2018-04-13 | 重庆邮电大学 | 一种基于改进密度峰值的多粒度社区发现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7523117B2 (en) * | 2005-05-04 | 2009-04-21 | West Virginia University Research Corporation | Method for data clustering and classification by a graph theory model—network partition into high density subgraphs |
US20170344598A1 (en) * | 2016-05-27 | 2017-11-30 | International Business Machines Corporation | De-Duplication Optimized Platform for Object Grouping |
CN110119462B (zh) * | 2019-04-03 | 2021-07-23 | 杭州中科先进技术研究院有限公司 | 一种属性网络的社区搜索方法 |
-
2019
- 2019-10-30 CN CN201911042151.2A patent/CN112818178B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462260A (zh) * | 2014-11-21 | 2015-03-25 | 深圳大学 | 一种基于k-核的社区搜索算法 |
CN106844500A (zh) * | 2016-12-26 | 2017-06-13 | 深圳大学 | 一种k‑core‑truss社区模型及分解、搜索算法 |
CN107909497A (zh) * | 2017-10-17 | 2018-04-13 | 重庆邮电大学 | 一种基于改进密度峰值的多粒度社区发现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112818178A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lv et al. | An efficient and scalable density-based clustering algorithm for datasets with complex structures | |
Amini et al. | A study of density-grid based clustering algorithms on data streams | |
CN110532436A (zh) | 基于社区结构的跨社交网络用户身份识别方法 | |
CN107895038B (zh) | 一种链路预测关系推荐方法及装置 | |
CN102810113B (zh) | 一种针对复杂网络的混合型聚类方法 | |
CN110719106B (zh) | 一种基于节点分类排序的社交网络图压缩方法及系统 | |
CN107729767B (zh) | 基于图基元的社会网络数据隐私保护方法 | |
CN106203494B (zh) | 一种基于内存计算的并行化聚类方法 | |
CN110580251B (zh) | 一种大数据环境下的群体轨迹伴随模式在线分析方法和系统 | |
CN105978711B (zh) | 一种基于最小生成树的最佳交换边查找方法 | |
CN110909173A (zh) | 一种基于标签传播的非重叠社区发现方法 | |
CN106845536B (zh) | 一种基于图像缩放的并行聚类方法 | |
CN112800115A (zh) | 数据处理方法及数据处理装置 | |
Nguyen et al. | Automatic fuzzy clustering using non-dominated sorting particle swarm optimization algorithm for categorical data | |
Wu et al. | A maximal ordered ego-clique based approach for prevalent co-location pattern mining | |
CN115114484A (zh) | 异常事件检测方法、装置、计算机设备和存储介质 | |
CN112818178B (zh) | 一种基于(k,p)-core的快速高效社群发现方法及系统 | |
CN109033746B (zh) | 一种基于节点向量的蛋白质复合物识别方法 | |
CN109993338B (zh) | 一种链路预测方法及装置 | |
He et al. | Multi-objective spatially constrained clustering for regionalization with particle swarm optimization | |
WO2016107297A1 (zh) | MapReduce 平台上基于本地密度的聚类方法 | |
Zhang et al. | Evolutionary clustering with DBSCAN | |
Khediri et al. | Community detection in social network with node attributes based on formal concept analysis | |
Metzler et al. | Hyperbolae are no hyperbole: Modelling communities that are not cliques | |
CN112380267B (zh) | 一种基于隐私图的社区发现方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |