在咱們的現實生活中,許多複雜系統均可以建模成一種複雜網絡進行分析,好比常見的電力網絡、航空網絡、交通網絡、計算機網絡以及社交網絡等等。複雜網絡不只是一種數據的表現形式,它一樣也是一種科學研究的手段。複雜網絡方面的研究目前受到了普遍的關注和研究,尤爲是隨着各類在線社交平臺的蓬勃發展,各領域對於在線社交網絡的研究也愈來愈火。研究生期間,本人的研究方向也是一直與複雜網絡打交道,如今立刻就要畢業了,寫一篇博文簡單介紹一下複雜網絡特色以及一些有關複雜網絡研究內容的介紹,但願感興趣的博友能夠一塊兒討論,一塊兒學習。php
下圖分別是一個航空網絡(上圖)和Facebook網絡全球友誼圖(下圖)。算法
錢學森對於複雜網絡給出了一種嚴格的定義:具備自組織、自類似、吸引子、小世界、無標度中部分或所有性質的網絡稱之爲複雜網絡。言外之意,複雜網絡就是指一種呈現高度複雜性的網絡,其特色主要具體體如今以下幾個方面:網絡
小世界特性(Small world theory)又被稱之爲是六度空間理論或者是六度分割理論(Six degrees of separation)。小世界特性指出:社交網絡中的任何一個成員和任何一個陌生人之間所間隔的人不會超過六個,以下圖所示:jsp
現實世界的網絡大部分都不是隨機網絡,少數的節點每每擁有大量的鏈接,而大部分節點卻不多,節點的度數分佈符合冪率分佈,而這就被稱爲是網絡的無標度特性(Scale-free)。將度分佈符合冪律分佈的複雜網絡稱爲無標度網絡。ide
下圖爲一個具備10萬個節點的BA無標度網絡的度數分佈示意圖:函數
無標度特性反映了複雜網絡具備嚴重的異質性,其各節點之間的鏈接情況(度數)具備嚴重的不均勻分佈性:網絡中少數稱之爲Hub點的節點擁有極其多的鏈接,而大多數節點只有不多量的鏈接。少數Hub點對無標度網絡的運行起着主導的做用。從廣義上說,無標度網絡的無標度性是描述大量複雜系統總體上嚴重不均勻分佈的一種內在性質。工具
其實複雜網絡的無標度特性與網絡的魯棒性分析具備密切的關係。無標度網絡中冪律分佈特性的存在極大地提升了高度數節點存在的可能性,所以,無標度網絡同時顯現出針對隨機故障的魯棒性和針對蓄意攻擊的脆弱性。這種魯棒且脆弱性對網絡容錯和抗攻擊能力有很大影響。研究代表,無標度網絡具備很強的容錯性,可是對基於節點度值的選擇性攻擊而言,其抗攻擊能力至關差,高度數節點的存在極大地削弱了網絡的魯棒性,一個惡意攻擊者只需選擇攻擊網絡不多的一部分高度數節點,就能使網絡迅速癱瘓。性能
人以類聚,物以羣分。複雜網絡中的節點每每也呈現出集羣特性。例如,社會網絡中老是存在熟人圈或朋友圈,其中每一個成員都認識其餘成員。集羣程度的意義是網絡集團化的程度;這是一種網絡的內聚傾向。連通集團概念反映的是一個大網絡中各集聚的小網絡分佈和相互聯繫的情況。例如,它能夠反映這個朋友圈與另外一個朋友圈的相互關係。
學習
下圖爲網絡彙集現象的一種描述:大數據
社區檢測(community detection)又被稱爲是社區發現,它是用來揭示網絡彙集行爲的一種技術。社區檢測實際就是一種網絡聚類的方法,這裏的「社區」在文獻中並無一種嚴格的定義,咱們能夠將其理解爲一類具備相同特性的節點的集合。近年來,社區檢測獲得了快速的發展,這主要是因爲複雜網絡領域中的大牛Newman提出了一種模塊度(modularity)的概念,從而使得網絡社區劃分的優劣能夠有一個明確的評價指標來衡量。一個網絡不通狀況下的社區劃分對應不一樣的模塊度,模塊度越大,對應的社區劃分也就越合理;若是模塊度越小,則對應的網絡社區劃分也就越模糊。
下圖描述了網絡中的社區結構:
Newman提出的模塊度計算公式以下:
$Q=1/(2m) \sum_{ij}(A_{ij}-k_{i}k_{j}/(2m)) \delta(C_{i},C_{j})$
其中$m$爲網絡中總的邊數,$A$是網絡對應的鄰接矩陣,$A_{ij}=1$表明節點$i$和節點$j$之間存在連邊,不然不存在連邊。$k_{i}$爲節點$i$的度數,$C_{i}$爲節點$i$屬於某個社區的標號,而$\delta(C_{i},C_{j})=1$當且僅當$C_{i}=C_{j}$。
上述的模塊度定義其實很好理解,咱們能夠根據一個網絡的空模型去進行理解。網絡的空模型能夠理解爲只有節點的而沒有連邊,這時候一個節點能夠和圖中的任意其餘節點相連,而且節點$i$和$j$相連的機率能夠經過計算獲得。隨機選擇一個節點與節點$i$相連的機率爲$k_{j}/2m$,隨機選擇一個節點與節點$j$相連的機率爲$k_{j}/2m$,那麼節點$i$和節點$j$相連的機率爲$p_{i}p_{j}=k_{i}k_{j}/(4m^{2})$,邊數的指望值$P_{ij}=2mp_{i}p_{j}=k_{i}k_{j}/(2m)$。因此模塊度其實就是指一個網絡在某種社區劃分下與隨機網絡的差別,由於隨機網絡並不具備社區結構,對應的差別越大說明該社區劃分越好。
Newman提出的模塊度具備兩方面的意義:
(1)模塊度的提出成爲了社區檢測評價一種經常使用指標,它是度量網絡社區劃分優劣的量化指標;
(2)模塊度的提出極大地促進了各類優化算法應用於社區檢測領域的發展。在模塊度的基礎之上,許多優化算法以模塊度爲優化的目標方程進行優化,從而使得目標函數達到最大時獲得不錯的社區劃分結果。
固然,模塊度的概念不是絕對合理的,它也有弊端,好比分辨率限制問題等,後期國內學者在模塊度的基礎上提出了模塊度密度的概念,能夠很好的解決模塊度的弊端,這裏就不詳細介紹了。
經常使用的社區檢測方法主要有以下幾種:
(1)基於圖分割的方法,如Kernighan-Lin算法,譜平分法等;
(2)基於層次聚類的方法,如GN算法、Newman快速算法等;
(3)基於模塊度優化的方法,如貪婪算法、模擬退火算法、Memetic算法、PSO算法、進化多目標優化算法等。
結構平衡(Structural Balance)主要是針對社交網絡的研究而被提出的,它最先源於社會心理學家Heider提出的一個結構平衡理論。
3.1 網絡平衡的發展
網絡平衡有時也稱社會平衡(Social Balance),就網絡平衡的發展來講,咱們能夠將其分爲三個發展階段。
3.1.1 網絡平衡理論的提出
「網絡平衡」一詞最先是由Heider基於對社會心理學的研究而提出的,Heider在1946年的文章Attitudes and cognitive organization[1]中針對網絡平衡的概念提出了最先的平衡理論:
(1)朋友的朋友是朋友;
(2)朋友的敵人是敵人;
(3)敵人的朋友是敵人;
(4)敵人的敵人是朋友。
用常見的三元組合來表示上述的Heider理論以下:
上述的平衡理論是有關網絡平衡提出的最先的理論,它後來也被稱爲是強平衡理論。
1956年,Cartwright和Harary對Heider的平衡理論進行了推廣,並將其用在了圖理論中(STRUCTURAL BALANCE: A GENERALIZATION OF HEIDER'S THEORY[2])。Cartwright和Harary指出對於一個符號網絡而言,網絡平衡的充要條件是網絡中的全部三元組都是平衡的,該結論也能夠陳述爲一個符號網絡平衡的充要條件是它所包含的全部迴路(cycles)都是平衡的(「-」號的個數爲整數個)。並且,在這篇文章中,他們還提出了著名的結構平衡理論:若是一個符號網絡是平衡的,那麼這個網絡就能夠分爲兩部分子網絡,其中每一個子網絡內部中節點的鏈接都是正鏈接,網絡之間的鏈接均爲負鏈接。
在這各階段網絡平衡的發展的重心主要在於構建網絡平衡的心理學和社會學模型。
3.1.2 網絡平衡的數學模型
在有了Heider等人的奠定工做後,有關網絡平衡的發展主要是構建其數學模型,好比網絡的動態表現,一個網絡鏈接如何隨時間的變化而變化,網絡中節點之間的朋友或者敵人的關係如何演化等等。
3.1.3 網絡平衡的應用
最新關於網絡平衡方面的研究大都是研究一些在線網絡,好比對某個網站用戶屬性的分析等等。並且,目前咱們身處大數據時代,咱們所要研究的網絡規模也變爲了大型甚至能夠說是超大型網絡,這這個背景下,如何計算一個網絡是否平衡便成爲該領域的主要熱點問題。
(1) Heider理論(強平衡理論SBT)。
(2) 結構平衡理論(Structural Balance Theroem):在徹底符號網絡中,網絡平衡的充要條件是其全部的三元組(迴路)都平衡。
結構平衡的推論:一個徹底符號網絡平衡的充要條件是它能夠被分爲兩部分X和Y,X和Y內部的節點鏈接均爲正鏈接,X和Y之間的鏈接均爲負鏈接。
(3) 弱平衡理論(A weaker form of structural balance,WSBT):若是徹底符號網絡中不存在這樣的三元組:兩個邊爲正,一邊爲負,則該網絡稱爲是弱平衡網絡。
對於弱平衡理論而言,上圖的三元組中,三邊均爲負鏈接的三元組也屬於平衡三元組,也就是三元組的四種狀況有三種屬於平衡狀態,一個屬於不平衡狀態(兩邊爲正,一邊爲負)。
弱平衡網絡推論:若是一個網絡爲弱平衡理論,那麼它能夠分爲多個部分,每部份內的鏈接爲正,部分之間的鏈接爲負。
(4) 對任意網絡平衡的定義.
1) 對於一個任意網絡而言,若是咱們能夠將它所缺失的邊填充使它成爲一個平衡的徹底符號網絡,那麼原網絡就是平衡網絡;
2) 對於一個任意網絡而言,若是咱們能夠將它分爲兩部分,使得每一個部份內的鏈接均爲實線,部分之間的鏈接均爲虛線。
以上的兩種定義是等價的。
一個符號網絡平衡的充要條件是它不包括含有奇數個負鏈接的迴路。
(5) 近似平衡網絡(略)。
3.3 網絡平衡的計算(A spectral algorithm for computing social balance)
命題1:節點i參與的三元組數目
A爲鄰接矩陣,元素取值可能爲:1,-1,0;
G爲鄰接矩陣,元素取值可能爲:0,1.
命題2:對於節點i而言,bi爲其參與的平衡三元組數目,ui爲其參與的不平衡三元組數目,則
理論1:對於徹底符號圖而言,
平衡三元組所佔的比例爲
理論2:對於任意符號網絡,平衡三元組所佔的比例爲
注:以上兩個計算網絡平衡的公式中,特徵值能夠隨大到小選擇前幾個比較大的,就像PCA那樣,這樣可使得計算的複雜度大大減少。
隨着各類在線社交平臺的發展,社交平臺(好比QQ、微博、朋友圈等)已經不只僅是一種用戶進行溝通的社交平臺,它們更是社會信息產生和傳播的一種主要的媒介。影響最大化(Influence Maximization)同結構平衡同樣,也是針對社會網絡的研究而被提出的,它來源於經濟學的市場營銷。2001年,影響最大化被Domins首次以一種算法問題的形式被提出。而影響最大化受到普遍的關注是在2003年Kempe等人在當年的KDD會議上發表的一篇有關影響最大化的論文以後,隨後各類影響最大化算法被迅速提出,最近的十幾年裏,影響最大化的相關文章達到了上千篇,可見這個問題仍是很值得關注的。
影響最大化問題能夠這樣來描述:一個商家或者企業利用一種社交平臺(好比爲新浪微博)爲本身的新產品或者新服務進行推廣,如何在資金有限的狀況下僱傭微博達人來作推廣可使得推廣範圍達到最大?
咱們再給出影響最大化的通常定義:
給定一個網絡$G$和一個整數$K$(通常小於50),如何在$G$中找出$K$個節點,使得這$K$的節點組成的節點集合$S$的影響傳播範圍$\sigma(S)$達到最大。
根據上述影響最大化的定義咱們很容易能夠知道,影響最大化自己屬於一種組合優化問題。經常使用的影響最大化傳播模型有獨立級聯傳播模型(ICM)和線性閾值傳播模型(LTM)。
影響最大化方面的主要算法能夠分爲以下幾類:
(1)基於網絡中心性的啓發式方法:好比最大度方法、最短平均距離方法、PageRank方法等;
(2)基於子模塊性的貪婪方法:好比最經典的Greedy算法,CELF算法以及後來的NewGreedy和CELF++等;
(3)基於社區結構的方法:好比CGA算法、CIM算法等;
(4)基於目標函數優化的方法:好比模擬退火算法等。
網絡傳播領域涉及不少方面,好比網絡節點重要性排序、網絡魯棒性分析、網絡信息爆發閾值優化等。這些領域都頗有意思,感興趣的博友能夠好好深刻研究一下。
首先在這裏推薦兩款我經常使用的網絡可視化工具:Pajek (點擊進入官方網站)、Gephi(點擊進入官方網站)。
下邊爲pajek可視化窗口下的一個網絡拓撲結構圖:
這是Gephi的一個可視化效果:
經常使用的一些公開數據集整理:
Pajek(可視化工具)數據集:http://vladowiki.fmf.uni-lj.si/doku.php?id=pajek:data:index;
Newman(複雜網絡科學領域大牛)我的數據集:http://www-personal.umich.edu/~mejn/netdata/
Stanford大學大規模網絡數據集:http://snap.stanford.edu/data/
復旦大學網絡數據集整理:http://gdm.fudan.edu.cn/GDMWiki/Wiki.jsp?page=Network%20DataSet
KONECT數據集整理:http://konect.uni-koblenz.de/
[1] Grivan and Newman. Community structure in social and biological networks. PNAS, 2002.
[2] Newman and Grivan. Finding and evaluating community structure in networks. PRE, 2004.
[3] Newman. Networks: an introduction. 2010.
[4] Cartwright and Harary. Structural balance: a generalization of Heider's theory. 1956.
[5] Facchetti et al. Computing global structural balance in large-scale signed social networks. 2011.
[6] Kempe et al. Maximizing the spread of influence through a social network. 2003.
[7] Chen et al. Efficient influence maximization in social networks. 2009.
[8] 任曉龍,呂琳媛. 網絡重要節點排序方法綜述. 2014.