自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

社區(qū)發(fā)現(xiàn)技術(shù)淺析

網(wǎng)絡(luò)
社區(qū)發(fā)現(xiàn)算法能夠用于在復(fù)雜網(wǎng)絡(luò)中揭示社區(qū)結(jié)構(gòu),是一種能夠在微觀視角對(duì)網(wǎng)絡(luò)進(jìn)行分析的新穎工具。我們?nèi)粘I钪心軌蚪佑|到的抖音用戶風(fēng)控、QQ/微博的好友推薦,以及基于真實(shí)世界數(shù)據(jù)的城市交通流量預(yù)測、電網(wǎng)負(fù)荷分析,這些應(yīng)用的背后都離不開社區(qū)發(fā)現(xiàn)算法的驅(qū)動(dòng)。

Part 01、社區(qū)發(fā)現(xiàn)簡介 

復(fù)雜網(wǎng)絡(luò)是由大量的網(wǎng)絡(luò)節(jié)點(diǎn)以及節(jié)點(diǎn)之間錯(cuò)綜復(fù)雜的鏈接關(guān)系所形成的一種網(wǎng)絡(luò)結(jié)構(gòu)。生活中所接觸到的許多自然、科學(xué)、社會(huì)關(guān)系和基礎(chǔ)設(shè)施系統(tǒng)可以用復(fù)雜網(wǎng)絡(luò)建模表示,如電力系統(tǒng)、社交網(wǎng)絡(luò)、通信網(wǎng)絡(luò)、交通網(wǎng)絡(luò)等。用數(shù)學(xué)的語言來表述,復(fù)雜網(wǎng)絡(luò)就是一個(gè)有著足夠復(fù)雜的拓?fù)浣Y(jié)構(gòu)特征的圖。

圖片

圖1 各類復(fù)雜網(wǎng)絡(luò)將現(xiàn)代社會(huì)中的人與人、人與物相聯(lián)結(jié)

復(fù)雜網(wǎng)絡(luò)中總是能夠被進(jìn)一步劃分為各種各樣的社區(qū)。所謂社區(qū),就是一種網(wǎng)絡(luò)中特殊的子圖結(jié)構(gòu),在拓?fù)浣Y(jié)構(gòu)上表現(xiàn)為:社區(qū)成員內(nèi)部緊密連接,但與網(wǎng)絡(luò)其余部分的連接較為稀疏。社區(qū)發(fā)現(xiàn)算法能夠用于在復(fù)雜網(wǎng)絡(luò)中揭示社區(qū)結(jié)構(gòu),是一種能夠在微觀視角對(duì)網(wǎng)絡(luò)進(jìn)行分析的新穎工具。因此,目前各種互聯(lián)網(wǎng)企業(yè)中都廣泛使用社區(qū)發(fā)現(xiàn)算法輔助研究人員理解復(fù)雜網(wǎng)絡(luò)中的信息,在社交網(wǎng)絡(luò)分析、推薦系統(tǒng)、風(fēng)控等領(lǐng)域都能夠見到它的身影。無論是基于社交網(wǎng)絡(luò)數(shù)據(jù)的抖音用戶風(fēng)控、QQ/微博的好友推薦,還是基于真實(shí)世界數(shù)據(jù)的城市交通流量預(yù)測、電網(wǎng)負(fù)荷分析,這些應(yīng)用的背后都離不開社區(qū)發(fā)現(xiàn)算法的驅(qū)動(dòng)。

Part 02、常用社區(qū)發(fā)現(xiàn)技術(shù)

社區(qū)檢測是一個(gè)豐富且極具挑戰(zhàn)性的問題,部分原因是社區(qū)的定義仍然沒有明確的描述。在圖論中,社區(qū)被定義為不重疊的節(jié)點(diǎn)組,且組內(nèi)的邊連接遠(yuǎn)多于組間的邊。但是這個(gè)定義仍然留下了許多可能性,相應(yīng)地也有許多基于不同領(lǐng)域?qū)W說的計(jì)算方法被提出。

- 基于優(yōu)化的方法

最常見的是基于優(yōu)化的方法,貪婪算法、模擬退火算法、Louvain算法、PSO算法、進(jìn)化多目標(biāo)優(yōu)化算法等均屬于此類。一種典型的優(yōu)化方法首先需要建立一種社區(qū)質(zhì)量評(píng)分標(biāo)準(zhǔn),能夠通過判斷子圖結(jié)構(gòu)和社區(qū)定義的接近程度來分配對(duì)應(yīng)的分?jǐn)?shù);再利用貪婪/分布迭代等算法搜索網(wǎng)絡(luò)中每個(gè)可能的社區(qū)劃分,記錄并輸出得分最高的劃分結(jié)果。目前有眾多的社區(qū)質(zhì)量函數(shù)被提出,其中應(yīng)用最為廣泛的是模塊度(Modularity)質(zhì)量函數(shù),模塊度將社區(qū)評(píng)分定義為組內(nèi)邊的連接數(shù)量與隨機(jī)網(wǎng)絡(luò)中期望數(shù)量的差值。

- 基于統(tǒng)計(jì)推斷的方法

另一種在近年來引起了廣泛關(guān)注的方法是基于統(tǒng)計(jì)推斷的社區(qū)發(fā)現(xiàn)方法。這類方法將社區(qū)視為網(wǎng)絡(luò)結(jié)構(gòu)的主要驅(qū)動(dòng)因素,而非一種孤立的特征,認(rèn)為節(jié)點(diǎn)之間的連接概率與它們所屬的社團(tuán)是否相關(guān)有著密切聯(lián)系,類似于社交網(wǎng)絡(luò)中有相似興趣的人之間更容易產(chǎn)生鏈接。

通過利用隨機(jī)塊模型(SBM)等概率模型,基于統(tǒng)計(jì)推斷的方法能夠利用現(xiàn)有的社區(qū)劃分計(jì)算各節(jié)點(diǎn)間邊分布的概率,進(jìn)而重新生成圖的鏈接結(jié)構(gòu)。該方法認(rèn)為,若由這種方式重新生成的圖結(jié)構(gòu)和原始圖結(jié)構(gòu)的相似程度越高,則社區(qū)劃分的質(zhì)量越高。

- 基于隨機(jī)游走的方法

隨機(jī)游走可以通過在節(jié)點(diǎn)之間隨機(jī)跳轉(zhuǎn),獲得圖中節(jié)點(diǎn)與節(jié)點(diǎn)之間的共現(xiàn)關(guān)系,以檢測圖中的社區(qū)結(jié)構(gòu)。由于網(wǎng)絡(luò)社區(qū)之間通常只有稀疏的連接,跳轉(zhuǎn)到的節(jié)點(diǎn)往往處于同一社區(qū)的內(nèi)部,因此可以利用該方法自底向上地合并不同的節(jié)點(diǎn)組以生成社區(qū)。游走的關(guān)鍵在于下一跳節(jié)點(diǎn)的選擇,根據(jù)所應(yīng)用的場景和數(shù)據(jù)特征的不同,需要不同的策略進(jìn)行處理,常見的游走策略包括uniform、frequency、markov等。

這種方法的一個(gè)很好的特性是,我們不需要實(shí)際執(zhí)行任何隨機(jī)游走來計(jì)算信息:無限長的隨機(jī)游走會(huì)收斂到一個(gè)固定的概率值的熵的封閉表達(dá)式,我們可以直接使用它作為社區(qū)檢測的質(zhì)量函數(shù)。

上述方法所涉及的學(xué)科、領(lǐng)域各不相同。由于篇幅原因,這里節(jié)選出Louvain算法—— 一種基于優(yōu)化的社區(qū)發(fā)現(xiàn)方法來進(jìn)行相對(duì)詳細(xì)的學(xué)習(xí)。

Part 03、Louvain——基于模塊度最優(yōu)化的方法 

上一節(jié)中提到,基于優(yōu)化的方法需要通過社區(qū)質(zhì)量函數(shù)來評(píng)估子圖結(jié)構(gòu)和社區(qū)定義的接近程度,而目前應(yīng)用最為廣泛的質(zhì)量函數(shù)是模塊度(Modularity),Louvain算法正是基于模塊度來進(jìn)行社區(qū)發(fā)現(xiàn)的。因此我們先對(duì)模塊度的定義進(jìn)行簡要介紹。

Newman等人提出了模塊度(modularity)的概念,用來衡量社區(qū)劃分的好壞,公式如下:

圖片


其中圖片表示圖節(jié)點(diǎn)圖片和節(jié)點(diǎn)圖片之間邊的數(shù)目,圖片表示圖中邊的個(gè)數(shù),圖片表示節(jié)點(diǎn)圖片的度,圖片表示邊隨機(jī)放置的情況下,節(jié)點(diǎn)圖片圖片之間邊數(shù)量的期望值。

因此可以將模塊度簡單理解為:在社區(qū)內(nèi)部的邊的比例,減去邊隨機(jī)放置時(shí)社區(qū)內(nèi)部期望邊數(shù)的比例,除以某個(gè)常數(shù)后所得到的值。如果一個(gè)社區(qū)劃分算法能夠盡可能多的將連接比較稠密的點(diǎn)劃分在相同社區(qū)中,而盡量減少社區(qū)之間的連接,這樣就能得到較高的模塊度評(píng)分。

可以通過下面的Python Demo簡單的計(jì)算網(wǎng)絡(luò)劃分的模塊度:


    import networkx as nx
    # G1為原始圖,G2為劃分后的圖,均用networkx.graph來表示
    def Modularity(G1,G2):
    m=len(G1.edges())
    Aab=0
    Q=0.0
    for a in G1.nodes():
    for b in G1.nodes():
    if nx.has_path(G2,a,b):
    Aab=0
    if b in G1.neighbors(a):
    Aab=1
    Q=Q+(Aab*m*2-nx.degree(G1,a)*nx.degree(G1,b))/(4*m*m)
    return Q

    Louvain算法則是由Blondel等人提出的基于模塊度的社區(qū)發(fā)現(xiàn)算法。可以將整個(gè)算法分為兩個(gè)階段:

    ? 模塊度優(yōu)化階段——每個(gè)節(jié)點(diǎn)自身作為自己的社區(qū)標(biāo)簽,此時(shí)網(wǎng)絡(luò)中的社區(qū)數(shù)和結(jié)點(diǎn)數(shù)一致。計(jì)算此時(shí)圖劃分的模塊度作為基準(zhǔn),然后逐個(gè)嘗試改變圖中某一個(gè)節(jié)點(diǎn)的社區(qū)標(biāo)簽,將其更新成鄰居節(jié)點(diǎn)的社區(qū)標(biāo)簽,計(jì)算此時(shí)的模塊度與基準(zhǔn)值的差距,記為當(dāng)前劃分下的模塊度增量。選出能夠使得模塊度增量最大的網(wǎng)絡(luò)劃分。

    ? 網(wǎng)絡(luò)凝聚階段——將上個(gè)階段劃分出來的每個(gè)社區(qū)合并為一個(gè)新的超級(jí)節(jié)點(diǎn),節(jié)點(diǎn)的邊權(quán)重為原始社區(qū)中所有節(jié)點(diǎn)的邊權(quán)重之和,構(gòu)建一個(gè)新的網(wǎng)絡(luò)。

    Louvain算法不斷在1,2兩個(gè)階段之間迭代,直到模塊度增量為負(fù)時(shí)停止;此時(shí)的社區(qū)劃分即為算法的輸出。


    Part 04、展望 

    總的來說,CAT作為綜合性的平臺(tái),提供的監(jiān)控功能較為全面;Zipkin是由Twitter開源的調(diào)用鏈分析工具,非常輕量,使用部署簡單;Pinpoint和SkyWalking都專注于鏈路和性能監(jiān)控,追蹤數(shù)據(jù)粒度較細(xì)、用戶界面功能強(qiáng)大。隨著信息技術(shù)的發(fā)展和工業(yè)互聯(lián)網(wǎng)的廣泛應(yīng)用,生活中能夠接觸到的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)越來越多,比如交通網(wǎng)絡(luò)、金融網(wǎng)絡(luò)、通信網(wǎng)絡(luò)、輸電網(wǎng)絡(luò)等等。通過在后端對(duì)這些網(wǎng)絡(luò)中蘊(yùn)含的信息進(jìn)行分析預(yù)處理,為用戶提供更貼心、智能的服務(wù)成為了信息時(shí)代的新興增長點(diǎn)。作為國內(nèi)領(lǐng)先的電信運(yùn)營商,中國移動(dòng)必將能夠依靠廣泛且先進(jìn)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,為城市服務(wù)數(shù)字化和智能化貢獻(xiàn)力量。

    ??參考文獻(xiàn)

    [1] Fortunato S, Newman M E J. 20 years of network community detection[J]. Nature Physics, 2022: 1-3.

    [2] Newman M E J, Girvan M. Finding and evaluating community structure in networks[J]. Physical review E, 2004, 69(2): 026113.

    [3] Blondel V D, Guillaume J L, Lambiotte R, et al. Fast unfolding of communities in large networks[J]. Journal of statistical mechanics: theory and experiment, 2008, 2008(10): P10008.

    責(zé)任編輯:龐桂玉 來源: 移動(dòng)Labs
    相關(guān)推薦

    2013-10-29 13:25:03

    開源社區(qū)

    2011-09-30 10:34:03

    無線

    2009-02-23 14:44:10

    Java游戲Java開發(fā)現(xiàn)狀

    2017-03-06 14:44:49

    Androidhook技術(shù)

    2010-09-17 14:16:21

    2011-03-09 10:30:55

    2013-08-01 11:31:50

    存儲(chǔ)虛擬化虛擬化

    2023-06-18 19:21:04

    技術(shù)架構(gòu)服務(wù)網(wǎng)格

    2011-07-28 12:36:43

    2012-08-29 16:24:15

    2023-03-12 15:25:37

    2011-04-13 15:01:39

    2024-11-04 09:04:20

    2021-01-08 14:55:03

    RDWARoCE數(shù)據(jù)

    2015-08-26 11:23:58

    2010-09-17 09:04:10

    2011-04-13 13:05:14

    重復(fù)數(shù)據(jù)刪除

    2011-04-13 15:03:22

    NATlP

    2013-05-03 00:41:57

    大數(shù)據(jù)NoSQL

    2015-04-27 14:42:24

    技術(shù)架構(gòu)服務(wù)器性能
    點(diǎn)贊
    收藏

    51CTO技術(shù)棧公眾號(hào)