本发明涉及网络应用技术领域,特别是涉及一种动态网络的重叠社区发现方法及装置。
背景技术:
网络可以抽象为,由节点和边构成的集合,节点是网络中的个体,边则表示节点与节点之间的关系。网络具有一种社区特性,即网络中的一个子网络结构,该结构内部节点与节点之间的联系相对紧密,即该结构内部节点与节点之间具有较大的相似性,而该结构与其他子网络结构之间的联系相对稀疏。社区发现就是找出网络中这些内部联系紧密的子网络结构,即将联系相对紧密的节点划分到同一个社区中。在实际网络中,存在与多个社区都有紧密联系的节点,这些节点同时归属于不同的社区,这类社区被称为重叠社区。
在实际应用中,网络是动态变化的,即随着时间的推进,网络中的节点会发生变化或者有新的节点加入到网络中,使得网络中的重叠社区结构发生变化。而现有技术中的重叠社区发现方法都是针对静态网络,即网络中的节点与节点之间的连接关系是一成不变的,因此,现有的重叠社区发现方法不能确定发生变化的节点所属的重叠社区,即不能将发生变化的节点划分到所属的重叠社区中。
技术实现要素:
本发明实施例的目的在于提供一种动态网络的重叠社区发现方法及装置,以确定发生变化的节点所属的重叠社区,将发生变化的节点划分到所属的重叠社区中。具体技术方案如下:
第一方面,本发明实施例提供了一种动态网络的重叠社区发现方法,所述方法包括:
获取待检测动态网络的初始重叠社区集合;
确定变化后的待检测动态网络中的变化后的节点集合、以及所述变化后的节点集合中的节点之间的有向边,其中,所述变化后的节点集合为变化后的待检测动态网络中所有节点组成的集合;
比较所述待检测动态网络中初始的节点集合与所述变化后的节点集合,以及比较所述初始的节点集合中节点之间的有向边与所述变化后的节点集合中节点之间的有向边,确定变化节点集合,其中,所述变化节点集合中的变化节点为所述变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,所述发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点,所述初始的节点集合为所述待检测动态网络中所有节点组成的集合;
依次遍历所述变化节点集合中的每个变化节点,根据随机游走算法,记录所述变化节点与所述初始重叠社区集合中每个初始重叠社区的相遇次数,其中,所述相遇次数为所述变化节点与属于所述初始重叠社区中的节点相遇的次数;
确定最大相遇次数与最小相遇次数,计算所述最大相遇次数与所述最小相遇次数的平均值;
确定所述相遇次数大于所述平均值时对应的初始重叠社区,并将所述变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
可选的,所述获取待检测动态网络的初始重叠社区集合的步骤,包括:
基于所述初始的节点集合中每个节点的评分值,将所述评分值大于第一预设阈值的节点作为种子节点,并根据所述种子节点及种子节点的相邻节点集,建立第一种子社区集合;
计算所述第一种子社区集合中第一种子社区之间的相似度值,将所述相似度值大于第二预设阈值的第一种子社区进行合并,得到第二种子社区集合;
依次遍历所述第二种子社区集合中每个第二种子社区,从所述第二种子社区的相邻集中确定属于所述第二种子社区的相邻节点,并将所述相邻节点划分到所述第二种子社区中,得到第三种子社区集合,其中,所述相邻集为所述第二种子社区中每个节点的相邻节点集;
在所述第三种子社区集合中确定所述待检测动态网络中的初始自由节点集合中每个初始自由节点所属的第三种子社区,将所述初始自由节点划分到所属的第三种子社区中,得到第四种子社区集合,其中,所述初始自由节点为未划分相应重叠社区的节点;
计算所述第四种子社区集合中第四种子社区之间的相似度值,将所述相似度值大于第三预设阈值的所述第四种子社区进行合并,得到合并后的第四种子社区集合,其中,所述合并后的第四种子社区集合即为初始重叠社区集合。
可选的,所述依次遍历所述第二种子社区集合中每个第二种子社区,从所述第二种子社区的相邻集中确定属于所述第二种子社区的相邻节点,并将所述相邻节点划分到所述第二种子社区中,得到第三种子社区集合,其中,所述相邻集为所述第二种子社区中每个节点的相邻节点集的步骤,包括:
计算所述第二种子社区的相邻集中每个相邻节点与所述第二种子社区之间的相似度值;
计算与所述相似度值大于第四预设阈值时对应的相邻节点的第一自适应函数值和第二自适应函数值,其中,所述第一自适应函数值为所述相邻节点被划分到所述第二种子社区时所对应的自适应函数值,所述第二自适应函数值为所述相邻节点未被划分到所述第二种子社区时所对应的自适应函数值;
当所述第一自适应函数值大于所述第二自适应函数值时,将所述相邻节点划分到所述第二种子社区中,得到第三种子社区。
可选的,所述在所述第三种子社区集合中确定所述待检测动态网络中的初始自由节点集合中每个初始自由节点所属的第三种子社区,将所述初始自由节点划分到所属的第三种子社区中,得到第四种子社区集合,其中,所述初始自由节点为未划分相应重叠社区的节点的步骤,包括:
依次遍历所述初始自由节点集合中每个初始自由节点,计算所述初始自由节点与所述第三种子社区集合中每个第三种子社区之间的相似度值;
将所述初始自由节点划分到所述相似度值最大时对应的第三种子社区,得到第四种子社区。
可选的,所述确定所述相遇次数大于所述平均值时对应的初始重叠社区,并将所述变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合之后,还包括:
确定所述变化后的待检测动态网络中第一自由节点集合中每个第一自由节点所属的重叠社区,将所述第一自由节点划分到所述重叠社区中,得到新重叠社区集合,其中,所述第一自由节点为未划分相应重叠社区的节点;
计算所述新重叠社区集合中新重叠社区之间的相似度值,将所述相似度值大于第五预设阈值的新重叠社区进行合并,得到合并后的新重叠社区集合。
可选的,所述确定所述变化后的待检测动态网络中第一自由节点集合中每个第一自由节点所属的重叠社区,将所述第一自由节点划分到所述重叠社区中,得到新重叠社区集合,其中,所述第一自由节点为未划分相应重叠社区的节点的步骤,包括:
依次遍历所述第一自由节点集合中每个第一自由节点,计算所述第一自由节点与所述重叠社区集合中每个重叠社区之间的相似度值;
将所述第一自由节点划分到所述相似度值最大时对应的重叠社区,得到新重叠社区集合。
第二方面,本发明实施例提供了一种动态网络的重叠社区发现装置,所述装置包括:
获取模块,用于获取待检测动态网络的初始重叠社区集合;
第一确定模块,用于确定变化后的待检测动态网络中的变化后的节点集合、以及所述变化后的节点集合中的节点之间的有向边,其中,所述变化后的节点集合为变化后的待检测动态网络中所有节点组成的集合;
第二确定模块,用于比较所述待检测动态网络中初始的节点集合与所述变化后的节点集合,以及比较所述初始的节点集合中节点之间的有向边与所述变化后的节点集合中节点之间的有向边,确定变化节点集合,其中,所述变化节点集合中的变化节点为所述变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,所述发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点,所述初始的节点集合为所述待检测动态网络中所有节点组成的集合;
记录模块,用于依次遍历所述变化节点集合中的每个变化节点,根据随机游走算法,记录所述变化节点与所述初始重叠社区集合中每个初始重叠社区的相遇次数,其中,所述相遇次数为所述变化节点与属于所述初始重叠社区中的节点相遇的次数;
计算模块,用于确定最大相遇次数与最小相遇次数,计算所述最大相遇次数与所述最小相遇次数的平均值;
第一划分模块,用于确定所述相遇次数大于所述平均值时对应的初始重叠社区,并将所述变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
可选的,所述获取模块,包括:
建立子模块,用于基于所述初始的节点集合中每个节点的评分值,将所述评分值大于第一预设阈值的节点作为种子节点,并根据所述种子节点及种子节点的相邻节点集,建立第一种子社区集合;
第一合并子模块,用于计算所述第一种子社区集合中第一种子社区之间的相似度值,将所述相似度值大于第二预设阈值的第一种子社区进行合并,得到第二种子社区集合;
第一划分子模块,用于依次遍历所述第二种子社区集合中每个第二种子社区,从所述第二种子社区的相邻集中确定属于所述第二种子社区的相邻节点,并将所述相邻节点划分到所述第二种子社区中,得到第三种子社区集合,其中,所述相邻集为所述第二种子社区中每个节点的相邻节点集;
第二划分子模块,用于在所述第三种子社区集合中确定所述待检测动态网络中的初始自由节点集合中每个初始自由节点所属的第三种子社区,将所述初始自由节点划分到所属的第三种子社区中,得到第四种子社区集合,其中,所述初始自由节点为未划分相应重叠社区的节点;
第二合并子模块,用于计算所述第四种子社区集合中第四种子社区之间的相似度值,将所述相似度值大于第三预设阈值的所述第四种子社区进行合并,得到合并后的第四种子社区集合,其中,所述合并后的第四种子社区集合即为初始重叠社区集合。
可选的,所述第一划分子模块,具体用于:
计算所述第二种子社区的相邻集中每个相邻节点与所述第二种子社区之间的相似度值;
计算与所述相似度值大于第四预设阈值时对应的相邻节点的第一自适应函数值和第二自适应函数值,其中,所述第一自适应函数值为所述相邻节点被划分到所述第二种子社区时所对应的自适应函数值,所述第二自适应函数值为所述相邻节点未被划分到所述第二种子社区时所对应的自适应函数值;
当所述第一自适应函数值大于所述第二自适应函数值时,将所述相邻节点划分到所述第二种子社区中,得到第三种子社区。
可选的,所述第二划分子模块,具体用于:
依次遍历所述初始自由节点集合中每个初始自由节点,计算所述初始自由节点与所述第三种子社区集合中每个第三种子社区之间的相似度值;
将所述初始自由节点划分到所述相似度值最大时对应的第三种子社区,得到第四种子社区。
本发明实施例提供的一种动态网络的重叠社区发现方法及装置,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种动态网络的重叠社区发现方法的流程图;
图2为本发明实施例提供的一种动态网络的重叠社区发现方法的另一流程图;
图3为本发明实施例提供的一种动态网络的重叠社区发现装置的结构示意图;
图4为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种动态网络的重叠社区发现方法,如图1所示,该方法包括:
s101,获取待检测动态网络的初始重叠社区集合。
初始重叠社区集合中包括多个初始重叠社区,每个初始重叠社区表示的是待检测动态网络中的一个子网络结构,该结构内部节点与节点之间的联系相对紧密,而该结构与其他子网络结构之间的联系相对稀疏。其中,每个初始重叠社区中的节点之间的连接关系作为节点之间的边。
本发明实施例获取的初始重叠社区集合是通过对待检测动态网络的网络结构进行重叠社区发现得到的。该待检测动态网络的网络结构包括初始的节点集合,初始的节点集合中节点之间的边的集合,以及节点之间的边的权重集合。其中,边可以分为无向边和有向边,根据边是否有方向,待检测动态网络的网络结构可以分为有向网络结构和无向网络结构,根据边上是否有对应的权重,待检测动态网络的网络结构可以分为有权网络结构和无权网络结构。本发明实施例可以采用有向有权网络结构表示待检测动态网络的网络结构,本发明实施例中提及的网络结构可以是用户输入的网络结构。
由于待检测动态网络是随时间不断变化的,即待检测动态网络的网络结构也是随时间变化的,本发明实施例可以将获取的初始重叠社区集合理解为上一时刻的待检测动态网络的初始重叠社区集合,也即是,通过对上一时刻的待检测动态网络的网络结构进行重叠社区发现得到初始重叠社区集合。设定上一时刻对应的时间为t,采用gt=(vt,et,wt)来表示t时刻对应的有向有权网络结构,其中,
由于采用的是有向有权网络结构,本发明实施例可以以节点之间的相遇频率和服务度作为初始节点之间的边的权重。例如,以节点
其中,
在实际应用中,对待检测动态网络的网络结构进行重叠社区发现得到初始重叠社区集合可以采用如下步骤实现:
步骤一,基于初始的节点集合中每个节点的评分值,将评分值大于第一预设阈值的节点作为种子节点,并根据种子节点及种子节点的相邻节点集,建立第一种子社区集合。
具体的,根据公式pt=d-1×wt计算t时刻的初始的节点集合中所有节点之间的转移概率矩阵,其中,pt表示t时刻的转移概率矩阵,wt表示t时刻的节点之间的有向边的权重的集合,d-1为对角矩阵,其非对角线上元素均为0,对角线上的每个元素为转移概率矩阵中与每个元素所在行相对应的行的所有元素之和。根据随机游走算法和转移概率矩阵计算每个节点的评分值,即每个节点根据设定的随机游走步数游走到自身的评分值。例如,可以根据公式
采用上述方式计算所有节点的评分值,将评分值大于第一预设阈值的节点作为种子节点,依次遍历每个种子节点,将根据每个种子节点及该种子节点的相邻节点集建立的种子社区作为第一种子社区。具体的,以第一个种子节点
在实际应用中,可以根据公式
步骤二,计算第一种子社区集合中第一种子社区之间的相似度值,将相似度值大于第二预设阈值的第一种子社区进行合并,得到第二种子社区集合。
具体的,先遍历第二个第一种子社区,计算第二个第一种子社区与第一个第一种种子社区之间的相似度值,如果该相似度值大于第二预设阈值,则将这两个第一种子社区合并,依次遍历下一个第一种子社区,计算下一个第一种子社区与该种子社区之前的第一种子社区之间的相似度值,如果多个相似度值均大于第二预设阈值,则将下一个第一种子社区与相似度值最大时对应的第一种子社区进行合并,将合并后的种子社区作为第二种子社区。遍历完所有的第一种子社区后,得到第二种子社区集合。
其中,可以采用公式ccsim(sm,sn)=overlap(sm,sn)/min(|sm|,|sn|)计算社区之间的相似度值,sm和sn分别为第一种子社区,overlap(sm,sn)为这两个种子社区公有的节点数,|sm|和|sn|分别为社区sm和sn内的节点总数。
步骤三,依次遍历第二种子社区集合中每个第二种子社区,从第二种子社区的相邻集中确定属于第二种子社区的相邻节点,并将相邻节点划分到第二种子社区中,得到第三种子社区集合,其中,相邻集为第二种子社区中每个节点的相邻节点集。
以第二种子社区集合中的第一个第二种子社区为例进行说明,先确定第二种子社区的相邻集,该相邻集指的是第二种子社区中所有节点的相邻节点。依次遍历相邻集中的每个相邻节点,计算每个相邻节点与该第二种子社区之间的相似度值。根据社区自适应函数,计算与相似度值大于第四预设阈值时对应的相邻节点的第一自适应函数值和第二自适应函数值,当第一自适应函数值大于第二自适应函数值时,将相邻节点划分到第二种子社区中,得到第三种子社区。其中,第一自适应函数值为相邻节点被划分到所述第二种子社区时所对应的自适应函数值,第二自适应函数值为相邻节点未被划分到第二种子社区时所对应的自适应函数值。
在上述实现方法中,可以根据社区自适应函数
在实际应用中,可以从所有相似度值中选取一个相似度值作为第四预设阈值,具体取值可以根据实际情况来设定,本发明实施例不对其加以限制。或者,可以将所有的相似度值按照降序进行排序,从相似度值最大的相邻节点开始计数,计算数量为c的相邻节点的第一自适应函数值和第二自适应函数值,该数量c可以根据实际情况来设定。
本发明实施例中,可以采用步骤一中公式
步骤四,在第三种子社区集合中确定待检测动态网络中的初始自由节点集合中每个初始自由节点所属的第三种子社区,将初始自由节点划分到所属的第三种子社区中,得到第四种子社区集合,其中,初始自由节点为未划分相应重叠社区的节点。
具体的,依次遍历初始自由节点集合中每个初始自由节点,计算初始自由节点与所述第三种子社区集合中每个第三种子社区之间的相似度值。将初始自由节点划分到相似度值最大时对应的第三种子社区,得到第四种子社区。遍历完所有自由节点,得到第四种子社区集合。
其中,可以采用步骤一中公式
步骤五,计算第四种子社区集合中第四种子社区之间的相似度值,将相似度值大于第三预设阈值的第四种子社区进行合并,得到合并后的第四种子社区集合,其中,合并后的第四种子社区集合即为初始重叠社区集合。
本发明实施例中,该步骤可以采用步骤二的实现方式实现,本发明实施例不在此进行赘述。
s102,确定变化后的待检测动态网络中的变化后的节点集合、以及变化后的节点集合中的节点之间的有向边。
由于待检测动态网络是随时间不断变化的,即待检测动态网络的网络结构也是随时间变化的,本发明实施例可以将获取的初始重叠社区集合理解为上一时刻的待检测动态网络的初始重叠社区集合。
本发明实施例中,变化后的节点集合为变化后的待检测动态网络中所有节点组成的集合,可以根据变化后的待检测动态网络的网络结构确定变化后的节点集合、以及所述变化后的节点集合中的节点之间的有向边。
由于待检测动态网络是随时间不断变化的,待检测动态网络的网络结构也是随时间变化的,即可以将变化后的待检测动态网络的网络结构理解为当前时刻的网络结构,变化后的节点集合可以理解为当前时刻的节点集合,节点之间的有向边可以理解为当前时刻的节点之间的有向边。本发明实施例可以采用gt+1=(vt+1,et+1,wt+1)表示当前时刻对应有向有权网络结构,其中,vt+1用于表示变化后的节点集合;et+1用于表示变化后的节点集合中节点之间的有向边;wt+1用于表示变化后的节点集合中节点之间的有向边的权重的集合。
s103,比较待检测动态网络中初始的节点集合与变化后的节点集合,以及比较初始的节点集合中节点之间的有向边与变化后的节点集合中节点之间的有向边,确定变化节点集合。
其中,变化节点集合中的变化节点为变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,初始的节点集合为待检测动态网络中所有节点组成的集合。
待检测动态网络发生变化后,可能有新的节点加入到变化后的的待检测动态网络中,节点之间的有向边也会发生改变。可以比较待检测动态网络中初始的节点集合与所述变化后的节点集合,从变化后的节点集合中查找出新加入的节点,将新加入的节点确定为变化节点;以及比较初始的节点集合中节点之间的有向边与变化后的节点集合中节点之间的有向边,确定发生改变的有向边的两端的节点,将新加入的节点及发生改变的有向边的两端的节点确定为变化节点,其中,发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点。
其中,新增加的有向边连接的节点包括三种情况:第一种是新增加的有向边两端连接的节点均为初始的节点集合中的节点,第二种是新增加的有向边两端连接的节点中,一个是初始的节点集合中的节点,另一个是变化后的节点集合中新加入的节点;第三种是新增加的有向边两端连接的节点均为变化后的节点集合中新加入的节点。删除的初始的节点集合中节点之间的有向边两端连接的节点均为初始节点集合中的节点。
s104,依次遍历变化节点集合中的每个变化节点,根据随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数。
本发明实施例中,以变化节点集合中的第一个变化节点为例进行说明,先遍历变化节点集合中的第一个变化节点,该变化节点根据随机游走算法及当前时刻的节点间转移概率矩阵随机游走t-walks次,每次随机游走l-hops步,记录该变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数。该变化节点在随机游走过程中会遇到初始重叠社区中的节点,也可能会遇到变化节点集合中的变化节点。如果该变化节点与初始重叠社区中的节点相遇,则记录该变化节点与属于初始重叠社区中的节点相遇的次数;如果该变化节点与变化节点集合中的变化节点相遇,则不记录相遇次数。
其中,t-walks为用户为每个变化节点设定的随机游走的总次数,l-hops为用户为每个变化节点设定的每次随机游走的步数,本发明实施例中,可以将t-walks设置为90次,将l-hops设置为90步,具体取值可以根据实际情况来设定,本发明实施例不对其加以限制。
s105,确定最大相遇次数与最小相遇次数,计算最大相遇次数与最小相遇次数的平均值。
本发明实施例中,可以通过比较变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,确定最大相遇次数与最小相遇次数,将最大相遇次数与最小相遇次数之和除以2得到最大相遇次数与最小相遇次数的平均值。
s106,确定相遇次数大于平均值时对应的初始重叠社区,并将变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
将变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数与平均值进行比较,确定相遇次数大于平均值时对应的初始重叠社区,然后将变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合,也即是对变化后的待检测动态网络进行重叠社区发现得到待检测动态网络的重叠社区集合。
如果存在多个相遇次数大于平均值时,则将该变化节点同时划分到相遇次数对应的初始重叠社区中。
本发明实施例提供的一种动态网络的重叠社区发现方法,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。
作为本发明实施例的一种实施方式,如图2所示,本发明实施例提供的动态网络的重叠社区发现方法可以包括:
s201,获取待检测动态网络的初始重叠社区集合。
s202,确定变化后的待检测动态网络中的变化后的节点集合、以及变化后的节点集合中的节点之间的有向边,其中,变化后的节点集合为变化后的待检测动态网络中所有节点组成的集合。
s203,比较待检测动态网络中初始的节点集合与变化后的节点集合,以及比较初始的节点集合中节点之间的有向边与变化后的节点集合中节点之间的有向边,确定变化节点集合,其中,变化节点集合中的变化节点为变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点,初始的节点集合为待检测动态网络中所有节点组成的集合。
s204,依次遍历变化节点集合中的每个变化节点,根据随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数。
s205,确定最大相遇次数与最小相遇次数,计算最大相遇次数与最小相遇次数的平均值。
s206,确定相遇次数大于平均值时对应的初始重叠社区,并将变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
s207,确定变化后的待检测动态网络中第一自由节点集合中每个第一自由节点所属的重叠社区,将第一自由节点划分到所述重叠社区中,得到新重叠社区集合。
其中,将变化后的待检测动态网络中自由节点集合作为第一自由节点集合,第一自由节点集合中的每个第一自由节点为未划分相应重叠社区的节点。
依次遍历初始自由节点集合中每个第一自由节点,计算第一自由节点与重叠社区集合中每个重叠社区之间的相似度值。将第一自由节点划分到相似度值最大时对应的重叠社区,得到新重叠社区。遍历完所有自由节点,得到新重叠社区集合。具体实现方法可以依据步骤s101中的步骤一中实现方式来实施,本发明实施例不在此进行赘述。
s208,计算新重叠社区集合中新重叠社区之间的相似度值,将相似度值大于第五预设阈值的新重叠社区进行合并,得到合并后的新重叠社区集合。
本发明实施例中,该步骤可以采用步骤二的实现方式实现,本发明实施例不在此进行赘述。
上述步骤s201-s206与图1所示实施例中步骤s101-s106基本相同,在此不进行赘述。
本发明实施例提供的一种动态网络的重叠社区发现方法,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。
本发明实施例提供了一种动态网络发现装置,如图3所示,该装置包括:
获取模块301,用于获取待检测动态网络的初始重叠社区集合。
第一确定模块302,用于确定变化后的待检测动态网络中的变化后的节点集合、以及变化后的节点集合中的节点之间的有向边,其中,变化后的节点集合为变化后的待检测动态网络中所有节点组成的集合。
第二确定模块303,用于比较待检测动态网络中初始的节点集合与变化后的节点集合,以及比较初始的节点集合中节点之间的有向边与变化后的节点集合中节点之间的有向边,确定变化节点集合,其中,变化节点集合中的变化节点为变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点,初始的节点集合为待检测动态网络中所有节点组成的集合。
记录模块304,用于依次遍历变化节点集合中的每个变化节点,根据随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,其中,相遇次数为变化节点与属于初始重叠社区中的节点相遇的次数。
计算模块305,用于确定最大相遇次数与最小相遇次数,计算最大相遇次数与最小相遇次数的平均值。
第一划分模块306,用于确定相遇次数大于平均值时对应的初始重叠社区,并将变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
本发明实施例提供的一种动态网络的重叠社区发现装置,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。
作为本发明实施例的一种实施方式,上述获取模块301,包括:
建立子模块,用于基于初始的节点集合中每个节点的评分值,将评分值大于第一预设阈值的节点作为种子节点,并根据种子节点及种子节点的相邻节点集,建立第一种子社区集合。
第一合并子模块,用于计算第一种子社区集合中第一种子社区之间的相似度值,将相似度值大于第二预设阈值的第一种子社区进行合并,得到第二种子社区集合。
第一划分子模块,用于依次遍历第二种子社区集合中每个第二种子社区,从第二种子社区的相邻集中确定属于第二种子社区的相邻节点,并将相邻节点划分到第二种子社区中,得到第三种子社区集合,其中,相邻集为第二种子社区中每个节点的相邻节点集。
第二划分子模块,用于在第三种子社区集合中确定待检测动态网络中的初始自由节点集合中每个初始自由节点所属的第三种子社区,将初始自由节点划分到所属的第三种子社区中,得到第四种子社区集合,其中,初始自由节点为未划分相应重叠社区的节点。
第二合并子模块,用于计算第四种子社区集合中第四种子社区之间的相似度值,将相似度值大于第三预设阈值的第四种子社区进行合并,得到合并后的第四种子社区集合,其中,合并后的第四种子社区集合即为初始重叠社区集合。
作为本发明实施例的一种实施方式,上述第一划分子模块,具体用于:
计算第二种子社区的相邻集中每个相邻节点与第二种子社区之间的相似度值。
计算与相似度值大于第四预设阈值时对应的相邻节点的第一自适应函数值和第二自适应函数值,其中,第一自适应函数值为相邻节点被划分到第二种子社区时所对应的自适应函数值,第二自适应函数值为相邻节点未被划分到第二种子社区时所对应的自适应函数值。
当第一自适应函数值大于第二自适应函数值时,将相邻节点划分到第二种子社区中,得到第三种子社区。
作为本发明实施例的一种实施方式,上述第二划分子模块,具体用于:
依次遍历初始自由节点集合中每个初始自由节点,计算初始自由节点与第三种子社区集合中每个第三种子社区之间的相似度值;
将初始自由节点划分到所述相似度值最大时对应的第三种子社区,得到第四种子社区。
作为本发明实施例的一种实施方式,该装置还包括:
第二划分模块,用于确定变化后的待检测动态网络中第一自由节点集合中每个第一自由节点所属的重叠社区,将第一自由节点划分到重叠社区中,得到新重叠社区集合,其中,第一自由节点为未划分相应重叠社区的节点。
合并模块,用于计算新重叠社区集合中新重叠社区之间的相似度值,将相似度值大于第五预设阈值的新重叠社区进行合并,得到合并后的新重叠社区集合。
作为本发明实施例的一种实施方式,上述划分模块,具体用于:
依次遍历第一自由节点集合中每个第一自由节点,计算第一自由节点与所述重叠社区集合中每个重叠社区之间的相似度值。
将第一自由节点划分到相似度值最大时对应的重叠社区,得到新重叠社区集合。
本发明实施例提供的一种动态网络的重叠社区发现装置,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。
本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:
获取待检测动态网络的初始重叠社区集合。
确定变化后的待检测动态网络中的变化后的节点集合、以及变化后的节点集合中节点之间的有向边。
比较待检测动态网络中初始的节点集合与变化后的节点集合,以及比较初始的节点集合中节点之间的有向边与变化后的节点集合中节点之间的有向边,确定变化节点集合,其中,变化节点集合中的变化节点为变化后的节点集合中新加入的节点及发生改变的有向边连接的节点,发生改变的有向边连接的节点为新增加的有向边连接的节点和删除的初始的节点集合中节点之间的有向边连接的节点,初始的节点集合为待检测动态网络中所有节点组成的集合。
依次遍历变化节点集合中的每个变化节点,根据随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,其中,相遇次数为变化节点与属于初始重叠社区中的节点相遇的次数。
确定最大相遇次数与最小相遇次数,计算最大相遇次数与最小相遇次数的平均值。
确定相遇次数大于平均值时对应的初始重叠社区,并将变化节点划分到对应的初始重叠社区中,得到变化后的待检测动态网络的重叠社区集合。
本发明实施例中,通过确定变化后的待检测动态网络中的变化节点集合,并依次遍历变化节点集合中每个变化节点,基于随机游走算法,记录变化节点与初始重叠社区集合中每个初始重叠社区的相遇次数,然后通过比较相遇次数与最大相遇次数和最小相遇次数的平均值的大小,将相遇次数大于平均值时对应的重叠社区确定为该变化节点所属的重叠社区,并将该变化节点划分到所属的重叠社区中,从而发现变化后的动态网络的重叠社区集合。
上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的方法可以应用于电子设备。具体的,该电子设备可以为:台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。