CN109978705A - 一种基于极大团枚举的社交网络中社团发现方法 - Google Patents
一种基于极大团枚举的社交网络中社团发现方法 Download PDFInfo
- Publication number
- CN109978705A CN109978705A CN201910142643.2A CN201910142643A CN109978705A CN 109978705 A CN109978705 A CN 109978705A CN 201910142643 A CN201910142643 A CN 201910142643A CN 109978705 A CN109978705 A CN 109978705A
- Authority
- CN
- China
- Prior art keywords
- user
- vertex
- maximum clique
- subgraph
- social network
- 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
- 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—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Abstract
本发明公开了一种基于极大团枚举的社交网络中社团发现方法,包括:S1.将社交网络关系抽象为社交网络图,极大团结果集初始化为空集;S2.采用core decomposition划分社交网络图,得到各顶点的邻接子图;S3.取出下一未处理的邻接子图,判断邻接子图是否达到稠密,若是,进入步骤S4,若否,进入步骤S5;S4.迭代删除邻接子图中度数最小的顶点,直至当前子图成为团,再回溯去搜索包含之前删除点的极大团,将得到的极大团并入极大团结果集中;S5.调用传统极大团枚举方法进行计算,将得到的极大团并入极大团结果集中;S6.重复步骤S3~S5,直至所有邻接子图处理完。本发明根据邻接子图远比网络整体稠密特点,通过删除不合格的用户来生成极大团,在大规模社交网络上得到高效的实现。
Description
技术领域
本发明属于大数据挖掘技术领域,更具体地,涉及一种基于极大团枚举(MaximalClique Enumeration)的社交网络中社团发现方法。
背景技术
随着互联网技术的发展,各式各样的虚拟社区逐渐成长,例如Facebook,微博,以及各个博客平台,虚拟社区成为了很多人重要的人际交往工具。一个虚拟社区可抽象成一个社交网络图,其中,用户是图中的顶点,用户之间的关系是顶点之间的边。用微博来举例,每一个微博用户可以抽象成图中的一个顶点,而微博用户之间的“关注”可以用图中的边来表示,这样整个微博用户群就可以用一个社交网络图来描绘。在社交网络中,社区发现是一个经典的应用问题,社区发现是指发觉社交网络中潜在的社团,一个社团是内部成员都有关系或者某种相似点的一个团体。团(Clique)是图中的一种子图结构,其所有顶点都互相相连。团可被认为是社交网络中的一种经典社团,一个团内的所有用户都互相有关系。极大团是不会被其他团所包含的团。极大团可被认为是社交网络中的一种稠密社团,因此对社交网络图枚举其所有极大团,可以发现其中暗含的各个社团,在社交网络的推荐、广告、用户画像等领域均有应用。
经典的Bron-Kerbosch算法(下文简称BK算法)公开一种极大团枚举的递归解法,使用三个集合R、P、X来维持递归搜索过程中的状态,R集合是目前找到的团,P集合是可以进一步加入R集合中使其变成极大团的用户集合,X集合则保存了之前已经被访问过的用户的集合,每次从P集合选取一个用户加入R集合进行递归搜索,当搜索结束后则可以将此点移入X集合当中。然而,该方法中包含了很多无效计算,在进行递归搜索时,即使是一个很小的社团,整个算法也需要很大的搜索空间。近些年,针对BK算法进行优化成为了对极大团枚举问题的研究热点,其中包括如下几个方面:1)Pivot Selection,通过在每次递归调用选取一个pivot,然后只在pivot的所有非邻居节点上进行下一步递归调用,可以保证剪除很多无效的枚举搜索分支,此优化方法和BK算法结合可得到BKpivot算法;2)图划分,因为整个社交网络的规模过大,因此首先通过图划分方法将整个网络分为多个子图,在各个子图上进行极大团枚举也是另一种可行的方案;3)David Eppstein提出首先对网络进行coredecomposition操作,然后在各个用户的邻接子图上进行极大团枚举。此方法有效地将社交网络分解为大小较为均匀的小子图处理,采用分治法有效地降低了实际计算的时空开销。
然而,core decomposition方法划分得到的子图非常稠密,导致极大团枚举速度不够快。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术core decomposition方法划分得到的稠密子图导致的极大团枚举速度不够快的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于极大团枚举的社交网络中社团发现方法,该方法包括以下步骤:
S1.将社交网络关系抽象为社交网络图,极大团结果集初始化为空集;
S2.采用core decomposition方法划分所述社交网络图,得到各个顶点的邻接子图;
S3.取出下一个未处理的邻接子图,判断该邻接子图是否达到稠密条件,若是,进入步骤S4,若否,进入步骤S5;
S4.迭代删除步骤S3选取的邻接子图中度数最小的顶点,直至当前子图成为一个团,再回溯去搜索包含之前删除点的极大团,将得到的极大团并入极大团结果集中,进入步骤S6;
S5.调用传统极大团枚举方法进行计算,将得到的极大团并入极大团结果集中,进入步骤S6;
S6.重复步骤S3~S5,直至所有邻接子图处理完,极大团结果集中所有极大团即为发现的社团。
具体地,所述社交网络关系包括:用户信息以及各个用户之间的关系,将用户抽象为社交网络图中的顶点,将用户之间的关系抽象为社交网络图中的边。
具体地,步骤S2具体包括以下子步骤:
步骤S21.初始化变量cnt=1;
步骤S22.从社交网络图当前包含的所有用户顶点中,找出度数最少的用户顶点v,给该用户顶点添加新属性orderid,其值为cnt,并将cnt值加1;
步骤S23.将该用户顶点v及所有与v相连的边从社交网络图中剔除,同时更新与v点所有相连用户顶点的度数;
步骤S24.重复步骤S22~S23,直至社交网络图中用户顶点集合为空集,进入步骤S25;
步骤S25.遍历原社交网络图中的所有用户顶点,根据用户顶点vi及其所有邻接顶点的orderid,构建用户顶点vi对应的邻接子图N(vi)。
具体地,步骤S25具体包括以下子步骤:
S251.得到用户顶点vi的邻接表Γ(vi)={u1,u2,…};
S252.根据vi和Γ(vi)中每个用户的orderid,将Γ(vi)分为Γ+(vi)={u|orderid(u)>orderid(vi)}、Γ-(vi)={u|orderid(u)<orderid(vi)}两个子集合;
S253.根据集合Γ+(vi)和Γ-(vi),构造用户vi的邻接子图N(vi),Γ(vi)为N(vi)的点集,E(vi)={(x,y)|(x∈Γ+(vi)ORy∈Γ+(vi))AND(x,y)∈E(G)}为邻接子图的边集,E(G)为原始社交网络图中的边集。
具体地,步骤S3具体包括以下子步骤:
步骤S31.取出下一个未处理的邻接子图,统计该邻接子图N(vi)的用户顶点数ni和边数mi;
步骤S32.计算该邻接子图的稠密度D(vi),计算公式如下:
步骤S33.比较D(vi)是否大于稠密度阈值若是,进入步骤S4,若否,进入步骤S5。
具体地,稠密度阈值取值范围为0.4~0.9。
具体地,步骤S4包括以下子步骤:
步骤S41.当前邻接子图为N(vi),结果用户集合R初始化为R={vi},备选用户集合P初始化为P=Γ+(vi),已访问用户集合X初始化为X=Γ-(vi),当前递归调用层数t初始化为1;
步骤S42.判断P∪X是否为空集,若为空集,R为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6;若不为空集,进入步骤S43;
步骤S43.检查P是否为团,若检查失败,进入步骤S44;否则,检查成功,进入步骤S45;
步骤S44.从P中选取相连用户数最小的用户u,产生新的集合R′=R∪{u},P′=P∩Γ(u),X′=X∩Γ(u),t加1,以R′、P′、X′为新的结果集、备选集和已访问集,从步骤S42进入t层递归调用极大团枚举,待t层递归调用结束后,t减1,P更新为P-{u},X更新为X∪{u},进入步骤S43;
步骤S45.判断P是否不为空集同时Γ(P)∩X为空集,Γ(P)为和P中所有点都相连的点集合,若是,R∪P为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6。
具体地,检查P为团的步骤如下:
(1)判断P集合用户顶点个数是否小于2,若是,则检查成功;否则,按照用户id选取第一个顶点,设为ui,初始化为用户ui在P集合中的相连用户数,进入步骤(2);
(2)遍历ui的相连用户列表Γ(ui),对于每个相连用户,判断其是否属于P集合,如果属于,则加1,进入步骤(3);
(3)当遍历结束后,判断是否等于P集合的大小,若是,从P集合中未被检查过的用户中,按照用户id选取下一个顶点,将其设为ui,且进入步骤(2),否则,检查失败。
具体地,传统极大团枚举方法为BK方法或者BKpivot方法。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的社交网络中社团发现方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明根据大多数社交网络上的邻接子图都远比网络整体稠密特点,通过删除不合格的用户来生成极大团,每次选取度数最小的点,并将其暂时删除出当前子图,迭代删除直至当前子图成为一个团,然后再回溯去搜索包含之前删除点的极大团,从而使得具有高时间复杂度的极大团枚举算法在大规模社交网络(超过100万用户)上得到高效的实现。本发明根据子图稠密度不同进行针对性算法选择的策略,从而保证极大团枚举在不同稠密度的社交网络上也有针对性的性能提升。
附图说明
图1为本发明实施例提供的一种基于极大团枚举的社交网络中社团发现方法流程图;
图2为本发明实施例提供的社交网络图G结构示意图;
图3为本发明实施例提供的core decomposition划分得到的顶点序列示意图;
图4为本发明实施例提供的用户b的邻接子图示意图;
图5为本发明实施例提供的极大团枚举方法伪代码图;
图6为本发明实施例提供的不同极大团枚举方法性能对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由社交网络所抽象出来的图数据文件都含有百万以上级别的节点数,不管是规模还是复杂程度都已经达到了一定量级。经研究发现,尽管数据集规模巨大,但是各个社交网络图还是满足一定的模式,例如大多数用户的度数不高,整体结构稀疏;所有用户的度数分布符合指数分布,少数用户的度数巨大;整个图直接任意两点之间相距不远,图的直径较小等等。大多数社交网络上的邻接子图都远比网络整体稠密。
考虑社交网络图数据的上述特点,本发明提出一种基于极大团枚举的社交网络中社团发现方法。如图1所示,该方法包括以下步骤:
S1.将社交网络关系抽象为社交网络图,极大团结果集初始化为空集;
S2.采用core decomposition方法划分所述社交网络图,得到各个顶点的邻接子图;
S3.取出下一个未处理的邻接子图,判断该邻接子图是否达到稠密条件,若是,进入步骤S4,若否,进入步骤S5;
S4.迭代删除步骤S3选取的邻接子图中度数最小的顶点,直至当前子图成为一个团,再回溯去搜索包含之前删除点的极大团,将得到的极大团并入极大团结果集中,进入步骤S6;
S5.调用传统极大团枚举方法进行计算,将得到的极大团并入极大团结果集中,进入步骤S6;
S6.重复步骤S3~S5,直至所有邻接子图处理完,极大团结果集中所有极大团即为发现的社团。
步骤S1.将社交网络关系抽象为社交网络图,极大团结果集初始化为空集。
如果有已经处理好的社交网络图数据文件,则可直接使用。否则,采用常见的网络爬虫软件(例如scrapy,Nutch等),对指定社交网络进行爬取,主要爬取用户之间的关联信息,例如“好友”关系或者“关注”关系。社交网络关系包括:用户信息以及各个用户之间的关系,将用户存储成图数据文件中的顶点,将用户之间的关系存储成图数据文件中的边。将爬取得到的信息按照常见的图存储格式进行存储,例如,使用邻接表的方式存储图结构,即对于每个用户顶点,使用一个独立的数组来保存它的邻居用户顶点。
假如社交网络关系含有n个用户,用户之间共计有m条关系,那么,抽象得到的社交网络图G中含有n个顶点和m条边。G中所有顶点(用户)的集合为V={v1,v2,…vn},每个顶点(用户)可以用一个id来表示,例如,vi;而G中所有边的集合为E,每个边可以用一个用户的二元组表示,例如,用户vi和vj之间的一条边用(vi,vj)表示。
如图2所示,社交网络图G包含5个用户顶点,分别用(用户id)a、b、c、d、e表示,包含8条边,分别用(a,b)、(a,e)、(b,e)、(b,c)、(b,d)、(c,d)、(c,e)、(d,e)表示。
步骤S2.采用core decomposition方法划分所述社交网络图,得到各个顶点的邻接子图。
步骤S21.初始化变量cnt=1。
步骤S22.从社交网络图当前包含的所有用户顶点中,找出度数最少的用户顶点v(例如,好友数最少的用户),给该用户顶点添加新属性orderid,其值为cnt,并将cnt值加1。
按照用户顶点度数升序划分,可使得划分得到的子图更均匀,从而保证后续可以采用分治法处理各个小子图,降低时空开销。
步骤S23.将该用户顶点v及所有与v相连的边从社交网络图中剔除,同时更新与v点所有相连用户顶点的度数。
步骤S24.重复步骤S22~S23,直至社交网络图中用户顶点集合为空集,进入步骤S25。
如图2所示的社交网络结构,由于用户a度数最小,度数为2,所以先选取a,随后再依次选取b、c、d、e四个用户,最后得到的序列如图3所示,每个用户下面的数字代表它当前的orderid。每剔除一个用户时,它的相连用户的度数也会发生变化,例如,剔除a用户后,b、e两用户的度数从4变为3。
步骤S25.遍历原社交网络图中的所有用户顶点,根据用户顶点vi及其所有邻接顶点的orderid,构建用户顶点vi对应的邻接子图N(vi)。
S251.得到用户顶点vi的邻接表Γ(vi)={u1,u2,…}。
S252.根据vi和Γ(vi)中每个用户的orderid,将Γ(vi)分为Г+(vi)={u|orderid(u)>orderid(vi)}、Г-(vi)={u|orderid(u)<orderid(vi)}两个子集合。
子集合Γ+(vi)表示orderid大于用户顶点的orderid的邻接顶点,子集合Γ-(vi)表示orderid小于用户顶点的orderid的邻接顶点。通过将邻接表划分为Γ+(vi)和Γ-(vi)两个子集合,使得后续对于同一条边的两个顶点,只需要其中考虑一个顶点即可,减少了无效计算。例如,对于用户b,与其它四个用户均相连,Γ(b)={a,c,d,e}。根据orderid属性,Γ+(b)={c,d,e},而Γ-(b)={a}。
S253.根据集合Γ-(vi)和Γ-(vi),构造用户vi的邻接子图N(vi),Γ(vi)为N(vi)的点集,E(vi)={(x,y)|(x∈Γ+(vi)ORy∈Γ+(vi))AND(x,y)∈E(G)}为邻接子图的边集,E(G)为原始社交网络图中的边集。
N(vi)中的边最少有一个顶点属于Γ+(vi)。例如,对于用户b来说,N(b)如图4所示,属于Γ-(b)的用户顶点用黑色标示,在后续进行枚举时不会将这些用户考虑进枚举的极大团中。
步骤S3.取出下一个未处理的邻接子图,判断该邻接子图是否达到稠密条件,若是,进入步骤S4,若否,进入步骤S5。
步骤S31.取出下一个未处理的邻接子图,统计该邻接子图N(vi)的用户顶点数ni和边数mi。
ni=|Γ(vi)|,mi=|E(vi)|。
步骤S32.计算该邻接子图的稠密度D(vi)。
邻接子图的稠密度
步骤S33.比较D(vi)是否大于稠密度阈值若是,进入步骤S4,若否,进入步骤S5。
稠密度阈值由使用者指定,取值范围为0.4~0.9,优选为0.5。如果选择本发明提出的极大团枚举算法;反之,选择经典极大团枚举算法。
步骤S4.迭代删除步骤S3选取的邻接子图中度数最小的顶点,直至当前子图成为一个团,再回溯去搜索包含之前删除点的极大团,将得到的极大团并入极大团结果集中,进入步骤S6。
如图5所示,步骤S4包括以下子步骤:
步骤S41.当前邻接子图为N(vi),结果用户集合R初始化为R={vi},备选用户集合P初始化为P=Γ+(vi),已访问用户集合X初始化为X=Γ-(vi),当前递归调用层数t初始化为1。
步骤S42.判断P∪X是否为空集,若为空集,R为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6;若不为空集,进入步骤S43。
P∪X为空集,说明R集合为不仅是一个团,同时也不存在其他点和R中所有点相连,因此,R是一个无法再扩张的极大团。若当前递归调用层数t=1,说明当前子图的所有的极大团枚举递归调用都已经结束。
步骤S43.检查P是否为团,若检查失败,进入步骤S44;否则,检查成功,进入步骤S45。
若P集合中任意两个用户都互相相连,则P集合中用户构成一个团。
检查P为团的步骤如下:
(1)判断P集合用户顶点个数是否小于2,若是,则检查成功;否则,按照用户id选取第一个顶点,设为ui,初始化为用户ui在P集合中的相连用户数,进入步骤(2);
(2)遍历ui的相连用户列表Γ(ui),对于每个相连用户,判断其是否属于P集合,如果属于,则加1,进入步骤(3)。
(3)当遍历结束后,判断是否等于P集合的大小,若是,从P集合中未被检查过的用户中,按照用户id选取下一个顶点,将其设为ui,且进入步骤(2),否则,检查失败。
步骤S44.从P中选取相连用户数最小的用户u,产生新的集合R′=R∪{u},P′=P∩Γ(u),X′=X∩Γ(u),t加1,以R′、P′、X′为新的结果集、备选集和已访问集,从步骤S42进入t层递归调用极大团枚举,待t层递归调用结束后,t减1,P更新为P-{u},X更新为X∪{u},进入步骤S43。
对P集合中每个用户ui,计算并记录其在P集合中的相连用户数,基计算公式为:从P中选取值最小对应的用户uj作为u返回。这一步保证了P集合和X集合是R集合中所有顶点的公共邻居,同时也保证了使用启发式方法使得P集合快速收敛为一个团。
步骤S45.判断P是否不为空集同时Γ(P)∩X为空集,Γ(P)为和P中所有点都相连的点集合,若是,R∪P为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6。
Γ(P)∩X不为空集,X集合中存在P集合的公共邻居顶点,即X中存在某个用户w和P集合中所有用户都相连,此时R∪P虽是一个团,但并不是极大团。
步骤S5.调用传统极大团枚举方法进行计算,将得到的极大团并入极大团结果集中,进入步骤S6。
传统极大团枚举方法为BK方法或者BKpivot方法。
步骤S6.重复步骤S3~S5,直至所有邻接子图处理完,极大团结果集中所有极大团即为发现的社团。
在部分现实图数据上,本方法得到了较高的运行效率,如图6所示,本实施例在多个现实图数据上的运行性能,其中,notredame,berkstan,google和trec分别有30万,70万,90万和160万的顶点数,属于大规模图,和目前最快的极大团方法BKpivot算法实现相比,本发明方法性能提升明显,最快可以达到几乎3倍于原有方法的性能提升。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种基于极大团枚举的社交网络中社团发现方法,其特征在于,该方法包括以下步骤:
S1.将社交网络关系抽象为社交网络图,极大团结果集初始化为空集;
S2.采用core decomposition方法划分所述社交网络图,得到各个顶点的邻接子图;
S3.取出下一个未处理的邻接子图,判断该邻接子图是否达到稠密条件,若是,进入步骤S4,若否,进入步骤S5;
S4.迭代删除步骤S3选取的邻接子图中度数最小的顶点,直至当前子图成为一个团,再回溯去搜索包含之前删除点的极大团,将得到的极大团并入极大团结果集中,进入步骤S6;
S5.调用传统极大团枚举方法进行计算,将得到的极大团并入极大团结果集中,进入步骤S6;
S6.重复步骤S3~S5,直至所有邻接子图处理完,极大团结果集中所有极大团即为发现的社团。
2.如权利要求1所述的社交网络中社团发现方法,其特征在于,所述社交网络关系包括:用户信息以及各个用户之间的关系,将用户抽象为社交网络图中的顶点,将用户之间的关系抽象为社交网络图中的边。
3.如权利要求1所述的社交网络中社团发现方法,其特征在于,步骤S2具体包括以下子步骤:
步骤S21.初始化变量cnt=1;
步骤S22.从社交网络图当前包含的所有用户顶点中,找出度数最少的用户顶点v,给该用户顶点添加新属性orderid,其值为cnt,并将cnt值加1;
步骤S23.将该用户顶点v及所有与v相连的边从社交网络图中剔除,同时更新与v点所有相连用户顶点的度数;
步骤S24.重复步骤S22~S23,直至社交网络图中用户顶点集合为空集,进入步骤S25;
步骤S25.遍历原社交网络图中的所有用户顶点,根据用户顶点vi及其所有邻接顶点的orderid,构建用户顶点vi对应的邻接子图N(vi)。
4.如权利要求3所述的社交网络中社团发现方法,其特征在于,步骤S25具体包括以下子步骤:
S251.得到用户顶点vi的邻接表Γ(vi)={u1,u2,…};
S252.根据vi和Γ(vi)中每个用户的orderid,将Γ(vi)分为Γ+(vi)={u|orderid(u)>orderid(vi)}、Γ-(vi)={u|orderid(u)<orderid(vi)}两个子集合;
S253.根据集合Γ+(vi)和Γ-(vi),构造用户vi的邻接子图N(vi),Γ(vi)为N(vi)的点集,E(vi)={(x,y)|(x∈Γ+(vi)ORy∈Γ+(vi))AND(x,y)∈E(G)}为邻接子图的边集,E(G)为原始社交网络图中的边集。
5.如权利要求1所述的社交网络中社团发现方法,其特征在于,步骤S3具体包括以下子步骤:
步骤S31.取出下一个未处理的邻接子图,统计该邻接子图N(vi)的用户顶点数ni和边数mi;
步骤S32.计算该邻接子图的稠密度D(vi),计算公式如下:
步骤S33.比较D(vi)是否大于稠密度阈值若是,进入步骤S4,若否,进入步骤S5。
6.如权利要求5所述的社交网络中社团发现方法,其特征在于,稠密度阈值取值范围为0.4~0.9。
7.如权利要求1所述的社交网络中社团发现方法,其特征在于,步骤S4包括以下子步骤:
步骤S41.当前邻接子图为N(vi),结果用户集合R初始化为R={vi},备选用户集合P初始化为P=Γ+(vi),已访问用户集合X初始化为X=Γ-(vi),当前递归调用层数t初始化为1;
步骤S42.判断P∪X是否为空集,若为空集,R为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6;若不为空集,进入步骤S43;
步骤S43.检查P是否为团,若检查失败,进入步骤S44;否则,检查成功,进入步骤S45;
步骤S44.从P中选取相连用户数最小的用户u,产生新的集合R′=R∪{u},P′=P∩Γ(u),X′=X∩Γ(u),t加1,以R′、P′、X′为新的结果集、备选集和已访问集,从步骤S42进入t层递归调用极大团枚举,待t层递归调用结束后,t减1,P更新为P-{u},X更新为X∪{u},进入步骤S43;
步骤S45.判断P是否不为空集同时Г(P)∩X为空集,Г(P)为和P中所有点都相连的点集合,若是,R∪P为极大团,并入极大团结果集,判断t是否大于1,若是,则返回t-1层递归调用,若否,进入步骤S6。
8.如权利要求7所述的社交网络中社团发现方法,其特征在于,检查P为团的步骤如下:
(1)判断P集合用户顶点个数是否小于2,若是,则检查成功;否则,按照用户id选取第一个顶点,设为ui,初始化 为用户ui在P集合中的相连用户数,进入步骤(2);
(2)遍历ui的相连用户列表Г(ui),对于每个相连用户,判断其是否属于P集合,如果属于,则加1,进入步骤(3);
(3)当遍历结束后,判断是否等于P集合的大小,若是,从P集合中未被检查过的用户中,按照用户id选取下一个顶点,将其设为ui,且进入步骤(2),否则,检查失败。
9.如权利要求1所述的社交网络中社团发现方法,其特征在于,传统极大团枚举方法为BK方法或者BKpivot方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的社交网络中社团发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142643.2A CN109978705A (zh) | 2019-02-26 | 2019-02-26 | 一种基于极大团枚举的社交网络中社团发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142643.2A CN109978705A (zh) | 2019-02-26 | 2019-02-26 | 一种基于极大团枚举的社交网络中社团发现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109978705A true CN109978705A (zh) | 2019-07-05 |
Family
ID=67077457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910142643.2A Pending CN109978705A (zh) | 2019-02-26 | 2019-02-26 | 一种基于极大团枚举的社交网络中社团发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109978705A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287237A (zh) * | 2019-06-25 | 2019-09-27 | 上海诚数信息科技有限公司 | 一种基于社会网络结构分析高效社团数据挖掘方法 |
CN110750732A (zh) * | 2019-09-30 | 2020-02-04 | 华中科技大学 | 基于团扩张和二次优化的社交网络全局重叠社团检测方法 |
CN111626890A (zh) * | 2020-06-03 | 2020-09-04 | 四川大学 | 一种基于销售信息网络的显著社团发现方法 |
CN112948712A (zh) * | 2021-03-26 | 2021-06-11 | 北京理工大学 | 一种可重叠的社群发现方法 |
CN113032636A (zh) * | 2019-12-25 | 2021-06-25 | 中移动信息技术有限公司 | 完全子图数据的搜索方法、装置、设备及介质 |
WO2022116689A1 (zh) * | 2020-12-03 | 2022-06-09 | 腾讯科技(深圳)有限公司 | 图数据处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942308A (zh) * | 2014-04-18 | 2014-07-23 | 中国科学院信息工程研究所 | 大规模社交网络社区的检测方法及装置 |
CN104700311A (zh) * | 2015-01-30 | 2015-06-10 | 福州大学 | 一种社会网络中的邻域跟随社区发现方法 |
CN106055568A (zh) * | 2016-05-18 | 2016-10-26 | 安徽大学 | 一种基于单步添加团的社交网络的朋友自动分组方法 |
US20180349347A1 (en) * | 2017-05-30 | 2018-12-06 | Facebook, Inc. | Measuring Phrase Association on Online Social Networks |
CN109345239A (zh) * | 2018-09-10 | 2019-02-15 | 河海大学 | 一种层次重叠并行化社区发现方法 |
-
2019
- 2019-02-26 CN CN201910142643.2A patent/CN109978705A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942308A (zh) * | 2014-04-18 | 2014-07-23 | 中国科学院信息工程研究所 | 大规模社交网络社区的检测方法及装置 |
CN103942308B (zh) * | 2014-04-18 | 2017-04-05 | 中国科学院信息工程研究所 | 大规模社交网络社区的检测方法及装置 |
CN104700311A (zh) * | 2015-01-30 | 2015-06-10 | 福州大学 | 一种社会网络中的邻域跟随社区发现方法 |
CN106055568A (zh) * | 2016-05-18 | 2016-10-26 | 安徽大学 | 一种基于单步添加团的社交网络的朋友自动分组方法 |
US20180349347A1 (en) * | 2017-05-30 | 2018-12-06 | Facebook, Inc. | Measuring Phrase Association on Online Social Networks |
CN109345239A (zh) * | 2018-09-10 | 2019-02-15 | 河海大学 | 一种层次重叠并行化社区发现方法 |
Non-Patent Citations (1)
Title |
---|
王岩: "《基于k-truss的图社区发现算法研究》", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287237A (zh) * | 2019-06-25 | 2019-09-27 | 上海诚数信息科技有限公司 | 一种基于社会网络结构分析高效社团数据挖掘方法 |
CN110287237B (zh) * | 2019-06-25 | 2021-07-09 | 上海诚数信息科技有限公司 | 一种基于社会网络结构分析社团数据挖掘方法 |
CN110750732A (zh) * | 2019-09-30 | 2020-02-04 | 华中科技大学 | 基于团扩张和二次优化的社交网络全局重叠社团检测方法 |
CN113032636A (zh) * | 2019-12-25 | 2021-06-25 | 中移动信息技术有限公司 | 完全子图数据的搜索方法、装置、设备及介质 |
CN111626890A (zh) * | 2020-06-03 | 2020-09-04 | 四川大学 | 一种基于销售信息网络的显著社团发现方法 |
CN111626890B (zh) * | 2020-06-03 | 2023-08-01 | 四川大学 | 一种基于销售信息网络的显著社团发现方法 |
WO2022116689A1 (zh) * | 2020-12-03 | 2022-06-09 | 腾讯科技(深圳)有限公司 | 图数据处理方法、装置、计算机设备和存储介质 |
US11935049B2 (en) | 2020-12-03 | 2024-03-19 | Tencent Technology (Shenzhen) Company Limited | Graph data processing method and apparatus, computer device, and storage medium |
CN112948712A (zh) * | 2021-03-26 | 2021-06-11 | 北京理工大学 | 一种可重叠的社群发现方法 |
CN112948712B (zh) * | 2021-03-26 | 2022-03-25 | 北京理工大学 | 一种可重叠的社群发现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978705A (zh) | 一种基于极大团枚举的社交网络中社团发现方法 | |
US10078802B2 (en) | Method and system of discovering and analyzing structures of user groups in microblog | |
CN110719106B (zh) | 一种基于节点分类排序的社交网络图压缩方法及系统 | |
Park et al. | A comparative study of matrix factorization and random walk with restart in recommender systems | |
Lin et al. | Website reorganization using an ant colony system | |
CN110909173A (zh) | 一种基于标签传播的非重叠社区发现方法 | |
CN109064348A (zh) | 一种在社交网络中封锁谣言社区并抑制谣言传播的方法 | |
CN109120431B (zh) | 复杂网络中传播源选择的方法、装置及终端设备 | |
Chibani et al. | Elephant herding optimization for service selection in qos-aware web service composition | |
CN107092667A (zh) | 基于社交网络的群组查找方法和装置 | |
CN104102699B (zh) | 一种聚簇图集合中的子图检索方法 | |
Wang et al. | Efficient radius-bounded community search in geo-social networks | |
Shim et al. | Nearest close friend search in geo-social networks | |
CN116383519A (zh) | 基于双加权的自注意力的群组推荐方法 | |
Zhao et al. | Effective and efficient dense subgraph query in large-scale social Internet of Things | |
CN112464107B (zh) | 一种基于多标签传播的社交网络重叠社区发现方法及装置 | |
CN111274457B (zh) | 一种网络图分割方法及存储介质 | |
Yang et al. | K-truss community most favorites query based on top-t | |
Huang et al. | Discovering association rules with graph patterns in temporal networks | |
CN112380267B (zh) | 一种基于隐私图的社区发现方法 | |
Xiang et al. | TKDA: An improved method for k-degree anonymity in social graphs | |
Liu et al. | An efficient method for top-k graph based node matching | |
CN112396237A (zh) | 一种社交网络中的链接预测方法 | |
CN115827996B (zh) | 一种具有共享约束的社区查询方法及系统 | |
Xie et al. | Correlation-based top-k recommendation for web services |
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 |
Application publication date: 20190705 |
|
RJ01 | Rejection of invention patent application after publication |