一种动态网络社区发现方法及装置与流程

文档序号:12278452阅读:390来源:国知局
一种动态网络社区发现方法及装置与流程

本发明涉及互联网通信领域,特别涉及一种动态网络社区发现方法及装置。



背景技术:

网络可以抽象为,由节点和边构成的集合,节点是社会网络中的个体,边则是个体与个体之间的某种联系关系。网络具有一种社区特性,即网络中的一个子网络结构,该结构内部点与点之间的联系紧密程度较高,而该结构与其外部相邻节点的联系比较松散。社区发现就是找出网络中这些内部联系紧密的子网络结构。社区发现技术有很多重要的作用,比如能用在推荐系统中,找出具有相同兴趣爱好的人,并推荐他们可能感兴趣的产品。

近年来,随着动态网络重要性的日益凸显,针对例如Email网络,社交网络等动态网络的社区发现方法研究日渐增多。然而目前大部分的社区发现算法依赖于人为输入辅助参数,例如输入社区数、阈值信息或者其他距离参数等来控制网络社区的发现。比如,经典的k-means(K均值算法)算法,该算法要求事先指定分组数目;Canopy(基于距离的聚类算法)算法要求输入距离参数T1,T2;针对动态网络的算法如HOCtracker(核心节点跟踪聚类算法),该算法按照一定规则将核心节点所在的社区进行合并或者分裂,而衡量核心节点标准的参数η∈(0,1)要求事先输入。

人为输入的辅助参数在很大程度上影响甚至决定最终的社区分组,初始输入的辅助参数不同使相同的网络结构,经过计算会得到不同的社区发现结果。这种方法对输入的辅助参数敏感,客观性较差,不能广泛应用于所有的复杂网络。



技术实现要素:

本发明实施例的目的在于提供一种动态网络社区发现的方法和装置,在进行动态网络社区发现时不需要人为的输入辅助参数,不存在对输入的辅助参数敏感的问题,并且动态网络社区发现方法具有客观性较好,可广泛地应用于所有的复杂网络。

为达到上述目的,本发明实施例公开一种动态网络社区发现方法,包括如下步骤:

获取初始网络结构、第一相似度集合及第一概率参数,其中,所述初始网络结构包括:多个第一节点、第一节点之间的边,以及所述第一节点之间的边对应的第一权值,所述第一相似度集合为所述每条边两端的两个第一节点的相似度所组成的集合;

获取所述初始网络结构变化后的网络结构,其中,所述变化后的网络结构包括:多个第二节点、第二节点之间的边,以及所述第二节点之间的边对应的第二权值;

比较所述多个第一节点与所述多个第二节点,并比较所述第一节点之间的边及所述第二节点之间的边,确定所述变化后的网络结构中的变化节点集合;

根据所述第二权值,通过第一预设公式,分别计算所述变化节点集合中每个变化节点、与每个变化节点连接的邻居节点的相似度,得到所有变化节点与所述变化节点连接的邻居节点的相似度组成的第二相似度集合,其中,所述每个变化节点分别连接多个邻居节点;

根据所述第二相似度集合以及所述第一概率参数,通过第二概率参数公式,得到第二概率参数;

根据所述第二概率参数和所述变化后的网络结构的第三相似度集合,通过第二预设公式,确定所述变化后的网络结构中每条边两端的第二节点属于同一社区的第一概率,其中,所述第三相似度集合包括:所述第二相似度集合及除所述第二相似度集合以外的其他第二节点的相似度;

比较每条边两端的第二节点的相似度与所述每条边两端的第二节点的相似度对应的第一概率,将所述每条边两端的第二节点的相似度大于或等于所述对应的第一概率的边、两端的第二节点划分为同一社区,遍历所述变化后的网络结构的所有边,发现动态网络社区。

本发明实施例公开一种动态网络社区发现装置,包括:

初始网络结构获取模块,用于获取初始网络结构、第一相似度集合及第一概率参数,其中,所述初始网络结构包括:多个第一节点、第一节点之间的边,以及所述第一节点之间的边对应的第一权值,所述第一相似度集合为所述每条边两端的第一节点的相似度所组成的集合;

动态网络结构获取模块,用于获取所述初始网络结构变化后的网络结构,其中,所述变化后的网络结构包括:多个第二节点、第二节点之间的边,以及所述第二节点之间的边对应的第二权值;

网络结构比较模块,用于比较所述多个第一节点与所述多个第二节点,并比较所述第一节点之间的边及所述第二节点之间的边,确定所述变化后的网络结构中的变化节点集合;

第一相似度获取模块,用于根据所述第二权值,通过第一预设公式,分别计算所述变化节点集合中每个变化节点、与每个变化节点连接的邻居节点的相似度,得到所有变化节点与所述变化节点连接的邻居节点的相似度组成的第二相似度集合,其中,所述每个变化节点分别连接多个邻居节点;

第一概率参数获取模块,用于根据所述第二相似度集合以及第一概率参数,通过第二概率参数公式,得到第二概率参数;

第一概率获取模块,用于根据所述第二概率参数和所述变化后的网络结构的第三相似度集合,通过第二预设公式,确定所述变化后的网络结构中每条边两端的第二节点属于同一社区的第一概率,其中,所述第三相似度集合包括:所述第二相似度集合及除所述第二相似度集合以外的其他第二节点的相似度;

动态网络社区发现模块,用于比较每条边两端的第二节点的相似度与所述每条边两端的第二节点的相似度对应的第一概率,将所述每条边两端的第二节点的相似度大于或等于所述对应的第一概率的边、两端的第二节点划分为同一社区,遍历所述变化后的网络结构的所有边,发现动态网络社区。

由上述发明实施例可见,基于相似度算法来进行动态网络社区发现,整个过程中获得的初始网络结构和动态网络结构是发现网络社区的必要数据,并不是辅助参数。所以在整个动态网络社区发现不需要人为输入辅助参数,使得动态网络社区发现方法具有较好的客观性。可以广泛的应用于所有的复杂网络。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

图1是本发明实施例提供的动态网络社区发现方法的一种流程图;

图2是本发明实施例提供的第二概率参数计算方法的一种流程图;

图3是本发明实施例提供的相似度计算过程的一种流程图;

图4是本发明实施例提供的边对应的两个节点及其相邻节点关系示意图;

图5是本发明实施例提供的动态网络社区发现方法的另一种流程图;

图6是本发明实施例提供的发现初始网络社区方法的一种流程图;

图7是本发明实施例提供的跟踪动态网络社区结构方法的一种流程图;

图8是本发明实施例提供的发现动态网络社区装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种动态网络社区发现的方法及装置。该发明实施例通过获得的初始网络结构,获取初始网络结构中每条边对应的两个节点的相似度,然后基于相似度结果,获得两个节点属于同一个社区的第二概率,最后将相似度大于第二概率的边所连接的两个节点划分到同一个社区。当初始网络结构发生动态变化后,重新获得变化后的网络结构,将变化后的网络结构与初始网络结构进行对比得到变化节点集合,对变化节点集合中的每个点,重新计算变化节点集合中的每个点与相连的邻居节点相似度,依据重新计算的相似度和第一概率,将相似度大于第一概率的两个节点划分到同一个社区,更新社区划分的结果,从而发现动态网络社区。

下面通过具体实施列,对本发明进行详细说明。

如图1,图1是本发明实施例提供的动态网络社区发现方法的一种流程图;

步骤101,获取初始网络结构、第一相似度集合及第一概率参数,其中,初始网络结构包括:多个第一节点、第一节点之间的边,以及第一节点之间的边对应的第一权值,第一相似度集合为每条边两端的两个第一节点的相似度所组成的集合。

网络结构是由节点以及节点之间的连接关系构成。节点之间的连接关系定义为边。初始网络结构中的节点为第一节点,第一节点之间的连接关系为第一节点之间的边。

根据边是否有方向,网络结构可以分为有向或者无向网络结构。根据边上是否有权值,可以分为有权或者无权网络结构。

用G=(V,E,W)为一个无向有权网络结构,其中,V和E分别为网络结构中的节点和节点之间的边的集合,W为对应的边的权值集合。i,j∈V代表节点i和节点j属于本网络结构中的节点集合,ei,j代表节点i和节点j之间的边,ei,j∈E为边ei,j属于本网络结构中的边集合,w(i,j)代表边ei,j的权值。

本发明实施例中采用无向有权网络作为实例来说明本发明中的方法,但是本发明的适用范围不仅限于无权有向网络。

对于无权网络,W集合本身为空,可以通过指定默认权值或者设定权值的方式给每条边赋权值。

对于有向网络,可以转换成无向图。对只有单向连接的节点之间的边,例如,节点i和节点j之间存在节点i指向节点j的边,且不存在节点j指向节点i的边,则将节点i和节点j之间的边直接转换成一条无向的边;对于双向连接的节点之间的边,例如,节点i和节点j之间存在节点i指向节点j的边,且存在节点j指向节点i的边,则用一条无向的边取代节点i和节点j之间的两条边。

当第一次获得网络结构时,认为获得的网络结构为初始网络结构,初始时间为t,设为G(t)=(V(t),E(t),W(t))。V(t)和E(t)分别为t时刻网络结构中的第一节点和第一节点之间的边的集合。所述获得网络结构,可以是用户输入网络结构,也可以通过其他方法获得。

经过对初始网络结构进行初始网络社区发现,获得第一相似度集合,以及第一概率参数。

通过该步骤可以完成对初始网络结构的社区发现,为动态网络结构的社区发现奠定了基础。

需要说明的是,本发明实施例中所述的初始网络结构不仅可以是没有进行过网络社区发现的网络结构,也可以是已经按发明实施例中的方法进行了网络社区发现的网络结构,所以,不失一般性的,可以将初始网络结构解释为上一时刻的网络结构。当然,当初始网络结构是已经经过网络社区发现的网络结构时,在本步骤中,不需要再次对其进行网络社区发现,并直接获得第一相似度集合,以及第一概率参数。

由于所获得的网络结构可以无向有权网络,也可以为无权网络和有向网络,所以本发明实施例可以广泛的应用于各种网络结构。

步骤102,获取初始网络结构变化后的网络结构,其中,变化后的网络结构包括:多个第二节点、第二节点之间的边,以及第二节点之间的边对应的第二权值。

网络结构随时间发生变化的网络结构称为动态网络结构,在每一个时间点上是一个静态网络结构。使用G(t+1)=(V(t+1),E(t+1),W(t+1))表示动态网络结构,(t+1)为时间,G(t+1)=(V(t+1),E(t+1),W(t+1))表示在t+1时刻的网络结构,V(t+1)和E(t+1)分别为t+1时刻网络结构中的第二节点和第二节点之间的边的集合,W(t+1)为对应的边的当前时刻的权值集合。

需要说明的是,初始网络结构作为上一时刻的网络结构,本步骤中变化后的网络结构,即作为当前时刻的网络结构。

步骤103,比较多个第一节点与多个第二节点,并比较第一节点之间的边及第二节点之间的边,确定变化后的网络结构中的变化节点集合。

对比上一时刻t的初始网络结构G(t)和当前时刻t+1的变化后的网络结构G(t+1),将连接关系发生改变的节点存储于变化节点集合,作为变化节点。

其中,连接关系变化的情况是包括增加边和删除已有边,其中增加边包括以下三种情况。

第一种情况,增加的边连接的两个节点均在上一时刻存在,即k(t),l(t)∈V(t)且在t+1时刻,k(t),l(t)相应变为k(t+1),l(t+1),且k(t+1),l(t+1)增加连边

第二种情况,增加的边连接的两个节点中有一个节点上一时刻存在,不失一般性,设k(t)∈V(t)且显而易见的k(t),l(t)之间不存在连边,在t+1时刻,k(t)相应变为k(t+1),同时增加新节点l(t+1),并且增加边连接节点k(t+1),l(t+1)

第三种情况,增加的边连接的两个节点均为当前时刻新加入网络结构的节点,即k(t),在t+1时刻,新增节点k(t+1),l(t+1),且k(t+1),l(t+1)之间存在连边

删除边的情况下,两个节点都应该为网络中已存在的节点,即k(t),l(t)∈V(t)且在t+1时刻,k(t),l(t)相应变为k(t+1),l(t+1),且删除k(t+1),l(t+1)之间的连边

在上述情况中,涉及到边两端的两个节点k(t+1),l(t+1)均要存储于变化节点集S(t+1),称为变化节点。

需要说明的是,k(t+1),l(t+1)只是举例说明,代表网络中的任意两个节点,不是特指。

步骤104,根据第二权值,通过第一预设公式,分别计算变化节点集合中每个变化节点、与每个变化节点连接的邻居节点的相似度,得到所有变化节点与变化节点连接的邻居节点的相似度组成的第二相似度集合,其中,每个变化节点分别连接多个邻居节点。

对变化点集合中的一个节点,获得该节点的所有邻居节点,邻居节点是指与该节点相连接的节点。

通过第一预设公式计算该节点与每一个邻居节点的相似度,并将该相似度存储于第二相似度集合。

遍历变化点集合中的每一个节点,使得所有变化节点与该变化节点连接的所有邻居节点的相似度,都存储于第二相似度集合。

步骤105,根据第二相似度集合以及第一概率参数,通过第二概率参数公式,得到第二概率参数;

经过步骤104可以得到第二相似度集合,经过步骤101可以获得第一概率参数,通过第二概率参数公式,可以得到第二概率参数,第二概率参数用于计算每条边两端的节点属于同一社区的第一概率。

步骤106,根据所述第二概率参数和所述变化后的网络结构的第三相似度集合,通过第二预设公式,确定所述变化后的网络结构中每条边两端的第二节点属于同一社区的第一概率,其中,所述第三相似度集合包括:所述第二相似度集合及除所述第二相似度集合以外的其他第二节点的相似度。

当前t+1时刻变化后的网络结构中每条边两端的第二节点的相似度均存储于第三相似度集合,再根据上一步骤中得到的第二概率参数,按第二预设公式可以得到所述第一概率。第一概率一个取值在(0,1)之间的实数,表示在当前网络结构条件下,该相似度对应的两个节点在同一个社区的概率值。

该步骤中,所有计算的过程不需要引入认为设定的参数,保证了计算过程的客观性。

步骤107,比较每条边两端的第二节点的相似度与所述每条边两端的第二节点的相似度对应的第一概率,将所述每条边两端的第二节点的相似度大于或等于所述对应的第一概率的边、两端的第二节点划分为同一社区,遍历所述变化后的网络结构的所有边,发现动态网络社区。

在变化后的网络结构中的边集合中获得一条边,比较该条边两端的第二节点的相似度是否大于或等于该条边两端的第二节点的相似度对应的第一概率,并且判断该条边两端的第二节点否在一个社区中。

当该条边两端的第二节点的相似度大于或等于该条边两端的第二节点的相似度对应的第一概率,且该条边对应的两个第二节点不在同一个社区,则将该条边两端的第二节点分别所在的社区合并为一个社区。

遍历当前t+1时刻变化后的网络结构边的集合中所有的边,则完成发现动态网络社区。

在本实施列中,所以用于网络社区发现的参数,均通过网络结构的本身具有的特征计算而来,没有引入任何认为设定的参数,从而保证了较好的客观性。使得该网络社区发现方法可以广泛的应用于所有的复杂网络。

如图2,图2是本发明实施例提供的第二概率参数计算方法的一种流程图;

步骤201,获得当前时刻的网络结构G(t+1)=(V(t+1),E(t+1),W(t+1)),获得前一时刻的网络结构G(t)=(V(t),E(t),W(t)),获得变化节点集合S(t+1),获得第二相似度集合C(t+1),获得第一概率参数b(t)。以上所有参数,集合及网络结构均为已知。

步骤202,根据公式:计算参数β,其中|S(t+1)|为变化点集合中节点的总个数,|V(t)|为前一时刻网络结构中第一节点的总个数,t为时间,用于区分不同时刻的网络结构,t+1为t时刻的下一时刻,用于为网络结构经过一定时间的变化,此处t表示初始网络结构,即可以解释为上一时刻的网络结构,t+1表示所述初始网络结构经过变化后的网络结构,即可以解释为当前时刻的网络结构。

参数β表示当前网络结构与前一时刻网络结构的相关程度。

考虑到动态网络结构的特性,当前时刻获得的网络结构,不能割裂的看成一个独立的网络结构。当前时刻的网络结构与之前时刻的网络结构具有一定的相关性,为了利用这种相关性,定义了参数β,虽然在β的计算定义式中,仅仅使用了当前时刻以及前一时刻的网络信息,但是在后续第二概率参数b(t+1)的计算过程中,由于参数β的存在,建立了当前时刻网络结构中b(t+1)与之前多个时刻的网络结构的联系。

步骤203,判断参数β是否小于等于0。

步骤204,当β≤0时,根据公式:得到第二概率参数,其中b(t+1)为第二概率参数,为第二节点m和第二节点n的相似度,C(t+1)为第二相似度集合,为相似度属于第二相似度集合C(t+1),|C(t+1)|为第二相似度集合中相似度的数量。

如果β≤0,说明当前时刻的网络结构与前一时刻的网络结构相关性很小甚至不具有相关性。当前时刻网络结构G(t+1)相对于上一时刻网络结构G(t),发生了剧烈显著的改变,这种情况下上一时刻网络结构G(t)的第一概率参数b(t)对后续计算没有实际意义。当前时刻的网络结构G(t+1)可以视为一个新的动态变化起点,按照上述的第二概率参数计算公式计算b(t+1)。需要注意的是,此处将当前时刻的网络结构G(t+1)视为了一个新的动态变化起点。

步骤205,当β>0时,根据公式:得到第二概率参数;其中,参数β表示当前网络结构与前一时刻网络结构的相关程度,|S(t+1)|为所述变化点集合中节点的总个数,|V(t)|为初始网络结构或前一时刻网络结构中第一节点的总个数,b(t+1)为第二概率参数,b(t)为第一概率参数,为第二节点m和第二节点n的相似度,C(t+1)为第二相似度集合,为相似度属于第二相似度集合C(t+1),|C(t+1)|为第二相似度集合中相似度的数量。

如果β>0,说明当前时刻的网络结构与前一时刻的网络结构具有一定的相关性,当前网络结构G(t+1)相对于前一时刻网络结构G(t),结构上基本保持相似,局部有变化,这种情况下,前一时刻网络结构G(t)下计算的第一概率参数影响后续计算。为了表示这种相关性,在计算第二概率参数b(t+1)时,使用参数β引入了上一时刻的第一概率参数b(t)的值。虽然公式中只使用了上一时刻的参数,但是上一时刻的第一概率参数b(t)也与b(t-1)有关,所以根据递推关系,可以看出,b(t+1)与b(t),b(t-1)……有关。这个相关的概率参数的长度与每次计算的参数β有关,在上面已经说明,如果β≤0,则会把这种相关性截断。

在本实施例中,通过参数β表示了当前网络结构与前一时刻网络结构的相关程度。可以更加严谨合理的计算第二概率参数,从而使得最终的网络社区发现的结果更加合理客观。

优选的,本发明实施例的动态网络社区发现方法中,根据所述第二概率参数和所述变化后的网络结构的第三相似度集合,通过第二预设公式,确定所述变化后的网络结构中每条边两端的第二节点属于同一社区的第一概率,包括:

第一步,比较所述多个第一节点与所述多个第二节点,并比较所述第一节点之间的边与所述第二节点之间的边,获取所述变化后的网络结构中第二节点之间的没有变化边以及所述没有变化边两端没有变化的第二节点;

第二步,获取并合并所述第一相似度集合中、与所述没有变化的第二节点相同的第一节点的相似度、至所述第二相似度集合,形成所述第三相似度集合;

第二相似度集合中仅包括了所有变化节点与所有变化节点的所有邻居节点的相似度,并没有含有变化后的网络结构,即当前时刻网络结构中每条边两端的第二节点的相似度。

对于原有连接关系没有发生变化的边,其两端的第二节点的相似度保留上一次计算结果,并将相似度数据从第一相似度集合,合并至第二相似度集合中,组成第三相似度集合。至此,变化后的网络结构,即当前时刻网络结构中边的集合中的每一条边两端的第二节点的相似度都存在于第三相似度集合中。从所述第三相似度集合中,可以获得所述变化后的网络结构中每条边两端第二节点的相似度。

第三步,根据所述第三相似度集合,通过第二预设公式,确定所述变化后的网络结构中每条边两端的第二节点属于同一社区的所述第一概率。

优选的,本发明实施例的动态网络社区发现方法中,获取初始网络结构,包括:

首先,获取网络结构,其中,网络结构包括:多个节点、每两个节点之间的边,以及两个节点之间的边对应的权值。

其中的网络结构不仅可以是没有进行过网络社区发现的网络结构,也可以是已经按本实施列提供的方法进行了网络社区发现的网络结构,所以,不失一般性的,可以将本步骤获得的网络结构解释为上一时刻的网络结构。当然,当获取的网络结构是已经经过网络社区发现的网络结构时,不需要再次对初始网络结构进行网络社区发现,并直接获得第一相似度集合,以及第一概率参数。当获取的网络结构是没有进行过网络社区发现的网络结构时,按下述步骤进行初始网络社区发现。

其次,根据两个节点之间的边对应的权值,通过第一预设公式,得到边两端的节点的相似度,并将所有边两端的节点的相似度组成第一相似度集合。

在获得的网络结构的边集合中获得一条边,通过第一预设公式计算该条边两端的节点的相似度,并将该相似度存储于第一相似度集合。

遍历网络结构的边的集合中所有的边,则获得了每一条边两端的节点的相似度,且均存储于第一相似度集合。

然后,根据第一相似度集合,通过第一概率参数公式,得到第一概率参数;

根据第一相似度集合中所有的相似度,通过第一概率参数公式,经过计算,可以获得第一概率参数。

再然后,根据第一概率参数和网络结构中每条边两端的两个节点的相似度,通过第二预设公式,确定每条边两端的节点属于同一社区的第二概率;

其中,获取的网络结构中每条边对应的两个节点的相似度从第一相似度集合中得到,根据每条边对应的两个节点的相似度和第一概率参数,通过第二预设公式,得到每条边对应的两个节点属于同一社区的第二概率。

第二概率是一个取值在(0,1)之间的实数,表示的是在该网络结构条件下,一条边的两端节点属于同一个社区的概率值。

最后,分别比较每条边两端的节点的相似度与每条边两端的节点的相似度对应的第二概率,将每条边两端的节点的相似度大于或等于对应的第二概率的边、两端的节点划分为同一社区,遍历网络结构的所有边,发现初始网络社区。

从获得的网络结构的边的集合中得到一条边,判断该条边两端的节点的相似度是否大于或者等于该条边两端的节点的相似度对应的第二概率,并且该条边对应的两个节点是否在一个社区中;

如果该条边两端的节点的相似度大于或等于该条边两端的节点的相似度对应的第二概率,并且,该条边对应的两个节点不在一个社区,则将该条边两端的节点分别所在的社区合并为一个社区;

遍历网络结构中边的集合中所有的边,完成发现初始网络社区。

上述步骤中,在边的集合中选取边的具体过程中,选取边的顺序不影响结果。

通过对初始网络结构进行社区发现,奠定了进行动态网络社区发现的基础。当初始网络结构随时间发生了动态变化后,就可以进行动态网络社区发现。

如图3,图3是本发明实施例提供的相似度计算过程的一种流程图。

相似度衡量的是两个节点之间的相似度,两个节点之间可以存在连边也可以不存在连边。在计算时获取两个节点,如第三节点u和第四节点v,也可以获取一条边eu,v,当获取的为边eu,v时,则计算这条边上的两个节点的相似度,其中,第三节点为第一节点或第二节点,第四节点为第一节点或第二节点,第四节点及第三节点同属于同一网络结构。

步骤301,获取第三节点的第一邻居节点集及第四节点的第二邻居节点集。

第三节点u的第一邻居节点集合为N(u),第四节点v的第二邻居节点集合为N(v),N(u)是与第三节点u相连的节点的集合,即为第三节点u的第一邻居集合,N(v)是与第四节点v相连的节点的集合,即为第四节点v的第一邻居集合。

步骤302,对第一邻居节点集和第二邻居节点集取交集,得到第一集合。

对N(u)和N(v)取交集,得到的第一集合记为N(u)∩N(v)。

步骤303,对第一邻居节点集和第二邻居节点集取并集,得到第二集合。

对N(u)和N(v)取并集,得到的第二集合记为N(u)∪N(v)。

步骤304,第二集合中去除第二邻居点集中的节点,得到第三集合。

在N(u)∪N(v)中删掉N(v)中的节点,结果为第三集合记为(N(u)-N(v))。

步骤305,第二集合中去除第一邻居点集中的节点,得到第四集合。

在N(u)∪N(v)中删掉N(u)中的节点,结果为第四集合记为(N(v)-N(u))。

步骤306,获得第一集合中的每个节点到第三节点的第一权值之和与第一集合中的所有节点到第四节点的第二权值之和,将第一权值之和及第二权值之和求和,作为获得第一参数。

对第一集合N(u)∩N(v)中的节点,求每个节点到第三节点u的第一权值和,求每个节点到第四节点v的第二权值和,并对第一权值和、第二权值和求和,记为第一参数Wu,v。用公式表示为:

其中,Wu,v为第一参数,p为第一集合中的节点,w(u,p)为节点p到第三节点u的权值,w(v,p)为节点p到第四节点v的权值。

步骤307,对第三集合中的节点,求对每个节点到第三节点的权值和,获得第二参数。

对第三集合(N(u)-N(v))中的节点,求对每个节点到第三节点u的权值和,记为第二参数Wu-v。用公式表示为其中Wu-v为第二参数,x为第三集合中的节点,w(u,x)为节点x到节点u的权值。

步骤308,对第四集合中的节点,求对每个节点到第四节点的权值和,获得第三参数。

对第四集合(N(v)-N(u))中的节点,求对每个节点到第四节点v的权值和,记为第三参数Wv-u。用公式表示为其中Wv-u为第三参数,y为第三集合中的节点,w(v,y)为节点y到节点v的权值。

步骤309,根据第一预设公式:得到第三节点和第四节点的相似度。

其中,u为第三节点,v为第四节点,cu,v为第三节点和第四节点的相似度,Wu,v为第一参数,Wu-v为所述第二参数,Wv-u为所述第三参数。

下面,对Wu,v、Wu-v、Wv-u进行详细说明。如图4,图4是本发明实施例提供的边对应的两个节点及其相邻节点关系示意图。

节点p 403,当p∈N(u)且p∈N(v)时,用p∈N(u)∩N(v)表示这种关系。说明节点p 403是第三节点u 401和第四节点v402的公共邻居,节点p 403、第三节点u 401和第四节点v 402构成三角关系。

节点x 404,当x∈N(u)并且时,用x∈(N(u)-N(v))表示这种关系。节点x 404仅仅是第三节点u 401的邻居,不是第四节点v402的邻居。

节点y 405,当y∈N(v)并且时,用y∈(N(v)-N(u))表示这种关系。节点y 405仅仅是第四节点v402的邻居,不是第三节点u 401的邻居。

根据以上的三种点的集合定义,Wu,v,Wu-v,Wv-u分别表示不同意义的权值和。

是与第三节点u 401和第四节点v 402都相连的节点,用p代表这一类节点,到所述两个节点的权值和。衡量的是两个节点亲密的程度。

是第三节点u 401的邻居中不与第四节点v 402相连的一类节点到第三节点u 401的权值和。

是第四节点v 402的邻居中不与第三节点u 401相连的一类节点到第四节点v402的权值和。

Wu-v,Wv-u衡量的是两个节点的疏离程度。

第一预设公式中,用两个节点亲密程度与整体权值的比值表征两个节点相似的程度。如果两个节点的邻居集合完全重叠,则两个节点相似度为1。如果两个节点的邻居集合完全不重叠,则这两个节点的相似度为0。

优选的,本发明实施例的动态网络社区发现方法中,第一概率参数公式为:

其中b(t)为第一概率参数,u为第三节点,v为第四节点,所述为网络结构中第三节点和第四节点之间的边,E(t)为网络结构中所有边的集合,为第三节点和第四节点的相似度,|E(t)|为网络结构中所有边的集合中边的数量,t为时间,用于区分不同时刻的网络结构。

优选的,本发明实施例的动态网络社区发现方法中,第二预设公式为:

其中,u为第三节点,v为第四节点,f(cu,v,b)为第三节点和第四节点属于同一社区的概率,cu,v为第三节点和第四节点的相似度,b为概率参数,概率参数为第一概率参数或第二概率参数。

在发现初始网络社区过程中,第二预设公式为:

其中为第二概率,b(t)为第一概率参数。

在发现动态网络社区的过程中,第二预设公式为:

其中为第一概率,b(t+1)为第二概率参数。

如图5,图5是本发明实施例提供的动态网络社区发现方法的另一种流程图。

步骤501,获得初始网络结构,当第一次获得网络结构时,认为获得的网络结构为初始网络,初始时间为0,设为G(0)=(V(0),E(0),W(0)),V(0)为初始网络结构中第一节点的集合,E(0)为第一节点之间边的集合,W(0)为每条边对应的权值的集合。

步骤502,发现初始复杂网络社区。

步骤502,发现初始网络社区。具体的实现过程如图6,图6是本发明实施例提供的发现初始网络社区方法的一种流程图。

步骤601,初始时设t=0,建立第一相似度值集合C(0)

步骤602,在所获得的初始网络结构边集合E(0)中获得一条边,通过第一预设公式计算该条边两端的第一节点的相似度,并将该条边两端的第一节点的相似度存储于第一相似度集合C(0)中。

步骤603,判断是否遍历了边的集合E(0)中所有的边,若没有遍历边的集合E(0)中所有的边,则重复执行步骤602,直到边的集合E(0)中的所有边两端的第一节点都计算过相似度。

步骤604,根据第一相似度集合C(0)中的相似度,通过第一概率参数公式,计算第一参数b(0)

在本步骤中,经过步骤602和步骤603后,边的集合E(0)中每条边两端的两个第一节点的相似度为已知,且该相似度都存在于第一相似度集合C(0)中。

步骤605,在边的集合E(0)中选择一条边,在第一相似度集合C(0)中,得到该条边两端的第一节点的相似度,然后根据步骤604中得到的第一概率参数b(0)和该边两端的第一节点的相似度,计算该边两端的第一节点属于同一社区的的第二概率。

步骤606,判断该条边两端的第一节点的相似度是否大于或者等于该条边两端的第一节点的相似度对应的第二概率,并且该条边两端的第一节点是否在同一个社区中。

步骤607,如果该条边两端的第一节点的相似度大于或等于该条边两端的第一节点的相似度对应的第二概率,并且该条边对应的两个第一节点不在一个社区中,则将该条边对应的两个第一节点分别所在的社区合并为一个社区。

步骤608,判断是否遍历了边的集合E(0)中所有的边,若没有遍历边的集合E(0)中所有的边,则重复执行步骤605至步骤608,直到遍历E(0)中的所有边;

步骤609,若已经遍历了所述边的集合E(0)中所有的边,则完成了发现初始网络社区。

步骤503,判断是否获得动态变化后的网络结构。完成发现初始网络社区后,针对初始网络结构就已经完成了社区发现。此时需要判断是否获得了动态变化后的网络结构,若获得了所述动态变化后的网络结构,则进行下一步:跟踪动态网络社区结构504。若不再获得动态变化后的网络结构,则可以认为已经完成了网络社区发现。

步骤504,跟踪动态网络社区结构。具体的实现过程如图7,图7是本发明实施例提供的跟踪动态网络社区结构方法的一种流程图。

设当前时刻为t+1,相应的前一时刻为t,以这个实施例说明发现动态网络社区的一般过程,t取值为0,1,2……t。步骤503中,已经获得动态变化后的网络结构G(t+1)=(V(t+1),E(t+1),W(t+1)),而前一时刻t的网络结构为G(t)=(V(t),E(t),W(t)),该网络结构可以是初始网络结构G(0)=(V(0),E(0),W(0))经过第一时间变化后的网络结构,也可以是已经经过本实施列提供的方法进行过网络社区发现的网络结构经一定时间变化后的网络结构。

步骤701,建立变化节点集合S(t+1)。对比前一时刻t的网络结构G(t)和当前时刻t+1的网络结构G(t+1),将连接关系发生改变的节点存储于变化点集合S(t+1),设为变化节点;

步骤702,在所述变化点集S(t+1)中获得一个节点u1(t+1),用公示表示为u1(t+1)∈S(t+1),并建立节点u1(t+1)的邻居点集

步骤703,在节点u1(t+1)的邻居点集中获得一个点v1(t+1),用公式表示为节点u1(t+1)和节点v1(t+1)之间的边为计算边的两端的第二节点的相似度并建立第二相似度集合C(t+1),并将相似度放入第二相似度集合C(t+1)

其中,邻居点集是节点u1(t+1)在t+1时刻所有邻居节点的集合。节点v1(t+1)与节点u1(t+1)在t+1时刻相连,即节点v1(t+1)是节点u1(t+1)在t+1时刻的邻居节点。

步骤704,判断是否遍历了节点u1(t+1)的邻居点集中的所有节点,若没有遍历节点u1(t+1)的邻居点集中的所有节点,则重复步骤703,直到节点u1(t+1)与所述邻居点集中的所有节点的相似度都存储于第二相似度集合C(t+1)

步骤705,判断是否遍历了变化节点集合S(t+1)中的每一个节点,若没有遍历了变化节点集合S(t+1)中的每一个节点,则重复步骤702至步骤705,直到变化节点集合S(t+1)中的每一个节点与该节点对应的邻居点集的每一个节点的相似度都存储于所述相似度集合C(t+1)

步骤706,利用所述相似度集合C(t+1)中的数据,获得第二概率参数b(t+1)

步骤707,对比前一时刻t的网络结构G(t)和当前时刻t+1的网络结构G(t+1),对于原有连接关系没有发生变化的边,其两端的第二节点的相似度保留上一次计算结果,并将没有变化边对应的两个第二节点的相似度数据从第一相似度集合C(t)合并至第二相似度集合C(t+1)中,获得第三相似度集合,至此边的集合E(t+1)中的每一条边两端第二节点的相似度都存在第三相似度集合中。

步骤708,在边的集合E(t+1)中获得一条边,在第三相似度集合中,得到该条边两端的第二节点的相似度,然后根据步骤706中得到第二概率参数b(t+1)计算该条边两端的第二节点属于同一社区的第一概率。

步骤709,判断该条边两端的第二节点的相似度是否大于或者等于该条边两端的第二节点的相似度对应的第一概率,并且该条边两端的第二节点是否在一个社区中;

步骤710,如果该条边两端的节点的相似度大于或等于该条边两端的第二节点相似度对应的第一概率,并且该条边两端的第二节点不在一个社区中,则将该条边两端的第二节点分别所在的社区合并为一个社区;

步骤711,判断是否遍历了当前时刻t+1的网络结构G(t+1)中边的集合E(t+1)中所有的边,若没有遍历边的集合E(t+1)中所有的边,则重复执行步骤708至步骤711,直到遍历E(t+1)中的所有边;

步骤712,若已经遍历了所述边集合E(t+1)中所有的边,则完成发现动态网络社区。

上述步骤中,在边的集合E(t+1)中获取边的具体过程中,选择边的顺序不影响结果。

步骤505,完成复杂网络社区发现,若不再获得动态变化后的网络结构,则可以认为已经完成了动态网络社区发现。

显然,完成了动态网络社区发现后,又一次获得动态网络结构,则再次执行步骤504,发现动态网络社区。直至不再获得动态变化后的网络结构。

在本实施列中,在整个发现网络社区的过程中,均没有引入人为的参数从而保证了较好的客观性。使得该网络社区发现方法可以广泛的应用于所有的复杂网络。

如图8,图8是本发明实施例提供的发现动态网络社区装置的结构图,其中包括:

初始网络结构获取模块801,用于初始网络结构获取模块,用于获取初始网络结构、第一相似度集合及第一概率参数,其中,初始网络结构包括:多个第一节点、第一节点之间的边,以及第一节点之间的边对应的第一权值,第一相似度集合为每条边两端的第一节点的相似度所组成的集合。

动态网络结构获取模块802,用于获取初始网络结构变化后的网络结构,其中,变化后的网络结构包括:多个第二节点、第二节点之间的边,以及第二节点之间的边对应的第二权值。

网络结构比较模块803,用于比较多个第一节点与多个第二节点,并比较第一节点之间的边及第二节点之间的边,确定变化后的网络结构中的变化节点集合。

第一相似度获取模块804,用于根据第二权值,通过第一预设公式,分别计算变化节点集合中每个变化节点、与每个变化节点连接的邻居节点的相似度,得到所有变化节点与变化节点连接的邻居节点的相似度组成的第二相似度集合,其中,每个变化节点分别连接多个邻居节点。

第一参数获取模块805,用于根据第二相似度集合以及第一概率参数,通过第二概率参数公式,得到第二概率参数。

第一概率获取模块806:用于根据第二概率参数和变化后的网络结构的第三相似度集合,通过第二预设公式,确定变化后的网络结构中每条边两端的第二节点属于同一社区的第一概率,其中,第三相似度集合包括:第二相似度集合及除第二相似度集合以外的其他第二节点的相似度。

动态网络社区发现模块807,用于比较每条边两端的第二节点的相似度与每条边两端的第二节点的相似度对应的第一概率,将每条边两端的第二节点的相似度大于或等于所述对应的第一概率的边、两端的第二节点划分为同一社区,遍历变化后的网络结构的所有边,发现动态网络社区。

在本实施列中,所有用于网络社区发现的参数,均通过网络结构的本身具有的特征计算而来,没有引入任何认为设定的参数,从而保证了较好的客观性。使得该网络社区发现方法可以广泛的应用于所有的复杂网络。

本发明实施例的装置是应用上述一种动态网络社区发现方法的装置,则上述一种动态网络社区发现方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

本发明实施例的一种发现动态网络社区装置中第一参数获取模块805包括:

第一获取子模块,用于根据公式:

当β≤0时,根据公式:得到所述第二概率参数。

第二获取子模块,用于根据公式:

当β>0时,根据公式:得到所述第二概率参数。

其中,β为变化后的网络结构与初始网络结构的相关程度,|S(t+1)|为变化节点集合中第二节点的总个数,|V(t)|为初始网络结构中第一节点的总个数,t为时间,用于区分不同时刻的网络结构,t+1为t时刻的下一时刻,b(t+1)为第二概率参数,b(t)为第一概率参数,m为一个第二节点,n为一个第二节点,m,n为不同的第二节点,为第二节点m和第二节点n的相似度,C(t+1)为第二相似度集合,为第二节点m和第二节点n的相似度属于第二相似度集合C(t+1),|C(t+1)|为第二相似度集合中相似度的个数,所述t为大于等于0的自然数。

本发明实施例的一种发现动态网络社区装置中的初始网络结构获取模块801包括:

网络结构获取子模块,用于获取网络结构,其中,网络结构包括:多个节点、两个节点之间的边,以及两个节点之间的边对应的权值。

第二相似度获取子模块,用于根据两个节点之间的边对应的权值,通过第一预设公式,得到边两端的节点的相似度,并将所有边两端的节点的相似度组成第一相似度集合。

第二参数获取子模块,用于根据第一相似度集合,通过第一概率参数公式,得到第一概率参数。

第二概率获取子模块,用于根据第一概率参数和所述网络结构中每条边两端的节点的相似度,通过第二预设公式,确定每条边两端的两个节点属于同一社区的第二概率。

初始网络社区发现子模块,用于分别比较每条边两端的节点的相似度与每条边两端的节点的相似度对应的第二概率,将每条边两端的节点的相似度大于或等于对应的第二概率的边、两端的节点划分为同一社区,遍历网络结构的所有边,发现初始网络社区。

本发明实施例的一种发现动态网络社区装置中的第二参数获取子模块,包括:

第一概率参数计算单元,其中计算第一概率参数使用公式为:

其中b(t)为第一概率参数,u为第三节点,v为第四节点,所述为网络结构中第三节点和第四节点之间的边,E(t)为网络结构中所有边的集合,为第三节点和第四节点的相似度,|E(t)|为网络结构中所有边的集合中边的数量,t为时间,用于区分不同时刻的网络结构。

本发明实施例的一种发现动态网络社区装置中的第二概率获取子模块,包括:

概率获取子单元,其中计算第二概率所使用的第二预设公式为:

其中,u为第三节点,v为第四节点,f(cu,v,b)为第三节点和第四节点属于同一社区的概率,cu,v为第三节点和第四节点的相似度,b为概率参数,概率参数为第一概率参数或第二概率参数。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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