CN108319728A - 一种基于k-star的频繁社区搜索方法及系统 - Google Patents
一种基于k-star的频繁社区搜索方法及系统 Download PDFInfo
- Publication number
- CN108319728A CN108319728A CN201810211798.2A CN201810211798A CN108319728A CN 108319728 A CN108319728 A CN 108319728A CN 201810211798 A CN201810211798 A CN 201810211798A CN 108319728 A CN108319728 A CN 108319728A
- Authority
- CN
- China
- Prior art keywords
- node
- temporal diagram
- undirected
- frequent
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000002123 temporal effect Effects 0.000 claims abstract description 147
- 238000010586 diagram Methods 0.000 claims abstract description 142
- 238000013138 pruning Methods 0.000 claims abstract description 22
- 230000009467 reduction Effects 0.000 claims description 28
- 238000012217 deletion Methods 0.000 claims description 13
- 230000037430 deletion Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 10
- 239000000203 mixture Substances 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 13
- 238000000354 decomposition reaction Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000002203 pretreatment Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000006916 protein interaction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据分析技术领域,提供了一种基于k‑star的频繁社区搜索方法,包括:对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。本发明实施例能够在时态图节点数目比较大时,对时态图进行压缩,减少计算时间,算法效率高,而且可以正确地挖掘出频繁社区结构。
Description
技术领域
本发明属于数据分析领域,尤其涉及一种基于k-star的频繁社区搜索方法及系统。
背景技术
现实中的许多网络,比如社交网络、通信网络、协作网络都包含了社区结构。网络是复杂系统的抽象,现实中的很多复杂系统都可以用网络的相关特性进行描述和分析。深入挖掘这些网络信息具有重要的意义。社区发现(Community Discovery)是一个复杂而有意义的过程,它对研究网络的特性具有重要作用。近几年,发现及分析网络中的社区结构得到了许多学者的关注,同时也出现了很多社区发现算法。但是绝大多数的社区发现算法研究并没有将时间信息考虑在内。由于没有包含时间信息,因此就无法发现时态网络中一些重要的时态模式,例如频繁社区,持久性社区等社区结构。
在一些网络的分析应用中,例如交流网络,科学家论文协作网络和社交网络中,它们的边会包含时间信息,在进行社区发现的研究时将各条边的时间信息考虑进去,我们把这样的图数据称之为时态图。比如在手机通信网络中,每次手机的呼叫都包含一个发送方和接收方,并且也包含有通话时间的信息。在面对面的沟通网络中,每条边(u,v,t)代表两个个体u和v在时间点t有沟通。另外一个例子是科学家论文协作网络,每条边都包含两位作者共同发表论文的时间。但是,大多数之前的社区搜索算法都忽略了图里面所包含的时间信息,因此可能无法发现一些十分重要的时态模式譬如频繁社区和进化社区结构。给定一个无向的时态图G=(V,E,T),要求找出G中的在给定长度时间段θ内频繁出现的社区,即寻找频繁社区。
在现有技术中,并没有有效的算法可以解决频繁社区搜索这一问题,尤其是大型时态图中,传统的数据挖掘算法无法高效完成挖掘任务。并且传统的社区发现算法,只是单纯的考虑节点之间的关系,并没有将时间信息考虑在内,所挖掘的社区并没有有关时间方面的信息。
在现有技术中,存在当时态图节点数目比较大的时候,算法效率低的、无法正确的挖掘出频繁社区结构的问题。
发明内容
本发明所要解决的技术问题在于提供一种基于k-star的频繁社区搜索方法及系统,旨在解决现有技术中,当时态图节点数目比较大的时候,算法效率低的、无法正确的挖掘出频繁社区结构的问题。
本发明是这样实现的,一种基于k-star的频繁社区搜索方法,包括:
对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
本发明还提供了一种基于k-star的频繁社区搜索系统,包括:
预处理单元,用于对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
剪枝单元,用于对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
计算单元,用于采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
本发明与现有技术相比,有益效果在于:本发明实施例通过对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图,对该缩小无向时态图进行剪枝处理,得到缩小时态图,采用GenMax算法对该缩小时态图进行计算,得到频繁社区。本发明实施例对无向时态图进行预处理,使得无向时态图的大小得到了缩减,为了进一步提升频繁社区搜索方法的效率,又进一步利用了强邻居算法和虚度算法对缩减后得到的缩小无向时态图进行了进一步的剪枝操作,使得时态图能够进一步缩小,最后使用GenMax算法计算出最终的频繁社区,本发明实施例能够在时态图节点数目比较大时,对时态图进行压缩,减少计算时间,算法效率高,而且可以正确地挖掘出频繁社区结构。
附图说明
图1是本发明实施例提供的一种基于k-star的频繁社区搜索方法的流程图;
图2是本发明实施例提供的一种基于k-star的频繁社区搜索方法的详细流程图;
图3是本发明实施例提供的一种基于k-star的频繁社区搜索系统的结构示意图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的一种基于k-star的频繁社区搜索方法,包括:
S101,对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
S102,对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
S103,采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
具体地,如图2所示,本发明实施例采用了三种行之有效的算法进行频繁社区的所搜,首先利用时态图缩减算法TGR,来对原始的时态图进行缩小,然后采用包括强邻居算法和虚度算法的剪枝算法,对缩减后的时态图来做进一步的处理。具体步骤如下:
S201,计算输入的无向时态图G中所有节点的元区间meta-interval;
S202,对于每个节点判断其是否可以构成弱核weak-core;
S203,根据弱核weak-core性质来对无向时态图G进行迭代删点;
S204,利用强邻居算法对步骤S203得到的时态图进行剪枝;
S205,利用虚度算法对步骤S204得到的时态图继续进行剪枝;
S206,调用GenMax算法对步骤S205得到的时态图挖掘频发社区。
其中,本发明实施例中,我们步骤S201至步骤S203称之为预处理步骤,也就是时态图缩减算法TGR算法的主要步骤,通过meta-interval技术来计算每个节点所在区间,以及节点的度。同时利用meta-interval所得到的信息,实现在删点过程中,其邻居节点的更新。在TGR算法中有着大量的节点删除和节点更新操作,因为邻居节点动态更新技术,极大地提高了算法的效率。在执行完TGR算法后,无向时态图的大小得到了缩减,为了进步一提升算法的效率,本发明实施例又进一步利用了强邻居算法和虚度算法进行了进一步的剪枝操作,使得无向时态图能够进一步缩小,最后使用GenMax算法计算出最终的频繁社区。
下面,对本发明实施例提供的技术方案进行进一步地阐述:
时态图缩减算法TGR预处理:
在频繁社区中的每个节点u必须满足至少在τ个长度为θ的区间内满足k-star的性质,τ个长度为实际使用中给定。由此可以推出,若节点u是频繁社区中的点,则u必然满足至少在τ个长度为θ的区间内du(u)>=k,k表示节点u的邻居个数。在本实施例中,把这样的性质称为频繁度frequent-degree,把由此性质的得出的诱导子图称为弱核weak-core子图。根据上述定义,在本实施例中可以安全删除该无向时态图中不符合frequent-degree(u)≥k的节点。
更进一步,删除不符合定义的节点会导致其邻居节点的度发生改变。因此,本实施例要从无向时态图中迭代地删除不符合frequent-degree(u)≥k的节点,直到所有的节点符合frequent-degree(u)≥k,得到的子图称之为weak-core子图。
在weak-core子图中,节点u的度在至少τ个θ的时间段内都不小于k,本实施例中可以安全的删除不符合weak-core性质的节点u,因为节点u不会存在频繁社区中。更进一步,在删除了无向时态图G中所以不符合weak-core定义的节点后,其邻居节点的度将会发生变化。因此,节点的删除过程必然会导致新的不符合weak-core定义的节点出现。因此,本实施例需要不断迭代地删除不需要的节点直到所有的节点都符合weak-core的定义。本实施例将此过程称之为时态图缩减算法TGR。
元区间分解Meta-interval decomposition:
在本实施例中,假设无向时态图G中的时态边是根据它的时间升序排列的。若不符合此假设,可以先对时态边进行排序,因为时态图中的时态边的时间戳都是整数,随后构建邻接表,预先对其时态边进行升序排序,以此来保证时态边的是按照时间的升序排列,方便后续的处理工作。
Nu(G)={[u,v1,t1],[u,v2,t2]...[u,vi,ti]}为节点u的邻居,需要注意的是并非所有的邻居都不一样,可能会存在重复的邻居。为了描述方便,本实施例中首先假设所有的邻居都是不一样,之后将展示如何将本实施例提供的算法扩展到存在重复邻居的情况。
对于每个节点,本实施例是把Nu(G)的整个时间区间分解为元区间Meta-interval的集合,然后利用这些Meta-interval计算并维护节点的度。下面给出Meta-interval的定义。
算法1:元区间分解Meta-interval decomposition(u,Nu,θ)
为了计算节点u的元区间meta-interval和与之相关的频繁度θ-frequentdegree,本实施例中定义时态边(u,v,t)的生命周期为[t,t+θ],因为边(u,v,t)在这个区间内贡献了一个度。
算法1阐述了元区间分解算法Meta-interval decomposition,包括:1、令Nu为节点u所有邻居节点;2、对Nu中的每个节点生成两个pairs,{ti,+1}和{ti+θ,-1};3、对生成的所有pairs进行排序;4、将时间戳相同的paris进行合并,合并后的pairs的第二项为相同pairs的累加结果;5、创建两个数组Du和MIu,分别用来记录前缀和与区间。算法1可以计算出所有的meta-interval和与之相关的θ-frequent degree。对于每一条时态边(u,vi,ti)来说,算法1产生{ti,+1}和{ti+θ,-1}两个pairs,表示边(u,vi)对于节点u的度在时间ti贡献的度为1,在时间ti+θ贡献的度为-1。本实施例中定义,每条时态边(u,vi,ti)的生命周期为[ti,ti+θ]。然后,算法1在第5行对所有的pairs按照他们的时间戳进行增序排序,若时态边是预先排序好的,还需要进行增序排序,增序排序的目的是为了使得时间戳相同的pairs,位于相邻的位置。令T’代表已排序的pairs。对于每个T’(i),第一项T(i)’.first为时间戳,第二项目T(i)’.second为整数1或-1。注意到T(i)的第一项并不一定不同。算法1过滤了T’那些重复的时间戳,把同一时间戳下T(i)’.second的和存入第二项中。经过这些处理之后,用数组T来保存结果,T的第一项都是不同的。随后算法1基于T的第二项来计算前缀和,并且创建两个数组Du和MIu分别用来记录前缀和与区间。通过以上的步骤可知前缀和与在时间点T(i).first的边条数相等。最后算法1返回数组Du和MIu。数组MIu中的区间由数组T的第一项构成,譬如节点v1,T’={(6,+1),(8,+1),(9,-1),(11,-1)},则前缀和数组Dv1={1,2,1}。MIv1={(6,8),(8,9),(9,11)}。令MIv4 (i)=(ts,te),则节点v1的元区间就为(ts-θ,te)。例如(5,9)就是一个元区间,它的的频繁度为2。
因为MIu的每段区间都是meta-interval,本实施例中把MIu数组称为meta-interval数组,把Du称为θ-frequent degree数组,因为Du(i)和u在meta-interval和MIu(i)的θ-frequent degree是相等的。
处理重复邻居:
上述算法1并未考虑存在重复邻居的问题,因此本发明实施例在实际处理过程中,需要处理重复邻居。进一步地,在存在重复邻居的情况下,本发明实施例对算法1的Meta-interval decomposition进行扩展,使它能够处理重复邻居的问题。首先,在Nu(G)中,任意两个重复邻居的时间间隔都不小于θ,可以将他们视为不同的邻居节点来计算meta-interval。
原因如下:(u,v,t1)和(u,v,t2)是两条时态边,v是u在Nu(G)的重复邻居。如果时间间隔t2–t1≥θ,则下一个重复邻居(v,t2)出现在(v,t1)消失之后,因此它并不会在θlength中重复贡献度。第二种情况是,有两条时态边(u,v,t1)和(u,v,t2),其中0<t2–t1<θ,(u,v,t1)和(u,v,t2)的生命周期分别为[t1,t1+θ]和[t1,t2+θ]。
很明显,若未进行重复邻居处理,根据算法1,边(u,v,t1)和(u,v,t2)将会在区间[t1,t2+θ]中贡献2个度给u,这是不正确的。为了解决这个问题,本实施例中修正(u,t,t1)的生命周期为[t1,t2],并且保持(u,v,t2)的生命周期不变。这个过程可以在线性时间内完成。经过这一步骤,可以利用算法1来计算u的meta-intrval。
邻居节点的动态更新:
对于每个节点u,当一条时态边被插入或删除时,可以根据算法1提供的meta-decomposition来更新度。令e=(u,vi,ti)表示时态边,它的时间周期是[ti,te]。根据meta-decomposition算法,必然存在l使得MIu(l)=(tsl,tel),tl=ti。如果tel<te,则会存在r使得MIu(r)=(tsr,ter)ter<te<ter。否则,令r=l。
根据上面的定义,时态边e=(u,vi,ti)出现在每个meta-interval中T={(tsl-θ),…,(tsr-θ,tr)}。很明显,对于节点u,插入或删除一条时态边e=(u,vi,ti)只会影响T中的度。
时态图缩减算法TGR算法:
根据上面的论述,可以实现时态图缩减算法TGR。TGR算法首先调用算法1来计算每个节点u的meta-interval,然后,根据算法1的结果来计算节点的度,把所有度不符合条件的点放入队列Q中。随后,TGR算法迭代地删除frequent degree小于k的节点。在每次迭代的过程中,TGR算法从队列Q中弹出一个节点,并遍历其时态邻居Nu(G)。对于每一条时态边e=(u,v,t)∈Nu(G),如果一个节点的frequent degree在更新后小于k,TGR算法就将其加入队列Q。当队列Q为空时TGR算法中止。当TGR算法中止后,所有图G中剩余的点的frequentdegree都不小于k。TGR算法的时间复杂度和空间复杂度分别为O(θm)和O(m)。
时态图缩减算法TGR的具体运算如下:
Input:G=(V,E),θ,k,andτ
Output:The reduced temoral graph C
其具体步骤包括:1、调用Meta-interval-Decompostion得到节点的frequent-degree;2、如果frequent-degree小于k,则放入Q;3、对Q中的每个节点u进行遍历;3、对节点u的邻居节点进行遍历,找出其所影响的meta-interval,并更新Du和MIu。
2.频繁社区搜索算法:
在部分述及的频繁社区搜索方法包括两个步骤,第一步调用时态图缩减算法TGR来使无向时态图减小。第二步在经过处理过后的无向时态图上,采用高效的剪枝算法来计算最大频繁社区。下面介绍三个在剪枝算法中会频繁用到的基本算法。
删除节点:下述算法展示了如何删除节点u。
删除节点算法:Algorithm:Remove-Node(v):
Input:G=(V,E),v
Output:del_set
邻接表转换为频繁2项集:GenMax算法展示了如何邻接表转换为频繁2项集。在本实施例中,无向时态图的数据是以邻接表的形式存储,为了能够计算同时出现的邻居。GenMax算法首先对无向时态图G中的节点u的邻居节点排序,这样做的目的是为了使相邻节点能够挨在一起,以便计算频繁2项集。节点u和它的邻居节点同时出现的时间点存放在集合T中。
本发明实施例提供的频繁社区搜索方法最后迭代地调用GenMax算法,一个k-star也就是一个频繁k+1项集,通过GenMax算法找出无法够频繁k+1项集的节点,将其放入集合Q。然后删除集合Q中的节点,继续GenMax算法迭代,直到无点可删,则GenMax算法结束,剩余节点所组成的点集就是频繁社区。
该GenMax算法的运算过程如下:
MFI-backtrack(Il,Cl,l)
有了上面介绍的三个算法,下面阐述具体的剪枝算法和频繁社区搜索算法。
在时态图中搜索频繁社区的基本思路是去判断无向时态图G中的每个节点是否符合k-star的定义,若不符合就将其删掉,与之相邻的节点也要做相应的更新。不停地迭代去删点,直到无点可删,即迭代结束。迭代结束后得到的子图就是频繁社区结构。频繁社区的搜索是一项十分耗时的运算,如果没有任何的剪枝,它所耗费的时间是十分可观的。因此为了加速频繁社区的搜索过程,同时也为了能够在大图上就行挖掘,本发明实施例提供了两种十分有效的剪枝算法,以此来减少时间的花费,提高算法效率。
强邻居算法:
本发明实施例提供的第一种剪枝算法为强邻居算法,即strong neighbour算法。对于节点u来说,其邻居节点s属于Nu(G),所谓强邻居是指节点u与节点s在至少τ个时间段内都是邻居节点。
由上述定义可知,节点u及其强邻居所构成的结构可以称为一个1-star,而在本实施例中需要的找到k-star。因此如果节点u及其邻居能构成一个k-star,则很明显,节点u首先要能够满足节点u存在k个1-star。若节点u不存在k个1-star,则必然不存在k-star。所以强邻居剪枝算法就是通过判断一个节点是否存在k个1-star,来实现剪枝的。因此强邻居算法的第一步需要先计算节点u的1-star,下面算法展示了计算strong neighbour的过程。
Input:G=(V,E)
Opuput:{frequent item}
在上述强邻居算法展示了如何计算1-star。步骤包括:1、对节点u的邻居节点Nu(G)按照时间戳进行排序,以使相同的节点处于相邻的位置;2、记录每条时态边出现的时间点,因为每条边的生命周期为[t,t+θ],这些时间点就在[t,t+θ]内。这些时间点表明时态边所出现的时间区间。通过所出现的时间区间就可以来计算频繁2项集;3、如果节点u与其邻居节点出现次数大于等于τ,则为1-star;4、若节点u与其邻居节点构成频繁边少于k条,则删除节点u。强邻居算法对G=(V,E)中的每个节点u进行分别处理,分别计算出每个节点u的邻居节点Nu(G)的1-star,然后对节点u的的邻居节点进行排序,使得相同节点相邻。每条时态边(u,v,t)的生命周期都为[t,t+θ],将这些时态边所出现的时间点插入到集合set中。这样得到一个pair用来存放时态边的出现时间点{E,t}。强邻居算法接着遍历这个pair,来计算节点u与其邻居节点组成的1-star,当1-star的数目大于等于k时,也就说有至少k个1-star,就标记flag(u)为true,否则就标记为false。下一步强邻居算法把不符合强邻居定义的节点放入集合Q,然后删除集合Q中的节点,同时更新其邻居节点。
虚度算法:
节点u的邻居节点以v1,v2,…,vn表示,若两个邻居节点同时出现的频率大于τ,则加上虚边。如果这些邻居节点构成图不是(k-1)-core,则删除节点u。
虚度算法的运算过程如下:
Algorithm:virtual degree
Input:G=(V,E,T)
Output:del_node
虚度算法的距离步骤包括:1、对节点u的邻居节点Nu(G)按照时间戳记性排序;2、记录每条时态边出现的时间点;3、若节点u与其邻居节点出现次数大于等于τ则为频繁边;4、若这些频繁边构成图不是(k-1)-core,则删除节点u。具体地,虚度算法首先计算出时态图G中每个节点u和它的邻居节点构成的频繁2项集,即F2={(u,v1),(u,v2),(u,v3),...(u,vi)}。下一步只需统计频繁2项集中边的条数,其中,频繁2项集F2={(u,v1),(u,v2),(u,v3),...(u,vi)},其中的{(u,v1),(u,v2)等,就是频繁边,如果|F2|<C(k,2),则说明节点u和它的频繁邻居无法构成一个k-core,因此节点u也就无法构成一个频繁社区,C(k,2)表示k个元素中任取两个的组合数。
下面具体介绍本发明实施例提供的算法所涉及的各定义及参数解释:
给定一个无向时态图G=(V,E),其中边集E表示个体V之间的二元关系。它可以表示人们之间的合作关系网,蛋白质互作网络,社交网络,电子邮件网络等。
定义1:(k-star)在无向时态图G=(V,E,T)中,节点满足在[ts,te](te–ts=θ)内至少k个相同的邻居。
定义2:((θ,τ)-k-star)在无向时态图G=(V,E,T)中,存在使得:
1、每个节点都是k-star;
2、最大性:不存在S的超集满足性质1。
定义3:(frequent-degree)在无向时态图G=(V,E,T),节点在至少在τ个长度为θ的区的度,称为frequent-degree。
定义4:(weak-core)在无向时态图G=(V,E,T),存在使得:
1、节点frequent-degree(u)≥k;
2.、最大性:不存在S的超集也满足性质1。
定义5:(Meta-interval)给定一个节点u和他的时态邻居Nu(G),一个开区间(ts,te)是u的一个Meta-interval当且仅当下面两个条件成立:
(1)te–ts>θ,并且;
(2)(ts,te)中的每个长度为θ的区间中有相同的度。
定义6:(θ-frequent degree)给定一个节点u和一个无向时态图G。节点u在区间[tl,tr]内的θ-frequent degree是指存在一个最大。
定义7:(strong neighbour)在无向时态图G=(V,E,T)中,如果存在S属于V使得u与其邻居节点v共同出现了τ次,则v是u的强邻居。K个强邻居即k个1-star。
定义8:(虚度)节点u的邻居节点v1……vn,若两个邻居节点同时出现的频率大于τ,则加上虚边。如果这些邻居节点构成图不是(k-1)-core,则删除点u。
本发明实施例还提供了如图3所示的一种基于k-star的频繁社区搜索系统,包括:
预处理单元301,用于对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
剪枝单元302,用于对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
计算单元303,用于采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
进一步地,预处理单元301具体用于:
对邻居节点集合中的每一邻居节点生成时间对,{ti,+1}和{ti+θ,-1},所述时间对表示边(u,vi)对于节点u的度在时间ti贡献的度为1,在时间ti+θ贡献的度为-1;
按照生成的所有时间对的时间戳对所述时间对进行增序排序,以T’表示增序排序后的时间对,在每个T’(i)中包括两个信息项,其中第一项为时间戳,第二项为整数1或-1;
将时间戳相同的时间对进行合并,合并后的时间对的第一项为时间戳,第二项为累加和;
将合并后的时间对保存到数组T中,其中数组T的第一项为时间戳,第二项为前缀和,数组Du用来记录根据数组T第二项所产生的前缀和,数组MIu用来记录区间(T(i).first,T(i+1).first);
若节点u在至少τ个长度为θ的区间内的du(u)≥k,则节点u构成弱核,若节点u在至少τ个长度为θ的区间内的du(u)<k,则节点u不构成弱核;
则所述若节点不可以构成弱核,则将节点删除,得到只包含满足频繁度的节点的缩小无向时态图包括:
若节点u不构成弱核,则将不构成弱核的节点从所述无向时态图中删除;
判断删除节点后的无向时态图中的节点是否均构成弱核,若不是,则迭代删除无向时态图中不符合弱核定义的节点,得到只包含满足频繁度的节点的缩小无向时态图;
将所述缩小无向时态图中节点u的邻居节点按照时间戳进行排序,以使相同节点相邻;
记录所述缩小无向时态图中每条时态边的时间点,将时态边出现的时间点保存到时间点集合中;
遍历所述时间点集合,判断节点u与其邻居节点出现次数是否大于等于τ,若大于,则记录1-star;
判断节点u与其邻居节点组成的1-star的数目是否小于k,若小于,则将节点u从所述缩小无向时态图中删除,得到包含k-star的初始缩小时态图;
对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序;
记录所述初始缩小时态图中每条时态边出现的时间点;
判断节点u与其邻居节点出现次数是否大于等于τ,若大于,则为频繁边;
计算所述初始缩小时态图中每个节点u与其邻居节点构成的频繁2项集F2,F2={(u,v1),(u,v2),(u,v3),…,(u,vi)},其中,v1,v2,…,vn分别表示节点u的邻居节点;
统计所述频繁2项集F2中边的条数,若|F2|<C(k,2),则将节点u从所述初始缩小时态图中删除,并迭代执行对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序的步骤,最终得到所述缩小时态图。
进一步地,所述缩小时态图中的数据以邻接表的形式进行存储,计算单元303具体用于:
通过GenMax算法找出所述缩小时态图中无法够频繁k+1项集的节点,将其放入集合Q中,然后删除集合Q中的节点,继续GenMax算法迭代,直到无点可删,则算法结束,剩余节点所组成的点集组成频繁社区。
本发明实施例还提供了一种终端,包括存储器、处理器及存储在存储器上且在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时,实现如图1所示的基于k-star的频繁社区搜索方法中的各个步骤。
本发明实施例中还提供一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如图1所示的基于k-star的频繁社区搜索方法中的各个步骤。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于k-star的频繁社区搜索方法,其特征在于,包括:
对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
2.如权利要求1所述的频繁社区搜索方法,其特征在于,所述对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图包括:
计算所述无向时态图中每个节点的元区间,根据每个节点的元区间计算每个节点对应的频繁度;
根据每个节点的频繁度判断所述节点是否可以构成弱核;
若节点不可以构成弱核,则将节点删除,得到只包含满足频繁度的节点的缩小无向时态图。
3.如权利要求2所述的频繁社区搜索方法,其特征在于,所述无向时态图以G=(V,E,T)表示,所述无向时态图中的节点以u表示,节点u的邻居节点集合以Nu表示,其中Nu(G)={[u,v1,t1],[u,v2,t2]…[u,vi,ti]}表示,所述无向时态图中的时态边以(u,v,t)表示,每一时态边的生命周期为[t,t+θ],所述计算所述无向时态图中每个节点的元区间,根据每个节点的元区间计算每个节点对应的频繁度包括:
对邻居节点集合中的每一邻居节点生成时间对,{ti,+1}和{ti+θ,-1},所述时间对表示边(u,vi)对于节点u的度在时间ti贡献的度为1,在时间ti+θ贡献的度为-1;
按照生成的所有时间对的时间戳对所述时间对进行增序排序,以T’表示增序排序后的时间对,在每个T’(i)中包括两个信息项,其中第一项为时间戳,第二项为整数1或-1;
将时间戳相同的时间对进行合并,合并后的时间对的第一项为时间戳,第二项为累加和;
将合并后的时间对保存到数组T中,其中数组T的第一项为时间戳,第二项为前缀和,数组Du用来记录根据数组T第二项所产生的前缀和,数组MIu用来记录区间(T(i).first,T(i+1).first)。
4.如权利要求3所述的频繁社区搜索方法,其特征在于,以(u,v,t1)和(u,v,t2)表示所述无向时态图中的两条时态边,(u,v,t1)和(u,v,t2)的生命周期分别为[t1,t1+θ]和[t1,t2+θ],若0<t2–t1<θ,则将(u,t,t1)的生命周期修改[t1,t2],并保持(u,v,t2)的生命周期不变。
5.如权利要求3所述的频繁社区搜索方法,其特征在于,以k表示节点u的邻居个数,所述根据每个节点的频繁度判断所述节点是否可以构成弱核具体包括:
若节点u在至少τ个长度为θ的区间内的du(u)≥k,则节点u构成弱核,若节点u在至少τ个长度为θ的区间内的du(u)<k,则节点u不构成弱核,τ表示次数;
则所述若节点不可以构成弱核,则将节点删除,得到只包含满足频繁度的节点的缩小无向时态图包括:
若节点u不构成弱核,则将不构成弱核的节点从所述无向时态图中删除;
判断删除节点后的无向时态图中的节点是否均构成弱核,若不是,则迭代删除无向时态图中不符合弱核定义的节点,得到只包含满足频繁度的节点的缩小无向时态图。
6.如权利要求1所述的频繁社区搜索方法,其特征在于,以u表示节点,以Nu(G)表示节点u的邻居节点的集合,所述对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图包括:
将所述缩小无向时态图中节点u的邻居节点按照时间戳进行排序,以使相同的节点处于相邻的位置;
记录所述缩小无向时态图中每条时态边的时间点,将时态边出现的时间点保存到时间点集合中;
遍历所述时间点集合,判断节点u与其邻居节点出现次数是否大于等于τ,若大于,则记录1-star;
判断节点u与其邻居节点组成的1-star的数目是否小于k,若小于,则将节点u从所述缩小无向时态图中删除,得到包含k-star的初始缩小时态图;
对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序;
记录所述初始缩小时态图中每条时态边出现的时间点;
判断节点u与其邻居节点同时出现次数是否大于等于τ,若大于,则节点u与其邻居节点构成的边为频繁边;
计算所述初始缩小时态图中每个节点u与其邻居节点构成的频繁2项集F2,F2={(u,v1),(u,v2),(u,v3),…,(u,vi)},其中,v1,v2,…,vn分别表示节点u的邻居节点;
统计所述频繁2项集F2中边的条数,若|F2|<C(k,2),则将节点u从所述初始缩小时态图中删除,并迭代执行对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序的步骤,最终得到所述缩小时态图,C(k,2)表示k个元素中任取两个的组合数。
7.如权利要求6所述的频繁社区搜索方法,其特征在于,所述缩小时态图中的数据以邻接表的形式进行存储,所述采用GenMax算法对所述缩小时态图进行计算,得到频繁社区包括:
通过GenMax算法找出所述缩小时态图中无法够频繁k+1项集的节点,将其放入集合Q中,然后删除集合Q中的节点,继续GenMax算法迭代,直到无点可删,则算法结束,剩余节点所组成的点集组成频繁社区。
8.一种基于k-star的频繁社区搜索系统,其特征在于,包括:
预处理单元,用于对无向时态图进行预处理,得到只包含满足频繁度的节点的缩小无向时态图;
剪枝单元,用于对所述缩小无向时态图进行包括强邻居算法和虚度算法的剪枝处理,得到缩小时态图;
计算单元,用于采用GenMax算法对所述缩小时态图进行计算,得到频繁社区。
9.如权利要求8所述的频繁社区搜索系统,其特征在于,所述预处理单元具体用于:
对邻居节点集合中的每一邻居节点生成时间对,{ti,+1}和{ti+θ,-1},所述时间对表示边(u,vi)对于节点u的度在时间ti贡献的度为1,在时间ti+θ贡献的度为-1;
按照生成的所有时间对的时间戳对所述时间对进行增序排序,以T’表示增序排序后的时间对,在每个T’(i)中包括两个信息项,其中第一项为时间戳,第二项为整数1或-1;
将时间戳相同的时间对进行合并,合并后的时间对第一项为时间戳,第二项为累加和;
将合并后的时间对保存到数组T中,其中数组T的第一项为时间戳,第二项为前缀和,数组Du用来记录根据数组T第二项所产生的前缀和,数组MIu用来记录区间(T(i).first,T(i+1).first);
若节点u在至少τ个长度为θ的区间内的du(u)≥k,则节点u构成弱核,若节点u在至少τ个长度为θ的区间内的du(u)<k,则节点u不构成弱核,τ表示次数;
则所述若节点不可以构成弱核,则将节点删除,得到只包含满足频繁度的节点的缩小无向时态图包括:
若节点u不构成弱核,则将不构成弱核的节点从所述无向时态图中删除;
判断删除节点后的无向时态图中的节点是否均构成弱核,若不是,则迭代删除无向时态图中不符合弱核定义的节点,得到只包含满足频繁度的节点的缩小无向时态图;
将所述缩小无向时态图中节点u的邻居节点按照时间戳进行排序,以使相同的节点处于相邻的位置;
记录所述缩小无向时态图中每条时态边的时间点,将时态边出现的时间点保存到时间点集合中;
遍历所述时间点集合,判断节点u与其邻居节点出现次数是否大于等于τ,若大于,则记录1-star;
判断节点u与其邻居节点组成的1-star的数目是否小于k,若小于,则将节点u从所述缩小无向时态图中删除,得到包含k-star的初始缩小时态图;
对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序;
记录所述初始缩小时态图中每条时态边出现的时间点;
判断节点u与其邻居节点同时出现次数是否大于等于τ,若大于,则节点u与其邻居节点构成的边为频繁边;
计算所述初始缩小时态图中每个节点u与其邻居节点构成的频繁2项集F2,F2={(u,v1),(u,v2),(u,v3),…,(u,vi)},其中,v1,v2,…,vn分别表示节点u的邻居节点;
统计所述频繁2项集F2中边的条数,若|F2|<C(k,2),则将节点u从所述初始缩小时态图中删除,并迭代执行对所述初始缩小时态图中的节点u的邻居节点按照时间戳进行排序的步骤,最终得到所述缩小时态图,C(k,2)表示k个元素中任取两个的组合数。
10.如权利要求9所述的频繁社区搜索系统,其特征在于,所述缩小时态图中的数据以邻接表的形式进行存储,所述计算单元具体用于:
通过GenMax算法找出所述缩小时态图中无法够频繁k+1项集的节点,将其放入集合Q中,然后删除集合Q中的节点,继续GenMax算法迭代,直到无点可删,则算法结束,剩余节点所组成的点集组成频繁社区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810211798.2A CN108319728A (zh) | 2018-03-15 | 2018-03-15 | 一种基于k-star的频繁社区搜索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810211798.2A CN108319728A (zh) | 2018-03-15 | 2018-03-15 | 一种基于k-star的频繁社区搜索方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108319728A true CN108319728A (zh) | 2018-07-24 |
Family
ID=62902567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810211798.2A Pending CN108319728A (zh) | 2018-03-15 | 2018-03-15 | 一种基于k-star的频繁社区搜索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108319728A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543077A (zh) * | 2018-10-16 | 2019-03-29 | 清华大学 | 社区搜索方法 |
CN110119462A (zh) * | 2019-04-03 | 2019-08-13 | 杭州中科先进技术研究院有限公司 | 一种属性网络的社区搜索方法 |
WO2022236760A1 (zh) * | 2021-05-13 | 2022-11-17 | 清华大学 | 基于时间跨度优化的短时社区搜索方法 |
-
2018
- 2018-03-15 CN CN201810211798.2A patent/CN108319728A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543077A (zh) * | 2018-10-16 | 2019-03-29 | 清华大学 | 社区搜索方法 |
CN109543077B (zh) * | 2018-10-16 | 2020-07-31 | 清华大学 | 社区搜索方法 |
CN110119462A (zh) * | 2019-04-03 | 2019-08-13 | 杭州中科先进技术研究院有限公司 | 一种属性网络的社区搜索方法 |
WO2022236760A1 (zh) * | 2021-05-13 | 2022-11-17 | 清华大学 | 基于时间跨度优化的短时社区搜索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ryang et al. | High utility pattern mining over data streams with sliding window technique | |
Fournier-Viger et al. | TKS: efficient mining of top-k sequential patterns | |
CN109190653B (zh) | 基于半监督密度聚类的恶意代码家族同源性分析方法 | |
Orlin et al. | A faster algorithm for the single source shortest path problem with few distinct positive lengths | |
Gent et al. | Generalised arc consistency for the alldifferent constraint: An empirical survey | |
Ou et al. | Fast and parallel mapping algorithms for irregular problems | |
US20130268595A1 (en) | Detecting communities in telecommunication networks | |
CN108319728A (zh) | 一种基于k-star的频繁社区搜索方法及系统 | |
CN106203494B (zh) | 一种基于内存计算的并行化聚类方法 | |
CN107391542A (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
CN110909173A (zh) | 一种基于标签传播的非重叠社区发现方法 | |
Ashraf et al. | WeFreS: weighted frequent subgraph mining in a single large graph | |
Leung et al. | Mining ‘following’patterns from big sparse social networks | |
Gao et al. | Space complexity of estimation of distribution algorithms | |
Kim et al. | Efficient approach for mining high-utility patterns on incremental databases with dynamic profits | |
CN117540223A (zh) | 基于ap算法的社交网络舆情传播转发链条挖掘方法及装置 | |
CN111899117A (zh) | 应用于社交网络的k边连通分量挖掘系统及挖掘方法 | |
CN110706743A (zh) | 一种平衡采样与图检索的蛋白质互作网络模体检测方法 | |
Lu et al. | Extending CDFR for overlapping community detection | |
CN114661927A (zh) | 一种基于社区检测的频繁子图挖掘方法 | |
Scholkemper et al. | Local, global and scale-dependent node roles | |
Kumar et al. | A review on community detection algorithms in social networks | |
Bhadoria et al. | Analysis on probabilistic and binary datasets through frequent itemset mining | |
Parikh et al. | Mining-guided state justification with partitioned navigation tracks | |
Saravanabhavan et al. | Utility Fp-Tree: An Efficient Approach for Mining of Weighted Utility Itemsets |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180724 |
|
WD01 | Invention patent application deemed withdrawn after publication |