網絡表示
- 網絡表示學習(DeepWalk,LINE,node2vec,SDNE)
- 網絡表示學習相關資料
- NE(Network Embedding)論文小覽
- 網絡表示學習領域(NRL/NE)必讀論文彙總
- 一文詳解 Word2vec 之 Skip-Gram 模型
- 自編碼器
- skip-gram源碼解析的一些文章和看法
Word2Vec
word2vec是根據詞的共現關係,將詞映射到低維向量,並保留了語料中豐富的信息
- Skip-Gram
- 給定input word 預測上下文( 如已知 Wt 預測上下文Wt-2,Wt-1,Wt+1)
- CBOW
- 給定上下文,預測input word( 如已知 Wt 上下文Wt-2,Wt-1,Wt+1 預測 Wt)
分爲兩個部分:
- 創建模型
- 目的:基於訓練數據構建神經網絡,訓練好後使用模型經過訓練數據所學到的參數(建模不是最終目的)
- 經過模型獲取嵌入詞向量
基於神經網絡的語言模型的目標函數一般取爲以下對數似然函數:
關鍵是條件機率函數P的構造
基於Hierarchical softmax 的CBOW 模型優化目標函數如上
基於Hierarchical softmax 的skip-gram 模型,優化的目標函數如
DeepWalk
將一個網絡中的每一個節點映射成一個低維的向量,即但願在原始網絡中關係越緊密的結點對應的向量在其空間中距離越近
- word2vec針對的是文本,或者說是有序的單詞序列
- Deepwalk針對的是帶有拓撲結構的網絡
- 針對每一個節點跑了個隨機遊走,遊走過程當中就獲得了一系列的有序節點序列,這些節點序列能夠類比於文章的句子,節點類比於句子中的單詞,而後再使用word2vec跑,獲得對應的向量
過程:
- 爲每一個節點生成隨機遊走Wv,而後用來更新網絡嵌入(7)
- 選擇skip-gram 做爲更新節點表示的方法
![](http://static.javashuo.com/static/loading.gif)
skip -gram
關鍵思想:產長預測句子中附近的單詞嵌入
Node2vec
相似於deepwalk,主要的創新點在於改進了隨機遊走的策略,定義了兩個參數p和q,在BFS和DFS中達到一個平衡,同時考慮到局部和宏觀的信息,而且具備很高的適應性
LINE(Large scale information network embedding)
2015年提出的一中網絡表示學習方法,該方法提出了一階類似度與二階鄰近度的概念,基於這兩個鄰近度,提出了優化函數,獲得的最優化結果即爲每一個節點的向量表示
- 一階類似性:直接相連的節點表示儘量相近(適用於無向)
- 二階類似性:兩個節點公共的鄰居節點越多,兩個節點的表示越相近,相似,使用預警類似的兩個單詞頗有多是同義詞(適用於有向圖和無向圖)
- 邊緣採樣算法優化目標,採樣機率與權重成比例
- 由於邊的權重差別大,直接 SGD 效果很差,這裏按照邊的權重採樣,每條邊看成 binary 算
- DW 沒有提供明確的目標,沒有闡明哪些網絡屬性將被保留,僅適用於未加權網絡,LINE 適用於網絡的加權和不加權的邊
MMDW(Max-Margin DeepWalk Discriminative Learning of Network Representation)
DW自己是無監督的,若是可以引入label數據,生成的向量對於分類任務會有更好的做用
將DeepWalk和Max-Margin(SVM)結合起來
TADW(Network Representation Learning with Rich Text Information.)
在矩陣分解這個框架中,將文本直接以一個子矩陣的方式加入,會使學到的向量包含更豐富的信息。
文本矩陣是對TFIDF矩陣的SVD降維結果
Extra Info
CANE
CENE(A General Framework for Content-enhanced Network Representation Learning)
問題
同時利用網絡結構特徵和文本特徵來學習網絡中節點的embedding