一种Spark云服务环境下面的复杂网络社团发现方法与流程

文档序号:20437785发布日期:2020-04-17 22:11阅读:149来源:国知局
一种Spark云服务环境下面的复杂网络社团发现方法与流程

本发明属于网络社团发现技术领域,尤其涉及一种spark云服务环境下面的复杂网络社团发现方法。



背景技术:

随着科学技术的发展,复杂网络研究吸引了越来越多的人的关注。在复杂网络中,网络社团结构是其中研究的热点之一。复杂网络社团结构可以分为重叠社团结构和非重叠社团结构,加权网络社团结构和非加权社团结构。社团结构是指网络中的顶点可以分成组,组内顶点连接比较稠密,而组间顶点连接比较稀疏。由于社团结构广泛地存在于实际网络当中,是网络的重要性质,因此对社团结构的研究是了解网络结构和功能的重要途径。然而,现有复杂网络社团挖掘应用范围受到了较大限制;挖掘的质量评价方面效果差;同时不能准确确定网络社团。

同时,网络社团结构划分的方法包括派系过滤算法(cpm)、标签传递算法、基于边社团的划分方法等等。虽然,以上算法都能够解决网络社团划分的一些问题,然而大部分算法都存在着问题。对于一个大规模的网络,很多算法需要根据不同的情景引入各种节点属性度量的方法,如节点间路径的数目和节点相似性计算等,这些度量需要多次迭代会导致算法效率比较低,复杂度较大。由于不同算法使用的划分标准不同,导致社团划分的结果也不尽相同。很多算法都只追求达到较高的模块度或其他标准,而不注重网络的真实社团结构。大多数真实世界的网络,人们无法知道该网络的真实社团数目,而很多算法需要在社团划分之前指定社团的个数。

综上所述,现有技术存在的问题是:

(1)现有复杂网络社团挖掘应用范围受到了较大限制;挖掘的质量评价方面效果差;同时不能准确确定网络社团。

(2)现有网络社团划分算法需要根据不同的情景引入各种节点属性度量的方法,如节点间路径的数目和节点相似性计算等,这些度量需要多次迭代会导致算法效率比较低,复杂度较大。

(3)由于不同算法使用的划分标准不同,导致社团划分的结果也不尽相同。很多算法都只追求达到较高的模块度或其他标准,而不注重网络的真实社团结构。大多数真实世界的网络,人们无法知道该网络的真实社团数目,而很多算法需要在社团划分之前指定社团的个数。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种spark云服务环境下面的复杂网络社团发现方法。

本发明是这样实现的,一种spark云服务环境下面的复杂网络社团发现方法,所述spark云服务环境下面的复杂网络社团发现方法包括以下步骤:

步骤一,通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测:以点对的形式输入网络数据,利用图的数据结构保存网络数据,并形成网络图。

步骤二,使用改进型pagerank算法计算网络中节点的影响力;利用层次聚类方法得到骨干社团结构;使用扩展方法,将骨干社团扩展到全网得到整体网络的社团结构。

步骤三,基于多种关系网络进行异构网络信息的融合;利用检测程序检测复杂网络社团异常;通过主机控制各个模块正常工作。

步骤四,通过隶属度传播模型对复杂网络社团进行挖掘:建立社团种子节点的选取框架,以社团种子节点的基本特征为依据,确定种子节点选取的测试顺序,所述节点为网关节点。

步骤五,构建网络节点之间的隶属度传播模型,将种子节点的社团隶属度传播至非种子节点;以优化社团划分结果的模块度为目标,确定社团种子节点的选准则。

步骤六,当社团种子节点选取完毕后,通过调整节点社团属性以及合并社团的方式,对模块度进行进一步优化,并修正各节点的社团隶属度,得到最终的模糊社团挖掘结果。

步骤七,确定复杂网络社团;获取所述复杂网络中每个节点的权重值;依据所述复杂网络中每个节点的权重值,获取复杂网络中每个节点的局部重心性数值。

步骤八,依据每个节点的局部重心性数值确定目标局部重心点;确定分别以每个所述目标局部重心点为重心的初始社团;确定所述初始社团中的网络社团。

步骤九,利用划分程序对复杂网络社团进行划分;利用扩展程序对复杂网络社团进行扩展;利用优化程序对复杂网络社团进行优化;利用spark云服务技术对复杂网络社团进行大数据计算处理。

步骤十,通过存储芯片存储探测的复杂网络社团及检测复杂网络社团异常情况的实时数据;利用显示器显示探测的复杂网络社团及检测复杂网络社团的异常情况。

进一步,步骤一中,所述通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测的方法包括:

(1)以点对的形式输入网络数据,利用图的数据结构保存网络数据,并形成网络图g(v,e)。

(2)使用基于节点权重的改进型pagerank算法(wp)计算网络g(v,e)中节点的影响力(wp值);根据节点的wp值对网络节点进行排序;按照节点排序结果选取骨干节点。

(3)创建骨干网络,将所有的骨干节点以及两个端点均为骨干节点的边加入骨干网络。

(4)在骨干网络中运行层次聚类方法,得到骨干社团结构。

(5)使用扩展方法,将骨干社团扩展到全网,得到整体网络的社团结构。

进一步,所述基于节点权重的改进型pagerank算法(wp)的计算公式为:

其中,wvi是节点vi的度,是整个网络中所有节点的度值的总和,wp(vj)是节点vj的wp值。

进一步,所述的扩展方法的具体步骤如下:

1)为整体网络的社团集合cs赋初始值为骨干网络的社团集合:cs=ks。

2)对于每个非骨干节点v,遍历其所有邻居节点,如果邻居节点u包含在社团集合cs,那么计算节点v和节点u所在的社团之间的密切度。

3)比较节点v和其所有邻居社团之间的密切度,将节点v加入密切度最大的社团;所述节点和社团的密切度计算公式为:

其中,等号右边分子部分表示在社团c中与节点v有直接边联系的所有节点的wp值的总和与节点v的wp值之和,分母为社团c的所有节点的wp值的总和与节点v的wp值之和。

进一步,步骤四中,所述通过隶属度传播模型对复杂网络社团进行挖掘的方法如下:

(1)建立社团种子节点的选取框架,以社团种子节点的基本特征为依据,确定种子节点选取的测试顺序,所述节点为网关节点。

(2)构建网络节点之间的隶属度传播模型,在传播过程中,社团种子节点的隶属度向量保持不变,而非种子节点的隶属度向量则进行迭代更新,通过这种方式,将种子节点的社团隶属度传播至非种子节点。

(3)在此基础上,以优化社团划分结果的模块度为目标,确定社团种子节点的选准则,即:若某节点被标记为种子节点后,社团划分结果的模块度没有减小,则将该节点接受为新的种子节点。

(4)当社团种子节点选取完毕后,通过调整节点社团属性以及合并社团的方式,对模块度进行进一步优化,并修正各节点的社团隶属度,得到最终的模糊社团挖掘结果。

进一步,所述确定社团种子节点选取的测试顺序的过程为:在社团种子节点的选取过程中,按照度从大到小的顺序测试节点是否为种子节点,对于同度节点,则考虑其邻居节点度之和,即按照邻居节点度之和从小到大的顺序进行测试;

所述隶属度传播的过程为:社团种子节点的隶属度向量保持不变,而非种子节点的隶属度向量则进行迭代更新,当所有非种子节点的隶属度向量收敛至稳定状态时,传播过程结束。

所述非种子节点隶属度向量迭代更新的实现为:在每次更新计算中,根据边的权重,将非种子节点的隶属度向量取为其邻居节点的隶属度向量的加权平均。

所述社团种子节点的选取准则为:将某节点标记为种子节点,并进行隶属度传播,然后将传播结果转化为非重叠社团划分结果;利用模块度对该划分结果进行评价,若模块度减小,则将该节点重新标记为非种子节点。

所述社团种子节点的选取准则还包括:每当接受一个新的种子节点后,需对已有种子节点进行筛选。

进一步,步骤七中,所述确定复杂网络社团的方法如下:

(1)复杂网络包括多个节点,每个所述节点分别与至少一个区别于自身节点的节点相连,相连节点之间的边具有两个边方向,且每个边方向具有各自的边权值,利用获取所述复杂网络中每个节点的权重值;

其中,wij为所述复杂网络中节点vi指向节点vj的边方向的边权值,wji为节点vj指向节点vi的边方向的边权值,r为边权值wji中与边权值wij相关联的数值,hi为所述复杂网络中节点vi所属的邻域节点,λ、β为参数,wi为所述复杂网络中节点vi的权重值。

(2)依据所述复杂网络中每个节点的权重值,利用获取所述复杂网络中每个节点的局部重心性数值;其中,wj为所述复杂网络中节点vj的权重值,act(vi)为所述节点vi的局部重心性数值。

(3)依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点。

(4)在所述复杂网络中,确定分别以每个所述目标局部重心点为重心的初始社团;确定所述初始社团中的网络社团。

进一步,所述依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点,包括:

获取局部重心性数值大于预设第一数值的节点作为初始局部重心点;在所述复杂网络中,确定分别以每个所述初始局部重心点为重心的初始局部社团;

分别在每个所述初始局部社团中,确定到该初始局部社团中其他节点的距离之和最小的节点作为目标局部重心点。

进一步,所述依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点,包括:分别确定每个所述节点的邻域所组成社团各自的社团密度值;获取每个所述节点的局部重心性数值与该节点对应的社团密度值的乘积;确定所述乘积大于预设第二数值的节点作为目标局部重心点。

所述在所述复杂网络中,确定分别以每个所述目标局部重心点为重心的初始社团,包括:对所述目标局部重心点依据其各自的局部重心性数值的大小进行排序;依次分别确定以排序后的每个所述目标局部重心点为重心的初始社团。

本发明的另一目的在于提供一种应用所述spark云服务环境下面的复杂网络社团发现方法的spark云服务环境下面的复杂网络社团发现系统,所述spark云服务环境下面的复杂网络社团发现系统包括:

社团探测模块、异常检测模块、主控模块、社团挖掘模块、社团确定模块、社团划分模块、扩展模块、优化模块、云服务模块、数据存储模块、显示模块。

社团探测模块,与主控模块连接,用于通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测;

异构网络信息融合模块:与主控模块连接,用于通过基于多种关系的网络进行异构网络信息的融合;

异常检测模块,与主控模块连接,用于通过检测程序检测复杂网络社团异常;

主控模块,与社团探测模块、异构网络信息融合模块、异常检测模块、社团挖掘模块、社团确定模块、社团划分模块、扩展模块、优化模块、云服务模块、数据存储模块、显示模块连接,用于通过主机控制各个模块正常工作;

社团挖掘模块,与主控模块连接,用于通过隶属度传播模型对复杂网络社团进行挖掘;

社团确定模块,与主控模块连接,用于确定复杂网络社团;

社团划分模块,与主控模块连接,用于通过划分程序对复杂网络社团进行划分;

扩展模块,与主控模块连接,用于通过扩展程序对复杂网络社团进行扩展;

优化模块,与主控模块连接,用于通过优化程序对复杂网络社团进行优化;

云服务模块,与主控模块连接,用于通过spark云服务技术对复杂网络社团进行大数据计算处理;

数据存储模块,与主控模块连接,用于通过存储芯片存储探测的复杂网络社团及检测复杂网络社团异常情况的实时数据;

显示模块,与主控模块连接,用于通过显示器显示探测的复杂网络社团及检测复杂网络社团的异常情况。

本发明的优点及积极效果为:本发明通过社团挖掘模块充分利用了网络的整体拓扑信息,克服了标签传播算法的拓扑信息损失问题,从而能够获得合理的各节点隶属度向量;能够自动获得网络中的社团种子节点,同时确保社团划分的质量;不依赖社团结构的相关先验,不需要进行参数调优,突破了现有技术所通常受到的限制;在稳定性、鲁棒性、以及各种评价指标方面效果好;同时,通过社团确定模块依据复杂网络中各个节点间边权值计算整个复杂网络中每个节点的局部重心性数值,进而确定整个复杂网络中的目标局部重心点,进而确定初始社团,再经过对初始社团的筛选得到准确率较高的网络社团。

本发明通过社团探测模块使用基于节点权重的改进型pagerank算法,可以更加真实地反映网络中节点的影响力。针对真实世界中不同类型的网络,可调整骨干节点占所有节点的比例,以反映真实世界中不同的组织结构。通过骨干网络的社团结构能够快速得到整体网络的社团框架,普通节点只需要计算其与邻居社团的密切度就能够加入到社团中。这种先聚类再扩展的方法大大地降低了计算复杂度,缩小了计算规模,在超大规模网络中能够快速获得有效的划分结果,有更广泛的实际应用价值。

附图说明

图1是本发明实施例提供的spark云服务环境下面的复杂网络社团发现方法流程图。

图2是本发明实施例提供的spark云服务环境下面的复杂网络社团发现系统结构框图。

图中:1、社团探测模块;2、异构网络信息融合模块;3、异常检测模块;4、主控模块;5、社团挖掘模块;6、社团确定模块;7、社团划分模块;8、扩展模块;9、优化模块;10、云服务模块;11、数据存储模块;12、显示模块。

具体实施方式

为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下。

下面结合附图对本发明的结构作详细的描述。

如图1所示,本发明实施例提供的spark云服务环境下面的复杂网络社团发现方法包括以下步骤:

s101:通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测:以点对的形式输入网络数据,利用图的数据结构保存网络数据,并形成网络图。

s102:使用改进型pagerank算法计算网络中节点的影响力;利用层次聚类方法得到骨干社团结构;使用扩展方法,将骨干社团扩展到全网得到整体网络的社团结构。

s103:基于多种关系网络进行异构网络信息的融合;利用检测程序检测复杂网络社团异常;通过主机控制各个模块正常工作。

s104:通过隶属度传播模型对复杂网络社团进行挖掘:建立社团种子节点的选取框架,以社团种子节点的基本特征为依据,确定种子节点选取的测试顺序,所述节点为网关节点。

s105:构建网络节点之间的隶属度传播模型,将种子节点的社团隶属度传播至非种子节点;以优化社团划分结果的模块度为目标,确定社团种子节点的选准则。

s106:当社团种子节点选取完毕后,通过调整节点社团属性以及合并社团的方式,对模块度进行进一步优化,并修正各节点的社团隶属度,得到最终的模糊社团挖掘结果。

s107:确定复杂网络社团;获取所述复杂网络中每个节点的权重值;依据所述复杂网络中每个节点的权重值,获取复杂网络中每个节点的局部重心性数值。

s108:依据每个节点的局部重心性数值确定目标局部重心点;确定分别以每个所述目标局部重心点为重心的初始社团;确定所述初始社团中的网络社团。

s109:利用划分程序对复杂网络社团进行划分;利用扩展程序对复杂网络社团进行扩展;利用优化程序对复杂网络社团进行优化;利用spark云服务技术对复杂网络社团进行大数据计算处理。

s110:通过存储芯片存储探测的复杂网络社团及检测复杂网络社团异常情况的实时数据;利用显示器显示探测的复杂网络社团及检测复杂网络社团的异常情况。

本发明实施例提供的s101中,通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测的方法包括:

(1)以点对的形式输入网络数据,利用图的数据结构保存网络数据,并形成网络图g(v,e)。

(2)使用基于节点权重的改进型pagerank算法(wp)计算网络g(v,e)中节点的影响力(wp值);根据节点的wp值对网络节点进行排序;按照节点排序结果选取骨干节点。

(3)创建骨干网络,将所有的骨干节点以及两个端点均为骨干节点的边加入骨干网络。

(4)在骨干网络中运行层次聚类方法,得到骨干社团结构。

(5)使用扩展方法,将骨干社团扩展到全网,得到整体网络的社团结构。

本发明实施例提供的基于节点权重的改进型pagerank算法(wp)的计算公式为:

其中,wvi是节点vi的度,是整个网络中所有节点的度值的总和,wp(vj)是节点vj的wp值。

本发明实施例提供的扩展方法的具体步骤如下:

1)为整体网络的社团集合cs赋初始值为骨干网络的社团集合:cs=ks。

2)对于每个非骨干节点v,遍历其所有邻居节点,如果邻居节点u包含在社团集合cs,那么计算节点v和节点u所在的社团之间的密切度。

3)比较节点v和其所有邻居社团之间的密切度,将节点v加入密切度最大的社团;所述节点和社团的密切度计算公式为:

其中,等号右边分子部分表示在社团c中与节点v有直接边联系的所有节点的wp值的总和与节点v的wp值之和,分母为社团c的所有节点的wp值的总和与节点v的wp值之和。

本发明实施例提供的s104中,通过隶属度传播模型对复杂网络社团进行挖掘的方法如下:

(1)建立社团种子节点的选取框架,以社团种子节点的基本特征为依据,确定种子节点选取的测试顺序,所述节点为网关节点。

(2)构建网络节点之间的隶属度传播模型,在传播过程中,社团种子节点的隶属度向量保持不变,而非种子节点的隶属度向量则进行迭代更新,通过这种方式,将种子节点的社团隶属度传播至非种子节点。

(3)在此基础上,以优化社团划分结果的模块度为目标,确定社团种子节点的选准则,即:若某节点被标记为种子节点后,社团划分结果的模块度没有减小,则将该节点接受为新的种子节点。

(4)当社团种子节点选取完毕后,通过调整节点社团属性以及合并社团的方式,对模块度进行进一步优化,并修正各节点的社团隶属度,得到最终的模糊社团挖掘结果。

本发明实施例提供的确定社团种子节点选取的测试顺序的过程为:在社团种子节点的选取过程中,按照度从大到小的顺序测试节点是否为种子节点,对于同度节点,则考虑其邻居节点度之和,即按照邻居节点度之和从小到大的顺序进行测试。

本发明实施例提供的隶属度传播的过程为:社团种子节点的隶属度向量保持不变,而非种子节点的隶属度向量则进行迭代更新,当所有非种子节点的隶属度向量收敛至稳定状态时,传播过程结束。

本发明实施例提供的非种子节点隶属度向量迭代更新的实现为:在每次更新计算中,根据边的权重,将非种子节点的隶属度向量取为其邻居节点的隶属度向量的加权平均。

本发明实施例提供的社团种子节点的选取准则为:将某节点标记为种子节点,并进行隶属度传播,然后将传播结果转化为非重叠社团划分结果;利用模块度对该划分结果进行评价,若模块度减小,则将该节点重新标记为非种子节点。

本发明实施例提供的社团种子节点的选取准则还包括:每当接受一个新的种子节点后,需对已有种子节点进行筛选。

本发明实施例提供的s107中,确定复杂网络社团的方法如下:

(1)复杂网络包括多个节点,每个所述节点分别与至少一个区别于自身节点的节点相连,相连节点之间的边具有两个边方向,且每个边方向具有各自的边权值,利用获取所述复杂网络中每个节点的权重值;

其中,wij为所述复杂网络中节点vi指向节点vj的边方向的边权值,wji为节点vj指向节点vi的边方向的边权值,r为边权值wji中与边权值wij相关联的数值,hi为所述复杂网络中节点vi所属的邻域节点,λ、β为参数,wi为所述复杂网络中节点vi的权重值。

(2)依据所述复杂网络中每个节点的权重值,利用获取所述复杂网络中每个节点的局部重心性数值;其中,wj为所述复杂网络中节点vj的权重值,act(vi)为所述节点vi的局部重心性数值。

(3)依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点。

(4)在所述复杂网络中,确定分别以每个所述目标局部重心点为重心的初始社团;确定所述初始社团中的网络社团。

本发明实施例提供的依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点,包括:

获取局部重心性数值大于预设第一数值的节点作为初始局部重心点;在所述复杂网络中,确定分别以每个所述初始局部重心点为重心的初始局部社团;

分别在每个所述初始局部社团中,确定到该初始局部社团中其他节点的距离之和最小的节点作为目标局部重心点。

本发明实施例提供的依据每个节点的局部重心性数值,在所述复杂网络中确定至少一个节点作为目标局部重心点,包括:分别确定每个所述节点的邻域所组成社团各自的社团密度值;获取每个所述节点的局部重心性数值与该节点对应的社团密度值的乘积;确定所述乘积大于预设第二数值的节点作为目标局部重心点。

本发明实施例提供的复杂网络中,确定分别以每个所述目标局部重心点为重心的初始社团,包括:对所述目标局部重心点依据其各自的局部重心性数值的大小进行排序;依次分别确定以排序后的每个所述目标局部重心点为重心的初始社团。

如图2所示,本发明实施例提供的spark云服务环境下面的复杂网络社团发现系统包括:社团探测模块1、异构网络信息融合模块2、异常检测模块3、主控模块4、社团挖掘模块5、社团确定模块6、社团划分模块7、扩展模块8、优化模块9、云服务模块10、数据存储模块11、显示模块12。

社团探测模块1,与主控模块4连接,用于通过基于节点权重的改进型pagerank算法进行复杂网络社团的探测。

异构网络信息融合模块2,与主控模块4连接,用于基于多种关系网络进行异构网络信息的融合。

异常检测模块3,与主控模块4连接,用于通过检测程序检测复杂网络社团异常。

主控模块4,与社团探测模块1、异构网络信息融合模块2、异常检测模块3、社团挖掘模块5、社团确定模块6、社团划分模块7、扩展模块8、优化模块9、云服务模块10、数据存储模块11、显示模块12连接,用于通过主机控制各个模块正常工作;

社团挖掘模块5,与主控模块4连接,用于通过隶属度传播模型对复杂网络社团进行挖掘;

社团确定模块6,与主控模块4连接,用于确定复杂网络社团。

社团划分模块7,与主控模块4连接,用于通过划分程序对复杂网络社团进行划分。

扩展模块8,与主控模块4连接,用于通过扩展程序对复杂网络社团进行扩展。

优化模块9,与主控模块4连接,用于通过优化程序对复杂网络社团进行优化。

云服务模块10,与主控模块4连接,用于通过spark云服务技术对复杂网络社团进行大数据计算处理。

数据存储模块11,与主控模块4连接,用于通过存储芯片存储探测的复杂网络社团及检测复杂网络社团异常情况的实时数据;

显示模块12,与主控模块4连接,用于通过显示器显示探测的复杂网络社团及检测复杂网络社团的异常情况。

以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。

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