【IJCAI 2016】Modularity Based Community Detection with Deep Learning 閱讀小記

一、動機
  從低秩嵌入的角度來看,現有的多種社團檢測算法中有兩類代表:隨機模型(Stochastic Model)和模塊度最大化模型(Modularity Optimization Model)。在這兩種算法的設計中用到了非負矩陣分解和奇異值分解,這兩種方法爲線性映射。但是,真實的網絡存在不同的非線性特徵,使得這些方法不能很好地運用。目前,神經網絡是一個非常好的非線性映射的方法,所以作者將深度學習應用於社團檢測,提出了Nonlinear Reconstruction(DNR)算法。

二、貢獻
  1、 具作者所知,他們是第一次成功將深度學習用於社團檢測的;
  2、 提出了DNR模型;
  3、 在DNR的基礎上加入節點之間關係的約束,提出了semi-DNR模型

三、問題描述:
  給定一個無向無權圖G(N,E)N 爲頂點數,E 爲邊數,尋找網絡中的非重疊性社團。

四、算法

  • 思路
    作者結合了Newman提出的模塊度(modularity)自編碼器,將模塊度矩陣作爲自編碼器的輸入,用歐氏距離和sigmoid交叉熵作爲誤差損失函數訓練網絡,最後用k-means對模型中的編碼進行聚類得到社團。

  • 算法過程
    文中的深度學習是由堆疊的自編碼器實現,單個自編碼器的計算過程如下:

    這裏寫圖片描述

  • 算法 DNR
      考慮到單獨增加神經網絡的層數會帶來計算上的複雜,所以採用多個自編碼器堆疊來實現深度學習,文中採用三個自編碼來堆疊。堆疊的實現方式是:三個自編碼器分別訓練,如首先將 B 輸入第一個,訓練以得到最佳權值, 然後將第一個的編碼輸出 H1 作爲第二個自編碼器的輸入,重複上述步驟,直到訓練完第三個。所以在已知編碼層輸出的情況下,三個自編碼器是互相獨立的。如下圖:

    這裏寫圖片描述

  最後在社團檢測部分,對最後一個自編碼器的編碼層輸出 H3 進行 k-means 聚 類。

  • 算法 semi-DNR
      該算法是半監督,在算法中引入了約束,該約束爲:假設部分節點的歸屬社 團已知,並且如果兩個頂點屬於同一個社團時,他們的低維映射h應該相似, 然後再將該先驗知識加入模型訓練中。具體表現爲,引入矩陣 ON×N=[oij]oij =1 表示已知兩個頂點 ij 屬於同一個社團,構建損失函數
    這裏寫圖片描述
    對於該做法我的理解爲,直接計算兩個頂點的h向量之間的距離,如果已知屬於同一個社團,那麼該距離就會產生作用,從而對權值調節起修正作用。然後將其和Lθ(B,M) 線性結合起來,生成新的損失函數:
    這裏寫圖片描述

五、實驗:
  在兩個人工合成網絡(LFR和GN)以及6個真實的網絡中進行實驗,並且將DNR與6種算法對比,semi-DNR與2種類似的方法比較,評價指標爲歸一化互信息(NMI),最終表現良好。

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

參考文獻:
[1]. Yang L, Cao X, He D, et al. Modularity based community detection with deep learning[C]// International Joint Conference on Artificial Intelligence. AAAI Press, 2016:2252-2258.
[2]. 自動編碼器參考 https://www.cnblogs.com/taojake-ML/p/6475422.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章