CN103747033A - 一种社区发现的方法 - Google Patents
一种社区发现的方法 Download PDFInfo
- Publication number
- CN103747033A CN103747033A CN201310698590.5A CN201310698590A CN103747033A CN 103747033 A CN103747033 A CN 103747033A CN 201310698590 A CN201310698590 A CN 201310698590A CN 103747033 A CN103747033 A CN 103747033A
- Authority
- CN
- China
- Prior art keywords
- node
- community
- limit
- statistic
- random walk
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种社区发现的方法,包括以下步骤:1)利用MapReduce模型实现并行计算;2)在Map阶段,将计算任务分为N份,每份计算任务包括随机游走过程和数据处理过程,其中通过随机游走获得复杂网络的一个遍历节点序列,通过对遍历节点序列进行数据分析,获得两个节点之间的连接的紧密程度;3)在Reduce阶段,对并行计算的结果进行整合得到节点之间的连接紧密程度,根据节点之间连接的紧密程度来进行社区发现;4)对处于社区重叠部分的节点进行分析,以概率形式对节点归属于哪个社区做出描述。本发明可以快速的进行社区的发现。
Description
技术领域
本发明属于复杂网络领域,具体涉及一种社区发现的方法。
背景技术
在网络理论的研究中,复杂网络是由数量巨大的节点和节点之间错综复杂的关系共同构成的网络结构。用数学的语言来说,就是一个有着足够复杂的拓扑结构特征的图。现实世界中包含着各种类型的复杂网络,如社会网络(朋友关系网络及合作网络等)、技术网络(万维网以及电力网等)、生物网络(神经网络、食物链网络以及新陈代谢网络等)。
经过近几年的努力,复杂网络的研究取得了许多重要进展,发现了复杂网络的若干统计特征,其中包括小世界性质(即网络中节点之间的平均距离很短,对数依赖于网络中的节点数)、无标度性质(即网络中节点的度分布右偏斜,具备幂函数或指数函数的形式)以及聚集性或网络传递性。
复杂网络的另一个重要特征就是网络中所呈现出的社区结构。大量实证研究表明,许多网络是异构的,即复杂网络不是大批性质相同节点的随机连接,而是许多类型的节点的组合,其中相同类型的节点存在较多的连接,而不同类型节点的连接则相对较少。我们把同一类型节点以及这些节点之间的边所构成的子图称为网络中的社区。
MapReduce是Google提出的一个软件架构,用于大规模数据集的并行运算。通过Map函数将计算任务分配给计算节点,通过Reduce函数将计算结果进行整理得到最终需要的结果。在并行计算的过程中支持计算任务的分配和调度,计算节点的可靠性分析,如果某个计算节点长时间未响应,则认为其“死亡”,将其移除。
发现这些网络中的社区有助于我们更加有效地理解和开发这些网络。但是随着大数据时代的到来,由于目前算法的计算复杂度过高,一些算法需要先验知识和使用范围狭隘,导致这些算法无法在实际的复杂网络中应用。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种社区发现的方法,该方法可以在复杂网络中快速的进行社区的发现。
为达到上述目的,本发明所述的社区发现的方法包括以下步骤:
1)根据包含成员与成员之间关系的复杂网络构建一个相互连接的无向图,其中复杂网络中的成员用无向图中的节点来表示,成员与成员之间的关系用无向图中的边来表示;
2)在无向图中进行N次随机游走,且每次随机游走均进行L步,得每次随机游走的遍历节点序列,然后将每次随机游走得遍历节点序列分为若干子序列,其中每个子序列均包括K个节点,再对每个子序列进行边的统计,当子序列中的任意两个节点存在边时,则将该边的统计量增加1,得各次随机游走中边的统计量;
3)将各次随机游走中边的统计量相叠加,得各边最终的统计量,然后将各边最终的统计量进行排序,得最终统计量最大的边(vg,vh),然后以该边对应的节点vg及节点vh作为社区C0的初始节点,记作C0={vg,vh};
4)对于第M条边(vi,vj),当节点vi属于已有社区Cx,且节点vj不属于其他任意一个已有社区时,则将节点vj添加到社区Cx中,当节点vi及节点vj均不属于任何已有社区时,则创建新的社区Cy,其中Cy={vi,vj},当节点vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理;
5)重复步骤4),得到复杂网络的社区结构。
步骤2)中L=B2/N,其中B为无向图中节点的数量。
步骤2)中K大于或等于3,且K小于或等于10。
本发明具有以下有益效果:
本发明所述的社区发现方法通过N次随机游走的方法获取复杂网络的遍历节点序列,然后将该遍历节点序列分为长度为K的子序列集,并统计所有子序列集中边的数量,再将N次随机游走所得到的边的统计量相叠加,从而得到边的最终统计量,当边的最终统计量越大,则代表该边对应的两个节点的关系越紧密,然后再根据边的最终统计量进行得到无向图中的社区结构,处理过程中无需先验知识,达到降低计算代价的目的,时间短,适应性强。
附图说明
图1为本发明实施例一中复杂网络的结构示意图;
图2为本发明实施例一中获取边的最终统计量的流程图;
图3为本发明实施例一中获取社区结构的流程图;
图4为本发明在复杂网络中Zachary’s karate club应用结果的示意图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
本发明所述的社区发现的方法包括以下步骤:
1)根据包含成员与成员之间关系的复杂网络构建一个相互连接的无向图,其中复杂网络中的成员用无向图中的节点来表示,成员与成员之间的关系用无向图中的边来表示;
2)在无向图中进行N次随机游走,且每次随机游走均进行L步,得每次随机游走的遍历节点序列,然后将每次随机游走得遍历节点序列分为若干子序列,其中每个子序列均包括K个节点,再对每个子序列进行边的统计,当子序列中的任意两个节点存在边时,则将该边的统计量增加1,得各次随机游走中边的统计量;
3)将各次随机游走中边的统计量相叠加,得各边最终的统计量,然后将各边最终的统计量进行排序,得最终统计量最大的边(vg,vh),然后以该边对应的节点vg及节点vh作为社区C0的初始节点,记作C0={vg,vh};
4)对于第M条边(vi,vj),当节点vi属于已有社区Cx,且节点vj不属于其他任意一个已有社区时,则将节点vj添加到社区Cx中,当节点vi及节点vj均不属于任何已有社区时,则创建新的社区Cy,其中Cy={vi,vj},当节点vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理;
5)重复步骤4),得到复杂网络的社区结构。
步骤2)中L=B2/N,其中B为无向图中节点的数量。
步骤2)中K大于或等于3,且K小于或等于10。
实施例一
参考图1,根据图1给出的复杂网络构建无向图,然后在无向图中进行四次随机游走,以第一次随机游走为例来说明。
在无向图的所有节点[1,2,3,4,5,6,7]中以等概率的可能性选择一个节点作为本次随机游走的起始点,其中每个节点被选中的概率为1/7,经过随机选择获得随机游走的起始节点为节点1,遍历节点序列VS={1};以节点1为起始节点,在其邻居节点[2,3,4]中等概率选择目的节点,每个邻居节点被选中的概率为1/3,经过随机选择后,目的节点为节点2,遍历节点序列VS={1,2};对于随机游走的每一步,目的节点u都是从当前节点v的邻居节点中等概率随机选择的一个点,同时将目的节点加入遍历序列;重复(3),当随机游走的步数达到12步的时候,则停止,得到的遍历节点序列{1,2,4,3,2,1,4,5,6,7,5,6},然后将遍历节点序列分为长度为3的子序列集{{1,2,4},{3,2,1},{4,5,6},{7,5,6}};对每一个子序列进行边的统计,即对于子序列中的所有节点,如果其中两个节点之间在无向图中存在边,则对应的边的统计量加1;以子序列{1,2,4}为例,对于三个节点的两两组合,由邻接矩阵A[1,2]=1,A[1,4]=1,A[2,4]=1,可以得到只有边e(1,2),e(1,4),e(2,4)存在,则对应的统计变量Ne(1,2)=Ne(1,2)+1,Ne(1,4)=Ne(1,4)+1,Ne(2,4)=Ne(2,4)+1;
参考图2,经统计后,第一次随机游走的边的统计量为{(1,2)∶2,(2,3)∶1,(1,4)∶1,(2,4)∶1,(3,4)∶1,(1,3)∶1,(4,5)∶1,(5,6)∶2,(5,7)∶1},第二次随机游走的边的统计量为{(1,2)∶2,(2,3)∶2,(3,4)∶2,(1,3)∶1,(4,5)∶1,(5,6)∶2,(5,7)∶1,(6,7)∶1},第三次随机游走的边的统计量为{(1,2)∶2,(2,3)∶3,(3,4)∶1,(2,4)∶1,(1,3)∶1,(4,5)∶1,(5,6)∶1,(5,7)∶1,(6,7)∶1},第四次随机游走的边的统计量为{(1,2)∶2,(2,3)∶1,(1,4)∶1,(3,4)∶1,(1,3)∶1,(4,5)∶1,(5,6)∶1,(5,7)∶1,(6,7)∶1},经叠加统计后,边的最终统计量为{(1,2)∶8,(2,3)∶7,(1,3)∶3,(1,4)∶2,(2,4)∶2,(3,4)∶5,(5,6)∶6,(4,5)∶4,(5,7)∶4,(6,7)∶3},根据边的最终统计量的大小进行排序,得到{(1,2)∶8,(2,3)∶7,(5,6)∶6,(3,4)∶5,(4,5)∶4,(5,7)∶4,(1,3)∶3,(6,7)∶3,(1,4)∶2,(2,4)∶2}。
参考图3,选择统计量最大的边(1,2)所对应的两个节点作为社区C0的初始节点,使得C0={1,2};对第二条边(2,3)对应的节点2及节点3,因为节点2属于社区C0,同时,节点3不属于其他已有社区,那么将认为节点3属于社区C0,此时C0={1,2,3};对第三条边(5,6)对应的节点5及节点6,因为节点5和节点6均都不属社区C0,那么创建一个新的社区C1,使得C1={5,6);对第四条边(3,4)对应的节点3及节点4,因为节点3属于社区C0,同时,节点4不属于其他已有社区,那么将认为节点4属于社区C0,此时C0={1,2,3,4};对第五条边(4,5)对应的节点4及节点5,节点4属于社区C0,节点5属于社区C1,则不对第五条边进行处理;对第六条边(5,7)对应的节点5及节点7,因为节点5属于社区C1,同时,7不属于其他已有社区,那么将认为7属于社区C1,此时C1={5,6,7};最后得到两个社区,分别为C0={1,2,3,4}及C1={5,6,7},继续分析边(1,3)、边(6,7)、边(1,4)及边(2,4),它们所对应的节点已经划分好社区,这里不再进行处理。
图4为本发明所述方法对Zachary’s karate club的处理结果,社区发现结果和现实中的社区情况是完全符合的。同时,图4中的边的粗细代表两个节点之间的关系紧密程度,与数据处理所得边的数量的大小成正比,边越粗,则代表两个节点之间的联系越紧密。
Claims (3)
1.一种社区发现的方法,其特征在于,包括以下步骤:
1)根据包含成员与成员之间关系的复杂网络构建一个相互连接的无向图,其中复杂网络中的成员用无向图中的节点来表示,成员与成员之间的关系用无向图中的边来表示;
2)在无向图中进行N次随机游走,且每次随机游走均进行L步,得每次随机游走的遍历节点序列,然后将每次随机游走得遍历节点序列分为若干子序列,其中每个子序列均包括K个节点,再对每个子序列进行边的统计,当子序列中的任意两个节点存在边时,则将该边的统计量增加1,得各次随机游走中边的统计量;
3)将各次随机游走中边的统计量相叠加,得各边最终的统计量,然后将各边最终的统计量进行排序,得最终统计量最大的边(vg,vh),然后以该边对应的节点vg及节点vh作为社区C0的初始节点,记作C0={vg,vh};
4)对于第M条边(vi,vj),当节点vi属于已有社区Cx,且节点vj不属于其他任意一个已有社区时,则将节点vj添加到社区Cx中,当节点vi及节点vj均不属于任何已有社区时,则创建新的社区Cy,其中Cy={vi,vj},当节点vi属于已有社区Cx,且vj属于另一已有社区Cz时,则不进行处理;
5)重复步骤4),得到复杂网络的社区结构。
2.根据权利要求1所述的社区发现的方法,其特征在于,步骤2)中L=B2/N,其中B为无向图中节点的数量。
3.根据权利要求1所述的社区发现的方法,其特征在于,步骤2)中K大于或等于3,且K小于或等于10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698590.5A CN103747033B (zh) | 2013-12-17 | 2013-12-17 | 一种社区发现的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698590.5A CN103747033B (zh) | 2013-12-17 | 2013-12-17 | 一种社区发现的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103747033A true CN103747033A (zh) | 2014-04-23 |
CN103747033B CN103747033B (zh) | 2017-06-09 |
Family
ID=50504020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310698590.5A Active CN103747033B (zh) | 2013-12-17 | 2013-12-17 | 一种社区发现的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103747033B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095403A (zh) * | 2015-07-08 | 2015-11-25 | 福州大学 | 基于混合近邻消息传播的并行社区发现算法 |
CN105608173A (zh) * | 2015-12-21 | 2016-05-25 | 西北工业大学 | 一种基于自适应代理的渐进式社区发现方法 |
CN106204293A (zh) * | 2016-06-30 | 2016-12-07 | 河北科技大学 | 一种基于Hadoop平台的社区发现算法 |
CN106789285A (zh) * | 2016-12-28 | 2017-05-31 | 西安交通大学 | 一种在线社会网络多尺度社区发现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857525A (zh) * | 2011-06-28 | 2013-01-02 | 安徽大学 | 基于随机游走策略的社区发现方法 |
CN103699617A (zh) * | 2013-12-16 | 2014-04-02 | 西安交通大学 | 一种基于随机游走的社区发现方法 |
-
2013
- 2013-12-17 CN CN201310698590.5A patent/CN103747033B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857525A (zh) * | 2011-06-28 | 2013-01-02 | 安徽大学 | 基于随机游走策略的社区发现方法 |
CN103699617A (zh) * | 2013-12-16 | 2014-04-02 | 西安交通大学 | 一种基于随机游走的社区发现方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095403A (zh) * | 2015-07-08 | 2015-11-25 | 福州大学 | 基于混合近邻消息传播的并行社区发现算法 |
CN105608173A (zh) * | 2015-12-21 | 2016-05-25 | 西北工业大学 | 一种基于自适应代理的渐进式社区发现方法 |
CN106204293A (zh) * | 2016-06-30 | 2016-12-07 | 河北科技大学 | 一种基于Hadoop平台的社区发现算法 |
CN106204293B (zh) * | 2016-06-30 | 2019-05-31 | 河北科技大学 | 一种基于Hadoop平台的社区发现算法 |
CN106789285A (zh) * | 2016-12-28 | 2017-05-31 | 西安交通大学 | 一种在线社会网络多尺度社区发现方法 |
CN106789285B (zh) * | 2016-12-28 | 2020-08-14 | 西安交通大学 | 一种在线社会网络多尺度社区发现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103747033B (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699617B (zh) | 一种基于随机游走的社区发现方法 | |
Sobolevsky et al. | General optimization technique for high-quality community detection in complex networks | |
US9411829B2 (en) | Image-based faceted system and method | |
WO2014107988A1 (zh) | 微博用户群体结构发现分析方法及系统 | |
De Meo et al. | Estimating graph robustness through the Randic index | |
CN106991617B (zh) | 一种基于信息传播的微博社交关系提取算法 | |
CN107611962B (zh) | 电网系统支路搜索方法、系统及电子设备 | |
CN106651016B (zh) | 一种热点话题下动态预测用户行为的系统及方法 | |
Nazarenko et al. | Features of application of machine learning methods for classification of network traffic (features, advantages, disadvantages) | |
CN107193942A (zh) | 一种有向图中所有连通子图的快速生成方法 | |
CN103747033A (zh) | 一种社区发现的方法 | |
Chang et al. | Relative centrality and local community detection | |
CN105335368A (zh) | 一种产品聚类方法及装置 | |
Jiang et al. | Dynamic community detection based on game theory in social networks | |
Gupta et al. | Recent trends on community detection algorithms: A survey | |
CN103475539B (zh) | 基于振荡器相位同步的符号网络社区检测方法 | |
Maivizhi et al. | A survey of tools for community detection and mining in social networks | |
Yang | An improved artificial fish swarm algorithm and its application in multiple sequence alignment | |
Wang et al. | A novel cosine distance for detecting communities in complex networks | |
Gujjula et al. | A hybrid metaheuristic for the maximum k-plex problem | |
CN107392784A (zh) | 基于标签传播的可调节重叠社团发现方法 | |
Belahcen et al. | Web spam detection using transductive (inductive graph neural networks | |
Yang et al. | An exponential triangle model for the Facebook network based on big data | |
Ye et al. | A new definition of modularity for community detection in complex networks | |
Chu et al. | On estimating the spectral radius of large graphs through subgraph sampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |