[論文閱讀筆記] Structural Deep Network Embedding
本文結構
- 解決問題
- 主要貢獻
- 演算法原理
- 參考文獻
(1) 解決問題
現有的表示學習方法大多采用淺層模型,這可能不能捕獲具有高度非線性的網路結構,導致學習到一個區域性最優的節點向量表示。
(2) 主要貢獻
Contribution: 提出一個半監督的深度模型SDNE,包含多個非線性層,同時優化一階和二階相似度的目標函式來保留原始網路的區域性和全域性網路結構,因此可能能夠捕獲高度非線性的網路結構。
(3) 演算法原理
簡單來說:SDNE利用一階和二階相似度來保留網路結構。 二階相似度作為無監督部分被用來捕獲全域性結構。一階相似度作為監督部分被用來捕獲區域性結構。通過利用半監督的深層模型聯合優化以上兩個目標可以保留區域性和全域性網路結構。
詳細來說:SDNE的總體框架如下圖所示(圖中的Local structure preserved cost和Global structure preserved cost應該是標反了!!!):
SDNE可以看成一個自編碼器框架,上圖中紅框框部分可以看成編碼器,中間綠色框框部分為編碼器的輸出,為節點的對應的嵌入向量,紫色框框部分為對應的解碼器部分。瞭解了SDNE的框架組成部分之後,我們來看看各個部分是怎麼設計的。
SDNE的無監督部分由深層自編碼器組成。其中,編碼器由多個非線性層組成,可以對映輸入資料到表示空間。解碼器也由多個非線性層組成。即,給定輸入x,編碼器每一隱藏層的輸出如下:
解碼器重構輸入xi為x~。因此
自編碼器的目標就是最小化以下輸出x~與原始輸入x的重構損失,損失函式如下:
如果使用鄰接矩陣作為自編碼器的輸入x,即每一行代表一個節點,因為鄰接矩陣反應的是對應節點的鄰居結構資訊,這使得重構構成會使得有相似鄰居結構的節點有相似的向量表示(即該無監督元件(自編碼器)保留了網路中的二階相似度資訊)。但是,如果直接使用鄰接矩陣S作為傳統自編碼器的輸入,則模型更容易重構鄰接矩陣中的零元素(因為網路的稀疏性,鄰接矩陣中的零元素數目遠遠大於一的數目)。然而我們更關注的是鄰接矩陣中代表鄰居的1元素,為了解決這個問題,SDNE對非零元素的重構誤差增加更多懲罰(即加了一個權重項bi,對非零元素的重構誤差賦予更大的懲罰項)。新的目標函式(保留二階相似度資訊)如下:
一個圈圈一個點的符號代表哈達瑪積(矩陣對應位相乘),如果鄰接矩陣Sij>0,那麼賦予相應的bij=1,否則bij=β>1,即更大的懲罰權重。以上便是SDNE的無監督模組,其通過二階相似度試圖保留全域性網路結構。
然而,區域性網路結構的保留也是必要的。以下介紹SDNE的用來保留一階相似度的監督模組。 監督模組的一階相似度的損失函式如下,這保證在原始網路中有連邊的節點在嵌入空間中也比較相近(yi是對應的節點嵌入向量,即編碼器的輸出)。
SDNE總的目標函式如下(包含一階相似度和二階相似度):
Lreg為L2正則項,懲罰神經網路的複雜性,防止模型過擬合,如下所示:
以上,SDNE模型就介紹完啦,目標函式優化部分請自行檢視原始論文。
(4) 參考文獻
Wang D, Cui P, Zhu W. Structural deep network embedding[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016: 1225-1234.