首页> 中国专利> 一种二分网络中社团检测方法及装置

一种二分网络中社团检测方法及装置

摘要

本发明公开了一种二分网络中社团检测方法及装置,所述方法包括:获取二分网络的节点集,所述节点集由多个社团构成,所述社团包括同一类型的多个节点;获取所述节点集的模块度值,其中,所述模块度值为对属于同一类型的所有节点对之间的所有路径长度之和的差异值取和;对二分网络中的每个社团的任意节点,计算该节点从当前其所属的社团移动到其它社团时,所述二分网络的节点集的模块度值的增加量;选取使得所述节点集的模块度值增加量最大的社团作为该节点的新的划分社团;根据新的划分出的社团重新构造二分网络。本发明避免了Barber所提的模块度定义所蕴含的前提的限制,同时又将二分网络的边的权重信息考虑进去,提高了社团的检测效率。

著录项

  • 公开/公告号CN102148717A

    专利类型发明专利

  • 公开/公告日2011-08-10

    原文格式PDF

  • 申请/专利权人 明仲;

    申请/专利号CN201010108846.9

  • 发明设计人 明仲;

    申请日2010-02-04

  • 分类号H04L12/26(20060101);

  • 代理机构44268 深圳市君胜知识产权代理事务所;

  • 代理人王永文

  • 地址 518000 广东省深圳市深圳大学海滨小区4-101

  • 入库时间 2023-12-18 03:00:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-08-21

    授权

    授权

  • 2011-09-21

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20100204

    实质审查的生效

  • 2011-08-10

    公开

    公开

说明书

技术领域

本发明属于网络技术领域,尤其涉及一种二分网络中社团检测方法及装置。

背景技术

随着因特网、万维网等具有复杂规模的网络的不断扩展和壮大,从万维网上获取数据也变得愈加方便。科学家们借助万维网,将许多传统的生物、物理、社会方面的网络如基因网络(Gene network)、新陈代谢网络(Metabolicnetwork)、电力网络(Electronic network)、神经网络(Neural network)、社交网络(Social network)等数字化存储于万维网上,从而使得处于不同研究领域的研究者们可利用计算机的计算能力对这些大规模的网络进行各个方面的研究。

科学家们还发现许多网络都表现出一些共同的特征,如小世界现象、无标度特征等。这些特征的发现给科学家们带来了震撼,因为这些特性与人们先前对网络的直观认识有着很大的出入。在20世纪即将结束的年代,面对有多达约3亿台计算机和30亿个网页、动态发展的因特网和万维网,还有其他各种社会、生物、物理网络,科学家们发现已无法用规则网络理论和随机网络理论来解释它们的结构和演化的一些新问题,他们粗略地称这类网络为“复杂网络(Complex Network)”。

Boccara对复杂网络给出了一种新定义:如果某些网络的组成部分的表现行为已被了解,但是由于缺乏足够的科学知识而无法预测这些网络的整体行为,则称这些网络为复杂网络。这种缺乏中央控制的复杂网络具有“涌现”行为,即无法预测、无法用事先的设计来产生的行为,而复杂网络中的其中一种“涌现”行为是社团的出现。

人们发现,许多实际网络中都有社团结构的存在,即整个网络包含若干个“群(Group)”或“社团(Cluster)”。虽然目前对网络中的社团还没有一个公认的形式化的定义,但社团的一个较直观的表达是:社团是网络中的节点以及由这些节点之间所连接的边组成的结构,每个社团内部的节点之间的边连接相对紧密,但各个社团之间节点的边连接则相对稀疏。当一个网络进行演化时,由于整个网络缺乏中央的集中控制,因此每个节点都可自由地选择与其它节点进行连接,因此我们无法预测整个网络在演化一段时间后其整体表现出来的拓扑结构,而社团则作为一种演化结果出现在许多的网络里,譬如:万维网、蛋白质网络、社交网络等。这些网络中的社团可看作具有某些共性的节点的集合或者某些共同协作完成某个功能模块的节点的集合。譬如,在社交网络里,在人与人的相互作用过程中,社交网络里形成了大小不一的社团,有些社团对应社会里的家庭组织,有些社团对应社会里的朋友圈,有些社团甚至对应现实生活中具有地理位置特性的人的集合,如村庄、城镇、国家等。因特网的快速增长更是带来了许多在万维网上生存着的社团结构。除了社交网络外,社团还会存在于其他类型的网络中,譬如在蛋白质网络中,社团对应细胞中具有相同特定功能的蛋白质分子集合;在万维网中,社团对应一组具有相似话题的网页;在新陈代谢网络中,社团对应某些功能模块,如新陈代谢中的循环;在食物网络里,社团对应某一层的食物集合。

现实生活中存在着许多以二分图形式表示的网络,我们可称为二分网络。譬如:中文社交网站豆瓣(http://www.douban.com/)上的用户-图书关系即可抽象成一个二分网络,用户代表网络中的一种类型的节点,图书代表另一种类型的节点,当某个用户阅读过某本图书时,则在相应的用户节点和图书节点之间用一条边连接。事实上,生活中还有许多其他类似的二分网络,如演员-电影网络、作者-论文网络、文档-词语网络、p2p中的资源网络等。

各种现实的二分网络里同样存在着有意义的社团。如用户-图书网络的用户节点构成的社团,对应着现实中具有相似阅读兴趣的用户集合;演员-电影网络里的演员节点构成的社团则对应合作较为密切的演员集合;作者-论文网络里的作者节点构成的社团对应具有较为稳定合作关系的研究者集合;在文档-词语网络里,文档节点构成的社团对应内容的主题相近的文档集合,而词语节点构成的社团则对应某一主题下的词语集合。除此之外,两种不同类型的词语的共现也可构成一个二分网络。譬如:可从表示基因的名称的词语和表示疾病的名称的词语的共现里构造出一个二分网络,在该网络里,一类节点表示基因的名称,另一类节点表示疾病的名称,当一个基因名称和一个疾病的名称出现在同一篇文档里,则在这两个名称所对应的节点之间用一条边连接。从该网络检测出的基因社团包含了联系比较密切的基因,基因社团所对应的疾病则显示社团里基因的功用。

正因为现实生活中存在着如此多的二分网络,而挖掘这些网络里的社团对理解和分析这些网络的特性有着重要的辅助作用。

二分网络可表现出许多方面的特性,如:网络中的节点的度分布、网络中的节点的权重分布、网络中的同类节点之间的路径长度、网络中节点的聚类系数、网络中的社团等等。我们的算法用于挖掘出二分网络中的社团。

二分网络里存在着两种不同类型的节点,同一种类型的节点之间不存在边连接,因此边连接只存在于不同类型的节点之间。对于社团,目前尚不存在一个统一的形式化的定义。在普通的网络里(即网络里所有的节点都属于同一种类型的情况),人们对社团的直观认识为:社团是网络中的节点的集合,属于同一个社团的节点之间的边连接紧密,而属于不同社团的节点之间的边连接则稀疏。但在二分网络的情况下,网络中的社团可分为两种情况:

1)二分网络里的每个社团只包含一种类型的节点;

2)二分网络的每个社团可包含两种类型的节点。

对于1)的情况,每个社团的内部节点通过与很多共同的邻居节点相连接的方式来“紧密地联系”,而属于不同社团的节点之间共享的相同邻居节点不多,因此来体现“联系的稀疏”。而2)的情况与普通网络的情况一样,2)所挖掘出的每个社团可包含两种类型的节点,因此每个社团里的节点可分为两个子集,每个子集各自包含一种类型的节点。

目前已设计的大多数社团检测算法都是面向普通网络的(即网络中的所有节点都属于同一种类型的情况),主要包括以下几类:

1)传统的方法:包括图划分、层次聚类、分割式聚类等;

2)分裂算法:包括GN算法以及由此衍生的各种改进算法;

3)基于模块度(Modularity)的算法:通过利用各种优化算法来对Newman提出的模块度进行优化,从而检测出较好的社团划分;

4)谱算法:如谱分解,利用图的矩阵表示中的某些特征来检测社团,一个典型的例子是利用图的拉普拉斯矩阵的特征向量来进行矩阵的划分,从而检测社团;

5)基于动力模型的算法:包括统计力学里最受欢迎的模型之一Potts模型引出的spin模型、随机行走(Random walk)模型、节点同步(Synchronization)模型;

6)基于统计推理的算法:该类算法的特点是寻找一个与实际的图拓扑结构最吻合的图模型,而该图模型一般都假定节点中存在社团结构。这类方法利用的技术包括:贝叶斯推理(Bayesian inference)等。

7)多分辨率的方法:实际图中的社团大小是无法预知的,因此多分辨率的方法是通过调整某些参数以达到观察多种不同大小的社团的方法。

但这些社团检测算法针对的是普通的网络,对于二分网络并不适合。为了检测二分网络中的社团,惯常的做法是对二分网络进行投影,譬如对于二分网络中的某一种类型的节点,如果属于该类型的两个节点之间存在着相同的邻居节点,那么在投影后的新的网络里,这两个节点之间就会存在一条边。经由此种投影方式可产生两个普通的网络,分别对应两种不同的节点类型。接着可利用上述的社团检测算法对产生的普通网络进行社团检测。但这种方法的不足之处在于:在对二分网络进行投影时会损失一些有用的信息,以及生成的普通网络过于庞大。

除了以上所述的用于普通网络的社团检测算法之外,还存在直接对二分网络进行社团检测的算法,如:

1)通过提出适合二分网络的模块度定义,并基于该定义来检测社团。如Guimera等人提出了一个适用于边无权重的二分网络的模块度定义,Barber等人提出了另一种用于二分网络的模块度定义;

其中,模块度的核心思想在于选择一个不存在社团结构的参考网络,以及一个计算的度量,该度量的值在具有社团结构的网络中和在不具有社团结构的网络中将会有很大的差异。在选择了适当的参考网络和度量之后,计算度量分别在原网络和参考网络中的差异值,差异值越大,表明该节点集划分越好,差异值越小,表明该节点集划分越差。

2)Lehmann扩展了在普通网络上的k-clique社团检测算法,将其应用于二分网络上。

Guimera等人所提的模块度定义不适用于边带权重的二分网络,而实际的很多二分网络的边都带有权重,因此Guimera所提的模块度在应用于实际的二分网络时,只能略掉了边的权重这一重要信息。

而Barber等人所提的模块度定义蕴含了一个前提:二分网络中的两种类型的节点所构成的社团存在一对一的关系,但实际的二分网络中,两种类型的节点所构成的社团之间可能存在一对多或多对多的关系。因此Barber所提的模块度定义并不能很好地适用于实际网络的情况。

Lehmann所扩展的k-cliquc社团检测算法需要人工的指定输入的相关参数,譬如需要检测的社团的节点的数目等,而这些参数人们是难以预先知道的。

因利用Barber所提的模块度定义检测出的社团可同时包含二分网络中的两种类型的节点,因此利用该模块度进行社团检测,蕴含了一个前提:由二分网络中的两种类型的节点各自构成的社团之间存在一对一的关系。

如何避免Barber所提的模块度定义所蕴含的前提的限制,同时又将二分网络的边的权重信息考虑进去,提高网络社团的检测效率,提高网络的利用效率,是网络技术领域研究的方向之一。

发明内容

本发明实施例的目的在于提供一种二分网络中社团检测方法,旨在提高网络社团的检测效率,提高网络的利用效率。

本发明实施例是这样实现的,一种二分网络中社团检测方法,所述方法包括以下步骤:

获取二分网络的节点集,所述节点集由多个社团构成,所述社团包括同一类型的多个节点;

获取所述节点集的模块度值,其中,所述模块度值为对属于同一类型的所有节点对之间的所有路径长度之和的差异值取和;

对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量;

选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点的新的划分社团;

根据新的划分出的社团重新构造二分网络。

所述二分网络中社团检测方法,其中,所述获取所述节点集的模块度值时,使用以下计算公式:

Q=Σi=1pΣj=1p(Σa=1qwiawja-Σa=1qma2·titjm2)δ(gi,gj)

其中,Q为模块度,所述二分网络中存在两种类型的节点A和B,属于类型A的节点的数目为p,属于类型B的节点的数目为q;节点i属于类型A,节点j属于类型B;与i连接的所有边的权重之和表示为ti,与j连接的所有边的权重之和表示为tj;网络中所有边的权重之和为m;节点i和j属于同一个社团,δ(gi,gj)的值为l;wiawja表示从节点i出发经过邻居节点a,再到节点j的一条路径的长度;表示从节点i到节点j的所有路径的长度之和;从节点i到节点a的边的权重;从节点a到节点j的边的权重;从节点i出发经过节点a再到节点j的一条路径的长度;从节点i到节点j的所有路径的长度之和;表示一个节点对(i,j)之间的所有路径长度之和的差异值。

所述二分网络中社团检测方法,其中,在所述获取二分网络中的每个类型的节点集的步骤之前,所述方法还包括:

获取二分网络中的各个节点;

将获取的节点按照类型组成相应的社团,其中,每个类型的节点组成一个社团;所述多个社团构成二分网络中的节点集。

所述二分网络中社团检测方法,其中,所述方法还包括:

判断是否有节点移动,若是,则继续进行以下步骤:计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的各个社团模块度值的增加量;

若没有节点移动,则进行如下步骤:根据新的划分出的社团重新构造二分网络。

所述二分网络中社团检测方法,其中,所述根据新的划分出的社团重新构造二分网络的步骤之后,所述方法还包括:

输出重新构造的二分网络。

本发明实施例的目的还在于提供一种二分网络中社团检测装置,所述装置包括:

节点集获取模块,用于获取二分网络的节点集,所述节点集由多个社团构成,所述社团包括同一类型的多个节点;

模块度值获取模块,用于获取所述节点集的模块度值,其中,所述模块度值为对属于同一类型的所有节点对之间的所有路径长度之和的差异值取和;

节点移动计算模块,用于对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量;

节点划分模块,用于选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点的新的划分社团;以及

二分网络构造模块,用于根据新的划分出的社团重新构造二分网络。

所述二分网络中社团检测装置,其中,所述模块度值获取模块通过以下公式计算获取模块度值:

Q=Σi=1pΣj=1p(Σa=1qwiawja-Σa=1qma2·titjm2)δ(gi,gj)

其中,Q为模块度,所述二分网络中存在两种类型的节点A和B,属于类型A的节点的数目为p,属于类型B的节点的数目为q;节点i属于类型A,节点j属于类型B;与i连接的所有边的权重之和表示为ti,与j连接的所有边的权重之和表示为tj;网络中所有边的权重之和为m;节点i和j属于同一个社团,δ(gi,gj)的值为1;wiawja表示从节点i出发经过邻居节点a,再到节点j的一条路径的长度;表示从节点i到节点j的所有路径的长度之和;从节点i到节点a的边的权重;从节点a到节点j的边的权重;从节点i出发经过节点a再到节点j的一条路径的长度;从节点i到节点j的所有路径的长度之和;表示一个节点对(i,j)之间的所有路径长度之和的差异值。

所述二分网络中社团检测装置,其中,所述节点集获取模块具体包括:

节点获取模块,用于获取二分网络中的各个节点;

社团构造模块,用于将获取的节点按照类型组成相应的社团,其中,每个类型的节点组成一个社团;所述多个社团构成二分网络中的节点集。

所述二分网络中社团检测装置,其中,所述装置还包括:

节点移动判断模块,用于判断是否有节点移动,若是,则所述节点移动计算模块计算从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的各个社团模块度值的增加量;

若没有节点移动,则所述二分网络构造模块根据新的划分出的社团重新构造二分网络。

所述二分网络中社团检测装置,其中,所述装置还包括:

二分网络输出模块,用于输出重新构造的二分网络。

本发明实施例通过定义一模块度值,所述模块度值为对属于同一类型的所有节点对(i,j)之间的所有路径长度之和的差异值取和,并获取所述节点集的模块度值,对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量,选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点的新的划分社团,根据新的划分出的社团重新构造二分网络,有效的避免了Barber所提的模块度定义所蕴含的前提的限制,同时又将二分网络的边的权重信息考虑进去,提高了网络社团中各个节点的被查找几率,进而提高了网络的利用效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的二分网络中社团检测方法的流程图;

图2是本发明实施例提供的二分网络中两个节点的连接示意图;

图3是应用本发明实施例提供的二分网络中社团检测方法的效果图;

图4是本发明实施例提供的二分网络中社团检测装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例提供的一种二分网络中社团检测方法的流程,详述如下。

在步骤S101中,获取二分网络的节点集,所述节点集由多个社团构成,所述社团包括同一类型的多个节点;

在具体实施过程中,首先获取二分网络中的各个节点,将获取的节点按照类型组成相应的社团,其中,每个类型的节点组成一个社团,所述多个社团构成二分网络中的节点集。

譬如,一个二分网络G,设G中的两种节点类型分别为A和B,要对其进行社团检测的节点类型为A。

在步骤S102中,获取所述节点集的模块度值,其中,所述模块度值为对属于同一类型的所有节点对的差异值取和;

在具体实施过程中,首先初始化关于G中的每个A类型节点的社团信息C,初始化G中的每个A类型的节点为一个社团,这时就得到了一个初始的A类型节点集的划分,之后,计算该节点集对应的模块度值。

本发明实施例的模块度应用在二分网络上,其中,一个节点集划分是指对于属于同一种类型的所有节点的一个划分。在获取一个节点集划分后,该划分所得的每个子节点集即为一个社团。

本发明实施例提供的模块度定义中,所用的参考网络是:在原网络的节点数目和从各节点连出去的边的权重之和保持不变的情况下,对原网络中的边进行随机重连(允许两个节点之间存在多条边),所得的网络则为参考网络。所用的度量是所有社团内部的节点之间的路径长度之和。属于同一类型的两个节点i和j之间的一条路径由两条边构成,而该路径的长度则为这两条边的权重的乘积,请参阅图2。

其中,本发明实施例提供的所述模块度值的计算公式为:

Q=Σi=1pΣj=1p(Σa=1qwiawja-Σa=1qma2·titjm2)δ(gi,gj)

其中,假设二分网络中存在两种类型的节点A和B,并设属于类型A的节点的数目为p,属于类型B的节点的数目为q。如果节点i属于类型A,则与i连接的所有边的权重之和表示为ti;与j连接的所有边的权重之和表示为tj,如果节点j属于类型B,则与j连接的所有边的权重之和表示为mj。设网络中所有边的权重之和为m。如果节点i和a之间存在边,则wia表示该边的权重。上式中δ(gi,gj)的值为1,当且仅当节点i和j属于同一个社团。wiawja表示从节点i出发经过邻居节点a,再到节点j的一条路径的长度;表示从节点i到节点j的所有路径的长度之和;从节点i到节点a的边的权重;从节点a到节点j的边的权重;从节点i出发经过节点a再到节点j的一条路径的长度;从节点i到节点j的所有路径的长度之和;表示一个节点对(i,j)之间的所有路径长度之和的差异值,最后模块度Q即为对属于同一类型的所有节点对的差异值取和。

在步骤S103中,对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量;

譬如,按照节点的编号顺序,对于G中的每个A类型的节点i,计算将i从当前其所属的社团移动到其它社团时,二分网络的节点集的模块度值的增加量。

在步骤S104中,选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点i的新的划分社团;

在步骤S105中,判断是否有节点移动,若是,则继续进行步骤S104;否则进行步骤S106。

在步骤S106中,根据新的划分出的社团重新构造二分网络。

利用检测出的社团更新C的信息,并构造一个新的二分网络,在新的二分网络里,原网络里的B类型的节点保持不变,而在原网络里检测的每个社团看作新网络里的一个节点,如果在原网络里,一个社团里有节点与B类型的节点存在边连接,那代表该社团的新节点与该B类型节点在新网络里也会有边连接,而且边的权重为该社团里所有与该B类型节点连接的边的权重之和。

在步骤S107中,输出重新构造的二分网络,即将G赋为新的二分网络。

本发明实施例提供的二分网络节点划分方法的优点包括有:

1)有效地利用了二分网络中的边的权重信息。

2)本发明实施例提供的模块度定义,对于两个同类型节点之间的一条路径,是通过将该路径上的两条边的权重相乘作为该路径的长度,而非将两条边的权重相加作为路径的长度,在计算机生成的数据集上的实验表明,权重相乘的方式能更加有效地检测出二分网络中的社团。

3)每次仅对二分网络中的一种类型的节点进行社团检测,以便能检测出现实的二分网络中所存在的复杂社团关系。在进行社团检测时,本发明实施例通过仅对二分网络中的其中一种类型的节点进行社团检测,则能有效地避免Barber所提的模块度定义中隐含的前提限制,而且,还可以利用在不同类型的节点上检测出的社团来揭示这些社团之间的联系程度。

本发明实施例以真实的新闻数据集上对算法进行试验,譬如从被广泛用于测试文本分类算法的20个新闻组数据集中抽出两个新闻组:alt.atheism和comp.graphics。分别从这两个新闻组中各抽取500篇文章,组成1000篇文章的数据集。将1000篇文章看作1000个文档节点,而文章中的词语看作词语节点,如果一篇文章包含某个词语,则在该文档节点和词语节点之间用一条边连接,通过这种方式构造一个文档-词语的二分网络。接着应用本发明实施例所提的二分网络中社团检测和现有技术的Barber的算法来检测二分网络中的文档社团,并将检测出来的社团用贪婪算法合并,直到剩下两个文档社团为止,将所得的两个社团与原先的文档类别进行比较,同样用互信息度来衡量其相似程度。重复该实验100次,得到的结果请参阅图3,其中,实线表示使用本发明实施例提供的社团检测算法的互信息度,虚线为使用现有技术的Barber的算法的互信息度,不难看出,在应用于实际的数据时,本发明实施例的互信息度更高,网络利用效率更好。

图4示出了本发明实施例提供的二分网络中社团检测装置的结构。

节点集获取模块41获取二分网络的节点集,所述节点集由多个社团构成,所述社团包括同一类型的多个节点。

其中,所述节点集获取模块具体包括节点获取模块411和社团构造模块412:

节点获取模块411获取二分网络中的各个节点;

社团构造模块412,用于将获取的节点按照类型组成相应的社团,其中,每个类型的节点组成一个社团;所述多个社团构成二分网络中的节点集。

模块度值获取模块42获取所述节点集的模块度值,其中,所述模块度值为对属于同一类型的所有节点对的差异值取和;

节点移动计算模块43对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量;

节点划分模块44选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点的新的划分社团;

节点移动判断模块45判断是否有节点移动,若是,则所述节点移动计算模块43计算从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的各个社团模块度值的增加量;

若没有节点移动,则二分网络构造模块46根据新的划分出的社团重新构造二分网络。

二分网络输出模块47输出重新构造的二分网络。

其中,所述模块度值获取模块42通过以下公式计算获取模块度值:

Q=Σi=1pΣj=1p(Σa=1qwiawja-Σa=1qma2·titjm2)δ(gi,gj)

其中,假设二分网络中存在两种类型的节点A和B,并设属于类型A的节点的数目为p,属于类型B的节点的数目为q,如果节点i属于类型A,则与i连接的所有边的权重之和表示为ti;与j连接的所有边的权重之和表示为tj,如果节点j属于类型B,则与j连接的所有边的权重之和表示为mj。设网络中所有边的权重之和为m。如果节点i和a之间存在边,则wia表示该边的权重。上式中δ(gi,gj)的值为1,当且仅当节点i和j属于同一个社团。wiawja表示从节点i出发经过邻居节点a,再到节点j的一条路径的长度;表示从节点i到节点j的所有路径的长度之和;从节点i到节点a的边的权重;从节点a到节点j的边的权重;从节点i出发经过节点a再到节点j的一条路径的长度;从节点i到节点j的所有路径的长度之和;表示一个节点对(i,j)之间的所有路径长度之和的差异值,最后模块度Q即为对属于同一类型的所有节点对的差异值取和。具体的计算获取过程在上文已有详细的描述,此处不再赘述。

本发明实施例通过定义一模块度值,所述模块度值为对属于同一类型的所有节点对(i,j)之间的所有路径长度之和的差异值取和,并获取所述节点集的模块度值,对二分网络中的每个社团的任一节点,计算该节点从当前其所属的社团移动到所述节点集的其它社团时,所述二分网络的节点集的模块度值的增加量,选取使得所述二分网络的节点集的模块度值的增加量最大的社团作为该节点的新的划分社团,根据新的划分出的社团重新构造二分网络,有效的避免了Barber所提的模块度定义所蕴含的前提的限制,同时又将二分网络的边的权重信息考虑进去,提高了网络社团中各个节点的被查找几率,进而提高了网络的利用效率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号