近期想對社區發現領域進行一下簡單研究,看到一篇不錯的文章,文章是根據國防科大駱志剛教授的論文《復雜網絡社團發現算法研究新進展》整理的,主要是對社區發現的一些算法進行簡單分析。
一、基於模塊度優化的社團發現算法,也就是優化模塊度Q值的一部分算法。Q值是由Newman在2004年的論文"Fast Algorithm for Dectecting Community Structure in Networks"中提出的(也就是FN算法)。通過優化Q值來提高模塊度是這類算法的主要思路,在此基礎上,本文又划分了三個類別:①采用聚合思想,也就是分層聚類中的自底向上的作法。典型算法有Newman快速算法(FN算法)、CNM算法(Finding Local Community Structure in Networks)和MSG-MV算法(Multistep Greedy Algorithm Identifies Community Structure in Real-World and Computer-Generated Networks)等。②采用分裂思想,也就是分層聚類中自頂向下的方法。代表當然就是Newman的GN算法,但是GN的復雜度實在是高了些,所以Newman之后提出的一種譜方法(Modularity and Community Structure in Networks),吐槽一句Newman真的是這方面的大牛啊。。。再吐槽一句,Newman那本800多大洋的書真是想買但真是貴啊!③直接尋優法,這類算法的兩個代表EO算法(Community Detection in Complex Networks Using External Optimization)和整數規划方法我還都沒有看過,但是一些基於遺傳算法和蟻群的智能划分方法也屬於此類。但是在2007年的論文"Resolution Limit in Community"中認為基於Q值的優化方法無法處理粒度小於一定程度的網絡,雖然后續跟進了一些優化的算法,但是此類方法在處理真實網絡時還是很難反映真實的社團結構。
二、基於譜分析的社團發現算法,這類算法的普遍方法是將節點對應的矩陣特征分量看成空間坐標,將網絡節點映射到多維向量空間去,運用傳統的聚類算法將它們聚集成社團。這種方法不可避免的要計算矩陣的特征值,開銷很大,但是因為能直接使用很多傳統的向量聚類的成果,靈活性很高。
三、基於信息論的社團發現算法,Rosvall的兩篇論文,"An Information-theoretic Framework for Resolving Community Structure in Complex Networks"和"Maps of Random Walks on Complex Networks Reveal Community Structure"分別運用了模擬退火優化算法和隨機游走的有效編碼方式。09年的論文"Community Detection Algorithms:A Comparative Analysis"已經測試表明該方法是目前非重疊社團發現算法中准確度最高的。
四、基於標號傳播的社團發現算法,Raghavan基於網絡的邊很多時候代表信息的傳播這一思想提出的LPA算法(Near Linear Time Algorithmto Detect Community Structures in Large-scale Networks)。LPA算法首先為每個節點指派唯一標號, 在每一步迭代中, 每個節點將自身標號更新為其鄰節點出現次數最多的標號,如果存在多個相同的最多標號, 則隨機選擇一個作為更新值,若干次迭代后密集相連的節點會收斂於同一標號,最終,具有相同標號的節點歸為一個社團。該算法時間復雜度為O(m),收斂速度非常快。"Towards Rea-l time Community Detection in LargeNetworks"中改進了標號更新規則,進一步降低了計算開銷。
對於非重疊社團的划分算法已經相對成熟,但是真實世界的網絡和這種理想狀態相去甚遠,經常有某些節點同時具有多個社區的特性,屬於多個社區,在這種狀況之下,對於重疊社區的划分明顯更有意義更貼近真實世界,也因此成為近年來新的研究熱點。相應的,本文將重疊社區划分算法分為以下幾類:
一、基於團滲透改進的重疊社區發現算法,Palla的論文"Uncovering the Overlapping Community Structure of Complex Networks in Nature and Society"中提出的CPM算法是第一個能發現重疊社區的算法,CPM算法就不展開討論了,如果是研究重疊社區發現算法的話肯定是看過的。值得一提的是Kumpula在前人基礎上提出的SCP算法(Sequential Algorithm for Fast Clique Percolation)較大的提升了團滲透算法的速度。該類算法的問題這篇文章雖然也是簡單的一說,但是比之前某些人簡單的用一個K值不好確定來敷衍了事要來的有意義的多:基於團滲透思想的算法需要以團為基本單元來發現重疊,這對於很多真實網絡尤其是稀疏網絡而言,限制條件過於嚴格,只能發現少量的重疊社團(Identification of Functional Modules in a PPI Network By Clique Percolation Clustering)。
(后面還有幾個類別,我覺得因為一個算法而划分為一個分類,實在是沒有介紹的必要,當然,也部分因為我覺得那幾個我實在是理解不能)
二、基於種子擴散思想的重疊社區發現算法,此類算法的基本思想是以具有某種特征的子網絡為種子,通過合並、擴展等操作向鄰接節點擴展,直至獲得評價函數最大的社團。Lancichinetti 等提出以若干個節點為種子,通過擴展形成對整個網絡的覆蓋, 即LMF算法(Detecting the Overlapping and Hierarchical Community Structure in Complex Networks)。
三、基於混合概率模型的重疊社區發現,前述的很多算法都是自己給出了社團結構的定義然后相應給出算法,但這樣的划分必須對社團先做出符合結構定義的假設。針對此問題,Newman等建立了社團結構的混合概率模型(Mixture Models and Exploratory Analysis in Networks),以概率方法對復雜網絡的社團結構進行探索,以求得期望最大的社團結構,從而避開社團定義的問題。通過該算法能夠識別重疊社團,並得到隸屬程度大小。然而,該方法基於EM算法來估計未知參數,收斂速度較慢,計算復雜度較高, 一定程度上制約了算法的應用規模。
四、基於邊聚類的重疊社團發現,這類方法以邊為研究對象,推薦兩篇論文:LineGraphs, LinkPartitions, and Overlapping Communities和Link Communities Reveal Multiscale Complexity in Networks.前者通過轉換網絡,可以用非重疊社區的方法提示網絡的重疊社團,后者解決重疊性與層次性沖突,提出了變社團。
遺憾的是,文章沒有介紹動態變化的復雜網絡。
上文是從http://blog.csdn.net/loptimistic/article/details/8173555轉載而來。