LOUVAIN——社交网络挖掘之大规模网络的社区发现算法
LOUVAIN——社交網(wǎng)絡(luò)挖掘之大規(guī)模網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)算法
===
算法來源
該算法來源于文章Fast unfolding of communities in large networks,簡(jiǎn)稱為L(zhǎng)ouvian。
算法原理
Louvain算法是基于模塊度(Modularity)的社區(qū)發(fā)現(xiàn)算法,該算法在效率和效果上都表現(xiàn)比較好,并且能夠發(fā)現(xiàn)層次性的社區(qū)結(jié)構(gòu),其優(yōu)化的目標(biāo)是最大化整個(gè)圖屬性結(jié)構(gòu)(社區(qū)網(wǎng)絡(luò))的模塊度。
其中需要理解的核心點(diǎn)有:
- a、模塊度Modularity的定義,這個(gè)定義是描述社區(qū)內(nèi)緊密程度的值Q;
- b、模塊度增量delta Q,即把一個(gè)孤立的點(diǎn)放入一個(gè)社區(qū)C后,計(jì)算Modularity的變化,其中計(jì)算過程的要點(diǎn)是,首先計(jì)算1個(gè)點(diǎn)的Modularity,和社區(qū)C的Modularity,再計(jì)算合并后新社區(qū)的Modularity,新社區(qū)的Modularity減去前兩個(gè)Modularity就是delta Q。
對(duì)上述公式的理解是,將delta Q展開其等價(jià)于1/2 *( k_i,in/m - Sum_tot/m *ki/m ),其中k_i,in/m表示的是將孤立的節(jié)點(diǎn)和社區(qū)C放在一起對(duì)整個(gè)網(wǎng)絡(luò)Modularity的影響,而Sum_tot/m和ki/m分別表示孤立的節(jié)點(diǎn)和社區(qū)C分開式分別對(duì)整個(gè)網(wǎng)絡(luò)Modularity的影響,所以他們的差值就反應(yīng)了孤立的節(jié)點(diǎn)放入社區(qū)C前后對(duì)整個(gè)網(wǎng)絡(luò)Modularity的影響。
算法的計(jì)算過程如下:
a、每個(gè)點(diǎn)作為一個(gè)community,然后考慮每個(gè)community的鄰居節(jié)點(diǎn),合并到community,然后看delta Q;找到最大的正delta Q,合并點(diǎn)到community;多進(jìn)行幾輪,至不再變動(dòng),那么結(jié)束;
其中存在的問題是,不同的節(jié)點(diǎn)訪問順序?qū)?dǎo)致不同的結(jié)果,試驗(yàn)中發(fā)現(xiàn)這個(gè)順序?qū)Y(jié)果影響不大,但是會(huì)在一定程度上影響計(jì)算時(shí)間。b、將新的community作為點(diǎn),重復(fù)上述過程。那么如何確定新的點(diǎn)之前的權(quán)重呢?答案是將兩個(gè)community之間相鄰的點(diǎn)之間的權(quán)重和作為兩個(gè)community退化成一個(gè)點(diǎn)后的新的權(quán)重。
該算法的優(yōu)點(diǎn)主要有3個(gè):a、易于理解;b、非監(jiān)督;和c、計(jì)算快速,最后我們可以得到的結(jié)果是層次化的社區(qū)發(fā)現(xiàn)結(jié)果。
spark實(shí)現(xiàn)
https://github.com/Sotera/spark-distributed-louvain-modularity
Louvain結(jié)果示意圖
算法的改進(jìn)
還有其加速實(shí)現(xiàn)的論文,文章的題目是:A New Randomized Algorithm for Community Detection in Large Networks,其實(shí)現(xiàn)方式比較直接,就是考慮一個(gè)點(diǎn)周圍的百分之多少點(diǎn)進(jìn)行歸并。可以在spark下面通過類似于多路歸并來實(shí)現(xiàn)。
其他參考資料
- http://www.cnblogs.com/allanspark/p/4197980.html
- https://www.quora.com/Is-there-a-simple-explanation-of-the-Louvain-Method-of-community-detection
總結(jié)
以上是生活随笔為你收集整理的LOUVAIN——社交网络挖掘之大规模网络的社区发现算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书(IPMSG)协议(翻译稿)
- 下一篇: 天壤联合创始人韩定一:大模型+小样本数据