一种基于随机游走的社区发现方法

文档序号:6524204阅读:2386来源:国知局
一种基于随机游走的社区发现方法
【专利摘要】本发明公开一种基于随机游走的社区发现方法,包括以下步骤,1)通过随机游走获得复杂网络的一个节点序列;2)对节点序列进行数据分析,获得两个节点之间的连接的紧密程度;3)根据节点之间连接的紧密程度来进行社区发现。本发明所公开的基于随机游走的在复杂网络的社区发现方法,实现简单、计算复杂度低,可以有效减少社区发现的计算资源开销,不需要任何先验信息,仅仅需要复杂网络的拓扑结构就可以获得社区发现结果,具有在实际复杂网络中应用的优势,同时对社区重叠部分的节点归属问题做了定量分析。
【专利说明】一种基于随机游走的社区发现方法
【技术领域】
[0001]本发明属于复杂网络领域,具体涉及一种基于随机游走的社区发现方法。
【背景技术】
[0002]在网络理论的研究中,复杂网络是由数量巨大的节点和节点之间错综复杂的关系共同构成的网络结构。用数学的语言来说,就是一个有着足够复杂的拓扑结构特征的图。现实世界中包含着各种类型的复杂网络,如社会网络(朋友关系网络及合作网络等)、技术网络(万维网以及电力网等)、生物网络(神经网络、食物链网络以及新陈代谢网络等)。
[0003]经过近几年的努力,复杂网络的研究取得了许多重要进展,发现了复杂网络的若干统计特征,其中包括小世界性质(即网络中节点之间的平均距离很短,对数依赖于网络中的节点数)、无标度性质(即网络中节点的度分布右偏斜,具备幂函数或指数函数的形式)以及聚集性或网络传递性。
[0004]复杂网络的另一个重要特征就是网络中所呈现出的社区结构,大量实证研究表明,许多网络是异构的,即复杂网络不是大批性质相同节点的随机连接,而是许多类型的节点的组合,其中相同类型的节点存在较多的连接,而不同类型节点的连接则相对较少。我们把同一类型节点以及这些节点之间的边所构成的子图称为网络中的社区。
[0005]发现这些网络中的社区有助于我们更加有效地理解和开发这些网络,但是随着大数据时代的到来,由于目前算法的计算复杂度过高,一些算法需要先验知识和使用范围狭隘,导致这些算法无法在实际的复杂网络中应用。

【发明内容】

[0006]本发明的目的在于克服上述现有技术的缺点,提供了一种基于随机游走的社区发现方法,该方法在复杂网络中快速的进行社区的发现。
[0007]为达到上述目的,本发明所述的基于随机游走的社区发现方法包括以下步骤:
[0008]I)根据包含成员与成员之间关系的复杂网络构成一个相连通的无向图,其中,复杂网络中的成员记作无向图中的节点,成员与成员之间的关系记作无向图的边;
[0009]2)在无向图中进行L步随机游走,得遍历节点序列,将遍历节点序列划分为若干的子序列,每个子序列中包括H个节点,对每个子序列进行边的统计,当子序列中存在边时,则对相应边的统计量加I,然后对所有边的统计量进行排序;
[0010]3)将统计量最大的边(vg,vh)所对应的节点Vg及节点vh作为社区CO的初始节点,记作 C0={vg, vh};
[0011]4)对于第M个边(vi,vj),当vi属于已有社区Cx,并且vj不属于其他已有社区时,则记作vj属于社区Cx,并将vj添加到社区Cx中;当vi和vj均不属于任何已有社区时,贝1J仓Il建新的社区Cy,其中Cy={vi,vj};当vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理;
[0012]5)重复步骤4),得到复杂网络的社区结构。[0013]步骤2)中L=N2,其中N为无向图中节点的数量。
[0014]步骤2)中H大于或等于3,且H小于或等于10。
[0015]本发明具有以下有益效果:
[0016]本发明所述的基于随机游走的社区发现方法通过随机游走的方法获取复杂网络的遍历节点序列,然后将该遍历节点序列分为长度为K的子序列集,并统计所有子序列集中边的数量,当边的统计量越大,则代表该边对应的两个节点的关系越紧密,然后根据便的统计量进行社区的统计,从而能够得到无向图中的社区结构,处理过程中无需先验知识,达到降低计算代价的目的,时间短,适应性强。
【专利附图】

【附图说明】
[0017]图1为本发明实施例一中复杂网络的结构示意图;
[0018]图2为本发明实施例一中获取边的统计量的流程图;
[0019]图3为本发明在负载网络中Zachary’ s karate club应用结果的示意图。
【具体实施方式】
[0020]下面结合附图对本发明做进一步详细描述:
[0021]本发明所述的基于随机游走的社区发现方法包括以下步骤:
[0022]I)根据包含成员与成员之间关系的复杂网络构成一个相连通的无向图,其中,复杂网络中的成员记作无向图中的节点,成员与成员之间的关系记作无向图的边;
[0023]2)在无向图中进行L步随机游走,得遍历节点序列,将遍历节点序列划分为若干的子序列,每个子序列中包括H个节点,对每个子序列进行边的统计,当子序列中存在边时,则对相应边的统计量加I,然后对所有边的统计量进行排序;
[0024]3)将统计量最大的边(vg,vh)所对应的节点vg及节点vh作为社区CO的初始节点,记作 C0={vg, vh};
[0025]4)对于第M个边(vi,vj),当vi属于已有社区Cx,并且vj不属于其他已有社区时,则记作vj属于社区Cx,并将vj添加到社区Cx中;当vi和vj均不属于任何已有社区时,贝1J仓Il建新的社区Cy,其中Cy={vi,vj};当vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理;
[0026]5)重复步骤4),得到复杂网络的社区结构。
[0027]步骤2)中L=N2,其中N为无向图中节点的数量。
[0028]步骤2)中H大于或等于3,且H小于或等于10。
[0029]实施例一
[0030]I)通过用无向图G来表示图1所述表示的复杂网络;
[0031]2)参考图2,其中ESS代表边,在无向图G的所有节点[1,2,3,4,5,6,7]中以等概率的可能性选择一个节点作为随机游走的起始点,其中每个点被选中的概率为I / 7,经过随机选择获得随机游走的起始节点为1,遍历节点序列VS=(I);以I为起始节点,在其邻居节点[2,3,4]中等概率选择目的节点,每个邻居节点被选中的概率为I / 3,经过随机选择后,目的节点为2,遍历节点序列VS=(1,2);对于随机游走的每一步,目的节点u都是从当前节点V的邻居节点中等概率随机选择的一个点,同时将目的节点加入遍历节点序列中;当随机游走的步数达到49步的时候,则停止;设随机游走得到的遍历节点序列为(1,2,4,……,7,5,6),将随机游走得到的遍历节点序列(1,2,4,……,7,5,6)划分为长度为3的子序列集((1,2,4),……,(7,5,6));
[0032]对每一个子序列集进行边的统计,即对于子序列集中的所有节点,如果其中两个节点之间在无向图G中有边存在,则对应的边的统计量加I;以子序列(1,2,4)为例,对于三个节点的两两组合,可以得到有边e(l,2)、e(l,4)及e(2,4)在无向图G中存在,则对应的统计变量加I ;将所有子序列集处理完毕,根据统计量对边进行排序,排序后为{(1,2),(2,3), (5,6), (3,4), (4,5), (5,7), (1,3), (6,7), (1,4), (2,4)};
[0033]3)选择统计量最大的边(1,2)所对应的两个节点I和节点2作为社区CO的初始节点,得 C0={1,2};
[0034]4)对第二条边(2,3)对应的两个节点2及节点3,因为节点2属于社区CO,同时,节点3不属于其他社区,那么将认为节点3属于社区CO,此时C0={1,2,3};对第三条边(5,
6)对应的节点5及节点6,因为节点5和节点6均都不属社区CO,则认为节点5和节点6属于另外一个社区,创建一个新的社区Cl,使得Cl={5,6};对第四条边(3,4)对应的节点3及节点4,因为节点3属于社区CO,同时,节点4不属于其他已有社区,那么将认为4属于社区CO,此时C0={1,2,3,4};对第五条边(4,5)对应节点4及节点5,因为节点4属于社区CO,节点5属于社区Cl,则不对第五条边进行处理;对第六条边(5,7)对应的节点5及节点7,因为节点5属于社区Cl,同时,节点7不属于其他社区,那么将认为节点7属于社区Cl,此时Cl={5,6,7};继续分析边(1,3),(6,7), (1,4), (2,4),它们所对应的节点已经划分好社区,那么不再处理;
[0035]5)边序列全部处 理完毕,得到两个社区,分别为CO= {1,2,3,4},Cl= {5,6,7}。
[0036]图3为本发明所述方法对Zachary’ s karate club的处理结果,社区发现结果和现实中的社区情况是完全符合的。同时,图中的边的粗细代表两个节点之间的关系紧密程度,与数据处理所得边的数量的大小成正比,边越粗,则代表两个节点之间的联系越紧密。
【权利要求】
1.一种基于随机游走的社区发现方法,其特征在于,包括以下步骤: 1)根据包含成员与成员之间关系的复杂网络构成一个相连通的无向图,其中,复杂网络中的成员记作无向图中的节点,成员与成员之间的关系记作无向图的边; 2)在无向图中进行L步随机游走,得遍历节点序列,将遍历节点序列划分为若干的子序列,每个子序列中包括H个节点,对每个子序列进行边的统计,当子序列中存在边时,则对相应边的统计量加I,然后对所有边的统计量进行排序; 3)将统计量最大的边(vg,vh)所对应的节点vg及节点vh作为社区CO的初始节点,记作 CO={vg, vh}; 4)对于第M个边(vi,vj),当Vi属于已有社区Cx,并且Vj不属于其他已有社区时,则记作vj属于社区Cx,并将vj添加到社区Cx中;当vi和vj均不属于任何已有社区时,则创建新的社区Cy,其中Cy={vi, vj};当vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理; 5)重复步骤4),得到复杂网络的社区结构。
2.根据权利要求1所述的基于随机游走的社区发现方法,其特征在于,步骤2)中L=N2,其中N为无向图中节点的数量。
3.根据权利要求1所述的基于随机游走的社区发现方法,其特征在于,步骤2)中H大于或等于3,且H小于或等于10。
【文档编号】G06F17/30GK103699617SQ201310694794
【公开日】2014年4月2日 申请日期:2013年12月16日 优先权日:2013年12月16日
【发明者】周亚东, 刘晓明, 管晓宏, 胡成臣 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1