網路表示學習(一)--結構篇
圖結構數據是除了圖片、文本、語音之外又一常見且重要的數據類型,例如社交網路數據、引用網路數據、和生物蛋白質數據等等。在針對圖像、文本等數據的機器學習任務中,都有相對應的方法,將這些數據中的特徵用一個稠密向量進行表示,然後再運用於各種各樣的任務中去。網路表示學習就是將網路中結點的特徵,嵌入(Embedding)至低位向量中的方法。學習到的這些向量將會保留圖結構數據結點的相似性,使得一些下游機器學習任務,例如結點分類、結點聚類、連接預測、可視化等等的模型泛化性能得到增強。
本文首先將會介紹網路表示學習最為著名的三份工作:DeepWalk、LINE和Node2Vec。
然後將會介紹兩篇在AAAI18上的兩篇網路結構表示學習的新工作HARP、GraphGAN
一、DeepWalk: Online Learning of Social Representations
DeepWalk可以稱得上是這個方向上最著名的工作了,幾乎所有網路表示學習相關的論文,都會引用DeepWalk作為Baseline之一,同時DeepWalk也是很多相關工作所使用的底層方法之一。可見這份工作在網路表示學習領域的地位。
1. Method
DeepWalk最主要的貢獻就是他將Network Embedding與自然語言處理中重要的Word Embedding方法Word2Vec聯繫了起來,使得Network Embedding問題轉化為了一個Word Embedding問題。
轉化方法其實很簡單,就是隨機遊走。如下圖所示,DeepWalk通過從每個結點出發n_walks次,每一步都採取均勻採樣的方式選擇當前結點的鄰接結點作為下一步的結點隨機遊走。當遊走的路徑長度達到walk_length後,停止一次遊走。這樣就生成了一個個遊走的序列,每個序列都稱為一個walk。每個walk都被當成Word2Vec中的一個句子,而每個結點都是Word2Vec中的一個詞。