一种基于标签扩散的时序平滑社团划分方法及装置与流程

文档序号:16975968发布日期:2019-02-26 18:59阅读:144来源:国知局
一种基于标签扩散的时序平滑社团划分方法及装置与流程

本发明涉及一种社团划分方法及装置,更具体涉及一种基于标签扩散的时序平滑社团划分方法及装置。



背景技术:

现实世界中存在着大量的复杂网络系统,如internet、社交网络、科学家合作网络、通信网络、蛋白质相互作用网络、基因调控网络等。在复杂网络中,网络的各个组成个体之间的关系不同,因此,个体之间的连接关系存在亲疏有别的现象,因此,复杂网络会分成存在界限的社团,根据复杂网络被划分成的社团可以对网络中各个个体之间的相互关系进行研究。社团结构描述了网络中的一种非均质连接特性,即网络由不同的节点簇所构成,簇内节点连接相对紧密,而簇间的连接相对稀疏。作为介于网络微观结构和宏观结构之间的中尺度结构,社团结构是网络中个体行为与整体功能之间的桥梁,对网络的结构和功能分析具有重要意义。社团划分旨在揭示网络中所蕴含的社团结构,有助于对网络结构的分析、对网络功能的推断、对网络拓扑的优化,并指导现实网络结构的识别、构建和预测,因而是理解和探索网络结构与功能的关键问题。

传统的社团划分大多针对具有固定拓扑结构的静态网络,实际网络往往会随着时间推移发生改变。例如,在科学家合作网络中,新的研究者不断加入,已有研究者也会退出;不同领域的研究者会开展新的合作,原有合作也可能停止。这种变化导致网络中社团结构的持续演化,传统的静态方法无法用于动态性分析。为了对动态变化的复杂网络进行社团划分,可以采用lpa(labelpropagationalgorithm,标签传播算法)算法对复杂网络进行社团划分。在lpa算法中,将复杂网络抽象成一个由节点相互连接而成的网络,复杂网络中的每一个个体被抽象为一个节点,个体之间的连接关系被抽象为边;然后,为每个节点对应一个不同的标签值,而且,每一个节点相对于其他节点具有偏好权重,然后将某一节点的标签值更新为其邻居节点中偏好权值最高的节点的标签值;循环往复,进而将将复杂网络中的各个节点的标签值进行了更新,如果有多个标签满足此条件,将这些标签作为候选,从中随机抽取一个作为节点的更新标签。如果节点当前的标签在候选集中,则节点保持当前标签。每次迭代中,节点的更新顺序完全随机。在整个标签扩散,也称为标签传播的过程中,连接紧密的节点标签通常会快速趋于一致。标签扩散算法具有时间复杂度低、准确率较高、便于并行化等优点。

但是,现有的标签传播算法中,从两个方面引入了随机性:当进行标签值的更新时,具有多个符合条件的标签值时,随机选择一个;而且节点的更新顺序也是随机进行的,因此,现有技术产生的社团划分结果会在时序上产生较大的差异,进而使得算法具有较差的鲁棒性和稳定性。因此,现有技术存在动态社团划分结果不准确的技术问题。



技术实现要素:

本发明所要解决的技术问题在于提供了一种基于标签扩散的时序平滑社团划分方法及装置,以提高动态社团划分结果的准确性。

本发明是通过以下技术方案解决上述技术问题的:

本发明实施例提供了一种基于标签扩散的时序平滑社团划分方法,所述方法包括:

1)、获取待划分网络中的各个节点在当前时刻的前一时刻的标签值,其中,所述待划分网络是由所述节点连接而成的抽象网络;

2)、获取当前次更新中标签值发生变化的节点数量,并根据所述节点数量更新标签值发生变化的节点数量的振荡次数,判断所述振荡次数是否大于预设阈值;

3)、若否,针对每一个节点,利用所述节点的归一化边密度以及所述节点的归一化隶属度,获取所述节点的第一偏好权值;将所述第一偏好值作为所述节点的当前偏好值;

4)、若是,针对每一个节点,利用所述节点的归一化隶属度以及所述节点的度数中心度,获取所述节点的第二偏好权值;将所述第二偏好值作为所述节点的当前偏好值;

5)、根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;返回执行所述步骤2),直至所述待划分网络中的各个节点都被划分到由标签值相同的节点组成的社团中。

可选的,获取待划分网络中的各个节点在当前时刻的前一时刻的标签值以及,获取所述节点的标签值的更新顺序,且,所述获取所述节点的标签值的更新顺序,包括:

利用公式,计算所述节点的burt约束系数,其中,

constraint(i)为节点i的burt约束系数;i为所述节点的序号;∑为求和函数;j为节点i的邻居节点的序号;vi为所述节点以及所述节点的邻居节点的集合;q为集合vi中第q个节点;piq为节点i与节点q之间的相对关联强度,且aiq为待划分网络的邻接矩阵中第i行第q列的元素;aqi为待划分网络的邻接矩阵中第q行第i列的元素;aik为待划分网络的邻接矩阵中第i行第k列的元素;aki为待划分网络的邻接矩阵中第k行第i列的元素;k为集合vi中的第k个节点;pqj为节点q与节点j之间的相对关联强度;

将所述节点的burt约束系数从大到小的顺序作为所述节点的标签值更新顺序。

可选的,所述获取所述节点的第一偏好权值,包括:

利用公式,计算归一化社团密度,其中,

densitynorm(c)为社团c的归一化边密度;c为当前所有社团的集合;density(c)为社团c对应的社团密度,且e(c)为社团c中的边的集合;v(c)为社团c中的节点的集合;||为势函数;minx∈c()为最小值求值函数;maxx∈c()为最大值求值函数;x为社团集合c中除社团c以外的其他社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+densitynorm(c)-loyaltynorm(i),获取所述节点的第一偏好权值,其中,

wij为节点i相对于节点j的第一偏好权值。

可选的,所述获取所述节点的第二偏好权值,包括:

利用公式,计算节点的度数中心度,其中,

centrality(i)为所述节点i的度数中心度;din(i)为节点i的社团内度数;max()为最大值求值函数;i为所述节点的编号;ci为节点i所属的社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+loyaltynorm(i)*centrality(i),获取所述节点的第二偏好权值,其中,

wij为节点i相对于节点j的第二偏好权值。

可选的,所述根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值,包括:

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

可选的,所述根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值,包括:

利用公式,计算所述节点在t时刻对应的网络结构,和所述节点在t-1时刻对应的网络结构之间的相似度,其中,

为节点i在t时刻对应的网络结构,和节点i在t-1时刻对应的网络结构之间的相似度;为t时刻时,节点i以及节点i的邻居节点的集合;为t-1时刻时,节点i以及节点i的邻居节点的集合;∩为交集;∪为并集;

利用公式,计算所述节点和以及所述节点的邻居节点构成的节点对的时序置信度,其中,

为t时刻节点i和节点j构成的节点对的时序置信度;为节点j在t时刻对应的网络结构,和节点j在t-1时刻对应的网络结构之间的相似度;

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

本发明实施例还提供了一种基于标签扩散的时序平滑社团划分装置,所述装置包括:

获取模块,用于获取待划分网络中的各个节点在当前时刻的前一时刻的标签值,其中,所述待划分网络是由所述节点连接而成的抽象网络;

获取当前次更新中标签值发生变化的节点数量,并根据所述节点数量更新标签值发生变化的节点数量的振荡次数,判断所述振荡次数是否大于预设阈值;

第一更新模块,用于在所述获取模块的判断结果为否的情况下,针对每一个节点,利用所述节点的归一化边密度以及所述节点的归一化隶属度,获取所述节点的第一偏好权值;将所述第一偏好值作为所述节点的当前偏好值;

第二更新模块,用于在所述获取模块的判断结果为是的情况下,针对每一个节点,利用所述节点的归一化隶属度以及所述节点的度数中心度,获取所述节点的第二偏好权值;将所述第二偏好值作为所述节点的当前偏好值;

划分模块,用于根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;触发所述获取模块,直至所述待划分网络中的各个节点都被划分到由标签值相同的节点组成的社团中。

可选的,所述获取模块,用于:

获取待划分网络中的各个节点在当前时刻的前一时刻的标签值以及,获取所述节点的标签值的更新顺序,且,所述获取所述节点的标签值的更新顺序,包括:

利用公式,计算所述节点的burt约束系数,其中,

constraint(i)为节点i的burt约束系数;i为所述节点的序号;∑为求和函数;j为节点i的邻居节点的序号;vi为所述节点以及所述节点的邻居节点的集合;q为集合vi中第q个节点;piq为节点i与节点q之间的相对关联强度,且aiq为待划分网络的邻接矩阵中第i行第q列的元素;aqi为待划分网络的邻接矩阵中第q行第i列的元素;aik为待划分网络的邻接矩阵中第i行第k列的元素;aki为待划分网络的邻接矩阵中第k行第i列的元素;k为集合vi中的第k个节点;pqj为节点q与节点j之间的相对关联强度;

将所述节点的burt约束系数从大到小的顺序作为所述节点的标签值更新顺序。

可选的,所述第一更新模块,用于:

利用公式,计算归一化社团密度,其中,

densitynorm(c)为社团c的归一化边密度;c为当前所有社团的集合;density(c)为社团c对应的社团密度,且e(c)为社团c中的边的集合;v(c)为社团c中的节点的集合;||为势函数;minx∈c()为最小值求值函数;maxx∈c()为最大值求值函数;x为社团集合c中除社团c以外的其他社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+densitynorm(c)-loyaltynorm(i),获取所述节点的第一偏好权值,其中,

wij为节点i相对于节点j的第一偏好权值。

可选的,所述第二更新模块,用于:

利用公式,计算节点的度数中心度,其中,

centrality(i)为所述节点i的度数中心度;din(i)为节点i的社团内度数;max()为最大值求值函数;i为所述节点的编号;ci为节点i所属的社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+loyaltynorm(i)*centrality(i),获取所述节点的第二偏好权值,其中,

wij为节点i相对于节点j的第二偏好权值。

可选的,所述划分模块,用于:

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

可选的,所述划分模块,用于:

利用公式,计算所述节点在t时刻对应的网络结构,和所述节点在t-1时刻对应的网络结构之间的相似度,其中,

为节点i在t时刻对应的网络结构,和节点i在t-1时刻对应的网络结构之间的相似度;为t时刻时,节点i以及节点i的邻居节点的集合;为t-1时刻时,节点i以及节点i的邻居节点的集合;∩为交集;∪为并集;

利用公式,计算所述节点和以及所述节点的邻居节点构成的节点对的时序置信度,其中,

为t时刻节点i和节点j构成的节点对的时序置信度;为节点j在t时刻对应的网络结构,和节点j在t-1时刻对应的网络结构之间的相似度;

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

本发明相比现有技术具有以下优点:

应用本发明实施例,在社团划分过程中,参考当前时刻的前一时刻时待划分网络的社团结构信息,根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;因此,前一时刻的社团划分结果会对当前时刻的社团划分结果产生影响,进而使相邻两个时刻的社团划分结果的差别不至于太大,因此,使社团划分结果在时序上较为平滑,相对于现有技术,可以提高社团划分的准确度。

附图说明

图1为本发明实施例提供的一种基于标签扩散的时序平滑社团划分方法的流程示意图;

图2为本发明实施例提供的一种基于标签扩散的时序平滑社团划分方法的原理示意图;

图3为本发明实施例提供的一种基于安然公司的邮件通信网络的针对动态模块度的实验结果对比图;

图4为本发明实施例提供的一种基于科学家合作网络的针对动态模块度的实验结果对比图;

图5为本发明实施例提供的基于安然公司的邮件通信网络的所划分的社团数量的对比图;

图6为本发明实施例提供的基于科学家合作网络的所划分的社团数量的对比图;

图7为现有技术中动态网络社团划分方法的两种原理示意图;

图8为本发明实施例提供的一种基于标签扩散的时序平滑社团划分装置的结构示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本发明实施例提供了一种基于标签扩散的时序平滑社团划分方法及装置,下面首先就本发明实施例提供的一种基于标签扩散的时序平滑社团划分方法进行介绍。

图1为本发明实施例提供的一种基于标签扩散的时序平滑社团划分方法的流程示意图;图2为本发明实施例提供的一种基于标签扩散的时序平滑社团划分方法的原理示意图,如图1和图2所示,其特征在于,所述方法包括:

s101:获取待划分网络中的各个节点在当前时刻的前一时刻的标签值,其中,所述待划分网络是由所述节点连接而成的抽象网络。

具体的,可以获取待划分网络中的各个节点在当前时刻的前一时刻的标签值以及,获取所述节点的标签值的更新顺序,且,所述获取所述节点的标签值的更新顺序,包括:

利用公式,计算所述节点的burt约束系数,其中,

constraint(i)为节点i的burt约束系数;i为所述节点的序号;∑为求和函数;j为节点i的邻居节点的序号;vi为所述节点以及所述节点的邻居节点的集合;q为集合vi中第q个节点;piq为节点i与节点q之间的相对关联强度,且aiq为待划分网络的邻接矩阵中第i行第q列的元素;aqi为待划分网络的邻接矩阵中第q行第i列的元素;aik为待划分网络的邻接矩阵中第i行第k列的元素;aki为待划分网络的邻接矩阵中第k行第i列的元素;k为集合vi中的第k个节点;pqj为节点q与节点j之间的相对关联强度;

将所述节点的burt约束系数从大到小的顺序作为所述节点的标签值更新顺序。

在实际应用中,如果待划分网络中包含n个节点,初始化的标签值可以是n个不同的任意值;在具体实现中,一种常见的选择是按照节点编号赋值为1~n的整数:

一个网络可以用图g(v,e)来表示,其中v是网络中节点的集合,而e是网络中边的集合。对于节点i,都有(i∈v),用li表示节点标签,n(i)为节点i的邻居节点集合。

初始时,将每个节点赋予不同的标签,li=i。接下来,对每个节点的标签进行迭代更新,每次迭代中,节点的标签更新为邻居节点中偏好权值最高的标签,

在迭代结束后,一个标签对应一个社团,即每个节点分别属于一个社团,设计一个传播规则,节点的标签根据该规则在网络上迭代传播。迭代过程中,更新节点标签为其邻居节点中的最多数标签,迭代终止时,标签相同的节点隶属于一个社团。

s102:获取当前次更新中标签值发生变化的节点数量,并根据所述节点数量更新标签值发生变化的节点数量的振荡次数,判断所述振荡次数是否大于预设阈值;若否,执行s103;若是,执行s104。

示例性的,由于在平衡传播阶段桥节点标签反复振荡,无法收敛,算法检查每次迭代中标签变化的节点数,并将变化节点数上升记作一次振荡,并根据网络规模设定最大振荡次数来终止迭代。

在实际应用中,可以使用如下公式,

oscillationmax=log10n,计算待划分网络的最大振荡次数其中,

oscillationmax为待划分网络的最大振荡次数;log10为以10为底的对数函数;n为待划分网络中的节点个数。

s103:针对每一个节点,利用所述节点的归一化边密度以及所述节点的归一化隶属度,获取所述节点的第一偏好权值;将所述第一偏好值作为所述节点的当前偏好值。

具体的,本步骤属于平衡传播阶段,这一阶段的目的是稳定社团核心节点的标签值,而让社团之间的桥节点的标签值振荡。

以节点i为例对本步骤进行说明,节点i属于社团c,社团c是由待划分网络中的部分标签值相同的节点连接而成的子网络。

可以利用公式,计算归一化社团密度,其中,

densitynorm(c)为社团c的归一化边密度;c为当前所有社团的集合;density(c)为社团c对应的社团密度,即社团内变数与最多可能边数的比值,且e(c)为社团c中的边的集合;v(c)为社团c中的节点的集合;||为势函数;minx∈c()为最小值求值函数;maxx∈c()为最大值求值函数;x为社团集合c中除社团c以外的其他社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度,其物理含义为节点社团内度数与节点数的比值;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

可以理解的是,某一节点的度数是指,处于同一社团中的与该节点连接的邻居节点的数量。

利用公式,wij=1+densitynorm(c)-loyaltynorm(i),获取所述节点的第一偏好权值,其中,

wij为节点i相对于节点j的第一偏好权值;densitynorm(c)为社团c的归一化边密度;loyaltynorm(i)为节点i的归一化隶属度。

s104:针对每一个节点,利用所述节点的归一化隶属度以及所述节点的度数中心度,获取所述节点的第二偏好权值;将所述第二偏好值作为所述节点的当前偏好值。

具体的,具体的,本步骤属于扩散传播阶段,在这一阶段,核心节点的标签迅速传播,加速算法收敛。

以节点i为例对本步骤进行说明,节点i属于社团c,社团c是由待划分网络中的部分标签值相同的节点连接而成的子网络。

可以利用公式,计算节点的度数中心度,其中,

centrality(i)为所述节点i的度数中心度,其物理意义为节点i的社团内度数与社团中内部度数最高的节点的度数的比值;din(i)为节点i的社团内度数,即节点i的在社团内的邻居节点的个数;max()为最大值求值函数;i为所述节点的编号;ci为节点i所属的社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+loyaltynorm(i)*centrality(i),获取所述节点的第二偏好权值,其中,

wij为节点i相对于节点j的第二偏好权值。

s105:根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;返回执行所述步骤s102,直至所述待划分网络中的各个节点都被划分到由标签值相同的节点组成的社团中。

具体的,1)、可以将s103步骤或者s104步骤中计算的节点i相对于节点j的第一偏好权值或者第二偏好权值作为当前偏好权值代入到下述公式中:

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻。

在实际应用中,α∈[0,1],从上述公式可以看出:

在t-1时刻先验社团结构信息中社团间节点对与社团内节点对的奖惩系数之比为当α=1时,两者奖惩系数之比为1,此时节点偏好权值仅考虑t时刻网络结构信息,不考虑前一时刻社团结构信息的影响,此时算法与rlpa算法等价。随着参数α减小,两者奖惩系数之比逐渐变小,前一时刻社团结构信息对标签权重的影响越来越大,即增大t-1时刻属于同一社团节点对在t时刻的标签权重,同时减小t-1时刻属于不同社团节点对在t时刻的标签权重,在计算节点间标签权重时奖励前一时刻的社团内节点对、惩罚前一时刻的社团间节点对。当α=0时,前一时刻社团结构信息的影响达到最大,两类节点对的奖惩系数比例降为0,此时,节点间标签权重仅考虑前一时刻属于同一社团的节点对偏好权值。

2)、利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

应用本发明上述实施例,通过奖惩系数,算法将前一时刻网络快照(网络拓扑结构)中的社团结构信息引入了当前时刻的社团检测过程,但并未考虑不同类型节点在时序变化中的差异。在网络演化过程中,网络结构的局部变化并不是均质的,一些节点的变化较大,另一些则变动较小,奖惩系数本身无法反映网络局部结构的变化差异。

为了解决这一问题,进一步的,

1)、可以先利用公式,计算所述节点在t时刻对应的网络结构,和所述节点在t-1时刻对应的网络结构之间的相似度,其中,

为节点i在t时刻对应的网络结构,和节点i在t-1时刻对应的网络结构之间的相似度;为t时刻时,节点i以及节点i的邻居节点的集合;为t-1时刻时,节点i以及节点i的邻居节点的集合;∩为交集;∪为并集。

上述公式计算的相似度为杰卡德系数,用于度量节点i的结构相似度。

可以看出,在两个连续的网络快照中,节点i的邻居节点变化越小,其在相邻两个时刻邻居节点变化越小,其时序结构相似度就越大。当节点i在t-1时刻和t时刻的邻居节点没有发生变化时,其时序结构相似度为1,即局部网络结构相同。

2)、再利用公式,计算所述节点和以及所述节点的邻居节点构成的节点对的时序置信度,其中,

为t时刻节点i和节点j构成的节点对的时序置信度;为节点j在t时刻对应的网络结构,和节点j在t-1时刻对应的网络结构之间的相似度;

t时刻节点对(i,j)的时序置信度为节点i的时序结构相似性与节点j的时序结构相似性的乘积,是度量当前时刻与前一时刻与节点对相关的局部网络结构差异指标。可以看出,当i节点和j节点的时序结构相似度均较大时,节点对(i,j)就具有较高的时序置信度,反之则具有较低的时序置信度。

3)、然后,再利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

从上述公式可以看出,在本发明实施例的一种具体实施方式中,对于无向无权网络,令有边相连的节点对的偏好权值为1,无边相连的节点对的偏好权值为0,此时,上述公式只需针对t时刻网络中存在的节点i和节点j之间的边计算节点偏好,可以得到:

此时,通过引入奖惩权重的累加和时序置信度,我们在lpa中结合了时序平滑信息以及网络结构变化的异质性信息,可以得到改进的社团检测算法elpa(evolutionarylabelpropagationalgorithm,改进的标签传播算法)。

4)、最后,利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

在对当前时刻的待划分网络中各个节点的标签值更新完成后,返回执行s102步骤,进行t+1时刻的各个节点的标签值的更新,当然,t+1时刻时待划分网络中的节点的数量相对于t时刻的节点的数量发生变化,或者在t+1时刻新增了某些节点。应用本发明实施例上述方法,直至待划分网络中各个节点的标签值都被更新。

为了进一步的对本发明实施例的具体实现进行说明,下面将本发明实施例的算法伪代码进行公开:

需要说明的是,

a.第4-10行,对所有节点进行初始化;

b.第11行,计算节点的burt约束系数,确定节点更新顺序;

c.第12-30行,计算网络中有连边节点对的连接偏好参数;

d.第31-53行,每个时间片的标签传播过程;

e.第55行,返回动态社团结构。

为了对本发明实施例的有益效果进行说明,下面从时间复杂度方面以及社团划分效果方面对本发明实施例进行详细说明。

(1)时间复杂度分析、

当旧网络中的节点集包含于新网络时,需要对所有存在连边的节点对计算时序结构相似度,此时该计算时间复杂度最高,为o(dmaxm),其中,dmax为网络中的最大节点度数。计算时序置信度时需要计算两个节点的时序相似度及其乘积,时间复杂度同样是o(dmaxm)。

标签更新迭代过程时间复杂度为o(km+n*d^2),其中k为算法的迭代次数,n为网络中的节点个数,d为网络中节点的平均度数。

综上所述,relpa的时间复杂度为o(dmaxm+km+n*d^2)。由于实际网络的稀疏性,节点的平均度数通常远小于节点数目n,可以视作常数。因此,本文算法在实际网络上的时间复杂度为o(dmaxm)。

(2)社团划分效果分析

实验采用邮件通信网络enron(美国安然公司邮件通信网络),其数据集链接为:http://www.cs.cmu.edu/~enron/;

还使用了科学家合作网络dblp(databasesystemsandlogicprogramming,计算机文件库)数据集链接http://projects.csail.mit.edu/dnd/dblp/。

表1列出了数据集的基本统计信息,如表1所示,

表1

enron数据集记录了安然公司的电子邮件通信,本实验考察2001年中12个月的数据。原始网络数据为有环有向多边无权图,每个节点代表一位安然员工,每条边代表一封邮件,方向为邮件发送方到接收方。在该动态网络数据中,本实验按月划分网络快照,节点集合包含网络中最大弱连通分支中的节点,忽略边的方向,合并节点对之间的边并删除所有的环,每条边的权值为1,共包含285个节点和23559条边。

dblp数据集记录了计算机领域论文合作情况,本实验考察其中2001年至2010年10年间的数据。原始网络数据为无环无向多边无权图,每个节点代表一位科学家,每条边代表一次论文合作。数据集按年划分,节点集合为整个网络中最大连通分支中的节点,合并节点对之间的边,每条边的权值为1,共包含420674个节点和3347038条边。

然后,将本发明实施例以及elpa(role-basedevolutionarylabelpropagationalgorithm,基于社团类型的改进的标签传播算法)的跃进衰减系数δ设置为0.10。奖惩系数α设置为0.5;评价指标中动态模块度系数设置为0.5。本实验对比了本发明实施例relpa(role-basedevolutionarylabelpropagationalgorithm,改进的标签传播算法)、elpa、lpa(labelpropagationalgorithm,标签传播算法)、facetnet(frameworkforanalyzingcommunitiesandtheirevolutionsindynamicnetworks,分析社团及其在动态网络中演化的框架)、dlpae(dynamicevolutionarylabelpropagationalgorithm,动态演化标签传播算法)五种算法在两个实际动态网络数据集上的表现。

图3为本发明实施例提供的一种基于安然公司的邮件通信网络的针对动态模块度的实验结果对比图;图4为本发明实施例提供的一种基于科学家合作网络的针对动态模块度的实验结果对比图;图5为本发明实施例提供的基于安然公司的邮件通信网络的所划分的社团数量的对比图;图6为本发明实施例提供的基于科学家合作网络的所划分的社团数量的对比图;如图3-6所示,

图3以及图4中横坐标对应不同时间点的网络快照,纵坐标表示结果对应的动态模块度值。由结果可以看出,五种演化社团检测算法在两类数据集上的表现均优于静态社团检测算法lpa,本发明实施例relpa表现最好。

图4以及图5中横坐标对应不同时间点的网络快照,纵坐标表示算法检测出的社团个数。其中facetnet算法针对多个社团个数取值进行检测,根据结果对应的软模块度值(softmodularity)选择最优社团个数,并在之后的社团检测中保持社团个数恒定。相对于静态社团检测算法lpa相比,三种动态社团检测算法(relpa、elpa、dlpae)在两个数据集上得到的社团个数变化趋势均更为平稳,其中,enron邮件数据集伴随了公司部门及人事变动,社团个数略有起伏,dblp计算机论文合作数据集伴随了学科的发展和科研团体的新增,社团个数呈现平稳的递增趋势。从图4和图5可以看出应用本发明实施例得到的社团数量的变化更为平滑,波动较小。

应用本发明图1所示实施例,在社团划分过程中,参考当前时刻的前一时刻时待划分网络的社团结构信息,根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;因此,前一时刻的社团划分结果会对当前时刻的社团划分结果产生影响,进而使相邻两个时刻的社团划分结果的差别不至于太大,因此,使社团划分结果在时序上较为平滑,相对于现有技术,可以提高社团划分的准确度。

另外,应用现有技术,由于引入了较多的随机性,当网络社团结构较弱时,扩散机制可能导致网络中的大部分节点隶属于同一社团,从而得到无意义结果。应用本发明实施例,引入了社团角色相关的度量作为节点偏好,利用局部指标调整节点更新策略,降低了了社团划分过程中的随机性,进而提高了本发明实施例对于社团结构较弱网络的社团划分能力。

最后,在现有技术中,静态网络中社团划分方法通常关注提高准确性或时间性能,而动态网络中的社团划分方法,除了准确性和时间性能,还需要考虑演化社团的时序平滑性,即连续时间片中检测出的社团结构不应有过大差异。为了满足时序平滑性,动态网络社团划分方法需要参考之前或之后网络快照中的社团结构信息,其中参考之前社团结构信息的称为在线(online)社团划分,反之称为离线(offline)社团划分。根据引入信息方式的不同,动态网络中的社团划分方法大致可以分为两类,图7为现有技术中动态网络社团划分方法的两种原理示意图;如图7所示,第一类基于局部的静态社团划分方法,针对微观层面的节点变化,对已检出的社团结构进行增量式更新。第二类方法通过改进已有的静态社团划分方法,在其中引入时序平滑约束或时序平滑导向的启发式规则,以利用之前或之后的社团结构信息。由于第一类方法只需要对网络局部进行更新,所以往往速度很快。但仅仅利用原子变化往往会引入偏差,多次执行后累积偏差会导致准确率迅速下降。第二类方法通常能准确找出有意义社团,但需要在整体网络上搜索解空间,时间性能可能不够理想。

针对动态网络中的社团划分问题,本发明实施例公开了一种基于标签扩散的时序平滑社团划分方法,其核心思想为在社团划分快速算法rlpa的基础上,结合已检测出的社团结构信息,有效提高了连续时间片中社团结构的时序平滑性,同时引入了演化过程中的结构变化差异信息,使得该算法能够快速准确地检测出动态网络中的演化社团结构。

与本发明图1所示实施例相对应,本发明实施例还提供了一种基于标签扩散的时序平滑社团划分装置。

图8为本发明实施例提供的一种基于标签扩散的时序平滑社团划分装置的结构示意图,如图8所示,所述装置包括:

获取模块801,用于获取待划分网络中的各个节点在当前时刻的前一时刻的标签值,其中,所述待划分网络是由所述节点连接而成的抽象网络;

获取当前次更新中标签值发生变化的节点数量,并根据所述节点数量更新标签值发生变化的节点数量的振荡次数,判断所述振荡次数是否大于预设阈值;

第一更新模块802,用于在所述获取模块801的判断结果为否的情况下,针对每一个节点,利用所述节点的归一化边密度以及所述节点的归一化隶属度,获取所述节点的第一偏好权值;将所述第一偏好值作为所述节点的当前偏好值;

第二更新模块803,用于在所述获取模块801的判断结果为是的情况下,针对每一个节点,利用所述节点的归一化隶属度以及所述节点的度数中心度,获取所述节点的第二偏好权值;将所述第二偏好值作为所述节点的当前偏好值;

划分模块804,用于根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;触发所述获取模块801,直至所述待划分网络中的各个节点都被划分到由标签值相同的节点组成的社团中。

应用本发明图7所示实施例,在社团划分过程中,参考当前时刻的前一时刻时待划分网络的社团结构信息,根据所述当前偏好权值、所述节点的邻居节点属于前一时刻的待划分网络或者所述节点不属于前一时刻的待划分网络,更新当前时刻所述节点的标签值;因此,前一时刻的社团划分结果会对当前时刻的社团划分结果产生影响,进而使相邻两个时刻的社团划分结果的差别不至于太大,因此,使社团划分结果在时序上较为平滑,相对于现有技术,可以提高社团划分的准确度。

在本发明实施例的一种具体实施方式中,所述获取模块801,用于:

获取待划分网络中的各个节点在当前时刻的前一时刻的标签值以及,获取所述节点的标签值的更新顺序,且,所述获取所述节点的标签值的更新顺序,包括:

利用公式,计算所述节点的burt约束系数,其中,

constraint(i)为节点i的burt约束系数;i为所述节点的序号;∑为求和函数;j为节点i的邻居节点的序号;vi为所述节点以及所述节点的邻居节点的集合;q为集合vi中第q个节点;piq为节点i与节点q之间的相对关联强度,且aiq为待划分网络的邻接矩阵中第i行第q列的元素;aqi为待划分网络的邻接矩阵中第q行第i列的元素;aik为待划分网络的邻接矩阵中第i行第k列的元素;aki为待划分网络的邻接矩阵中第k行第i列的元素;k为集合vi中的第k个节点;pqj为节点q与节点j之间的相对关联强度;

将所述节点的burt约束系数从大到小的顺序作为所述节点的标签值更新顺序。

在本发明实施例的一种具体实施方式中,所述第一更新模块802,用于:

利用公式,计算归一化社团密度,其中,

densitynorm(c)为社团c的归一化边密度;c为当前所有社团的集合;density(c)为社团c对应的社团密度,且e(c)为社团c中的边的集合;v(c)为社团c中的节点的集合;||为势函数;minx∈c()为最小值求值函数;maxx∈c()为最大值求值函数;x为社团集合c中除社团c以外的其他社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+densitynorm(c)-loyaltynorm(i),获取所述节点的第一偏好权值,其中,

wij为节点i相对于节点j的第一偏好权值。

在本发明实施例的一种具体实施方式中,所述第二更新模块803,用于:

利用公式,计算节点的度数中心度,其中,

centrality(i)为所述节点i的度数中心度;din(i)为节点i的社团内度数;max()为最大值求值函数;i为所述节点的编号;ci为节点i所属的社团;

利用公式,获取节点i的归一化隶属度,其中,

loyaltynorm(i)为节点i的归一化隶属度;loyalty(i)为节点i的隶属度,且din(i)为节点i的社团内度数;d(i)为节点i的度数;v为待划分网络中所有节点的集合;

利用公式,wij=1+loyaltynorm(i)*centrality(i),获取所述节点的第二偏好权值,其中,

wij为节点i相对于节点j的第二偏好权值。

在本发明实施例的一种具体实施方式中,所述划分模块804,用于:

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

在本发明实施例的一种具体实施方式中,所述划分模块804,用于:

利用公式,计算所述节点在t时刻对应的网络结构,和所述节点在t-1时刻对应的网络结构之间的相似度,其中,

为节点i在t时刻对应的网络结构,和节点i在t-1时刻对应的网络结构之间的相似度;为t时刻时,节点i以及节点i的邻居节点的集合;为t-1时刻时,节点i以及节点i的邻居节点的集合;∩为交集;∪为并集;

利用公式,计算所述节点和以及所述节点的邻居节点构成的节点对的时序置信度,其中,

为t时刻节点i和节点j构成的节点对的时序置信度;为节点j在t时刻对应的网络结构,和节点j在t-1时刻对应的网络结构之间的相似度;

利用公式,更新所述节点相对于所述节点的邻居节点的标签权重,其中,

为当前时刻t时所述节点相对于所述节点的邻居节点的标签权重;为当前时刻t时,所述节点相对于所述节点的邻居节点的当前偏好权值;gt-1为前一时刻对应的待划分网络;α为预设的奖惩系数;为t-1时刻节点i所属的社团;为t-1时刻节点j所属的社团;t为时刻;

利用公式,更新所述节点的在当前时刻时的标签值,其中,

li为节点i在当前时刻时更新后的标签值;argmax为寻找具有最大评分的参量的函数;nl(i)为节点i的邻居节点中标签值为l的节点的集合;si(lj)为节点i上标签值为l是的衰减值。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1