这几天做复杂网络相关的学习研究,越发觉得网络科学的内容会越来越丰富,应用会越来越多。会为人类进步,产生巨大的贡献。我又激动了。 这篇博客介绍的方法,可以应用在大规模的复杂网络中,有着近乎线性的复杂度。
这篇博客继续介绍复杂网络中社团结构发现的一种方法--label propagation(简称LP)。与之前博客中介绍的local_fitness方法类似,这个方法也是从局部结构信息出发。LP方法的提出,主要是综合考虑了以前的方法有以下两个弊端:
- 很多方法需要有先验的知识:社团数目,中心点,clique大小等等
- 之前的一些方法,在性能上复杂度都比较高
为了解决以上的两个问题,论文中提出label propagation很好的解决了上面两个问题,同时LP算法是类似PageRank的思想,可以将计算过程并行化,真正实现大规模的网络分析。 LP的基本思想比较简单,就是对于节点x的类型,是由它的邻居节点所属类型决定的。一般选取邻居节点出现最多的类型作为x的类型。初始化的时候,将每个节点初始化为不同的类型(label),然后通过不停的迭代,label不停的传播,直到方法结束,属于同一社团中节点会具有相同的label,有点类似选举的一次,一次一次的选举,一个社团中的节点,最终达成一致。下面两个图,可以说明这个逐渐迭代,逐渐传播的过程,图都是来自论文中的: 这两个图,比较能够说明传播的过程,具体大家可以看论文,欢迎交流。 LP算法的主要步骤如下: 请允许我截图,编辑公式太复杂了。算法结束的条件是所有节点的label都和它的邻居中数量最多的label相同。算法的复杂度是O(kn)的,k是迭代次数,有实验表明,90%的情况迭代5次,每个节点最终都会的到自己的分类。 上面的算法,我就不详细分析,有感兴趣的,欢迎讨论。下面的一组数据是我用LP算法运行的结果:
Q函数 | q: 0.203822129685 |
1* | 刘大鸿 |
东坡门人 | |
冷建成 | |
荣名为宝 | |
2 | 摇摆巴赫 |
sunli1223 | |
forchenyun | |
foxmailed | |
liudaoru | |
霍泰稳 | |
TimYang | |
AmyDeng_Fusionio | |
XiaoJunHong | |
KissDev | |
淘解伦 | |
TreapDB | |
__那谁__ | |
wenzhong | |
fishermen | |
潘少宁_腾讯_LAMP人 | |
淘宝褚霸 | |
淘宝日照 | |
图灵杨海玲 | |
搜狗郭昂 | |
IR-Lucene | |
常佳佳-Jason | |
詹剑锋_中科院 | |
万树-杨 | |
梁斌penny | |
fengyuncrawl | |
张颖峰 | |
九州-姬野 | |
王栋PKU | |
任勇_东京大学 | |
网路冷眼 | |
MapReduce | |
-林鸿飞- | |
solochar | |
THUIRDB | |
丁国栋_ICT | |
丕子 | |
yaronli | |
关毅的围脖 | |
微博Koth | |
谭卫国Forest | |
bicloud | |
王志超 | |
gycheng | |
张夏天_机器学习 | |
张刚-bert | |
郭嘉丰_ICT | |
公帅_ICT | |
陈利人 | |
沈华伟_ICT | |
孟二利 | |
李猛-Mn | |
贺志明_ICT | |
Humyy | |
幸运coming琳琳 | |
视觉研究 | |
王斌_ICTIR | |
武卫东 | |
杨彦闯 | |
ICT_朱亚东 | |
罗大维 | |
张凯1976 | |
佟怡峦 | |
liangjz | |
timo | |
李-曙光 | |
王联辉 | |
王东wd | |
蒋涛CSDN | |
魔时科技张首华 | |
GUCAS老H | |
拓尔思 | |
宋波simba | |
梁公军 | |
雨前LYQ | |
凌峰TB | |
淘宝虚云 | |
新IT民工 | |
Yahoo韩轶平 | |
数据挖掘_PHP | |
爱的马斯特 | |
肖瑞麟Jerry | |
雨梦_yumengkk | |
zangxt | |
IT技术博客大学习 | |
leeyanva | |
周运洪yunhong | |
nzinfo | |
Abioy | |
创业-育森 | |
bian | |
3* | hszhsh1915647047 |
bill323 | |
暖暖cathy | |
桂林山水78 | |
alue-fabre | |
4* | 悦晓0709 |
豆爸何锐 | |
袁小晕 | |
鱼晓-五毛 | |
loveEmma | |
即刻搜索JIKE | |
王大美 | |
yellowleaf2010 | |
guoyipeng | |
5* | 兔杰列夫 |
hny101 | |
c背a井t医y志y猫c | |
奔三北P | |
6 | 柯南小胖道尔 |
燕子_lynn | |
7* | 宗秀倩 |
王向东 | |
孟鸿 | |
8* | wpwei |
海带丝丝 | |
Eva奶奶 | |
9 | 杨逍Venus |
张杰_NoahArk | |
10 | jingmouren |
bodd | |
四正 | |
11 | 影子猎手 |
sigmod | |
12 | 宁怡 |
刘克庄 |
后面带星的,是我认为比较准的,基本比较全了。还有一个大类,2是技术的圈子,全部分到一起,也不能说不对,但仍旧不理想。最后,还是要强调以下,这个算法可以很好的利用map-reduce模型,所以,能够处理更大规模的复杂网络。我上面的程序,并没有采用map-reduce实现,以后有时间,会实现的。 [引用]
Near linear time algorithm to detect community structures in large-scale networks