首页> 中国专利> 基于自动相转换聚类的重叠社区网络检测方法

基于自动相转换聚类的重叠社区网络检测方法

摘要

本发明提出了一种基于自动相转换聚类的重叠社区网络检测方法,克服现有技术中处理较慢,复杂性较高且在检测重叠社区时必须事先已知社区结构和社区个数的问题。其实现步骤是:(1)生成网络邻接矩阵;(2)初始化;(3)更新节点相位;(4)处理更新后节点的相位;(5)判断更新后节点的相位是否稳定;(6)统计子区间节点个数;(7)输出网络社区划分结果。本发明提出的方法更新节点的相位是一个离散迭代的过程,加快了相位求解过程,提高了并行处理能力,不需要事先设定各个节点的固有频率和已知社区结构,降低了网络社区检测的复杂性,可以有效地检测出网络的各个社区和重叠节点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-10-01

    授权

    授权

  • 2012-09-26

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

    实质审查的生效

  • 2012-07-25

    公开

    公开

说明书

技术领域

本发明属于网络技术领域,更进一步涉及数据挖掘技术领域的基于自动相转换聚 类的重叠社区网络检测方法。通过相位离散迭代,在不需要已知社区结构和社区个数 的情况下,可有效地检测出网络的各个社区和社区间的重叠节点。

背景技术

网络社区检测的研究源于社会学的研究工作,其特点是相同社区内节点之间的连 接比较稠密,而不同社区间节点之间的连接比较稀疏,社区结构是社会网络中最普遍 和最重要的拓扑属性之一,发现和揭示网络的社区结构有助于人们更加有效的分析网 络的拓扑结构、理解网络的功能、发现网络中的隐藏规律以及预测其行为等。目前已 经提出了很多网络社区检测的算法,但是大部分算法致力于寻找独立不相重叠的社区 结构,而实际网络中,社区结构之间往往出现重叠问题,即存在一些节点同属于两个 社区的情况,比如在社团活动中,一个人可能既参加了足球俱乐部又参加了乒乓球俱 乐部,这个人就有可能处于两个不同的俱乐部社区中。

华为技术有限公司申请的专利“社会网络建立方法及装置、以及社区发现方法及 装置”(专利申请号200910135387.0,公开号CN 101877711A)。该方法的网络社区发 现装置主要包括合并模块、相似度计算模块和社区发现结果社区模块。该方法存在不 足之处是,对于给定的网络,每次合并模块都必须查找网络中最大的相似度所对应的 两个节点,然后计算合并模块所得的新节点与该新节点邻接节点的相似度,该专利申 请计算过程过于复杂,需要较长的时间来计算节点之间的相似度,耗费时间长,降低 了网络社区检测效率。

J.A.Almendral等人在发表于2010年PHYSICAL REVIEW E期刊上的文章 “Dynamics of overlapping structures in modular networks”中提出了一种基于网络振荡 器同步的重叠社区检测方法。该方法利用Kuramoto振荡器模型,网络中的每个节点 与一个振荡器一一对应,对于给定的网络拓扑结构,在已知社区结构和社区个数的情 况下,设定网络某一社区内节点的固有频率为W1,其余社区内节点的固有频率为 W2,利用Kuramoto振荡器模型求解相位的变化值,然后计算每个节点的重叠指标, 得出该社区和网络其余社区之间的重叠节点,重复以上步骤,得出其他社区间的重叠 节点。该方法存在不足之处是,对于给定的网络拓扑结构,必须在已知网络的社区结 构和社区个数的情况下,才能够求出社区间的重叠节点,限制了该方法的应用范围; 同时,该方法通过解微分方程求解相位的变化值,当网络的节点数较多时,求解微分 方程将变得十分缓慢,而且在求解相位的变化值之前必须设定节点的固有频率,增加 了问题的复杂性,降低了社区检测效率。

发明内容

本发明的目的在于克服现有技术的不足,提出一种基于自动相转换聚类的重叠社 区网络检测方法,以实现实际网络中的重叠社区检测。本发明通过不断地更新节点的 相位,根据各个节点稳定时的相位,检测出网络的各个社区和重叠节点,从而有效地 实现了重叠社区网络检测。

本发明的具体步骤如下:

(1)将待检测重叠社区网络生成与该网络对应的邻接矩阵。

(2)初始化

在[-a,a]相位值范围内随机产生与网络节点数相同个数的随机数,将每个随机数 作为每个节点的初始相位。

(3)更新节点相位

将每个节点更新前的相位代入下列方程,得到该节点更新后的一个新的相位:

y=x+C1×(M-x)+C2×(x-N)

其中,y为节点更新后的相位;x为节点更新前的相位;C1为衡量控制相同社区 内节点相位的接近速度的控制参数,C2为衡量控制不同社区间节点相位的远离速度 的控制参数,C1、C2在(0,1]范围内选取;M代表与节点有连接边的所有节点在更新 前的平均相位;N代表与节点没有连接边的所有节点在更新前的平均相位。

(4)处理更新后节点相位

如果更新后的所有节点相位中存在相位值大于a的相位时,选取更新后节点相位 值中为正的相位,将相位值为正的每一个节点相位分别与压缩比r1相乘,使相位值 为正的每一个节点相位都分布在[-a,a]相位值之间;如果更新后的所有节点相位中 存在相位值小于-a的相位时,选取更新后节点相位值中为负的相位,将相位值为负 的每一个节点相位分别与压缩比r2相乘,使相位值为负的每一个节点相位都分布在 [-a,a]相位值之间。

(5)判断更新后节点的相位是否稳定

将每个节点更新后的相位与更新前的相位相减,得到一个差值,若该差值小于0, 对该差值求绝对值,在所有节点的差值中选取其中差值最大的一个差值,若该最大差 值小于阈值ε,0<ε<1,则认为所有节点的相位趋于稳定,进入下一步骤,否则,将 每个节点更新后的相位作为该节点下一次更新前的相位,返回步骤(3)。

(6)统计子区间节点个数

当所有节点的相位稳定时,将[-a,a]相位值均匀划分为若干个长度为len的子区 间,统计每个子区间内节点的相位处于该子区间范围内节点的个数。

(7)输出网络社区划分结果

将子区间内节点个数大于0的相邻子区间划分为一组,在该组内的所有子区间中 搜索子区间节点个数的最大值,若该最大值大于阈值T,1≤T≤5,则该组内所有子 区间对应的节点为网络的一个社区,否则,该组内所有子区间对应的节点为网络的重 叠节点。

本发明与现有技术相比存在以下优点:

第一,由于本发明更新节点的相位是一个离散迭代的过程,加快了相位求解过程, 提高了并行处理能力,同时,不需要事先设定各个节点的固有频率,克服了现有技术 中处理较慢,复杂性较高的问题。本发明的求解节点相位变化过程是一个并行处理过 程,不需要事先设定各个节点的固有频率,可大大降低网络社区检测的复杂性,提高 检测效率。

第二,由于本发明引入了C1、C2两个控制参数,C1控制相同社区内节点相位 的接近速度,C2控制不同社区间节点相位的远离速度,通过相位离散迭代,使相同 社区内节点的相位越来越接近,而不同社区间节点的相位越来越远离,同时重叠节点 的相位介于两个不同社区节点的相位之间,从而检测出网络的各个社区和社区间的重 叠节点。本发明克服了现有技术中进行重叠社区检测时,必须事先已知社区结构和社 区个数的问题。本发明根据各个节点稳定时的相位,可以准确的检测出各个社区和社 区间的重叠节点。

附图说明

图1为本发明的流程图;

图2为本发明对空手道俱乐部网络仿真结果的示意图;

图3为本发明对海豚社会网络仿真结果的示意图。

具体实施方式

下面结合图1对本发明的具体实施步骤做进一步的详细描述。

步骤1.生成网络邻接矩阵

将待检测重叠社区网络生成与该网络对应的邻接矩阵;从网络中任意选取两个节 点,若该两个节点之间有连接边,则邻接矩阵中对应的元素为1,否则为0。

在本发明步骤1的实施例中,待检测重叠社区网络采用空手道俱乐部网络,该俱 乐部由34个成员组成,每一个成员对应一个节点,成员之间的某种关系对应节点之 间的连接边,任意选取两个节点,若该两个节点之间有连接边,则邻接矩阵中对应的 元素为1,否则为0,由此得到对应的邻接矩阵如下:

01...0010...00............00...0100...10

步骤2.初始化

网络中每个节点都对应一个相位,相位值的上界为a,在[-a,a]相位值范围内随 机产生与网络节点数相同个数的随机数,将每个随机数作为每个节点的初始相位;其 中,相位值的上界a的取值范围为5≤a≤100。

本发明步骤2的实施例中,网络节点数为34,相位值的上界a=50,在[-50,50] 相位值范围内随机产生34个随机数,产生的随机数为[-34.871,-41.682,……, -33.336,9.6371],将每个随机数作为每个节点的初始相位,即将-34.871作为第一 个节点的初始相位,将-41.682作为第二个节点初始相位,依次类推。

步骤3.更新节点相位

将每个节点更新前的相位代入下列方程,得到该节点更新后的一个新的相位:

y=x+C1×(M-x)+C2×(x-N)

其中,y为节点更新后的相位;x为节点更新前的相位;C1为衡量控制相同社区 内节点相位的接近速度的控制参数,C2为衡量控制不同社区间节点相位的远离速度 的控制参数,C1、C2在(0,1]范围内选取;M代表与节点有连接边的所有节点在更新 前的平均相位;N代表与节点没有连接边的所有节点在更新前的平均相位。

在本发明步骤3的实施例中,将每个节点更新前的相位代入下列方程,得到该节 点更新后的一个新的相位:

y=x+C1×(M-x)+C2×(x-N)

其中,y为节点更新后的相位;x为节点更新前的相位;C1为衡量控制相同社区 内节点相位的接近速度的控制参数,C2为衡量控制不同社区间节点相位的远离速度 的控制参数,C1=0.02,C2=0.005;M代表与节点有连接边的所有节点在更新前的平 均相位;N代表与节点没连接边的所有节点在更新前的平均相位。

步骤4.处理更新后节点的相位

如果更新后的所有节点相位中存在相位值大于a的相位时,选取更新后节点相位 值中为正的相位,将相位值为正的每一个节点相位分别与压缩比r1相乘,使相位值 为正的每一个节点相位都分布在[-a,a]相位值之间;如果更新后的所有节点相位中存 在相位值小于-a的相位时,选取更新后节点相位值中为负的相位,将相位值为负的 每一个节点相位分别与压缩比r2相乘,使相位值为负的每一个节点相位都分布在 [-a,a]相位值之间;其中,压缩比r1和r2按照下式取得:压缩比r1=a/b,压缩比r2=-a/c, a为相位值的上界,b为更新后所有节点相位中的最大相位,c为更新后所有节点相位 中的最小相位。

在本发明步骤4的实施例中,如果更新后的所有节点相位中存在相位值大于50 的相位时,选取更新后节点相位值中为正的相位,将相位值为正的每一个节点相位分 别与压缩比r1相乘,使相位值为正的每一个节点相位都分布在[-50,50]相位值之间; 如果更新后的所有节点相位中存在相位值小于-50的相位时,选取更新后节点相位值 中为负的相位,将相位值为负的每一个节点相位分别与压缩比r2相乘,使相位值为 负的每一个节点相位都分布在[-50,50]相位值之间;其中,压缩比r1和r2按照下式 取得:压缩比r1=50/b,压缩比r2=-50/c,b为更新后所有节点相位中的最大相位,c 为更新后所有节点相位中的最小相位。

步骤5.判断更新后节点的相位是否稳定

将每个节点更新后的相位与更新前的相位相减,得到一个差值,若该差值小于0, 对该差值求绝对值,在所有节点的差值中选取其中差值最大的一个差值,若该最大差 值小于阈值ε,0<ε<1,则认为所有节点的相位趋于稳定,进入下一步骤,否则,将 每个节点更新后的相位作为该节点下一次更新前的相位,返回步骤(3)。

在本发明步骤5的实施例中,将每个节点更新后的相位与更新前的相位相减,得 到一个差值,若该差值小于0,对该差值求绝对值,在所有节点的差值中选取其中差 值最大的一个差值,若该最大差值小于阈值0.001,则认为所有节点的相位趋于稳定, 进入下一步骤,否则,将每个节点更新后的相位作为该节点下一次更新前的相位,返 回步骤(3)。当更新1300次时,相位差值的最大值小于0.001,所有节点的相位趋于稳 定。

步骤6.统计子区间节点个数

当所有节点的相位稳定时,将[-a,a]相位值均匀划分为若干个长度为len的子区 间,统计每个子区间内节点的相位处于该子区间范围内节点的个数;其中,a为相位 值的上界,每个子区间的长度len的取值范围为1≤len≤5。

在本发明步骤6的实施例中,当所有节点的相位稳定时,将[-50,50]相位值均 匀划分为20个长度为5的子区间,子区间分别表示为S1:[-50,-45],S2: [-45,-40],……,S19:[40,45],S20:[45,50],统计的每个子区间内节点的相位处于该 子区间范围内节点的个数如下表所示:

  S1   S2   S3  S4   S5   S6   S7   S8   S9   S10   3   2   0   0   3   2   2   1   0   2   S11   S12   S13   S14   S15   S16   S17   S18   S19   S20   1   0   0   1   2   2   0   2   3   8

步骤7.输出网络社区划分结果

将子区间内节点个数大于0的相邻子区间划分为一组,在该组内的所有子区间中 搜索子区间节点个数的最大值,若该最大值大于阈值T,1≤T≤5,则该组内所有子 区间对应的节点为网络的一个社区,否则,该组内所有子区间对应的节点为网络的重 叠节点。

在本发明步骤7的实施例中,子区间内节点个数大于0的相邻的子区间划分后的 组为:G1:{S1,S2},G2:{S5,S6,S7,S8},G3:{S10,S11},G4:{S14,S15,S16},G5: {S18,S19,S20},阈值T=2,G1组内子区间节点个数的最大值为3,该组对应的节点 {5,6,7,11,17}即确定为网络的一个社区,G2组内子区间节点个数的最大值为3,该组 对应的节点{1,2,4,8,12,13,18,22}即确定为网络的一个社区,G3组内子区间节点个数的 最大值为2,该组对应的节点{3,14,20}即确定为网络的重叠节点,G4组内子区间节点 个数的最大值为2,该组对应的节点{9,10,29,31,32}即确定为网络的重叠节点,G5组 内子区间节点个数的最大值为8,该组对应的节点 {15,16,19,21,23,24,25,26,27,28,30,33,34}即确定为网络的一个社区,从而实现了对待检 测网络的社区检测,检测出了网络的各个社区和重叠节点。

下面结合附图2附图3对本发明的仿真效果做进一步的描述。

1.仿真条件:

在CPU为core 22.4GHZ、内存2G、WINDOWS XP系统上使用Matlab 2009a进 行仿真。

2.仿真内容:

选取空手道俱乐部网络和海豚社会网络作为仿真对象。空手道俱乐部网络由34 个节点组成,每一个节点代表一个俱乐部成员,节点之间的连接边代表成员之间的某 种关系;海豚社会网络由62个节点组成,每个节点代表一只海豚,节点之间的连接 边代表海豚之间的某种社会关系。仿真中两个网络用到的参数如下表所示:

  网络   a   C1   C2   ε   len   T   空手道俱乐部网络   50   0.02   0.005   0.001   5   2   海豚社会网络   50   0.3   0.022   0.001   4   2

在以上参数条件下对空手道俱乐部网络仿真结果的示意图如图2所示:图中,椭 圆形对应的节点{5,6,7,11,17}为网络的一个社区,圆形对应的节点{1,2,4,8,12,13,18,22} 为网络的一个社区,三角形对应的节点{3,14,20,9,10,29,31,32}为网络的重叠节点,正 方形对应的节点{15,16,19,21,23,24,25,26,27,28,30,33,34}为网络的一个社区,重叠节点 {3,14,20,9,10,29,31,32}在实际网络中与两个社区之间都有连接,验证了本发明的有效 性。

在以上参数条件下对海豚社会网络仿真结果的示意图如图3所示:图中,正方形 对应的节点{5,6,9,13,17,22,25,26,27,31,32,41,48,54,56,57,60}为网络的一个社区;圆形 对应的节点{0,2,3,4,8,10,11,12,14,15,16,18,20,21,23,24,29,33,34,35,37,38,40,42,43,44,45, 46,47,49,50,51,52,53,55,58,59,61}为网络的一个社区;三角形对应的节点 {1,7,19,28,30,36,39}为网络的重叠节点,重叠节点{1,7,19,28,30,36,39}在实际网络中与 两个社区之间都有连接,验证了本发明的有效性。

从以上说明可以看出,基于自动相转换聚类的重叠社区网络检测方法可以检测出 网络的各个社区和重叠节点,实现重叠社区网络的检测。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号