CN107276843A - 一种基于Spark平台的多目标进化社区检测方法 - Google Patents

一种基于Spark平台的多目标进化社区检测方法 Download PDF

Info

Publication number
CN107276843A
CN107276843A CN201710371317.XA CN201710371317A CN107276843A CN 107276843 A CN107276843 A CN 107276843A CN 201710371317 A CN201710371317 A CN 201710371317A CN 107276843 A CN107276843 A CN 107276843A
Authority
CN
China
Prior art keywords
node
individual
community
mrow
population
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.)
Granted
Application number
CN201710371317.XA
Other languages
English (en)
Other versions
CN107276843B (zh
Inventor
公茂果
陈兰强
秦晓雷
王善峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201710371317.XA priority Critical patent/CN107276843B/zh
Publication of CN107276843A publication Critical patent/CN107276843A/zh
Application granted granted Critical
Publication of CN107276843B publication Critical patent/CN107276843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social 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平台的多目标进化社区检测方法
【技术领域】
本发明属于网络信息挖掘中的网络社区检测领域,具体是一种基于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-4:对于每个个体,
步骤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)为目标函数向量,λ=(λ12)为权重向量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-2:在该节点为每一个个体,分别计算记为td,如果在步骤3-1被onBound=1,计算记为tv,否则tv=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)为目标函数向量,λ=(λ12)为权重向量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 (10)

1.一种基于Spark平台的多目标进化社区检测方法,其特征在于,包括以下步骤:
步骤1:读入待社区划分的网络邻接表,并初始化种群,利用节点数据集count函数,求出网络节点总数记为|V|;
步骤2:每个节点收集由该节点参与构成的三角结构信息,以及该节点的度;
步骤3:计算种群每个个体的目标函数值,复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,并记迭代次数i=0;
步骤4:通过交叉变异产生新个体,并计算新个体的目标函数值;
步骤5:通过基于边界交叉方式的分解策略来选择新一代种群,更新当前个体的最好社区划分记录;
步骤6:如果迭代次数i<iMax,则i=i+1,并跳转到步骤4,否则跳转到步骤7;
步骤7:输出多目标进化的社区发现结果。
2.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤1中,网络邻接表是网络数据的一种存储方式,邻接表中节点成对存在,表示这对节点有边连接。
3.根据权利要求1或2所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤1具体方法如下:
步骤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。
4.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤2中,构成的三角结构是指该节点与另外两个节点两两相连的三角形连接;节点的度即与该节点相关联的边数。
5.根据权利要求1或4所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤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为该节点可组成的三角结构。
6.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤3中,目标函数公式如下:
<mrow> <mi>B</mi> <mi>t</mi> <mi>C</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>M</mi> </mfrac> <msub> <mi>&amp;Sigma;S</mi> <mi>i</mi> </msub> <mo>&amp;SubsetEqual;</mo> <mi>v</mi> <mi>&amp;Sigma;</mi> <mi>b</mi> <mi>o</mi> <mi>u</mi> <mi>n</mi> <mi>d</mi> <mi> </mi> <mi>o</mi> <mi>f</mi> <mi> </mi> <msub> <mi>S</mi> <mi>i</mi> </msub> <mfrac> <mrow> <mi>t</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <msub> <mi>S</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>t</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>V</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mi>I</mi> <mi>n</mi> <mi>C</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>V</mi> <mo>|</mo> </mrow> </mfrac> <msub> <mi>&amp;Sigma;S</mi> <mi>i</mi> </msub> <mo>&amp;SubsetEqual;</mo> <mi>v</mi> <mi>&amp;Sigma;</mi> <mi>i</mi> <mo>&amp;SubsetEqual;</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mfrac> <mrow> <mn>2</mn> <mo>*</mo> <mi>t</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <msub> <mi>S</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>d</mi> <mn>2</mn> </msup> <mo>-</mo> <mi>d</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
其中i是节点编号,V是网络中所有节点的集合,Sj是V的一个子集来代表一个社区,t(i,S)表示节点i与社区S内的点构成的三角结构数量,d表示节点i的度,|V|为集合V中节点的个数;特别的,公式(1)中节点i是社区Sj中与其他社区相连接的点;
公式(1)用来表示社区间的联系紧密度,其值越大代表社区间的联系越稀疏;公式(2)表示社区内节点的联系紧密度,其值越大代表社区内节点联系越紧密。
7.根据权利要求1或6所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤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-4:对于每个个体,
步骤3-5:复制初始种群中的个体到个体当前个体的最好社区划分记录,记为Pbest,记迭代次数i=0。
8.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤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中求目标函数值的方法,求出新生的个体函数值。
9.根据权利要求1所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤5中,基于边界交叉方式的分解策略如下:
mingbip(i|λ,z*)=d1+θd2 (3)
<mrow> <msub> <mi>d</mi> <mn>1</mn> </msub> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msup> <mrow> <mo>(</mo> <msup> <mi>z</mi> <mo>*</mo> </msup> <mo>-</mo> <mi>F</mi> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mi>&amp;lambda;</mi> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>&amp;lambda;</mi> <mo>|</mo> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
d2=|F-(z*-d1λ)| (5)
其中θ为预设参数,F=(Btc,Inc)为目标函数向量,λ=(λ12)为权重向量z*=(max(BtC),max(InC))为目标函数值当前最好的期望;当两个个体进行比较时,认为gbip越小距离的z*越近,个体越好。
10.根据权利要求1或8所述的基于Spark平台的多目标进化社区检测方法,其特征在于,步骤5具体方法如下:
步骤5-0:利用公式(3),计算当前种群及新生个体的边界交叉聚合的值,如果新生个体的较小则替换对应种群中的个体;
步骤5-1:根据步骤5-0,更新种群的目标函数值;
步骤5-2:根据步骤5-0,与Pbest中的目标函数值比较,如果新个体支配原有个体,则更新Pbest里的个体。
CN201710371317.XA 2017-05-19 2017-05-19 一种基于Spark平台的多目标进化社区检测方法 Active CN107276843B (zh)

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 true CN107276843A (zh) 2017-10-20
CN107276843B 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182243A (zh) * 2017-12-28 2018-06-19 大连理工大学 一种基于Spark的分布式进化算法岛模型并行化方法
CN108229063A (zh) * 2018-02-02 2018-06-29 我知盘中餐(厦门)电子商务有限公司 Moea/d分区方法、装置、设备及计算机存储介质
WO2021047021A1 (zh) * 2019-09-09 2021-03-18 平安科技(深圳)有限公司 信息挖掘方法、装置、设备和存储介质
CN113704570A (zh) * 2021-06-16 2021-11-26 香港理工大学深圳研究院 基于自监督学习式进化的大规模复杂网络社区检测方法
CN114281397A (zh) * 2021-10-25 2022-04-05 中国矿业大学 基于分解多目标遗传算法的软件生态系统社区检测方法

Citations (7)

* Cited by examiner, † Cited by third party
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 西安电子科技大学 基于近邻传播的进化多目标优化社区检测方法
US20150134402A1 (en) * 2013-11-11 2015-05-14 Yahoo! Inc. System and method for network-oblivious community detection
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 南京邮电大学 社区网络检测的多目标快速遗传方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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
US20150134402A1 (en) * 2013-11-11 2015-05-14 Yahoo! Inc. System and method for network-oblivious community detection
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 南京邮电大学 社区网络检测的多目标快速遗传方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182243A (zh) * 2017-12-28 2018-06-19 大连理工大学 一种基于Spark的分布式进化算法岛模型并行化方法
CN108182243B (zh) * 2017-12-28 2020-07-14 大连理工大学 一种基于Spark的分布式进化算法岛模型并行化方法
CN108229063A (zh) * 2018-02-02 2018-06-29 我知盘中餐(厦门)电子商务有限公司 Moea/d分区方法、装置、设备及计算机存储介质
CN108229063B (zh) * 2018-02-02 2021-05-28 我知盘中餐(厦门)电子商务有限公司 Moea/d分区方法、装置、设备及计算机存储介质
WO2021047021A1 (zh) * 2019-09-09 2021-03-18 平安科技(深圳)有限公司 信息挖掘方法、装置、设备和存储介质
CN113704570A (zh) * 2021-06-16 2021-11-26 香港理工大学深圳研究院 基于自监督学习式进化的大规模复杂网络社区检测方法
CN113704570B (zh) * 2021-06-16 2024-01-05 香港理工大学深圳研究院 基于自监督学习式进化的大规模复杂网络社区检测方法
CN114281397A (zh) * 2021-10-25 2022-04-05 中国矿业大学 基于分解多目标遗传算法的软件生态系统社区检测方法

Also Published As

Publication number Publication date
CN107276843B (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN107276843A (zh) 一种基于Spark平台的多目标进化社区检测方法
CN111428147A (zh) 结合社交和兴趣信息的异源图卷积网络的社交推荐方法
Raj et al. An enhanced trust prediction strategy for online social networks using probabilistic reputation features
Aghaalizadeh et al. A three-stage algorithm for local community detection based on the high node importance ranking in social networks
Wang et al. Effective identification of multiple influential spreaders by DegreePunishment
Zhang et al. A social community detection algorithm based on parallel grey label propagation
Chen et al. Influence maximization on signed social networks with integrated pagerank
CN102799671A (zh) 基于PageRank算法的网络个性化推荐方法
Wu A generalized tree augmented naive Bayes link prediction model
CN110032603A (zh) 一种对关系网络图中的节点进行聚类的方法及装置
Zhao et al. Ranking influential nodes in complex networks with information entropy method
Aghaee et al. A heuristic algorithm focusing on the rich-club phenomenon for the influence maximization problem in social networks
Huang et al. Information fusion oriented heterogeneous social network for friend recommendation via community detection
Dong et al. TSIFIM: A three-stage iterative framework for influence maximization in complex networks
Dai et al. Opinion influence maximization problem in online social networks based on group polarization effect
Jiang et al. Dynamic community detection based on game theory in social networks
Khavandi et al. Maximizing the Impact on Social Networks using the Combination of PSO and GA Algorithms
Liu et al. Semi-supervised stochastic blockmodel for structure analysis of signed networks
Yuliansyah et al. Extending adamic adar for cold-start problem in link prediction based on network metrics
Gupta et al. A comparative analysis of genetic programming and genetic algorithm on multi-criteria recommender systems
Wu et al. Link prediction based on random forest in signed social networks
CN109410078A (zh) 一种适用于面向文件共享的移动社交网络的信息传播预测方法
Ren et al. Learning rating patterns for top-n recommendations
CN104063516B (zh) 基于分布式矩阵分解特征提取的社交网络垃圾过滤方法
Khan et al. vGraph: graph virtualization towards big data

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