論文“Structural Deep Network Embedding”發表在kdd2016
論文下載地址:https://www.kdd.org/kdd2016/papers/files/rfp0191-wangAemb.pdf
論文利用深度自編碼器來學習圖中節點的embedding向量,結合一階和二階相似度進行聯合訓練,將二階相似度作爲無監督信息,捕獲全局網絡結構信息,一階相似度作爲有監督信息,用於捕獲局部網絡結構。
提出問題
文章提出 graph embedding存在一下幾個問題:
1.高非線性(high non-linearity):圖的潛在結構是高非線性的,因此淺層模型很難捕獲全面的非線性結構。
2.結構保持(structure-preserving): 學習出來的節點embedding需要能保留住圖的全局和局部結構信息。
3.稀疏性(sparsity): 真實環境下,網絡通常都是稀疏的,會有大量合理的鏈接丟失。
如何解決問題
解決高非線性問題:淺層模型很難學習好高非線性結構,所以本文采用深度模型來擬合非線性結構。
解決結構保持和稀疏性問題:聯合訓練一階和二階相似性,一階指的是直接有邊相連的鄰近節點,用於學習局部網絡結構。但是真實的網絡往往都是稀疏的,缺失了大量合理鏈接,所以一階相似性節點的數據少,需要利用二階相似度來做擴展,二階相似度表示不同定點之間的鄰域結構的相似性,以捕獲全局網絡結構。
問題定義
圖
定義圖爲G=(V,E),其中表示n個節點,表示節點i和j之間的邊。每條邊分配有一個權重,如果節點i和j沒有邊相連的話,那麼,否則的話,無權圖,加權圖
一階相似度(First-Order Proximity)
一階相似其實就是指的節點的鄰域節點,對於任意一對節點,如果,那麼節點i和j之間就存在正的一階相似度,否則爲0。
二階相似度(Second-Order Proximity)
二級相似描述的是兩個節點,它們的鄰域節點相似的情況。令表示節點u和其他所有節點的所有一階相似度。
那麼兩個節點的二階相似度就由和表示。
圖embedding(Network Embedding)
給定一個圖G=(V,E),圖embedding 的目標是學習每個節點的映射函數,使得將節點映射到一個d維的低緯空間。即學習一個映射函數,而優化的目標就是利用一階和二階相似度優化和的相似度。
模型
整個模型的框架如圖所示,是一個雙通道的自編碼器,兩個通道共享全值。具體的一階相似和二階相似在損失函數中體現。
損失函數
上圖爲文章定義的表示符號,其中帶^的帽子的符號是網絡重建的輸出結構。
1.自編碼器重建二階相似度,即輸入當前節點和其他所有節點的鏈接權重,沒有鏈接則權重爲0。然後用自編碼器重建所有數據。那麼正常的自編碼器損失函數爲:
但是鄰域鏈接的節點很稀疏,這樣的話輸入數據,即的大部分維度上都是0,那樣網絡只要輸出全0,也能達到很好的效果,所以這裏損失函數對非零項做了加權。
這裏的⊙表示哈達馬乘積(即對應元素相乘),,如果,即節點i和j沒有邊連接,那麼,否則這樣就起到來加權的效果。
2.損失函數引入一階相似度限制,如果兩個節點有邊直接相連,那麼讓兩個節點的embedding向量儘量的靠近,所以可以直接最小化兩個embedding向量的最小二乘:
這裏的和就是自編碼器中間編碼出來的向量,也就是最後要提取出來的節點embedding。因爲網絡結構是雙通道的,所以可以直接在損失函數中加入這項損失。
3.加入L2正則,這個就不多說了。
那麼將上面的三項合併起來就可以獲得最終的損失函數:
然後就可以訓練自編碼器了,把訓練好的中間向量提取出來就是最終的節點embedding啦。
完