對於許多常見的複雜系統,如社交網路、感測器網路、生物網路等,我們可以使用網路中的節點和邊來分別表示系統中的實體和實體間的關係。通過這種表示,許多實際的複雜系統預測任務就可以抽象為面向複雜網路的預測任務。
然而,傳統機器學習演算法的效能嚴重依賴於特徵工程以及訓練資料的質量。因為這個過程通常需要具有領域知識的專家進行人工設計。同時,複雜網路的異構性、噪聲高、資料缺失、規模大等問題也嚴重製約了面向複雜系統的機器學習的發展。近年來,網路表示學習作為一個新興領域,逐漸獲得學界的關注。這種方法能夠自動從網路中提取結構資訊,將節點編碼為低維特徵向量,同時保留網路的拓撲結構、節點內容和其他資訊。這樣解決了傳統方法對於大規模網路計算複雜度高的問題。但是對符號網路來說,已有演算法只能提取節點特徵,對於基於邊的任務,如連結預測和符號預測,這些方法依然需要手工設計邊特徵,這導致了此類任務的效果不能令人滿意。
針對以上問題,本文提出了一種能夠同時學習節點與邊的特徵向量的網路表示學習框架,這種策略能夠解決邊特徵的獲得問題。同時,本文提出一個全域性可學習對映來解決資訊傳遞不一致的問題,以及一種符號網路節點相似度計算方法。這樣,所學習到的邊特徵能夠直接應用到基於邊的網路分析任務,避免了手工設計可能帶來的低效、資訊不一致等問題。文中分別採用神經網路和矩陣分解實現框架,實驗證明所提出方法提高了多個面向複雜系統的網路預測任務的效能。
問題描述和動機
已知網路,其中代表N個節點的集合,代表觀測到的邊的集合。邊的權重為,方向為從到。我們可以使用鄰接矩陣A來表示資料:當時,為未觀測到的邊;當等於+1或-1時分別代表觀測到的正邊或負邊。
演算法的目標是學習節點的兩個低維向量表示和,它們的每一行分別代表對應節點作為邊的出發和終止節點時的特徵。這樣對於面向節點的預測任務,可以直接將節點特徵作為預測演算法的輸入。當面向基於邊的預測任務時,這些演算法通常根據兩個節點向量的距離來做決定,例如,在node2vec和SNE中,作者分佈採用Hadamard、L1-weight、l2-weight、concate、average等方法計算距離,然後從中選擇最終結果最好的結果。
此外,許多符號網路的表示學習方法基於一些假設(如社會理論)來將節點和邊的符號聯絡起來,而這些假設通常會忽略許多重要的邊的性質(如方向、權重);而且這些將邊與節點聯絡起來的假設並不能同上面的距離函式對應起來,導致了資訊的不一致以及額外的選擇距離函式的工作(即設計邊特徵的特徵工程)。
為解決以上問題,本文設計了一種新的符號網路表示學習框架,不僅能夠學習到節點向量,還能夠學習到任意節點對的低維向量表示。這樣做能夠避免了上面所提到的不一致、手工設計等問題,但是也帶來了高演算法複雜度,即B的儲存和計算複雜度。因此我們採用了一些假設來降低演算法複雜度。此外,我們還針對符號網路擴充套件了LINE提出的二階相似度,來作為框架的目標函式。實驗表明我們的演算法無論在節點分類、符號預測,還是執行速度都得到了最好的表現。
方法
假設
我們首先提出如下兩個假設:
對於任意,僅依賴於和;
這個依賴關係對於整個網路是一致的。
如果我們使用一個向量對映函式來表示這個關係,那麼就可以得到:。
下面我們使用一個例子來解釋這兩個假設:如果網路中的節點代表政客,兩個節點之間的正邊/負邊代表政客之間互相支援/反對。給定這樣一個網路,我們的目標是預測未知的政客之間的關係,即指定節點和,如果它們之間沒有邊相連,我們想預測邊的符號。這是符號預測任務的一個應用場景。
我們使用節點特徵和來表示政客的特徵,邊特徵表示它們的關係。這樣,它們之間的關係僅依賴與他們本身的政見,這等價於第一個假設。
如果兩個政客互相支援,我們用來表示兩人政見中L種不同相似度,顯然這種評價標準應該對網路中的每對政客一致。這就是第二個假設。
符號網路的節點相似性
LINE模型刻畫了無符號網路的一階和二階節點相似性,這裡我們將其擴充套件到符號網路,即:
如果符號網路G 中的兩個節點是相似的,他們應當同時滿足如下兩個條件:
1. 他們滿足無符號網路的二階相似性;
2. 他們與鄰居的符號模式相近:即,C代表和的共同鄰居,令表示到C中各鄰居的符號。那麼當和相似時他們具有相同的鄰居符號模式。
對於條件1,已有的一些工作證明其等價於擬合兩個節點之間的Pointwise Mutual Information,即PMI。在本文中,我們假設節點間的決定於。我們使用對映函式來表示這個對映關係,得到條件1的目標函式為:
對於條件2,我們假設邊的符號服從伯努利分佈,且決定於。則得到的條件分佈:
其中是表示節點特徵與符號之間關係的對映函式。令:
為從出發的邊的符號模式,我們可以通過極小化與經驗分佈:
的KL距離來得到條件2的目標函式:
符號網路需要同時滿足兩個條件,我們使用一個超引數來結合,得到我們框架的最終目標函式:
實現
從上面目標函式可以看到,我們將學習S、T和B的問題轉化為了學習S、T、f、g和h的問題。這樣就避免了計算和儲存B這個大規模矩陣。但是我們應該如何確定f、g和h呢?
這裡我們採用兩種策略:第一種是採用MLP來從資料中學習出這個對映,另一種是將它們三個指定為簡單的函式。
對於策略1我們使用如下神經網路,得到模型neural networks signed network embedding(nSNE):
對於策略2,我們指定以及
得到模型 light signed network embedding(lSNE),這樣將目標函式簡化為:
其中λ是用來避免過擬合的正則引數。
實驗
實驗設定
實驗採用如下4個資料集:
- Wiki-editor
- Wiki-rfa
- Epinions
- Slashdot
所有的資料集都可以用來做符號預測任務(通過隱藏一部分邊作為測試集);由於只有Wiki-editor的節點有label,所以我們僅用它來驗證節點分類任務。
對比演算法如下:
- Spectral Clustring:基於譜方法的網路表示學習方法;
- SNE:基於隨機遊走和log-bilinear模型;
- SiNE:基於社會理論和MLP。
其他設定:
- 對每一種實驗設定,我們對對比演算法的超引數都做了grid search,保證其達到最優結果;
- 機器學習演算法採用邏輯迴歸;
- 對於節點分類,我們採用accuracy和AUC作為評價標準;
- 對於符號預測,我們採用F1和AUC作為評價標準;
- 我們的演算法採用了early stop避免過擬合。
視覺化
我們將各演算法所學習出的邊特徵使用t-SNE降維,得到:
節點分類
我們用整個網路作為演算法的輸入,得到節點的特徵;再將節點劃分為訓練/測試集,使用交叉驗證的方法得到節點分類的表現如下:
符號預測
我們隱藏了部分邊作為測試集,將餘下的網路(保證聯通)作為訓練集投入網路表示學習演算法;再用訓練集對應的邊特徵和符號訓練一個邏輯迴歸函式,來預測測試集中邊的符號,得到如下結果:
時間對比
我們統計了各演算法的平均執行時間,如下:
資源
論文地址:
https://doi.org/10.1016/j.neucom.2018.08.072
論文程式碼:
https://github.com/wzsong17/Signed-Network-Embedding
作者簡介
宋文卓是吉林大學電腦科學與技術學院專業的博士生。現階段的主要研究方向是資料探勘、社交網路分析和網路表示學習。