书签 分享 收藏 举报 版权申诉 / 14

面向网络的重叠社区发现方法.pdf

  • 上传人:g****
  • 文档编号:1496775
  • 上传时间:2018-06-18
  • 格式:PDF
  • 页数:14
  • 大小:6.35MB
  • 摘要
    申请专利号:

    CN201310277647.4

    申请日:

    2013.07.03

    公开号:

    CN103425737A

    公开日:

    2013.12.04

    当前法律状态:

    驳回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20131204|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130703|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    西安理工大学

    发明人:

    吕林涛; 杨维维; 孙飞龙; 谭芳

    地址:

    710048 陕西省西安市金花南路5号

    优先权:

    专利代理机构:

    西安弘理专利事务所 61214

    代理人:

    李娜

    PDF完整版下载: PDF下载
    内容摘要

    面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,具体包括步骤1.选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;步骤2.重新确定隶属函数,计算节点属于每个社区的隶属度;步骤3.重新确定收益函数,计算节点加入到社区后的社区的收益;步骤4.根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。本发明运用新的思路解决网络的重叠社区发现问题,提高了网络重叠社区发现方法的准确率。

    权利要求书

    1.  面向网络的重叠社区发现方法,其特征在于,通过非重叠社区划分的的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,具体步骤如下:
    步骤1、选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;
    步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;
    步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;
    步骤4、根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。

    2.
      如权利要求1所述的面向网络的重叠社区发现方法,其特征在于,
    步骤2中,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:
    membershipc(i)=Σm<nshort_distmn(i)/short_distmn---(1)]]>
    式中,m、n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数;在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的membershipC(i)可以定义为:
    membershipC(i)=membershipC(i)/[(n-1)(n-2)/2]      (2)

    3.
      如权利要求1或2所述的面向网络的重叠社区发现方法,其特征在于,步骤3中,通过EQ函数来作为节点加入到社区后网络的总体收益,EQ 值越大,表明网络的整体收益越大,那么,收益函数定义为:
    revenge(C)=EQ                (3)
    节点i加入社区后社区C的收益变化为:
    Δrevenge(C)=ΔEQ     (4)
    其中,EQ函数表示如下:
    EQ=12mΣi|C|Σv&Element;Ci,w&Element;Ci1OvOw[Avw-kvkw2m]---(5)]]>
    该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C 为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw=1,否则Avw=0。

    说明书

    面向网络的重叠社区发现方法
    技术领域
    本发明属于网络社区发现方法,涉及一种面向网络的重叠社区发现方法。
    背景技术
    现实世界中包含着各种类型的复杂网络,如社会网络、技术网络、生物学网络、网络中页面之间相互链接而形成的网络、论文合著网络、文献引用网络等等。这些现实世界中大量的复杂网络是由许多不同类型的节点组合而成,其中相同的类型节点之间存在的连接比较多,而不同类型节点的连接却相对较少,复杂网络的这种特性称为社区结构。
    目前关于社区结构发现的研究己经取得了一定的进展,并且提出了许多社区结构发现方法,应用较多的有:Kernighan-lin方法、GN方法、谱平分法、极值优化方法等,然而,大多数的社区结构发现方法都是假定社区是彼此不重叠的,这就意味着一个节点只能属于一个社区,但是在现实生活中,社区之间是有可能重叠的。例如,在科研合作网络中,某一个学者有可能同时在多个不同的领域与人合作;在生物网络中,某一种蛋白质有可能与多种其他的蛋白质相互作用,这样就有可能有某些节点同时属于多个社区;在社会网络中,某一个兴趣广泛的人有可能参加多个不同的社区活动。发现复杂网络中的重叠社区结构有助于我们更好地理解复杂网络的拓扑结构,对社区中重叠部分的研究有助于我们开启新的思路解决网络拥塞、计算机病毒、舆论的传 播和流行病毒传播等问题。现有的社区发现方法对重叠社区发现的准确率较低,尤其对于大规模网络。
    发明内容
    本发明的目的在于提供一种面向网络的重叠社区发现方法,解决现有技术对重叠社区发现的准确率低的问题。
    本发明方法所采用的技术方案是,面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,具体步骤如下:
    步骤1、选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;
    步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;
    步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;
    步骤4、根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。
    本发明的特点还在于:
    步骤2中,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:
    membershipc(i)=Σm<nshort_distmn(i)/short_distmn---(1)]]>
    式中,m、n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数;在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的 membershipC(i)可以定义为:
    membershipC(i)=membershipC(i)/[(n-1)(n-2)/2]    (2)
    步骤3中,通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:
    revenge(C)=EQ            (3)
    节点i加入社区后社区C的收益变化为:
    Δrevenge(C)=ΔEQ          (4)
    其中,EQ函数表示如下:
    EQ=12mΣi|C|Σv&Element;Ci,w&Element;Ci1OvOw[Avw-kvkw2m]---(5)]]>
    该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw=1,否则Avw=0。
    本发明具有如下有益效果:本发明利用已有的非重叠社区发现方法的发现结果初始化网络中的节点,使网络中的节点划分为普通的社区,不仅使重叠社区发现方法的工作量减少,而且提高了算法的运行效率和算法的质量。
    附图说明
    图1是本发明面向网络的重叠社区发现方法的流程图;
    图2是本发明实施例采用的Karate网络数据集;
    图3是本发明实施例采用的Dolphin网络数据集;
    图4是本发明实施例采用的Football网络数据集;
    图5是本发明实施karate俱乐部网络BGLL算法划分结果;
    图6是本发明实施karate网络改进的模糊合作博弈重叠社区发现结果;
    图7是本发明实施Dolphins海豚网络BGLL算法划分结果;
    图8是本发明实施Dolphin网络改进的模糊合作博弈重叠社区划分结果;
    图9是本发明实施Football网络BGLL算法划分结果;
    图10是本发明实施football网络改进的模糊合作博弈重叠社区划分结果。
    具体实施方式
    下面结合附图和具体实施方式对本发明进行详细说明。
    面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,按照以下步骤实施:
    步骤1、选取合适的非重叠社区发现方法进行社区划分,也就是不包含社区的重叠点;
    步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;
    本发明通过最短路径的方法来说明网络中的节点对与社区的信息流动的影响,影响值越大,表明节点隶属社区的程度越高。因此,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:
    membershipc(i)=Σm<nshort_distmn(i)/short_distmn---(1)]]>
    式中,m、n分别表示社区C中两个不相同的节点,short_distnm表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数,该公式刻画了信息流经给定节点的可能性,其可 能性越大,说明节点属于社区的程度越大。
    在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2;因此,归一化的membershipC(i)可以定义为:
    membershipC(i)=membershipC(i)/[(n-1)(n-2)/2]     (2)
    步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;
    本发明的方法2,通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:
    revenge(C)=EQ          (3)
    节点i加入社区后社区C的收益变化为:
    Δrevenge(C)=ΔEQ       (4)
    其中,EQ函数表示如下:
    EQ=12mΣi|C|Σv&Element;Ci,w&Element;Ci1OvOw[Avw-kvkw2m]---(5)]]>
    该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw=1,否则Avw=0。
    步骤4、根据计算的节点的隶属度以及节点加入社区后社区的收益以及一定的博弈规则求社区的重叠点,从而实现网络的重叠社区划分。
    实施例,面向网络的重叠社区发现方法,按照以下步骤实施:
    步骤1、选取BGLL算法进行社区划分,不包含社区的重叠点;
    本实施例采用BGLL算法来进行社区划分,BGLL算法是一种基于优化模块度函数的启发式方法,该算法不仅速度快,而且准确率高,不需要预设社区划分的数目,能处理大规模网络社区发现问题。
    该算法在对网络的社区结构进行探测过程中,把已经划分好的社区结构看成是新的加权网络中的节点,然后对这个加权网络再次利用模块度优化方法进行社区结构的发现,一直迭代执行下去,直到网络中的节点的模块度整体不再改变。
    BGLL算法的流程主要分为三个过程,这里假设存在一个包含N个节点的无向无权网络。
    Step1:将每个节点划分为一个社区,也就是在初始阶段网络中的节点数目和社区结构的数目一样多,因此共有N个社区;
    初始的eij和ai满足

    ai=ki/2m                 (2)
    其中,ki为节点i的度,m为总的边数。
    Step2:将每一个节点尝试划分到邻居节点,然后计算所获得的ΔQ,
    ΔQ=eij+eji-2aiaj=2(eij-aiaj)           (3)
    如果获得的ΔQ大于0的,取最大的情况,将自己划分到对应的社区中,如果ΔQ小于0,该节点保持自己的社团。如果遍历完所有的节点都没有ΔQ大于0的节点,那么就算法返回;该算法中Q函数表达式为:
    Q=12mΣij(Aij-Pij)δ(ci,cj)---(4)]]>
    其中m为网络中的总边数,pij表示随机连接网络中节点i和节点j的概率,pij=kikj/2m,ki和kj分别为节点i和节点j的度,其中,A为网络的邻接矩阵;

    表示ci和cj是否为同一个社区,其中ci和cj分别表示节点i和节点j所在的社区,

    Step3:重复Step2,直到获得最大的模块度时,该步骤停止,也就是说所有节点移动都不会再改变模块度时,得到网络的初始社区划分结果,该步结束;
    Step4:基于step2和step3,重新构造新图,新节点表示的是steps3中的一个社团,也就是step3执行之后所生成的每一个社团,新节点中会出现自己与自己的边,该边的权值这是新节点对应step3社团的内部边权重的总和,新节点之间的权重就是step3生成的社团之间权值的总和[24],从而形成一个新的加权网络;
    Step5:利用公式(15)计算该有权网络的节点i模块度C的收益;
    ΔQ=[Σin+ki,in2m-(Σtot+ki2m)2]-[Σin2m-(Σtot2m)2-(ki2m)2]---(7)]]>
    其中,m是在网络中的所有边的和,是社区C内部所有边的权值的和,是所有与社区C内部的节点连接的边的权值的和,ki是网络中所有与节点i相连接的边的权值的综合,ki,in是节点i与社区C中的节点相连接的边的权值和。
    Step6:重复执行Step3、Step4以及Step5,直到所有节点最大的模块度 获得时,停止迭代过程,网络的社区结构划分完成。
    步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;
    本发明通过最短路径的思想来考虑网络中的节点对与社区的信息流动的影响,影响值越大,表明节点隶属社区的程度越高。因此,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:
    membershipc(i)=Σm<nshort_distmn(i)/short_distmn---(8)]]>
    式中,m,n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数,该公式刻画了信息流经给定节点的可能性,其可能性越大,说明节点属于社区的程度越大。
    在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的membershipC(i)可以定义为:
    membershipC(i)=membershipC(i)/[(n-1)(n-2)/2]     (9)
    步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;
    通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:
    revenge(C)=EQ         (10)
    节点i加入社区后社区C的收益变化为:
    Δrevenge(C)=ΔEQ             (11)
    其中,EQ函数表示如下:
    EQ=12mΣi|C|Σv&Element;Ci,w&Element;Ci1OvOw[Avw-kvkw2m]---(12)]]>
    该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区。Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw=1,否则Avw=0。
    步骤4、根据计算的节点的隶属度以及节点加入社区后社区的收益以及一定的博弈规则求社区的重叠点,从而实现网络的重叠社区划分。
    本发明通过非重叠社区划分的结果初始化网络中的节点,选取BGLL算法,不仅使重叠社区发现方法的工作量减少,只需要根据收益函数和隶属函数选择重叠点,而且使算法的主要工作集中在了重叠上了,提高了算法的运行效率和算法的质量。
    实施例中,选用三种不同的真实数据集验证本文算法的有效性,并与已有的具有代表性的算法在准确率进行对比。这三种数据集分别为:karate空手道俱乐部网络,参照图2所示,该网络一共包含34个节点和78条边,其中俱乐部的每个成员表示网络中的节点,边表示该俱乐部成员之间的关系,;Bottlenose Dolphins海豚网络,参照图3所示,该网络由2个家族组成,总共62只宽吻海豚,这个小型的社会网是由62个节点和159条边组成;美国大学足球联盟Football网络,参照图4所示,足球球队表示网络中的节点,两个球队之间常规赛季的比赛表示网络的边,它共包含115个节点和613条边。
    针对Zachary karate俱乐部网络,本发明的重叠社区发现算法设计了改进的基于模糊合作博弈的重叠社区发现中,算法是以普通社区划分结果作为 基准的,也就是不包含重叠点的社区划分结果,本发明采用的是BGLL算法,BGLL社区划分的结果如图5所示,然后通过算法计算相应的重叠点,识别中的重叠点如图6所示,即3,9,10,31识别出为重叠节点。
    针对Bottlenose海豚网络,BGLL算法划分的社区结果如图7所示,然后通过算法计算相应的重叠点,识别中的重叠点如图8图所示,即7、19、28、30、39识别出为重叠节点。
    对于football网络,BGLL算法划分的社区结果如图9所示,将网络划分为10个社区,然后通过算法计算社区的重叠点,识别中的重叠点如图10所示,即1、17、6、21、36、90识别出为重叠节点。
    对常用的GCE算法、CPM算法、LEK算法和本发明方法对比试验进行比较,实验结果参见图4至图6,表1是采用不同算法的网络重叠社区发现的准确率(EQ)对照表。
    表1、采用五种算法的网络重叠社区发现的准确率(EQ)对照表

    从表中可以看到,Karate网络中通过不同算法计算的EQ值,本本发明发现方法的EQ值均高于其他算法;Dolphin网络中本本发明发现方法的EQ值均高于GCE算法和CPM算法和LEM算法;football网络中本本发明发现方法的EQ值均高于GCE算法和CPM算法,LEM算法。
    本发明利用已有的效果好非重叠社区发现方法发现的结果初始化网络中的节点,使网络中的节点划分为普通的社区。本发明选取的是BGLL算法,不仅使重叠社区发现方法的工作量减少,而且使算法的主要工作集中在了重叠上了,提高了算法的运行效率和算法的质量。

    关 键  词:
    面向 网络 重叠 社区 发现 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:面向网络的重叠社区发现方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1496775.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1