Multi-level learning based memetic algorithm for community detection”

本文提出了通过优化模型进行社区检测的基于多级学习策略的模因算法 MLCD。MLCD 采用遗传算法做全局搜索并提出了多层学习策略来加速收敛。
多层学习策略分别在网络的结点、聚类和网络分区层上工作。通过迭代执行遗传算法和多层学习策略,能够准确、稳定的获得具有高模块化的网络部分。
文章同时使用了模块化标签传播规则,在每次操作时更新每个节点的聚类标识符,简单的更新规则也保证了算法的运行速度。
MLCD 算法在 GN、LFR 和 12 个实际网络中进行了实验,并与其它算法进行比较,实验结果表明 MLCD 在寻找网络的适当社区结构时有优越的性能。

1.Introduction

传统的几种算法和本文使用的算法MLCD:
(1)FM(fast greed method):迭代加入一对模块化增益最大的群落,倾向于获得相当大的群落而忽略小的群落。缺点:从而很容易进入局部最优网络划分。
(2)LPAm(The modularity-specific label propagation algorithm):对节点的优化顺序非常敏感,因此在不同的独立试验中显示的网络分区是不同的。此外,还容易进入局部最优网络划分,其中被检测的群落总体上是相似的
(3)The multistep techniques:迭代地合并一组节点和社区,也很容易得到一个局部最优解。这是因为合并的节点和社区几乎不可能再次分离。
(4)Memetic algorithms (MAs) :模因算法是全局-局部混合启发式搜索方法。全局启发式搜索准确但是速度慢,局部搜索速度快但是易陷于局部最优解,综合了基于种群的全局搜索和基于个体的局部搜索的互补优势,可以有效地产生更好的解决方案。
(5)Meme-Net:揭示不同等级层次的社区。但是计算复杂度过大使它不可能运用于大型网络。
(6)MLCD(Multi-level learning based memetic algorithm):采用遗传算法作为全局搜索,使用所提出的多层次学习算法来加速收敛。提出的多层次学习策略分别在网络的节点、聚类和网络划分层次上起作用。通过迭代执行遗传算法和多级学习策略,可以准确、稳定地获得模块化程度高的网络划分。还采用了模块化特定的标签传播规则来更新每个操作中每个节点的聚类标识符。

2.Problem definition

(1)community的定义:它的定义与具体系统和实际应用密切相关。在大多数情况下,community在算法层面的定义是基于图的顶点度的。

对于community(or sub-graph:S∈GS \in GS∈G):
ksin=∑i∈S,j∈SAijk_s^{in}=\sum_{i\in S,j\in S}A_{ij}ksin​=∑i∈S,j∈S​Aij​表示的是SSS中所有边的的个数,
ksout=∑i∈S,j∉SAijk_s^{out}=\sum_{i\in S,j\not\in S}A_{ij}ksout​=∑i∈S,j​∈S​Aij​表示的是SSS之外所有边的个数,
如果ksin>ksoutk_s^{in}>k_s^{out}ksin​>ksout​,那么就说明这个子图是一个community。

(2)评价网络划分的质量:典型的方法是模块化(Modularity)。模块化度量的是社区内边缘的实际比例与其期望值之间的差异。
一个具有 m 个边和 k 个社区的网络,模块性可以表示为:
Q=∑s=1k[lsm−(ks2m)]Q=\sum_{s=1}^k\left[\frac{l_s}{m}-\left(\frac{k_s}{2m}\right)\right]Q=s=1∑k​[mls​​−(2mks​​)]
其中lsl_sls​和ksk_sks​是sss中的 linklinklink 总数和节点的总度,
Q∈[−1,1]Q\in \left[-1,1\right]Q∈[−1,1],当 Q<0Q< 0Q<0 时,意味着网络划分对于反映网络的社区结构是无用的;当 Q=0Q = 0Q=0,表示社区和零模型之间的边的比例没有差异;对于给定的网络,模块化值较高的网络分区对应于网络的更好的社区分区。如果采用 QQQ 来评价网络社区划分的质量,那么复杂网络中的社区发现问题就成为一个基于模块化的最佳化问题。

3.The proposed memetic algorithm with multi-level learning strategies for community detection

(1)表示:

  • xa:1≤a≤Npx_a: 1\leq a\leq N_pxa​:1≤a≤Np​, each solution(chromosome or individual),
  • xa={xa1,xa2,...,xan}x_a=\lbrace x_a^1, x_a^2, ..., x_a^n \rbracexa​={xa1​,xa2​,...,xan​};
  • xajx_a^jxaj​: 表示在个体 xax_axa​ 节点 vjv_jvj​ 的聚类标识符, [1,2,...,n]\left[1, 2, ..., n\right][1,2,...,n],如果xai=xajx_a^i=x_a^jxai​=xaj​,那么节点 viv_ivi​ 和 vjv_jvj​ 在同一个聚类中。

(2)初始化:启发式初始化

  • 首先,每个个体中的每个基因都初始化到不同的聚类中:xai←1,1≤i≤n,1≤a≤Npx_a^i\leftarrow 1,1\leq i\leq n, 1\leq a\leq N_pxai​←1,1≤i≤n,1≤a≤Np​;
  • 然后根据邻居节点更新节点的聚类标识符:xai←xaj,∃j∈{j∣Aij=1}x_a^i\leftarrow x_a^j, \exists j\in\lbrace j|A_{ij}=1\rbracexai​←xaj​,∃j∈{j∣Aij​=1};
  • 上述过程更新 NpN_pNp​ 次,有最大模块化的个体被选择为 xgx_gxg​.

(3)基因操作:交叉

  • 传统方法有:uniform crossover and the two-point crossover;
  • Two-way crossover

(4)基因操作:突变

  • 首先,对于每个个体 xc∈XCx_c\in X_Cxc​∈XC​ 中的每个节点 viv_ivi​ ,生成一个随机数∈[0,1]\in [0, 1]∈[0,1];
  • 如果随机数<pm<p_m<pm​,那么节点viv_ivi​的聚类标识符随机突变成此节点邻接点的聚类标识符:xci←xcj,∃j∈{j∣Aij=1}x_c^i \leftarrow x_c^j,\exists j\in \lbrace j|A_{ij}=1\rbracexci​←xcj​,∃j∈{j∣Aij​=1};
  • 生成的子代中,模块化最大的个体,被选择为 xlx_lxl​.

(5)多层次学习策略

  • The first-level learning:类似于LPAm

    xlx_lxl​: 突变之后选中的模块化最大的个体,作为节点层次学习策略的初始化个体;
    GGG: 有nnn个节点的网络;
    缺点:易于陷入局部最优
    M-LPAm:LPAm算法结合遗传算法,能够避免局部最优解,但是对于大规模的网络则不行。

  • The second-level learning:类似于BGLL
    首先假设个体xlx_lxl​有kkk个社区,(e.g.s1,s2,...,sk)(e.g. s_1,s_2,...,s_k)(e.g.s1​,s2​,...,sk​),一个网络G′G^\primeG′,节点是由kkk个社区组成;
    然后给每个节点分配一个独一无二的聚类标识符,Xi=i,1≤i≤kX^i=i, 1\leq i\leq kXi=i,1≤i≤k,其中XiX^iXi表示的是每个节点vi′v_i\primevi​′的聚类标识符;
    接着使用 The first-level learning 策略找到一个更好的网络划分;
    最后将G′G^\primeG′解码成原来网络GGG的社区划分,返回一个新的个体 xex_exe​ 。

  • The third-level learning:
    对于两个个体:xg={g1,g2,...,gk1}x_g=\lbrace g_1, g_2, ... , g_{k_1}\rbracexg​={g1​,g2​,...,gk1​​} 和 xe={s1,s2,...,sk2}x_e=\lbrace s_1, s_2, ... , s_{k_2}\rbracexe​={s1​,s2​,...,sk2​​},其中k1k_1k1​和k2k_2k2​分别是xgx_gxg​和xex_exe​的聚类的数量;
    gig_igi​: 1≤i≤k11\leq i\leq k_11≤i≤k1​,是xgx_gxg​的聚类;
    gig_igi​中对应的节点划入同一个聚类中的两个原则:(1)如果节点在两个个体中都是同属于一个聚类,那么将它们划分到一个聚类中;(2)如果节点在xgx_gxg​中属于一个聚类,但是在xex_exe​中属于不同的聚类,那么将它们划分到不同的聚类;

Multi-level learning based memetic algorithm for community detection笔记相关推荐

  1. 跌倒综述 Deep Learning Based Systems Developed for Fall Detection A Review

    文章目录 1.基本信息 2. 第一节 介绍 3. 第二节 跌倒检测系统文献 4.第三节 讨论和未来方向 5. 第四节 结论 6. 参考文献 1.基本信息 题目:Deep Learning Based ...

  2. Turbo Autoencoder: Deep learning based channel code for point-to-point communication channels

    Turbo Autoencoder: Deep learning based channel code for point-to-point communication channels Abstra ...

  3. 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...

    论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model c ...

  4. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  5. 38动感菜单 38 jQuery And CSS Drop Down Multi Level Menu Solutions

    参看: http://www.1stwebdesigner.com/freebies/38-jquery-and-css-drop-down-multi-level-menu-solutions/ 3 ...

  6. Deep learning based multi-scale channel compression feature surface defect detection system

    基于深度学习的多尺度通道压缩特征表面缺陷检测系统 Deep learning based multi-scale channel compression feature surface defect ...

  7. 【推荐算法】深度学习推荐算法综述 Deep Learning based Recommender System: A Survey and New Perspectives

    一.MLP based Recommender System 1. Deep Crossing模型 Deep Crossing模型完整的解决了从特征工程.稀疏向量稠密化.多层神经网络进行优化目标拟合等 ...

  8. Learning Based Digital Matting小结

    Title :Learning Based Digital Matting 论文链接: https://pan.baidu.com/s/1kXgQq39  密码: y5qq matlab code链接 ...

  9. Python编程基础:第四十二节 多重继承Multi Level Inheritance

    第四十二节 多重继承Multi Level Inheritance 前言 实践 前言 我们之前已经讲过继承的相关知识,当一个类是另一个类的父类,而此时这里的子类又是另一个类的父类,那此时就涉及多重继承 ...

  10. Memetic Algorithm(文化基因算法)

    1. 文化进化理论 威尔逊认为,从性质上来讲,文化进化总是以拉马克主义为特征的,即文化进化依赖于获得性状的传递,相对来说速度比较快:而基因进化是达尔文主义式的,依赖于经过几个世代的基因频率的改变,因而 ...

最新文章

  1. [ JSOI 2015 ] Salesman
  2. WindowManager.LayoutParams各种flag含义
  3. 2.4 Add a dynamic map
  4. java《算法》第四版一些API方法笔记
  5. 在控制台显示sql语句,类似hibernate show_sql.
  6. request_do?send方法
  7. 【转】刨根究底字符编码之三——字符编码的由来
  8. gdal数据类型_科学网-gdal数据类型的代码的核心定义文件-林清莹的博文
  9. CentOS 7防火墙开启路由功能和开放特定端口
  10. 享元模式在 Java Integer 中的应用
  11. 上海大学计算机组成原理2期末,上海大学计算机组成原理历年试卷
  12. 夏令营面试常见英文问题回答_回答有关5合1促销的3个常见问题
  13. argmin函数解析
  14. Filezilla Xshell SecureFX Win10等无法拖放文件(本地或线上)解决办法
  15. python高德地图api调用实例_Python玩转高德地图API(二)
  16. 投影仪为何要测评?原因就是,不当大冤种
  17. 使用vue-cli2.x入门简单demo游戏
  18. 炫龙T50热键功能键
  19. VLog制作之素材拍摄和音乐选择
  20. python和anaconda安装顺序_Anaconda详细安装步骤图文教程

热门文章

  1. Axure RP从入门到精通(二十)鼠标指针函数
  2. 基于UDP的网络群聊系统
  3. 拟合函数、曲线拟合有这个网站足够了
  4. 透视特洛伊木马程序开发技术
  5. android自定义日历代码,Android自定义日历Calender代码实现
  6. 数字电路技术可能出现的简答题_数字电子技术基础(Ⅰ)-中国大学mooc-试题题目及答案...
  7. 油田智能化远程监控系统_油田远程监控系统方案
  8. 计算机组成原理实验报告 实验五 三人表决电路实验
  9. 计算机显卡排名,显卡天梯图_显卡性能天梯图_2021笔记本显卡天梯图-中关村在线...
  10. 计算机操作系统(第四版) 汤小丹 配套资源