本发明涉及复杂网络领域。
背景技术:
目前,重叠社区发现已经揭示出网络中不同节点间隐含的聚集关系,有助于检测复杂系统中的功能模块或深入理解其组织结构,是一种从静态的角度来分析复杂网络的方法。然而,现实中的网络大多数是处于动态演化过程中的,其中的重叠社区也是跟随网络不断演化的。正如重叠社区能揭示节点间隐含的关系一样,网络及其重叠社区的动态演化也蕴含许多有趣的信息或知识亟待发现。例如,通过跟踪分析引文网络中重叠社区的演化,人们可以知道对应某个研究领域的重叠社区发生了哪些改变,从而判断该领域发生了何种改变。例如,重叠社区的分裂对应学科产生了分支,而增长表示该领域正在快速发展等。
总体来看,目前对重叠社区演化事件的基本类型已形成共识,并提出了重叠社区事件的检测算法。但是,依然没有方法检测重叠社区改变点,即无法检测改变的类型、改变时间和量化改变程度。另外,网络节点的度存在着幂律分布和枢纽节点,导致重叠社区演化趋势被高度节点掩盖。
现有研究主要基于扩展、密度、层级聚类和统计推断等方法实现重叠社区发现,使得重叠社区发现及分析方法客观存在检测准确率低、重叠节点分配错误率高、无法预测重叠社区未来演化等缺陷,缺乏在动态网络环境中实现重叠社区演化分析的方法体系,成为阻碍复杂网络中重叠社区的相关理论和应用发展的瓶颈。
技术实现要素:
重叠社区改变点检测是网络动态演化分析中的一项重要任务,有助于深入理解系统演化或检测异常。目前的改变点检测方法,例如“两阶段”法或ghrg+glr方法不能量化改变程度、无法检测局部社区改变、对改变点的类型没有合理分类。针对这些问题,本发明给出了一种基于低通过滤和决策函数的重叠社区改变点检测方法,实现重叠社区的改变类型检测和改变程度量化,克服演化趋势被枢纽节点掩盖的问题。
本发明技术方案:
一种复杂网络中基于低通过滤和决策函数的重叠社区改变点检测方法,其特征在于,首先将重叠社区所对应的子图建模为一维社区流,使得信号处理方法能应用于重叠社区,然后通过将改变点分为两类和基于决策函数,实现了对重叠社区改变点的检测和量化。
有益效果
针对重叠社区改变点检测的研究没有考虑过量度起伏、重叠程度改变和局部演化趋势不同等问题,实现了对重叠社区改变点的检测和量化,有助于更深入了解复杂网络系统的组织及系统的动态特征,从而可了解相关研究领域中已发生的变化,以及某领域是否活跃、产生分支或消失等结论。
本研究方法可应用于社会学、生物学、化学、互联网等领域,分析重叠社区演化从而发现有用的信息或知识,具有广阔的应用前景。
附图说明
图1为单社区建模过程。
图2为两社区建模过程。
图3为实施例验证步骤中,ccp(左)和pristine(右)对二元改变点的检测结果。
图4为实施例验证步骤中,ccp(左)和pristine(右)对二元改变点的检测结果。
图5为实施例方法流程图。
附表说明
表1符号约定及其含义
表2二元改变点的检测条件及改变量
具体实施方式
实施例
如图5所示,本发明实施例基于低通过滤和决策函数的重叠社区改变点检测方法,包括如下步骤:
步骤1.讨论如何建模重叠社区子图;
步骤2.重叠社区低通过滤;
步骤3.给出基于决策函数的改变点检测;
步骤4.给出在合成网络上改变点检测的正确性验证。
以下依次详述。
一、社区子图建模
本发明符号约定如表1所示。
表1
社区结构的演化较为复杂且难以准确表示。目前通常将其表示为两个集合,然后度量二者的公共节点从而分析社区演化,但是该方法忽略了社区内部结构的变化方式。为了建模社区的动态演化,需要采用一种新的社区表示方法。首先,将一个社区所对应的子图表示为一个邻接矩阵。然后,按照特定方式扫描矩阵元素,构造一个长度与社区节点个数有关的一维信号,称为社区流。这样,信号处理领域的方法可用于处理社区流,有助于解决过量度起伏问题。
为了检测社区ct的改变点,需比较ct在
其中第1‐4行(列)对应编号1‐4的节点。gt只包含了社区节点间的连接,不包含社区内节点与社区外节点的连接。由于社区成员节点可能改变,还需让矩阵包含ct与外部节点的关系。因此,我们假设ct包含一个虚节点,代表ct的外部,然后扩展gt为g′t。以图1为例,gt经过扩展后得到
其中,最后一行(列)对应虚节点。节点1与外部节点有两条边,权分别为1、2,在引入外部虚节点后,视为节点1与虚节点存在一条权为3的边。扩展后的矩阵g′t既包含了内部节点连接,也包含与外部的连接关系。
矩阵g′t中的节点顺序是任意的,因而其转换得到的一维的社区流可以视为随机信号,而分析该信号无意义。另外,如果更改节点编号顺序,则产生另一种社区流,无法保证社区流的唯一性。因此,为了使社区对应唯一的社区流,本发明对g′t中的节点进行排列,使得g′t中的每一行元素按降序排列且方差最小。以图1为例,g′t经过排列以后,得到新的矩阵:
排列以交换两个节点在矩阵中的位置为基本操作,且在排列过程中,虚节点所对应的行(列)始终固定在最后。本发明将g″t中的每个矩阵元素视为一个信号,并将矩阵转换为信号,自左向右逐行扫描g″t的元素,且跳过对角线元素。扫描g″t生成社区流的过程如图1所示,得到了社区流x(ct)={4,2,1,2,1,2,3,1,1,0}。
上面讨论了如何将社区建模为社区流。然而二元改变点涉及两个社区,以上方法无法建模对应两个社区的子图。因此,本发明引入对两个社区的建模方法。首先,分别为社区
若
其中,g′1和g′2分别对应
由矩阵g′12可以看出,当社区
二、重叠社区低通过滤
如前所述,重叠社区内存在过量度起伏问题,即高度节点与低度节点的度的差较大,高度节点容易掩盖重叠社区总体改变。因此,需使x(ct)或
本实施例选择用sinc过滤器处理社区流,因为其冲击响应是频域中的矩形函数,是理论上最完美的过滤器且容易用算法实现。它的截止频率由参数β指定。在频域中sinc过滤器的冲击响应函数为:
其中的rect(·)代表矩形函数,其定义为
社区流x(ct)和
从而得到在空间域中的冲击响应函数,
h(x)=2β·sinc(2βx)(9)
其中,sinc(·)是归一化的函数且sinc(0)=1。至此,本实施例可以对前面得到的社区流x(ct)进行过滤,即通过在空间域中与h(x)卷积,
其中,xk(ct)表示x(ct)中的第k个值,w是限定从w个信号值的范围中过滤的窗口值。当w=1时,y(ct)=x(ct),本发明实施例通常将w设为3。另外,当n+w开始超过x(ct)的总长度时,将n+w替换为x(ct)的总长度。对于一个社区流xk(ct),以上低通过滤的过程可以统一表示为:
所生成的一维信号y(x)保留了社区ct中节点间关系的近似信息,节点度分布的方差更小、信号波形更平滑,避免了过量度起伏问题,使得改变点更易于检测。
三、基于决策函数的改变点检测
尽管社区ct转换为了社区流x(ct),依然能从x(ct)得到社区拓扑信息。例如,社区中的节点个数n与社区流的长度|x(ct)|存在关系
(1)一元改变点检测
如前所述,一元改变点包括增长、收缩、消失且任何两者不能同时成立。为了检测这类改变点,本发明分析社区流x(ct)波形的变化,从而构造决策函数。例如,x(ct)在
在传统的“两阶段”法中,先分别在
这里的p‐value定义在y(ct)上而非x(ct),因而避免了过量度起伏。ct存在于
社区成员增加通常是由周围节点与社区新创建大量边导致的,因而引入社区流的外部权(externalweight),即虚节点的边权和为:
将会增加。社区ct在
其中,sgn(·)当条件为真时等于1否则等于0,τg代表增长改变点的类型,
与增长改变点的检测类似,收缩类型依然定义为ct和ct+1都存在,但是应判断成员节点是否减少。社区的成员个数减少通常是由于内部节点之间删除大量的边,导致p‐value减少,但是依然大于η。同样地,为了根据ct和
因而,社区收缩用
如前所述,收缩改变点在其改变量较大时可以视为消失改变点。因而,消失改变点的决策函数
在
(2)二元改变点检测
二元改变点检测所关注的是两社区间的重叠程度改变。如前所述,二元改变点包括重叠增加、重叠减少、合并、分裂四种类型。其中,重叠增加对应社区间公共节点的增多,重叠减少对应公共节点的减少。合并可以视为较大程度的重叠增加,因为如果两社区的绝大部分节点都是公共节点,则将二者的并集视为一个重叠社区更合理。类似的,较大程度的重叠减少应视为分裂。与一元改变点类似,这四种类型的改变点可相互转换且无法共存,因而归类于二元改变点。
社区
然后,分别计算
为了估计
在
即p′1,p′2,p′3是通过假设社区节点不变且以
其中,τ可以是τm,τs,τoi和τod,分别代表合并、分裂、重叠增加和重叠减少;
表2
在表2中,重叠增加即
其余三个二元改变点的检测条件与重叠增加改变点的检测是类似的。另外,重叠增加与合并改变点的本质是相同的,不同之处在于重叠增加发生后在
进一步的,本实施例以下还给出验证步骤。
四、在合成网络上验证检测改变点的正确性
分析真实世界数据前,先在合成网络上验证本发明方法是否正确检测改变点。为生成这样的网络,采用简化的随机块模型来生成包含两个快照的一次网络演化,记为
在生成一元改变点时,让
图3(a)、(b)、(c)分别给出了ccp和pristine对增长、收缩和消失的检测结果。x轴代表
增长改变点全部检测成功对应于直线y=x上方空白区域被填满。如图3(a),ccp检测到了大部分增长改变点,但也将许多收缩改变点识别为增长。ccp没有检测到初始大小为10到20之间、增长到50个节点以上的社区。pristine只检测到了少数增长改变点,集中于(20,20)附近。收缩改变点则应位于y=x下方且填满下半部分。如图(b),ccp检测到的改变点几乎都位于y=x下方,符合预期;而pristine检测到的收缩改变点仅集中于特定区域且将增长识别为收缩。对于消失类型改变点,如图3(c),ccp的结果比较符合预期且大部分靠近x轴;而pristine检测的消失改变点遍布于所有位置,几乎等价于随机检测法。
生成二元改变点时,让
在图4中,x轴代表
创新点
提出了一种复杂网络中基于低通过滤和决策函数的重叠社区改变点检测方法,从而有助于更深入了解复杂网络系统的组织及系统的动态特征。针对目前重叠社区改变点检测的研究没有考虑过量度起伏、重叠程度改变和局部演化趋势不同等问题,给出了一种基于低通过滤的重叠社区改变点检测方法,实现了对重叠社区改变点的检测和量化。