Community structure enhanced cascade prediction 筆記

1、摘要

深度學習不用去手工提取特徵,可是現有深度模型沒有在傳播預測任務中使用社區結構。因此提出一個CS-RNN框架,把社區在傳播中的影響考慮在內,作傳播預測。算法

2、雜記

  1. 貢獻:①引入community structure information;②CS-RNN模型包含社區結構標籤預測層(community structure labels prediction layer),能夠預測下一個活躍節點的社區結構標籤;③參數健壯、結果好;(PS:原文中三、4點被總結到此處第3點了,單今後處來看創新並非很吸引人。)
  2. 參考文獻結論:strong community 經過增強局部和社區內部的傳播,有利於信息進行全局傳播。
  3. 文章缺點:參考文獻列舉了隨着神經網絡發展產生的一些深度模型,可是並無描述這些深度模型的側重點或者缺點。(PS:那如何突出本身工做的重要性)

3、模型思想

3.1 問題定義:

Network:\(G=(V,E)\)\(V\)是頂點表明用戶,\(E\)是邊表明用戶間關係;網絡

Cascade:\(S=\{\left(t_{i}, v_{i}\right) | v_{i} \in V, t_{i} \in[0,+\infty), t_i \le t_{i+1}, i=1,2,...,N \}\),表明節點\(v_i\)\(t_i\)時刻分享了消息;框架

Community:\(G(V',E')\)表明內部鏈接緊密的子圖。假設圖\(G=(V,E)\)能夠被分爲q個子部分\(\mathcal{L} = \left\{L_{1}, L_{2} \ldots L_{q}\right\}\),一個用戶 \(v_i\) 只能屬於一個社區,且它的社區標籤並定義爲\(c_{v_i} \in X_{\mathcal{X}}\)dom

問題描述:觀察以前的傳播過程,給定k個時間節點對(Cascade)表示爲\(S_{\le k}\),在傳播級聯中進行序列建模,來預測下一個激活節點的機率,即\(p(v_{k+1}|S_{\le k})\),還要預測下一個激活節點的社區標籤\(c_{v_{k+1}}\),即\(P{c_{v_{k+1}}|S_{\le k}}\),還要預測節點激活的確切時間。函數

3.2 模型框架

基本原理:信息傳播到下一個節點不只跟活躍節點的歷史序列狀態有關,還跟信息傳播過的社區有關。學習

模型框架圖以下,帶標號和有顏色背景的無邊緣線圖形,是我爲了更好的描述框架而加上的:優化

輸入層:spa

①圖中標記1的部分,把節點\(v_k\)轉換成一個低維的向量\(\mathbf{v}_k \in R^{d_v}\)\(\mathbf{v}_{k}=\mathbf{W}_{e m v}^{T} v_{k}\)orm

②圖中標記2的部分,把社區標籤\(c_{v_k}\)也初始化轉換爲低維向量\(\mathbf{c}_{v_k} \in R^{d_c}\)\(\mathbf{c}_{v_{k}}=\mathbf{W}_{e m c}^{T} c_{v_{k}}\)

隱藏層:

①圖中標記3的部分,這裏是把\(\mathbf{v}_1\)\(\mathbf{v}_k\)用一個RNN串聯起來,表示每一個節點的初始隱含表示,由以前獲得的表示向量\(\mathbf{v}_k\)和傳播過程當中上一個節點的隱含表示所決定:\(\mathbf{h}_{k}^{(0)}=R N N\left(\mathbf{v}_{k}, \mathbf{h}_{k-1}^{(0)}\right)\)其中,\(h_0^{(0)}\)由全0的向量初始化,RNN層中可使用GRU和LSTM。這裏暫時把\(\mathbf{h}_{k}^{(0)}\)和上一步獲得的\(\mathbf{c}_{v_{k}}\)拼接起來,組成\(\mathbf{h}_{k}^{(1)}= \mathbf{h}_{k}^{(0)} \oplus \mathbf{c}_{v_{k}}\),備用。

②圖中標記4的部分,把傳播級聯中的時間t,也按照序列順序用RNN串聯,獲得\(\mathbf{h}_{k}^{(2)}=R N N\left(\mathbf{t}_{k}, \mathbf{h}_{k-1}^{(2)}\right)\)

最後,把上述的兩個(實際上是三個\(\mathbf{h}_{k}^{(1)}\)由兩部分組成)拼接起來,組成一個向量(圖中三色向量圖形),而後經過一個線性變換層(FC層)和一個非線性變換(激活層)【圖中Linear and Activation Layer】,獲得結果:\(\mathbf{h}_{k}^{\mathrm{cas}}=\delta\left(\mathbf{W}_{h}^{T}\left(\mathbf{h}_{k}^{(1)} \oplus \mathbf{h}_{k}^{(2)}\right)+\mathbf{b}_{h}\right)\)

社區結構標籤產生:(圖中右上部分)

由上面獲得的\(\mathbf{h}_{k}^{\mathrm{cas}}\),在經過一個線性變換層和激活層,目的是爲了把\(\mathbf{h}_{k}^{\mathrm{cas}}\)映射到和社區結構標籤嵌入向量一樣的空間中去,獲得\(\mathbf{h}_{k}^{\mathrm{com}}=\delta\left(\mathbf{W}_{\mathrm{com}}^{T} \mathbf{h}_{k}^{\mathrm{cas}}+\mathbf{b}_{\mathrm{com}}\right)\),而後把\(\mathbf{h}_{k}^{\mathrm{com}}\)和全部社區標籤向量作餘弦類似度,在用一個softmax層歸一化全部類似度,獲得(預測)下一個激活節點的社區標籤,\(\mathbf{p}_{k}^{c o m}=\operatorname{sigmoid}\left(\mathbf{h}_{k}^{c o m} \mathbf{W}_{e m c}^{T}\right)\)

下一個激活節點的產生:(圖中右上部分)

咱們能夠看到,圖中的右上部分有一個相似殘差神經網絡(大霧)的鏈接,實際上是做者又作了一個下一個激活節點的預測,具體以下:

經過模型左側獲得的\(h_k^{cas}\),和剛剛預測的社區結構標籤 $ \mathbf{p}_{k}^{\text {com}}$,做者把這兩個向量拼接起來,再送入線性變換層和激活層,獲得 \(\mathbf{h}_{k}^{\text {node }}=\delta\left(\mathbf{W}_{\text {node }}^{T}\left(\mathbf{h}_{k}^{\text {cas }} \oplus \mathbf{p}_{k}^{\text {com }}\right)+\mathbf{b}_{\text {node }}\right)\),而後如法炮製,在計算隱向量\(h_k^{node}\)和全部節點的嵌入表示之間的餘弦類似度,再用softmax層歸一化,獲得每一個節點的機率表示,從而預測下一個激活結點是哪一個節點。

下一個激活時間預測:(圖中左上部分)

利用最開始獲得的傳播級聯第K步的表示\(h_k^{cas}\),還能夠預測傳播過程的第K+1步和第k步之間的時間間隔,即\(t_{k+1}-t_{k}=\mathbf{W}_{t}^{T} \mathbf{h}_{k}^{c a s}+\mathbf{b}_{t}\)

哇,這是一口氣作了三個預測,經過傳播級聯第K步的表示\(h_k^{cas}\),文中作了下一個激活節點的預測,下一激活節點所在的社區標籤的預測,還作了時間間隔的預測,感受文章要作multi-task了(是否是作multi-task會有收穫呢?),然而沒有,文中的損失函數:
\[ \operatorname{Loss}(Q)=\sum_{f=1}^{F} \sum_{i=1}^{N_{f}-1} \log p\left(\left(t_{k+1}, v_{k+1}, c_{k+1}\right) | c_{v_{k}}, S_{\leq k}\right) \]
利用基於時間的反向傳播(backpropagation through time,BPTT)來訓練模型,最後用SGD,mini-batch和Adam優化。爲了加快速度,在訓練過程當中使用正交初始化方法。

4、實驗

利用合成數據和真實數據(Digg數據集)。主要在合成數據集上作了分析,對於真實數據集分析簡短。

設備:Tesla V100 32G GPU, Intel Xeon E5 CPU,512G內存。

合成數據生成方法:(不太懂,以後用到生成數據能夠參考這裏,關鍵是傳播都可以生成!)

網絡結構和傳播過程都是生成的。

網絡結構生成,兩種方法:①kronecker graph model;②LFR bechmark,更像真實網絡。產生兩種網絡結構①random network(RD);②層級社區網絡(HC)。

傳播過程生成,對於每一個節點,按照必定的時間分佈來設置被激活用戶的激活時間,參考其餘文獻,也設置了兩種分佈,①混合指數分佈(Exp);②混合瑞利分佈(Ray);

對比算法:

CYANRNN(AAAI’17):使用attention-based RNN,利用傳播過程當中的交叉依賴性(什麼是交叉依賴性?)。

RNNPP(AAAI’17):用RNN的視角處理point process,建模背景和歷史做用。能夠預測event時間,主要類型的event和子類型的event。做者在論文中把社區結構當作main-types,把node當作sub-type。

RMTPP(SIGKDD‘16):將時間點過程的強度函數視爲歷史的非線性函數,利用RNN自動學習事件歷史影響的表示。

S-RNN,CS-RNN,CS-GRU,CS-LSTM:分別是去掉社區結構的方法,原始方法,使用GRU的方法和使用LSTM的方法。前兩個是爲了對比結果證實,社區結構有用的,後面兩個是對比GRU好仍是LSTM好。

結果仍是比較中規中矩的,提出的方法確定是最優的,社區結構是有用的。

5、其餘

瑞利分佈(Rayleigh Distribution):當一個隨機二維向量的兩個份量呈獨立的、有着相同的方差的正態分佈時,這個向量的模呈瑞利分佈。

6、參考文獻

[1]. Liu, Chaochao, et al. 「Community Structure Enhanced Cascade Prediction.」 Neurocomputing, vol. 359, Elsevier B.V., 2019, pp. 276–84, doi:10.1016/j.neucom.2019.05.069.

相關文章
相關標籤/搜索