一、動機
從低秩嵌入的角度來看,現有的多種社團檢測算法中有兩類代表:隨機模型(Stochastic Model)和模塊度最大化模型(Modularity Optimization Model)。在這兩種算法的設計中用到了非負矩陣分解和奇異值分解,這兩種方法爲線性映射。但是,真實的網絡存在不同的非線性特徵,使得這些方法不能很好地運用。目前,神經網絡是一個非常好的非線性映射的方法,所以作者將深度學習應用於社團檢測,提出了Nonlinear Reconstruction(DNR)算法。
二、貢獻
1、 具作者所知,他們是第一次成功將深度學習用於社團檢測的;
2、 提出了DNR模型;
3、 在DNR的基礎上加入節點之間關係的約束,提出了semi-DNR模型
三、問題描述:
給定一個無向無權圖 , 爲頂點數, 爲邊數,尋找網絡中的非重疊性社團。
四、算法
思路
作者結合了Newman提出的模塊度(modularity)和自編碼器,將模塊度矩陣作爲自編碼器的輸入,用歐氏距離和sigmoid交叉熵作爲誤差損失函數訓練網絡,最後用k-means對模型中的編碼進行聚類得到社團。算法過程
文中的深度學習是由堆疊的自編碼器實現,單個自編碼器的計算過程如下:
算法 DNR
考慮到單獨增加神經網絡的層數會帶來計算上的複雜,所以採用多個自編碼器堆疊來實現深度學習,文中採用三個自編碼來堆疊。堆疊的實現方式是:三個自編碼器分別訓練,如首先將 B 輸入第一個,訓練以得到最佳權值, 然後將第一個的編碼輸出 作爲第二個自編碼器的輸入,重複上述步驟,直到訓練完第三個。所以在已知編碼層輸出的情況下,三個自編碼器是互相獨立的。如下圖:
最後在社團檢測部分,對最後一個自編碼器的編碼層輸出 進行 k-means 聚 類。
- 算法 semi-DNR
該算法是半監督,在算法中引入了約束,該約束爲:假設部分節點的歸屬社 團已知,並且如果兩個頂點屬於同一個社團時,他們的低維映射h應該相似, 然後再將該先驗知識加入模型訓練中。具體表現爲,引入矩陣 , =1 表示已知兩個頂點 , 屬於同一個社團,構建損失函數
對於該做法我的理解爲,直接計算兩個頂點的h向量之間的距離,如果已知屬於同一個社團,那麼該距離就會產生作用,從而對權值調節起修正作用。然後將其和 線性結合起來,生成新的損失函數:
五、實驗:
在兩個人工合成網絡(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