<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關于圖算法 & 圖分析的基礎知識概覽

      原文地址:關于圖算法 & 圖分析的基礎知識概覽 | 機器之心 (jiqizhixin.com)

      你肯定沒有讀過這本書,因為這本書的發布日期是2019年5月。本文會覆蓋該書的大部分內容,讀完這篇,你能夠了解圖算法的基本概念。關于此書,作為市面上為數不多的面向數據科學應用的圖算法書籍,寫的比較全面系統和易懂。當然,書在細節上的提高空間還有很多。今天內容很多,坐穩~

      目錄

      圖算法 & 圖分析

      圖基礎知識

             連通圖與非連通圖

             未加權圖與加權圖

             有向圖與無向圖

             非循環圖和循環圖

      圖算法

             路徑搜索算法

                    DFS & BFS

                    最短路徑

                    最小生成樹

                    隨機游走

             中心性算法

                    DegreeCentrality

                    ClosenessCentrality

                    BetweennessCentrality

                    PageRank

             社群發現算法

                    MeasuringAlgorithm

                    ComponentsAlgorithm

                    LabelPropagation Algorithm

                    LouvainModularity Algorithm

      結論

      圖算法 & 圖分析

      圖分析使用基于圖的方法來分析連接的數據。我們可以:查詢圖數據,使用基本統計信息,可視化地探索圖、展示圖,或者將圖信息預處理后合并到機器學習任務中。圖的查詢通常用于局部數據分析,而圖計算通常涉及整張圖和迭代分析。

      圖算法是圖分析的工具之一。圖算法提供了一種最有效的分析連接數據的方法,它們描述了如何處理圖以發現一些定性或者定量的結論。圖算法基于圖論,利用節點之間的關系來推斷復雜系統的結構和變化。我們可以使用這些算法來發現隱藏的信息,驗證業務假設,并對行為進行預測。

      圖分析和圖算法具有廣泛的應用潛力:從防止欺詐,優化呼叫路由,到預測流感的傳播。下圖是 Martin Grandjean 創建的航線網絡圖,這幅圖清楚地展示了航空運輸集群高度連接的結構,幫助我們了解航空運力如何流動。航線網絡采用典型的輻射式結構(hub-and-spoke structure),這樣的結構在有限運力的前提下,增大了航線的網絡的始發-到達對(OD Pair),然而卻也帶來了系統級聯延遲的可能。

      圖基礎知識

      我們已經在前一篇博文中介紹了屬性圖的概念。我們已經知道了節點、關系、屬性(Property)、標簽等概念。

      子圖(Subgraph)是一張圖的一部分。當我們需要對圖中的特定節點,特定關系,或者特定標簽或者屬性進行特定分析時,子圖就會很有用。

      路徑(Path)是一組節點及他們的關系的集合。以上圖為例,“Dan” 開過型號為 “Volvo V70” 的車,這輛車是屬于 “Ann” 的。那么節點 “Dan” “Ann” “Car”和關系 “Drives” “Owns” 組成了一個簡單的路徑。

      我們在介紹圖算法前,先梳理一下圖的不同屬性(Attribute)。

      連通圖與非連通圖

      連通圖(Connected Graphs)指圖內任意兩個節點間,總能找到一條路徑連接它們,否則,為非連通圖(Disconnected Graphs)。也就是說,如果圖中包含島(Island),則是非連通圖。如果島內的節點都是連通的,這些島就被成為一個部件(Component,有時也叫 Cluster)。

      有些圖算法在非連通圖上可能產生無法預見的錯誤。如果我們發現了未預見的結果,可以首先檢查圖的結構是否連通。

      未加權圖與加權圖

      未加權圖(Unweighted Graphs)的節點和邊上均沒有權重。對于加權圖(Weighted Graphs),所加權重可以代表:成本、時間、距離、容量、甚至是指定域的優先級。下圖給出了示意圖。

      基本的圖算法可以通過處理權重來代表關系的強度。許多算法通過計算指標,用作后續算法的權重。也有些算法通過更新權重值,來查找累計總數、最小值或最優化結果。

      關于加權圖的一個典型用途是路徑尋找算法。這些算法支持我們手機上的地圖應用程序,并計算位置之間最短/最便宜/最快的運輸路線。例如,下圖使用了兩種不同的方法來計算最短路線。

      如果沒有權重,計算最短路徑時,實則在計算關系(Relation,也稱 Hop)的數量。那么在上圖左邊,我們找到 A 和 E 之間的最短距離為 2,經過 D 點。如果像上圖右邊所示,邊被賦予了權重,用以代表節點之間的物理距離(單位:KM)。那么我們可以找到 A 和 E 之間的最短距離是 50 KM,需要經過 C 和 D 兩個點。而此時,在未加權圖中計算的最短路徑 A-D-E 距離為 70 KM,比我們找到的路徑 A-C-D-E 距離遠。

      有向圖與無向圖

      在無向圖(Undirected Graphs)中,節點的關系被認為是雙向的(bi-directional),例如朋友關系。而在有向圖(Directed Graphs)中,節點的關系可以指定方向。邊如果指向了一個節點,我們稱為 in-link,邊如果從一個節點出發,我們稱為 out-link。

      邊的方向加入了更多維度的信息,同樣關系的邊,卻包含不同的方向,則代表了不同的語義信息。如下圖所示,有向圖繪制了一個簡單的同學網絡,邊的方向代表著 “喜歡”。那么從圖中,我們可以知道,同學中 “最受歡迎的” 的人是 “A” 和 “C”。

      我們還可以用道路網絡幫我們理解為什么需要有向圖和無向圖。例如,高速公路一般都是雙向的,我們使用無向圖即可。但是,在城市內部,經常會有單向車道,我們必須使用有向圖。

      非循環圖和循環圖

      圖論中,循環指一些特殊的路徑,它們的起點和終點是同一個節點。在非循環圖(Acyclic Graph)中,不存在循環路徑,相反則為循環圖(Cyclic Graphs)。如下圖所示,有向圖和無向圖都可能包含循環,所不同的是,有向圖的路徑必須遵循邊的方向。圖中的 Graph 1 是一個典型的 DAG(Directed Acyclic Graph,有向無循環圖),并且 DAG 通常有葉子節點(leaf node,也稱 dead node)。

      Graph 1 和 Graph 2 是無循環的,因為我們在不重復任何一條邊的情況下,無法從任何一個點出發,再回到它。Graph 3 中有一個簡單的循環 A-D-C-A。而 Graph 4 中,我們可以發現多個循環:B-F-C-D-A-C-B,C-B-F-C 等等。

      循環在圖中非常常見。有時,我們為了提高處理效率,會將循環圖轉化為非循環圖(通過剪除一些關系)。DAG 在調度、版本控制等問題中十分常見。實際上,我們在數學或者計算機科學中經常遇見的樹(Tree)就是一個典型的 DAG,只是對于樹來說,只能擁有一個 Parent,而 DAG 沒有這個限制。

      圖算法

      我們關注三類核心的圖算法:路徑搜索(Pathfinding and Search)、中心性計算(Centrality Computation)和社群發現(Community Detection)。

      路徑搜索算法

      圖搜索算法(Pathfinding and Search Algorithms)探索一個圖,用于一般發現或顯式搜索。這些算法通過從圖中找到很多路徑,但并不期望這些路徑是計算最優的(例如最短的,或者擁有最小的權重和)。圖搜索算法包括廣度優先搜索和深度優先搜索,它們是遍歷圖的基礎,并且通常是許多其他類型分析的第一步。

      路徑搜索(Pathfinding)算法建立在圖搜索算法的基礎上,并探索節點之間的路徑。這些路徑從一個節點開始,遍歷關系,直到到達目的地。路徑搜索算法識別最優路徑,用于物流規劃,最低成本呼叫或者叫IP路由問題,以及游戲模擬等。

      下圖是路徑搜索類算法的分類:

      DFS & BFS

      圖算法中最基礎的兩個遍歷算法:廣度優先搜索(Breadth First Search,簡稱 BFS)和深度優先搜索(Depth First Search,簡稱 DFS)。BFS 從選定的節點出發,優先訪問所有一度關系的節點之后再繼續訪問二度關系節點,以此類推。DFS 從選定的節點出發,選擇任一鄰居之后,盡可能的沿著邊遍歷下去,知道不能前進之后再回溯。

      下面是兩張同樣的圖,分別采用 BFS 和 DFS 進行圖的遍歷,圖上節點的數字標識這遍歷順序。

      BFS

      DFS

      對于我們數據科學的角色來說,我們很少真正需要使用 BFS 和 DFS。這兩個圖搜索算法更多地作為底層算法支持其他圖算法。例如,最短路徑問題和 Closeness Centrality (在后文會有介紹)都使用了 BFS 算法;而 DFS 可以用于模擬場景中的可能路徑,因為按照 DFS 訪問節點的順序,我們總能在兩個節點之間找到相應的路徑。感興趣的話,可以猜一猜,后文介紹的算法是否使用了圖搜索算法,并且分別使用了 DFS 還是 BFS。

      最短路徑

      最短路徑(Shortest Paths)算法計算給定的兩個節點之間最短(最小權重和)的路徑。算法能夠實時地交互和給出結果,可以給出關系傳播的度數(degree),可以快速給出兩點之間的最短距離,可以計算兩點之間成本最低的路線等等。例如:

      • 導航:谷歌、百度、高德地圖均提供了導航功能,它們就使用了最短路徑算法(或者非常接近的變種);

      • 社交網絡關系:當我們在 LinkedIn、人人(暴露年齡了)等社交平臺上查看某人的簡介時,平臺會展示你們之間有多少共同好友,并列出你們之間的關系。

      最常見的最短路徑算法來自于 1956 年的 Edsger Dijkstra。Dijkstra 的算法首先選擇與起點相連的最小權重的節點,也就是 “最臨近的” 節點,然后比較 起點到第二臨近的節點的權重 與 最臨近節點的下一個最臨近節點的累計權重和 從而決定下一步該如何行走。可以想象,算法記錄的累計權重和 如同地理的 “等高線” 一樣,在圖上以 “波” 的形式傳播,直到到達目的地節點。

      最短路徑算法有兩個常用的變種:A (可以念作 A Star)algorithm和 Yen’s K-Shortest Paths。A algorithm 通過提供的額外信息,優化算法下一步探索的方向。Yen’s K-Shortest Paths 不但給出最短路徑結果,同時給出了最好的 K 條路徑。

      所有節點對最短路徑(All Pairs Shortest Path)也是一個常用的最短路徑算法,計算所有節點對的最短路徑。相比較一個一個調用單個的最短路徑算法,All Pairs Shortest Path 算法會更快。算法并行計算多個節點的信息,并且這些信息在計算中可以被重用。

      本文不打算再深入了,下圖是從A節點開始的計算過程,看懂這張圖,你就明白了。

      All Pairs Shortest Path 算法通常用于,當最短路徑受限或者變成了非最優時,如何尋找替代線路。其實算法非常常用:

      • 優化城市設施的位置和貨物的分配:例如確定運輸網格中不同路段上預期的交通負荷,例如快遞線路設計,從而保證運輸對突發事件的應對;

      • 作為數據中心設計算法的一部分:查找具有最大帶寬和最小延遲的網絡。

      最小生成樹

      最小生成樹(Minimum Spanning Tree)算法從一個給定的節點開始,查找其所有可到達的節點,以及將節點與最小可能權重連接在一起,行成的一組關系。它以最小的權重從訪問過的節點遍歷到下一個未訪問的節點,避免了循環。

      最常用的最小生成樹算法來自于 1957 年的 Prim 算法。Prim 算法與Dijkstra 的最短路徑類似,所不同的是, Prim 算法每次尋找最小權重訪問到下一個節點,而不是累計權重和。并且,Prim 算法允許邊的權重為負。

      上圖是最小生成樹算法的步驟分解,算法最終用最小的權重將圖進行了遍歷,并且在遍歷的過程中,不產生環。

      算法可以用于優化連接系統(如水管和電路設計)的路徑。它還用于近似一些計算時間未知的問題,如旅行商問題。雖然該算法不一定總能找到絕對最優解,但它使得復雜度極高和計算密集度極大的分析變得更加可能。例如:

      • 旅行計劃:盡可能降低探索一個國家的旅行成本;

      • 追蹤流感傳播的歷史:有人使用最小生成樹模型對丙型肝炎病毒感染的醫院暴發進行分子流行病學調查

      隨機游走

      隨機游走(Random Walk)算法從圖上獲得一條隨機的路徑。隨機游走算法從一個節點開始,隨機沿著一條邊正向或者反向尋找到它的鄰居,以此類推,直到達到設置的路徑長度。這個過程有點像是一個醉漢在城市閑逛,他可能知道自己大致要去哪兒,但是路徑可能極其“迂回”,畢竟,他也無法控制自己~

      隨機游走算法一般用于隨機生成一組相關的節點數據,作為后續數據處理或者其他算法使用。例如:

      • 作為 node2vec 和 graph2vec 算法的一部分,這些算法可以用于節點向量的生成,從而作為后續深度學習模型的輸入;這一點對于了解 NLP (自然語言處理)的朋友來說并不難理解,詞是句子的一部分,我們可以通過詞的組合(語料)來訓練詞向量。那么,我們同樣可以通過節點的組合(Random Walk)來訓練節點向量。這些向量可以表征詞或者節點的含義,并且能夠做數值計算。這一塊的應用很有意思,我們會找機會來詳細介紹;

      • 作為 Walktrap 和 Infomap 算法的一部分,用于社群發現。如果隨機游走總是返回同一組節點,表明這些節點可能在同一個社群;

      • 其他機器學習模型的一部分,用于隨機產生相關聯的節點數據。

      中心性算法

      中心性算法(Centrality Algorithms)用于識別圖中特定節點的角色及其對網絡的影響。中心性算法能夠幫助我們識別最重要的節點,幫助我們了解組動態,例如可信度、可訪問性、事物傳播的速度以及組與組之間的連接。盡管這些算法中有許多是為社會網絡分析而發明的,但它們已經在許多行業和領域中得到了應用。

      下圖羅列了我們所有需要了解的中心性算法指標。

      Degree Centrality

      Degree Centrality (度中心性,以度作為標準的中心性指標)可能是整篇博文最簡單的 “算法” 了。Degree 統計了一個節點直接相連的邊的數量,包括出度和入度。Degree 可以簡單理解為一個節點的訪問機會的大小。例如,在一個社交網絡中,一個擁有更多 degree 的人(節點)更容易與人發生直接接觸,也更容易獲得流感。

      一個網絡的平均度(average degree),是邊的數量除以節點的數量。當然,平均度很容易被一些具有極大度的節點 “帶跑偏” (skewed)。所以,度的分布(degree distribution)可能是表征網絡特征的更好指標。

      如果你希望通過出度入度來評價節點的中心性,就可以使用 degree centrality。度中心性在關注直接連通時具有很好的效果。應用場景例如,區分在線拍賣的合法用戶和欺詐者,欺詐者由于嘗嘗人為太高拍賣價格,擁有更高的加權中心性(weighted centrality)。

      Closeness Centrality

      Closeness Centrality(緊密性中心性)是一種檢測能夠通過子圖有效傳播信息的節點的方法。緊密性中心性計量一個節點到所有其他節點的緊密性(距離的倒數),一個擁有高緊密性中心性的節點擁有著到所有其他節點的距離最小值。

      對于一個節點來說,緊密性中心性是節點到所有其他節點的最小距離和的倒數:

      其中 u 是我們要計算緊密性中心性的節點,n 是網絡中總的節點數,d(u,v) 代表節點 u 與節點 v 的最短路徑距離。更常用的公式是歸一化之后的中心性,即計算節點到其他節點的平均距離的倒數,你知道如何修改上面的公式嗎?對了,將分子的 1 變成 n-1 即可。

      理解公式我們就會發現,如果圖是一個非連通圖,那么我們將無法計算緊密性中心性。那么針對非連通圖,調和中心性(Harmonic Centrality)被提了出來(當然它也有歸一化的版本,你猜這次n-1應該加在哪里?):

      Wasserman and Faust 提出過另一種計算緊密性中心性的公式,專門用于包含多個子圖并且子圖間不相連接的非連通圖:

      其中,N 是圖中總的節點數量,n 是一個部件(component)中的節點數量。

      當我們希望關注網絡中傳播信息最快的節點,我們就可以使用緊密性中心性。

      Betweenness Centrality

      中介中心性(Betweenness Centrality)是一種檢測節點對圖中信息或資源流的影響程度的方法。它通常用于尋找連接圖的兩個部分的橋梁節點。因為很多時候,一個系統最重要的 “齒輪” 不是那些狀態最好的,而是一些看似不起眼的 “媒介”,它們掌握著資源或者信息的流動性。

      中間中心性算法首先計算連接圖中每對節點之間的最短(最小權重和)路徑。每個節點都會根據這些通過節點的最短路徑的數量得到一個分數。節點所在的路徑越短,其得分越高。計算公式:

      其中,p 是節點 s 與 t 之間最短路徑的數量,p(u) 是其中經過節點 u 的數量。下圖給出了對于節點 D 的計算過程:

      當然,在一張大圖上計算中介中心性是十分昂貴的。所以我們需要更快的,成本更小的,并且精度大致相同的算法來計算,例如 Randomized-Approximate Brandes。我們不會對這個算法繼續深入,感興趣的話,可以去了解一下,算法如何通過隨機(Random)和度的篩選(Degree)達到近似的效果。

      中介中心性在現實的網絡中有廣泛的應用,我們使用它來發現瓶頸、控制點和漏洞。例如,識別不同組織的影響者,他們往往是各個組織的媒介,例如尋找電網的關鍵點,提高整體魯棒性。

      PageRank

      在所有的中心性算法中,PageRank 是最著名的一個。它測量節點傳遞影響的能力。PageRank 不但節點的直接影響,也考慮 “鄰居” 的影響力。例如,一個節點擁有一個有影響力的 “鄰居”,可能比擁有很多不太有影響力的 “鄰居” 更有影響力。PageRank 統計到節點的傳入關系的數量和質量,從而決定該節點的重要性。

      PageRank 算法以谷歌聯合創始人拉里·佩奇的名字命名,他創建了這個算法來對谷歌搜索結果中的網站進行排名。不同的網頁之間相互引用,網頁作為節點,引用關系作為邊,就可以組成一個網絡。被更多網頁引用的網頁,應該擁有更高的權重;被更高權重引用的網頁,也應該擁有更高權重。原始公式:

      其中,u 是我們想要計算 PageRank 的網頁,T1 到 Tn 是引用的網頁。d 被稱為阻尼系數(damping factor),代表一個用戶繼續點擊網頁的概率,一般被設置為 0.85,范圍 0~1。C(T) 是節點 T 的出度。

      從理解上來說,PageRank 算法假設一個用戶在訪問網頁時,用戶可能隨機輸入一個網址,也可能通過一些網頁的鏈接訪問到別的網頁。那么阻尼系數代表用戶對當前網頁感到無聊,隨機選擇一個鏈接訪問到新的網頁的概率。那么 PageRank 的數值代表這個網頁通過其他網頁鏈接過來(入度,in-degree)的可能性。那你能如何解釋 PageRank 方程中的 1-d 呢?實際,1-d 代表不通過鏈接訪問,而是隨機輸入網址訪問到網頁的概率。

      PageRank 算法采用迭代方式計算,直到結果收斂或者達到迭代上限。每次迭代都會分兩步更新節點權重和邊的權重,詳細如下圖:

      當然,上圖的計算并沒有考慮阻尼系數,那為什么一定要阻尼系數呢?除了我們定義的鏈接訪問概率,有沒有別的意義呢?從上圖的過程中,我們可能會發現一個問題,如果一個節點(或者一組節點),只有邊進入,卻沒有邊出去,會怎么樣呢?按照上圖的迭代,節點會不斷搶占 PageRank 分數。這個現象被稱為 Rank Sink,如下圖:

      解決 Rank Sink 的方法有兩個。第一個,假設這些節點有隱形的邊連向了所有的節點,遍歷這些隱形的邊的過程稱為 teleportation。第二個,使用阻尼系數,如果我們設置 d 等于 0.85,我們仍然有 0.15 的概率從這些節點再跳躍出去。

      盡管阻尼系數的建議值為 0.85,我們仍然可以根據實際需要進行修改。調低阻尼系數,意味著訪問網頁時,更不可能不斷點擊鏈接訪問下去,而是更多地隨機訪問別的網頁。那么一個網頁的 PageRank 分數會更多地分給他的直接下游網頁,而不是下游的下游網頁。

      PageRank 算法已經不僅限于網頁排名。例如:

      • 尋找最重要的基因:我們要尋找的基因可能不是與生物功能聯系最多的基因,而是與最重要功能有緊密聯系的基因;

      • who to follow service at twitter:Twitter使用個性化的 PageRank 算法(Personalized PageRank,簡稱 PPR)向用戶推薦他們可能希望關注的其他帳戶。該算法通過興趣和其他的關系連接,為用戶展示感興趣的其他用戶;

      • 交通流量預測:使用 PageRank 算法計算人們在每條街道上停車或結束行程的可能性;

      • 反欺詐:醫療或者保險行業存在異常或者欺詐行為,PageRank 可以作為后續機器學習算法的輸入。

      社群發現算法

      社群的形成在各種類型的網絡中都很常見。識別社群對于評估群體行為或突發事件至關重要。對于一個社群來說,內部節點與內部節點的關系(邊)比社群外部節點的關系更多。識別這些社群可以揭示節點的分群,找到孤立的社群,發現整體網絡結構關系。社群發現算法(Community Detection Algorithms)有助于發現社群中群體行為或者偏好,尋找嵌套關系,或者成為其他分析的前序步驟。社群發現算法也常用于網絡可視化。

      下圖是社群發現算法的分類。

      Measuring Algorithm

      三角計數(Triangle Count)和聚類系數(Clustering Coefficient)經常被一起使用。三角計數計算圖中由節點組成的三角形的數量,要求任意兩個節點間有邊(關系)連接。聚類系數算法的目標是測量一個組的聚類緊密程度。該算法計算網絡中三角形的數量,與可能的關系的比率。聚類系數為 1 表示這個組內任意兩個節點之間有邊相連。

      有兩種聚類系數:局部聚類系數(Local Clustering Coefficient)和全局聚類系數(Global Clustering Coefficient)。

      局部聚類系數計算一個節點的鄰居之間的緊密程度,計算時需要三角計數。計算公式:

      其中,u 代表我們需要計算聚類系數的節點,R(u) 代表經過節點 u 和它的鄰居的三角形個數,k(u) 代表節點 u的度。下圖是三三角計數聚類系數計算示意圖:

      全局聚類系數是局部聚類系數的歸一化求和。

      當需要計算一個組的穩定性或者聚類系數時,我們可以使用三角計數。三角計數在社交網絡分析中有廣泛的應用,通航被用來檢測社區。聚類系數可以快速評估特定組或整個網絡的內聚性。這些算法可以共同用于特定網絡結構的尋找。例如,探索網頁的主題結構,基于網頁之間的相互聯系,檢測擁有共同主題的 “網頁社群”。

      Components Algorithm

      強關聯部件(Strongly Connected Components,簡稱 SCC)算法尋找有向圖內的一組一組節點,每組節點可以通過關系 互相 訪問。在 “Community Detection Algorithms” 的圖中,我們可以發現,每組節點內部不需要直接相連,只要通過路徑訪問即可。

      關聯部件(Connected Components)算法,不同于 SCC,組內的節點對只需通過一個方向訪問即可。

      關聯類算法作為圖分析的早期算法,用以了解圖的結構,或確定可能需要獨立調查的緊密集群十分有效。對于推薦引擎等應用程序,也可以用來描述組中的類似行為等等。許多時候,算法被用于查找集群并將其折疊成單個節點,以便進一步進行集群間分析。對于我們來說,先運行以下關聯類算法查看圖是否連通,是一個很好的習慣。

      Label Propagation Algorithm

      標簽傳播算法(Label Propagation Algorithm,簡稱 LPA)是一個在圖中快速發現社群的算法。在 LPA 算法中,節點的標簽完全由它的直接鄰居決定。算法非常適合于半監督學習,你可以使用已有標簽的節點來種子化傳播進程。

      LPA 是一個較新的算法,由 Raghavan 等人于 2007 年提出。我們可以很形象地理解算法的傳播過程,當標簽在緊密聯系的區域,傳播非常快,但到了稀疏連接的區域,傳播速度就會下降。當出現一個節點屬于多個社群時,算法會使用該節點鄰居的標簽與權重,決定最終的標簽。傳播結束后,擁有同樣標簽的節點被視為在同一群組中。

      下圖展示了算法的兩個變種:Push 和 Pull。其中 Pull 算法更為典型,并且可以很好地并行計算:

      我們不再繼續深入,看完上圖,你應該已經理解了算法的大概過程。其實,做過圖像處理的人很容易明白,所謂的標簽傳播算法,不過是圖像分割算法的變種,Push 算法是區域生長法(Region Growing)的簡化版,而 Pull 更像是分割和合并(divide-and-merge,也有人稱 split-merge)算法。確實,圖像(image)的像素和圖(graph)的節點是十分類似的。

      Louvain Modularity Algorithm

      Louvain Modularity 算法在給節點分配社群是,會比較社群的密度,而不僅僅是比較節點與社群的緊密程度。算法通過查看節點與社群內關系的密度與平均關系密度的比較,來量化地決定一個節點是否屬于社群。算法不但可以發現社群,更可以給出不同尺度不同規模的社群層次,對于理解不同粒度界別的網絡結構有極大的幫助。

      算法在 2008 年被提出以后,迅速成為了最快的模塊化算法之一。算法的細節很多,我們無法一一覆蓋,下圖給出了一個粗略的步驟,幫助我們理解算法如何能夠多尺度地構建社群:

      Louvain Modularity 算法非常適合龐大網絡的社群發現,算法采用啟發式方式從而能夠克服傳統 Modularity 類算法的局限。算法應用:

      • 檢測網絡攻擊:該算可以應用于大規模網絡安全領域中的快速社群發現。一旦這些社群被發現,就可以用來預防網絡攻擊;

      • 主題建模:從 Twitter 和 YouTube 等在線社交平臺中提取主題,基于文檔中共同出現的術語,作為主題建模過程的一部分。

      結論

      本文更像是一篇綜述,算法很干,我們會在后續繼續分享圖分析相關內容,敬請期待。

      posted @ 2021-08-09 22:32  瘋子朱磊  閱讀(1259)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 丁香婷婷色综合激情五月| 日韩老熟女av搜索结果| 国产亚洲精品日韩av在| 狠狠噜天天噜日日噜| 亚洲狠狠婷婷综合久久久久图片| 成人精品区| 亚洲综合网国产精品一区| 欧洲精品亚洲精品日韩专区 | 国产麻豆成人精品av| 五月天免费中文字幕av| 亚洲精品中文av在线| 国产成人无码A区在线观| 久久精品国产99国产精品亚洲| 中文字幕国产精品二区| 欧美成人aaa片一区国产精品| 无卡无码无免费毛片| 亚洲一区二区精品另类| 免费一级黄色好看的国产| 日韩深夜免费在线观看| 亚洲高清WWW色好看美女| 亚洲国产精品区一区二区| 成人午夜大片免费看爽爽爽| 夜夜爱夜鲁夜鲁很鲁| 日本黄色三级一区二区三区| 丁香花成人电影| 无码综合天天久久综合网| 准格尔旗| 精品亚洲国产成人av| 国产成人精品亚洲午夜| 国产盗摄xxxx视频xxxx| 日韩精品视频一二三四区| 免费网站看sm调教视频 | 久久久久国产一级毛片高清版A | 黑人玩弄人妻中文在线| 国产激情艳情在线看视频| 无码专区人妻系列日韩精品少妇| 一本色道久久综合亚洲精品| 亚洲天堂亚洲天堂亚洲色图| 亚洲人成色99999在线观看| 亚洲一区二区三区人妻天堂| 香港日本三级亚洲三级|