DeepWalk 論文筆記
針對論文[1]的閱讀撰寫閱讀筆記。DeepWalk的代碼實現
概述
這篇論文主要提出了在一個網絡中,學習節點隱表達的方法——DeepWalk,這個方法在一個連續向量空間中對節點的社會關係進行編碼,是語言模型和無監督學習從單詞序列到圖上的一個擴展。該方法將截斷遊走的序列當成句子進行學習。該方法具有可擴展,可並行化的特點,可以用來做網絡分類和異常點檢測。
貢獻
論文貢獻有三點:
1. 將深度學習應用到圖分析中,構建魯棒性的表示,其結果可應用於統計模型中
2. 將表示結果應用於一些社會網絡的多標籤分類任務中,與對比算法比較,大部分的
3. 論文通過構建互聯網規模(例如YouTube)的並行化實現的表示,論證了方法的可擴展性,同時描述了構建流式版本的方法實現
問題描述
給定一個圖
- 自適應性,真實的社會網絡是不斷變化的,新的社會化關係進來之後,應該不需要再重新執行一次學習過程
- 社區感知性,學出來的隱空間應該能夠包含網絡中同質節點或相似節點距離近的信息
- 低維度
- 連續性
論文選取的是隨機遊走序列,作爲DeepWalk的輸入。原因有:
- 隨機遊走能夠包含網絡的局部結構
- 使用隨機遊走可以很方便地並行化
- 當網絡結構具有微小的變化時,可以針對變化的部分生成新的隨機遊走,更新學習模型,提高了學習效率
- 如果一個網絡的節點服從冪律分佈,那麼節點在隨機遊走序列中的出現次數也應該服從冪律分佈,論文通過實證發現自然語言處理中單詞的出現頻率也服從冪律分佈。可以很自然地將自然語言處理的相關方法直接用於構建社區結構模型中。
針對一個自然語言處理問題,給定一個單詞序列
- 把根據上下文預測一個單詞的問題,變爲根據一個單詞預測上下文的問題
- 在一個給定單詞的左邊和右邊都會出現上下文內容
- 去除單詞出現的順序約束
於是問題變成了最優化如下式子
方法
算法包含兩個主要部分:一個隨機遊走生成器和一個更新過程。隨機遊走生成器隨機均勻地選取網絡節點,並生成固定長度的隨機遊走序列,每個節點生成長度爲
這樣算法複雜度就從
並行化
由於節的度服從長尾分佈,因此針對
流式版本
這裏,從圖中獲得一些隨機序列,就直接應用到圖的訓練中。做了一些調整,將學習率
非隨機遊走
如果網絡圖是由相互交互的代理間的元素序列構成,例如用戶在一個網站上的頁面訪問。那麼我們可以直接使用這個序列作爲輸入,而不用使用隨機遊走來生成。一般這種網絡,不僅包含結構信息,而且包含語義信息。
實驗部分
實驗部分就是各種說論文提出的算法有多麼好了,對比的算法有,SpectralClustering,Modularity,EdgeCluster,wvRN,Majority。數據集有BlogCatalog,Flickr,YouTube。然後又做了參數敏感性分析,生成的隱表示的維度
[1]: Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710.