CN107276843B - 一种基于Spark平台的多目标进化社区检测方法 - Google Patents
一种基于Spark平台的多目标进化社区检测方法 Download PDFInfo
- Publication number
- CN107276843B CN107276843B CN201710371317.XA CN201710371317A CN107276843B CN 107276843 B CN107276843 B CN 107276843B CN 201710371317 A CN201710371317 A CN 201710371317A CN 107276843 B CN107276843 B CN 107276843B
- Authority
- CN
- China
- Prior art keywords
- node
- individual
- community
- population
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 7
- 238000004220 aggregation Methods 0.000 claims description 19
- 238000009826 distribution Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 17
- 230000002776 aggregation Effects 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 6
- 230000035772 mutation Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 230000007547 defect Effects 0.000 abstract description 3
- 230000009191 jumping Effects 0.000 abstract 2
- 230000006870 function Effects 0.000 description 39
- 238000012545 processing Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Spark平台的多目标进化社区检测方法,主要用于解决传统多目标进化算法在大规模网络社区检测上的缺陷。其包括如下步骤:1)读入待社区划分的网络邻接表,并初始化种群;2)每个节点收集由该节点参与构成的三角结构信息;3)计算种群每个个体的目标函数值,复制初始种群中的个体到个体当前个体的最好社区划分记录;4)通过交叉变异产生新个体,并计算新个体的目标函数值;5)通过基于边界交叉方式的分解策略来选择新一代种群,更新当前个体的最好社区划分记录;6)如果迭代次数到达最高上线,跳到步骤7),否则跳转到步骤4);7)输出多目标进化的社区发现结果。
Description
【技术领域】
本发明属于网络信息挖掘中的网络社区检测领域,具体是一种基于Spark平台的多目标进化社区检测方法,涉及分布式大数据处理,可用于发现大规模网络中的组织结构。
【背景技术】
随着信息技术的发展,智能手机和智能家居等已经深入人们的生活。它们在给人们提供便利时,也产生了规模不断变大,结构越来越复杂的物连网络和现代社交网络。例如人们在淘宝购买的物品可以串联起每一个购买过它的人,从而组成一个购物习惯的购物网络,这样的网络无疑是巨大而复杂的。但是从这样的具有现实意义的大规模网络中挖掘信息是很有意义的,比如在你购买物品时帮你推荐商品。社区检测是网络挖掘的一种信息获取方式,它可以帮助我们了解网络的组织结构,划分用户的喜好圈子定向的投放广告。
多目标进化算法在处理网络社区检测问题时,种群中的每个个体对应一种社区划分,目标函数分为社区间联系紧度函数和社区内联系紧密函数。种群在进化时尽量寻找社区间联系紧度函数值小而社区内联系紧密度函数值高的社区划分,最后会得到多个非支配的社区划分,这样的划分通常代表了不同层次的社区结构。但是多目标进化算法具有不可回避的缺陷,空间复杂度和时间复杂度较高,与种群大小和网络规模成正比。如果一个网络有1万节点,而进化算法种群规模是100,则需要大约3.8G的内存资源。
针对大规模复杂网络的社区检测,对算法设计以及计算设备提出了更高的要求。原有的一些算法占用太多计算资源,受到处理器核数及主频、内存大小等限制,处理大规模复杂网络时往往力不从心,或者处理速度太慢不符合人们对社区检测效率的要求。而分布式***,可以利用计算机间的通信机制协同处理数据,从而能打破这些计算资源对算法的限制。
为了处理实时的大规模数据流,当前互联网企业大多搭建了自己的分布式处理平台,流行的分布式处理平台有Hadoop和Spark等。Spark分布式平台是在Hadoop基础上发展而来,与Hadoop不同的是,Spark基于内存计算,数据模型更加抽象,不仅提高了迭代效率,而且易于设计迭代算法。另外Spark有自己的图模型库,可以很方便的处理网络问题。
【发明内容】
本发明的目的在于克服上述现有技术的缺点,提供一种基于Spark平台的多目标进化社区检测方法,目的在于使多目标进化社区检测算法可以有效处理大规模复杂网络的问题。
为达到上述目的,本发明采用以下技术方案予以实现:
一种基于Spark平台的多目标进化社区检测方法,包括以下步骤:
步骤1:读入待社区划分的网络邻接表,并初始化种群,利用节点数据集count函数,求出网络节点总数记为|V|;
步骤2:每个节点收集由该节点参与构成的三角结构信息,以及该节点的度;
步骤3:计算种群每个个体的目标函数值,复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,并记迭代次数i=0;
步骤4:通过交叉变异产生新个体,并计算新个体的目标函数值;
步骤5:通过基于边界交叉方式的分解策略来选择新一代种群,更新当前个体的最好社区划分记录;
步骤6:如果迭代次数i<iMax,则i=i+1,并跳转到步骤4,否则跳转到步骤7;
步骤7:输出多目标进化的社区发现结果。
本发明进一步的改进在于:
步骤1中,网络邻接表是网络数据的一种存储方式,邻接表中节点成对存在,表示这对节点有边连接。
步骤1具体方法如下:
步骤1-0:利用Hadoop分布式平台的文件管理,将待检测的网络邻接表保存到分布式文件存储***;
步骤1-1:利用Spark平台的图模型库GraphX通过读取网络的邻接表创建graph网络对象;
步骤1-2:利用标签传播算法(LabelPropagation),初始化网络的节点属性,并利用随机函数生成种群,种群大小记为popSize;
步骤1-3:利用节点数据集count函数求出网络节点总数;
需要说明的是:graph对象包含VertexRDD[VertexId,VD]节点数据集、EdgeRDD[ED]网络边数据集;其中VertexId即节点的id、VD为节点的属性,且成对存在,ED是网络边的属性;初始化后,节点的社区划分存储在节点属性VD中;对于种群而言,节点属性VD被扩展为数组,数组长度为种群中个体的数量,该数组记为popArray。
步骤2中,构成的三角结构是指该节点与另外两个节点两两相连的三角形连接;节点的度即与该节点相关联的边数。
步骤2具体方法如下:
步骤2-0:利用图模型GraphX的消息分发聚合机制收集节点的相邻节点id,组成相邻节点id表,记为ListIds;
步骤2-1:求步骤2-0中得到的ListIds长度,即得到该节点的度d,并存入节点属性VD中;
步骤2-1:在利用消息分发聚合机制,检查消息分发的源节点与目标节的ListIds是否有相同的id,及是否有相同的邻接点,有则表示能够构成三角结构,向目标节点发送该相邻节点的id,在目标节点的节点属性VD中存入该三角结构,节点能够组成的三角结构记为ListTriangles;
步骤2-2:经以上步骤,节点属性VD变为三元组:(popArray,d,ListTriangles);popArray表示种群在该节点的社区划分,d为节点的度,ListTriangles为该节点可组成的三角结构。
步骤3中,目标函数公式如下:
其中i是节点编号,V是网络中所有节点的集合,Sj是V的一个子集来代表一个社区,t(i,S)表示节点i与社区S内的点构成的三角结构数量,d表示节点i的度,|V|为集合V中节点的个数;特别的,公式(1)中节点i是社区Sj中与其他社区相连接的点;
公式(1)用来表示社区间的联系紧密度,其值越大代表社区间的联系越稀疏;公式(2)表示社区内节点的联系紧密度,其值越大代表社区内节点联系越紧密。
步骤3具体方法如下:
步骤3-0:利用图模型GraphX的消息分发聚合机制收集相邻节点的popArray,按位找出该节点i在其所属社区S中可构成的三角数t(i,S);
步骤3-1:判断节点i是否与其他社区的节点相连,若果是则onBound=1,否则onBound=0;
步骤3-2:在该节点为每一个个体,分别计算记为td,如果在步骤3-1被onBound=1,计算记为tv,否则tv=0;
步骤3-3:利用reduce函数对节点数据集的td、tv以及onBound进行求和,onBound的和记为M;
步骤3-5:复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,记迭代次数i=0。
步骤4中,通过交叉变异产生新个体,并计算新个体的目标函数值,其具体方法如下:
步骤4-0:将步骤3中求出的目标函数值,利用广播的方式,广播到每一个分布式集群的子机上;
步骤4-1:在种群中正负5个范围内,随机选出每个个体的Gbest;
步骤4-2:对于每个节点,取0到1内的随机值,与交叉概率比较,如果小于则执行步骤4-3,如果大于则跳转到步骤4-4;
步骤4-3:根据公式(3),为每个个体计算Pbest及Gbest的边界交叉聚合d的值gbip,分别记为PbestG,GbestG;
步骤4-3-1:取0到1内的随机值,与PbestG/(PbestG+GbestG)比较,如果大于则将PbestG的社区id赋给该个体,否则将Gbest的社区id赋给该个体;
步骤4-4:取0到1内的随机值,与变异概率比较,如果小于则个体保持不变,否则该节点在popArray中选取一个需要变异的个体;
步骤4-4-1:如果该节点有需要变异的个体,则利用消息分发聚合机制,收集相邻节点的在该个体处的社区划分;
步骤4-4-2:从收集到的社区划分中随机选出一个赋给该节点的变异个体;
步骤4-5:利用步骤3中求目标函数值的方法,求出新生的个体函数值。
步骤5中,基于边界交叉方式的分解策略如下:
min gbip(i|λ,z*)=d1+θd2 (3)
d2=|F-(z*-d1λ)| (5)
其中θ为预设参数,F=(Btc,Inc)为目标函数向量,λ=(λ1,λ2)为权重向量z*=(max(BtC),max(InC))为目标函数值当前最好的期望;当两个个体进行比较时,认为gbip越小距离的z*越近,个体越好。
步骤5具体方法如下:
步骤5-0:利用公式(3),计算当前种群及新生个体的边界交叉聚合的值,如果新生个体的较小则替换对应种群中的个体;
步骤5-1:根据步骤5-0,更新种群的目标函数值;
步骤5-2:根据步骤5-0,与Pbest中的目标函数值比较,如果新个体支配原有个体,则更新Pbest里的个体。
与现有技术相比,本发明具有以下有益效果:
本发明基于spark分布式平台实现来多目标进化算法,使多目标进化算法可以处理大规模复杂网络的社区检测问题;本发明中多目标进化算法的目标函数的,考虑社交网络中常见的社交关系:你好友的好友一般会和你是朋友;本发明中多目标进化算法的目标函数复杂度低,不需要太多Reduce操作,提高的算法运行效率。本发明采用Spark分布式平台实现多目标进化算法,并基于分布式平台的特性设计了合适的目标函数,从而使得算法可以解决大规模复杂网络的社区检测问题。
【附图说明】
图1为本发明的实现流程图;
图2为本发明通过消息分发聚合来获取节点三角结构信息的示意图;
图3为本发明在相应数据集上的测试结果。
【具体实施方式】
下面结合附图对本发明做进一步详细描述:
参见图1-3,本发明基于Spark平台的多目标进化社区检测方法,包括以下步骤:
步骤1:读入待社区划分的网络邻接表,并初始化种群,利用节点数据集count函数,求出网络节点总数记为|V|;网络邻接表是网络数据的一种存储方式,邻接表中节点成对存在,表示这对节点有边连接;
步骤1具体如下:
步骤1-0:利用Hadoop分布式平台的文件管理,将待检测的网络邻接表保存到分布式文件存储***;
步骤1-1:利用Spark平台的图模型库GraphX通过读取网络的邻接表创建graph网络对象;
步骤1-2:利用标签传播算法(LabelPropagation),初始化网络的节点属性,并利用随机函数生成种群,种群大小记为popSize;
步骤1-3:利用节点数据集count函数求出网络节点总数;
需要说明的是:graph对象包含VertexRDD[VertexId,VD]节点数据集、EdgeRDD[ED]网络边数据集等;其中VertexId即节点的id,VD为节点的属性,他们成对存在,ED是网络边的属性;初始化后,节点的社区划分存储在节点属性VD中;对于种群而言,节点属性VD被扩展为数组,数组长度为种群中个体的数量,该数组记为popArray;
步骤2:每个节点收集由该节点参与构成的三角结构信息,以及该节点的度;构成的三角结构是指该节点与另外两个节点两两相连的三角形连接;节点的度即与该节点相关联的边数;
步骤2具体如下:
步骤2-0:利用图模型GraphX的消息分发聚合机制收集节点的相邻节点id,组成相邻节点id表,记为ListIds;
步骤2-1:求步骤2-0中得到的ListIds长度,即可得到该节点的度d,并存入节点属性VD中;
步骤2-1:在利用消息分发聚合机制,检查消息分发的源节点与目标节的ListIds是否有相同的id,及是否有相同的邻接点,有则表示可以构成三角结构,向目标节点发送该相邻节点的id,在目标节点的节点属性VD中存入该三角结构,节点可组成的三角结构记为ListTriangles;
步骤2-2:经以上步骤,节点属性VD变为三元组:(popArray,d,ListTriangles);popArray表示种群在该节点的社区划分,d为节点的度,ListTriangles为该节点可组成的三角结构;
步骤3:计算种群每个个体的目标函数值,复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,并记迭代次数i=0;
目标函数公式如下:
其中i是节点编号,V是网络中所有节点的集合,Sj是V的一个子集来代表一个社区,t(i,S)表示节点i与社区S内的点构成的三角结构数量,d表示节点i的度,|V|为集合V中节点的个数;特别的,公式(1)中节点i是社区Sj中与其他社区相连接的点;
公式(1)用来表示社区间的联系紧密度,其值越大代表社区间的联系越稀疏;公式(2)表示社区内节点的联系紧密度,其值越大代表社区内节点联系越紧密;
步骤3具体如下:
步骤3-0:利用图模型GraphX的消息分发聚合机制收集相邻节点的popArray,按位找出该节点i在其所属社区S中可构成的三角数t(i,S);
步骤3-1:判断节点i是否与其他社区的节点相连,若果是则onBound=1,否则onBound=0;
步骤3-3:利用reduce函数对节点数据集的td、tv以及onBound进行求和,onBound的和记为M;
步骤3-4:对于每个个体,
步骤3-5:复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,记迭代次数i=0;
步骤4:通过交叉变异产生新个体,并计算新个体的目标函数值;
步骤4具体如下:
通过交叉变异产生新个体,并计算新个体的目标函数值
步骤4-0:将步骤3中求出的目标函数值,利用广播的方式,广播到每一个分布式集群的子机上;
步骤4-1:在种群中正负5个范围内,随机选出每个个体的Gbest;
步骤4-2:对于每个节点,取0到1内的随机值,与交叉概率比较,如果小于则执行步骤4-3,如果大于则跳转到步骤4-4;
步骤4-3:根据公式(3),为每个个体计算Pbest及Gbest的边界交叉聚合d的值gbip,分别记为PbestG,GbestG;
步骤4-3-1:取0到1内的随机值,与PbestG/(PbestG+GbestG)比较,如果大于则将PbestG的社区id赋给该个体,否则将Gbest的社区id赋给该个体;
步骤4-4:取0到1内的随机值,与变异概率比较,如果小于则个体保持不变,否则该节点在popArray中选取一个需要变异的个体;
步骤4-4-1:如果该节点有需要变异的个体,则利用消息分发聚合机制,收集相邻节点的在该个体处的社区划分;
步骤4-4-2:从收集到的社区划分中随机选出一个赋给该节点的变异个体;
步骤4-5:利用步骤3中求目标函数值的方法,求出新生的个体函数值;
步骤5:通过基于边界交叉方式的分解策略来选择新一代种群,更新当前个体的最好社区划分记录;
基于边界交叉方式的分解策略如下:
min gbip(i|λ,z*)=d1+θd2 (3)
d2=|F-(z*-d1λ)| (5)
其中θ为预设参数,F=(Btc,Inc)为目标函数向量,λ=(λ1,λ2)为权重向量z*=(max(BtC),max(InC))为目标函数值当前最好的期望;当两个个体进行比较时,认为gbip越小距离的z*越近,个体越好;
步骤5具体如下:
步骤5-0:利用公式(3),计算当前种群及新生个体的边界交叉聚合的值,如果新生个体的较小则替换对应种群中的个体;
步骤5-1:根据步骤5-0,更新种群的目标函数值;
步骤5-2:根据步骤5-0,与Pbest中的目标函数值比较,如果新个体支配原有个体,则更新Pbest里的个体;
步骤6:如果迭代次数i<iMax,则i=i+1,并跳转到步骤4,否则跳转到步骤7;
步骤7:输出多目标进化的社区发现结果;
通过以下仿真对本发明的效果做进一步说明:
1.仿真条件
本次实验是在由8台微机组建的Spark1.4.0分布式计算平台中完成的。
2.仿真实验的内容
本实验采用的社区检测评价指为WCC(the Weighted Community Clustering),WCC函数的作者在论文里证明,WCC与标准化互信息NMI存在正相关性,而标准化互信息NMI被用来评价一个聚类结果与标准划分之间差距的指标。
本实验采用的是斯坦福大学大规模网络数据集里的网络数据,该数据集的数据都采集自现实社会中的不同领域。
合作数据集是采集自不同期刊,把在期刊发表过论文的作者抽象为节点,如果两个学者一起发表过论文就会有一条边把他们相连,从而构成合作网络。其中:ca-AstroPh是Astro Physics期刊的合作网络,共18772个节点和198110条边;ca-CondMat是CondenseMater期刊的合作网络,共23133个节点和93497条边;ca-GrQc是General Relativity andQuantum Cosmology期刊的合作网络,共5242个节点和14496条边;ca-HepTh是High EnergyPhysics-Theory期刊的合作网络,共9877个节点和25998条边;Email-Enron为电子邮件分发网络,共有36692个节点和183831条边。实验结果如图3和表1所示。
表1
NetName | WCC | Q | Time |
CA-AstroPh | 0.089 | 0.232 | 12min |
CA-CondMat | 0.145 | 0.427 | 15min |
CA-HepPh | 0.147 | 0.410 | 8min |
Email-Enron | 0.092 | 0.279 | 21min |
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (4)
1.一种基于Spark平台的多目标进化社区检测方法,其特征在于,包括以下步骤:
步骤1:读入待社区划分的网络邻接表,并初始化种群,利用节点数据集count函数,求出网络节点总数记为|V|;网络邻接表是网络数据的一种存储方式,邻接表中节点成对存在,表示这对节点有边连接;具体方法如下:
步骤1-0:利用Hadoop分布式平台的文件管理,将待检测的网络邻接表保存到分布式文件存储***;
步骤1-1:利用Spark平台的图模型库GraphX通过读取网络的邻接表创建graph网络对象;
步骤1-2:利用标签传播算法,初始化网络的节点属性,并利用随机函数生成种群,种群大小记为popSize;
步骤1-3:利用节点数据集count函数求出网络节点总数;
需要说明的是:graph对象包含VertexRDD[VertexId,VD]节点数据集、EdgeRDD[ED]网络边数据集;其中VertexId即节点的id、VD为节点的属性,且成对存在,ED是网络边的属性;初始化后,节点的社区划分存储在节点属性VD中;对于种群而言,节点属性VD被扩展为数组,数组长度为种群中个体的数量,该数组记为popArray;
步骤2:每个节点收集由该节点参与构成的三角结构信息,以及该节点的度;具体方法如下:
步骤2-0:利用图模型GraphX的消息分发聚合机制收集节点的相邻节点id,组成相邻节点id表,记为ListIds;
步骤2-1:求步骤2-0中得到的ListIds长度,即得到该节点的度d,并存入节点属性VD中;
步骤2-1:在利用消息分发聚合机制,检查消息分发的源节点与目标节的ListIds是否有相同的id,及是否有相同的邻接点,有则表示能够构成三角结构,向目标节点发送该相邻节点的id,在目标节点的节点属性VD中存入该三角结构,节点能够组成的三角结构记为ListTriangles;
步骤2-2:经以上步骤,节点属性VD变为三元组:(popArray,d,ListTriangles);popArray表示种群在该节点的社区划分,d为节点的度,ListTriangles为该节点可组成的三角结构;
步骤3:计算种群每个个体的目标函数值,复制初始种群中的个体到当前个体的最好社区划分记录,记为Pbest,并记迭代次数i=0;目标函数公式如下:
其中i是节点编号,V是网络中所有节点的集合,Sj是V的一个子集来代表一个社区,t(i,S)表示节点i与社区S内的点构成的三角结构数量,d表示节点i的度,|V|为集合V中节点的个数;特别的,公式(1)中节点i是社区Sj中与其他社区相连接的点;
公式(1)用来表示社区间的联系紧密度,其值越大代表社区间的联系越稀疏;公式(2)表示社区内节点的联系紧密度,其值越大代表社区内节点联系越紧密;
所述步骤3的具体方法如下:
步骤3-0:利用图模型GraphX的消息分发聚合机制收集相邻节点的popArray,按位找出该节点i在其所属社区S中可构成的三角数t(i,S);
步骤3-1:判断节点i是否与其他社区的节点相连,若果是则onBound=1,否则onBound=0;
步骤3-3:利用reduce函数对节点数据集的td、tv以及onBound进行求和,onBound的和记为M;
步骤3-5:复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,记迭代次数i=0;
步骤4:通过交叉变异产生新个体,并计算新个体的目标函数值,具体方法如下:
步骤4-0:将步骤3中求出的目标函数值,利用广播的方式,广播到每一个分布式集群的子机上;
步骤4-1:在种群中正负5个范围内,随机选出每个个体的Gbest;
步骤4-2:对于每个节点,取0到1内的随机值,与交叉概率比较,如果小于则执行步骤4-3,如果大于则跳转到步骤4-4;
步骤4-3:根据公式(3),为每个个体计算Pbest及Gbest的边界交叉聚合d的值gbip,分别记为PbestG,GbestG;
步骤4-3-1:取0到1内的随机值,与PbestG/(PbestG+GbestG)比较,如果大于则将PbestG的社区id赋给该个体,否则将Gbest的社区id赋给该个体;
步骤4-4:取0到1内的随机值,与变异概率比较,如果小于则个体保持不变,否则该节点在popArray中选取一个需要变异的个体;
步骤4-4-1:如果该节点有需要变异的个体,则利用消息分发聚合机制,收集相邻节点的在该个体处的社区划分;
步骤4-4-2:从收集到的社区划分中随机选出一个赋给该节点的变异个体;
步骤4-5:利用步骤3中求目标函数值的方法,求出新生的个体函数值;
步骤5:通过基于边界交叉方式的分解策略来选择新一代种群,更新当前个体的最好社区划分记录;
步骤6:如果迭代次数i<iMax,则i=i+1,并跳转到步骤4,否则跳转到步骤7;
步骤7:输出多目标进化的社区发现结果。
2.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤2中,构成的三角结构是指该节点与另外两个节点两两相连的三角形连接;节点的度即与该节点相关联的边数。
4.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤5具体方法如下:
步骤5-0:利用公式(3),计算当前种群及新生个体的边界交叉聚合的值,如果新生个体的较小则替换对应种群中的个体;
步骤5-1:根据步骤5-0,更新种群的目标函数值;
步骤5-2:根据步骤5-0,与Pbest中的目标函数值比较,如果新个体支配原有个体,则更新Pbest里的个体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710371317.XA CN107276843B (zh) | 2017-05-19 | 2017-05-19 | 一种基于Spark平台的多目标进化社区检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710371317.XA CN107276843B (zh) | 2017-05-19 | 2017-05-19 | 一种基于Spark平台的多目标进化社区检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107276843A CN107276843A (zh) | 2017-10-20 |
CN107276843B true CN107276843B (zh) | 2020-02-07 |
Family
ID=60065769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710371317.XA Active CN107276843B (zh) | 2017-05-19 | 2017-05-19 | 一种基于Spark平台的多目标进化社区检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107276843B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182243B (zh) * | 2017-12-28 | 2020-07-14 | 大连理工大学 | 一种基于Spark的分布式进化算法岛模型并行化方法 |
CN108229063B (zh) * | 2018-02-02 | 2021-05-28 | 我知盘中餐(厦门)电子商务有限公司 | Moea/d分区方法、装置、设备及计算机存储介质 |
CN110674413B (zh) * | 2019-09-09 | 2022-03-25 | 平安科技(深圳)有限公司 | 用户关系挖掘方法、装置、设备和存储介质 |
CN113704570B (zh) * | 2021-06-16 | 2024-01-05 | 香港理工大学深圳研究院 | 基于自监督学习式进化的大规模复杂网络社区检测方法 |
CN114281397A (zh) * | 2021-10-25 | 2022-04-05 | 中国矿业大学 | 基于分解多目标遗传算法的软件生态***社区检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346708B2 (en) * | 2009-01-22 | 2013-01-01 | Nec Laboratories America, Inc. | Social network analysis with prior knowledge and non-negative tensor factorization |
CN103838820A (zh) * | 2013-12-24 | 2014-06-04 | 西安电子科技大学 | 基于近邻传播的进化多目标优化社区检测方法 |
CN104657442A (zh) * | 2015-02-04 | 2015-05-27 | 上海交通大学 | 基于局部搜索的多目标社区发现方法 |
CN104933103A (zh) * | 2015-05-29 | 2015-09-23 | 上海交通大学 | 整合结构聚类和属性分类的多目标社区发现方法 |
CN105069039A (zh) * | 2015-07-22 | 2015-11-18 | 山东大学 | 一种基于spark平台的内存迭代的重叠社区并行发现方法 |
CN105740952A (zh) * | 2016-01-22 | 2016-07-06 | 南京邮电大学 | 社区网络检测的多目标快速遗传方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150134402A1 (en) * | 2013-11-11 | 2015-05-14 | Yahoo! Inc. | System and method for network-oblivious community detection |
-
2017
- 2017-05-19 CN CN201710371317.XA patent/CN107276843B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346708B2 (en) * | 2009-01-22 | 2013-01-01 | Nec Laboratories America, Inc. | Social network analysis with prior knowledge and non-negative tensor factorization |
CN103838820A (zh) * | 2013-12-24 | 2014-06-04 | 西安电子科技大学 | 基于近邻传播的进化多目标优化社区检测方法 |
CN104657442A (zh) * | 2015-02-04 | 2015-05-27 | 上海交通大学 | 基于局部搜索的多目标社区发现方法 |
CN104933103A (zh) * | 2015-05-29 | 2015-09-23 | 上海交通大学 | 整合结构聚类和属性分类的多目标社区发现方法 |
CN105069039A (zh) * | 2015-07-22 | 2015-11-18 | 山东大学 | 一种基于spark平台的内存迭代的重叠社区并行发现方法 |
CN105740952A (zh) * | 2016-01-22 | 2016-07-06 | 南京邮电大学 | 社区网络检测的多目标快速遗传方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107276843A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107276843B (zh) | 一种基于Spark平台的多目标进化社区检测方法 | |
Harenberg et al. | Community detection in large‐scale networks: a survey and empirical evaluation | |
Liu et al. | A multiobjective evolutionary algorithm based on similarity for community detection from signed social networks | |
Aghaalizadeh et al. | A three-stage algorithm for local community detection based on the high node importance ranking in social networks | |
Gong et al. | Identification of multi-resolution network structures with multi-objective immune algorithm | |
Cao et al. | HitFraud: a broad learning approach for collective fraud detection in heterogeneous information networks | |
Sun et al. | Overlapping community detection based on information dynamics | |
Dong et al. | TSIFIM: A three-stage iterative framework for influence maximization in complex networks | |
Pourkazemi et al. | Community detection in social network by using a multi-objective evolutionary algorithm | |
Wang et al. | Link prediction based on community information and its parallelization | |
Souravlas et al. | Probabilistic community detection in social networks | |
Wickman et al. | A Generic Graph Sparsification Framework using Deep Reinforcement Learning | |
Ge et al. | Intelligent link prediction management based on community discovery and user behavior preference in online social networks | |
Bhat et al. | OCMiner: a density-based overlapping community detection method for social networks | |
Liu et al. | A new method of identifying core designers and teams based on the importance and similarity of networks | |
Liao et al. | Slr: A scalable latent role model for attribute completion and tie prediction in social networks | |
Zhang et al. | Community and local information preserved link prediction in complex networks | |
Liu et al. | Social Network Community‐Discovery Algorithm Based on a Balance Factor | |
Zhang et al. | A collaborative filtering recommendation algorithm for social interaction | |
Mu et al. | A memetic algorithm using local structural information for detecting community structure in complex networks | |
Sina et al. | Sami: an algorithm for solving the missing node problem using structure and attribute information | |
Jin | Construction of" One Belt and One Road" Intelligent Analysis System Based on Cloud Model Data Mining Algorithm | |
Cuzzocrea et al. | Mining of diverse social entities from linked data | |
Lu | Research on the Application of Multidimensional Cluster Analysis in Customer Information | |
Zhao et al. | Probability-Corrected Overlapping Community Detection Algorithm Based on GCN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |