轉自本人:https://blog.csdn.net/New2World/article/details/106519773
網路的形成不是一蹴而就的,就像一個人的人際關係並非出生就是完整的,而是在成長過程中通過接觸他人結識新朋友而逐步形成的。以時間為變數,網路結構的變化過程就是我們需要研究的。這個 Lecture 以三個層次進行研究討論,分別是
- macro level: models, densification
- meso level: motifs, communities
- micro level: node, link properties (degree, centrality)
Macroscopic
從巨集觀的角度我們主要研究節點數和邊的數目隨時間的變化趨勢、網路直徑的變化以及節點度分佈的變化。
首先定義節點和邊為時刻 \(t\) 的函式 \(N(t), E(t)\),若在下一時刻 \(t+1\) 節點數翻倍,那邊的數量會如何變化?大量實驗表明,邊和節點的數量關係服從 densification power law,即 \(E(t) \propto N(t)^a,\ a\in[1,2]\)。也就是說邊的數量增長的速度遠快於節點的增長速度。如果 \(a=1\) 說明是線性增長,即每個點的 out-degree 一樣;而當 \(a=2\) 時則為完全圖。
那麼網路直徑怎麼變化呢?出乎意料地減小了。比如你想認識 Jure,以你現有的人際關係可能得通過你們組的學長的大學同學的室友的高中同學才能實現。但如果你的人際關係中加入了你們組學長的大學同學的室友,那你就只需要通過他的高中同學就能跟 Jure 搭上線了,距離一下就縮短了不是嗎。然而這只是我們的願景,雖然實驗表明網路直徑的確減小了,但通過 E-R 模型模擬出的結果恰恰相反。因此除了 densification 還有其它因素使得網路直徑縮小。
經歷過 Lecture 2 後,提到其他因素,第一反應應該就是 degree 了吧。那麼對比真實網路的演變和一個與真實網路具有相同度分佈的隨機圖的演變,如下圖,效果出奇地好。那麼我們來研究下這個 degree 和 densification 的關係,不過首先我們得明確一點,即 degree sequence 通常服從 power law 分佈。
第一種可能是度的指數為 \(r_t\) 且為一個常數。如果 \(r_t=r\in[1,2]\),那麼 \(a=2/r\)。其實這裡我一直不知道 \(a\) 怎麼得到的,這一段的講解我看了不下5遍都沒聽到他講為什麼,而是在解釋 \(r < 2\) 時 power law 的期望不存在(無限)。最終我發現 slide 裡用詞是 "fact",也就是說這是一個普遍規律?好吧,不管了,我就這麼理解了。
另一種可能是 \(r_t\) 隨著節點數變化。如果 \(r_t=\frac{4n_t^{x-1}-1}{2n_t^{x-1}-1}\),那麼 \(a=x\),這裡的 \(x\) 是 densification 的指數。好吧,依舊是 "fact"。但是這裡的兩張圖可以看一下,左邊是節點的度的分佈,右邊是隨著節點數增加度的指數的變化。不難看出度的指數在下降,也就是說隨著圖的規模增大,度很高的節點越來越多。在 power law 中,度的期望為 \(E[X] = \frac{r_t-1}{r_t-2}x_m\)。因此要讓 densification 增加,即讓平均度增加就需要使 \(r_t\) 與圖的規模成比例降低。
Forest Fire Model
Forest Fire 模型可以描述具有“隨著節點數增加,邊密度增大而圖直徑減小”特點的圖。這個模型的 idea 很簡單,在一個 party 上如果你想認識更多的人,你會怎麼做?首先結交一個派對上的朋友,通過這個人的人際關係逐漸認識他的朋友,然後再通過朋友的朋友結識更多的人。
這個模型有兩個引數:\(p\) 表示向前傳遞,\(r\) 表示向後傳遞。這兩個值分別表示在有向圖中走 in-link 和 out-link 的概率。那麼 Forest Fire 模型的整個流程如下
- 新加入節點 v,隨機選取一個已有節點 w 並將其與 v 連線;
- 根據服從引數 \(p\) 和 \(r\) 的幾何分佈隨機 sample 兩個值 \(x, y\)。使得其平均為 \(p/(1-p)\) 及 \(r/(1-r)\);
- 選取 w 的 \(x\) 個 out-links 和 \(y\) 個 in-links 與 v 相連;
- 對步驟3中加入的節點使用步驟2的操作一直到沒有新節點加入。
在引數選得好的情況下這個模型能很好的滿足 densification 增加而 diameter 減小的條件,然而事實是這個引數選取的甜區很小。
Microscopic
微觀上我們關注隨時間變化網路中的邊會如何演變以及它對網路上資訊傳遞的影響。
Temporal Network
時序網路是在固定的節點集上的一系列靜態有向圖,不過它們是有時序關係的。如果將這一系列靜態圖合併成一張圖,那每條邊都有 timestamp,比如節點 A,B 在時刻 1,3,4 有連線,而時刻 2 無連線。分開看的話就像是這個網路的演變歷史。
我們可以通過 Dijkstra 演算法的變種 TPSP-Dijkstra 來找最短的 temporal path。什麼是 temporal path?比如我現在從 A 點坐車到 D 點,A 到 B 9點有車,B 到 C 10點有車,C 到 D 9點半有車,每趟車行程半小時,那我到 D 點得多久?答案是到不了,因為我會錯過 C 到 D 的車。如果 C 到 D 是 12點發車,那我就能趕上,且距離為一個半小時車程。為什麼不是三個半小時?因為距離不考慮等待時間呀。雖然距離一直是一個半小時車程,但第一種情況下我無法到達 D,因此距離就是無窮了。
那麼 TPSP-Dijkstra 怎麼做的呢?大概思路是每次鬆弛的時候先判斷在該時刻鬆弛的邊是否可達。具體偽碼如下
得到 temporal path 後就可以計算 temporal closeness \(c_{clos}(x,t)=\frac1{\sum_yd(y,x|t)}\),分母的 \(d(y,x|t)\) 表示從時刻 0 到 t,y 到 x 的最短 temporal path。這個近似度可以用來衡量節點 x 在前 t 個時刻內與其他節點有多 close。
Temporal PageRank
Internet 也是瞬息萬變的,有些網站紅極一時然後慢慢“退燒”到最後無人問津,也是一個 temporal 的過程。它的 importance 會逐漸下降,那 PageRank 怎麼做的呢?首先需要明確一點,temporal path 中每條邊的 timestamp 得是遞增的。其次,在講 PageRank 的時候我們說它其實就是一個 random walk 的過程。那麼我們也以 random walk 的方式來考慮 temporal 的情況。
我們來理解一下上面的表述。\(\Gamma\) 是時刻 \(t_1\) 到 \(t_2\) 期間從 u 到 y 所有 temporal edge。而上面那個概率表示 \(t_1\) 時刻從 v 到 u 後再在 \(t_2\) 時刻從 u 到 x 的概率。隨著 \(t_1\) 到 \(t_2\) 的時間跨度變大,\(|\Gamma|\) 會變多,從而導致上面的指數分佈概率變小。這很 make sense。那麼來看看 Temporal PageRank 的具體定義吧
其中 \(Z(v,u|t)\) 是到時刻 \(t\) 為止從 v 到 u 所有可能的 temporal walk。而 \(\alpha\) 是開始一個新的 walk 的概率。(然而這裡這個 \((1-\alpha)\alpha\) 並不是很理解,如果有朋友看懂了請私信我指點迷津。)
如果這裡的時間擴充到無窮,即整個演變的最後一刻,那麼 Temporal PageRank 就變成了一個在擴充了時間線的圖上的普通 PageRank 了,然後 \(\beta^{|\Gamma_u|}\) 就變成了均勻分佈。為什麼?你把時間線展開,然後每個點和特定時刻連通的點相連,如圖。這樣只要按照普通 PageRank 的方式來做就可以得到各個時刻下所有節點的 rank。
Mesoscopic
這個部分 Jure 沒有講,我自己看的,內容其實不多。介於巨集觀的整個網路和微觀的節點及邊之間的結構就是 motif 了,那 meso 就是研究 temporal motif 的。slides 裡的定義寫得“花裡胡哨”,其實就是在普通的 k 個點 l 條邊的 motif 的邊上標上“先後關係”,且限制 motif 內邊的時間跨度 \(\delta\)。如圖
後面就是一些 case study 和應用例項,自己看看 slides 吧 ~