Easygraph:全面高效的圖分析與社會計算開源工具

2023-07-23 15:00:19

前言
圖是對事物之間關係的一種原生的表達,利用圖可以深入直接地認識世界中的關聯。社群網路、交易資料、知識圖譜、交通運輸、生物技術等都是圖資料的典型應用。
社群網路是一種特殊的圖資料,它建立在圖網路的基礎上,又遵循一定的社會學理論。

EasyGraph是復旦大學MSN小組開發的一款基於Python語言的圖計算開源包,它是第一個包含全面的結構洞佔據者探測方法的開源庫,同時覆蓋了圖嵌入和其他一些傳統的圖計算方法。Easygraph補齊了現有的圖分析開源庫如igraph, NetworkX在社群網路領域的短板,同時利用混合程式設計和平行計算提高了執行效率

什麼是結構洞理論
由於細化的工作分工,人們聚集到不同的群體中。在同一個群體中,人們的交流比跨群體的交流更密切,從而逐漸在不同社群之間形成術語障礙。在封閉網路中,人們可以以較低的成本獲得更高可信度的資訊。這些封閉的網路或社群可以促進內部交流和社群發展,併產生冗餘和重疊的資訊。

根據伯特提出的結構洞理論,充當這些社群的橋樑和中介的,就是結構洞佔據者。結構洞佔據者與社群網路的不同社群的聯絡增加了它在競爭領域的社會資本,而具有同質和重複資訊的封閉網路不會帶來這樣的優勢。這就是結構洞理論的核心。

結構洞的潛在價值在於資訊效益和控制效益。結構洞佔據者佔據了社群之間獨特的連線位置,從而可以存取多個非冗餘資訊源,獲取高價值資訊。在社會學研究中,社群中資訊、想法和創新彙集的個體被稱為意見領袖。結構洞佔據者得益於互聯社群的獨特資訊,擁有與意見領袖互動的優先權,從而發掘有利可圖的機會。

基於社群網路分析,結構洞理論已經被開發出諸多應用場景。結構洞被用於企業人力資源管理,以及社交關係中高收益聯絡的建立。同時由於結構洞佔據者佔據了連線不同社群的關鍵結構位置,結構洞理論也被用於在傳播資訊方面最大化影響力。

由於結構洞體現了圖的整體和區域性結構,結構洞理論在不同的層面上都具有巨大的應用潛力

個體層面:分析個人行為和屬性;預測使用者情緒等
連線層面:鏈路預測;預測投資行為;分析社會關係等
圖級層面:圖分類,圖同構和圖分割區等
全面的圖網路分析工具

Easygraph的架構包含:

圖的輸入輸出

圖的視覺化:利用結構洞佔據者標記,CDF圖和節點定位對複雜網路進行完整呈現

| karate club資料集的結構洞佔據者標記 |

| karate club資料集CDF圖 |

圖分析方面,Easygraph覆蓋了圖表示學習,經典網路演演算法和結構洞佔據者檢測方法:

圖表示學習 :DeepWalk,Need2Vee,LINE,SDNE等
社群檢測,中心性,Component,Clustering等方法
Easygraph整合了全面的結構洞佔據者探測方法,包含:
基於資訊流的HIS, MaxD,HAM,NOBE,maxBlock等演演算法
基於網路中心性的WeakTie-Local,WeakTieBi,ICC,BICC,Ap_Greedy等演演算法
基於此架構,Easygraph能夠在生物,交通,化學,社會,生態等眾多領域的圖資料分析中發揮應用價值

易用性和執行效率
Easygraph注重API的易用性和極低學習成本
以下是一個以6行python程式碼實現對圖資料進行結構洞佔據者分析並視覺化的範例

from easygraph.datasets import get_graph_karateclub
import easygraph as eg
G = get_graph_karateclub()
# Calculate five shs(Structural Hole Spanners) in G
shs = eg.common_greedy(G, 5)
# Draw the Graph, and the shs is marked by red star
eg.draw_SHS_center(G, shs)
# Draw CDF curves of "Number of Followers" of SH spanners and ordinary users in G.
eg.plot_Followers(G, shs)

深入瞭解Easygraph
專案地址:easy-graph/Easy-Graph: EasyGraph is an open source graph processing library, which covers advanced graph processing methods in structural hole spanners detection, graph embedding and several classic methods. (github.com)
檔案:EasyGraph by FudanMSN (easy-graph.github.io)
通過視訊教學快速安裝並執行第一個樣例:Tutorials - YouTube