DeepWalk算法

隨機遊走

隨機遊走

冪律分佈

前提: 如果一個網絡的節點服從冪律分佈,那麼節點在隨機遊走序列中的出現次數也服從冪律分佈,並且實證發現NLP中單詞的出現頻率也服從冪律分佈。
冪率分佈

DeepWalk算法

DeepWalk算法

DEEPWALK(G,w,d,γ,t);G代表網絡,w代表窗口大小,d達標維度,γ代表每個頂點隨機遊走的次數,t代表隨機遊走的步長
Input:G(V,E);G代表網絡,V代表網絡中的節點,E代表網絡中的邊
output:|V|*d的矩陣,每一個頂點都有一個d維的連續向量
1.初始化每個頂點的向量空間
2.建立Huffman樹(根據隨機遊走頂點出現的次數構建)
3.0- γ(表示隨機遊走 γ次)(進入循環)
4.將V打亂順序得到O
5.遍歷O中的每一個頂點,do(進入循環)
6.得到從vi節點開始的步長爲t的隨機遊走序列
7.使用SkipGram進行參數更新
8.退出裏層循環
9.退出外層循環

SkipGram算法

Skip-gram算法

SkipGram(Φ, Wvi , w);Φ代表當前的頂點向量,Wvi代表隨機遊走生成的序列,w代表窗口大小
1.遍歷序列中的每一個節點vi(進入循環)
2.uk ∈ Wvi [j − w : j + w],遍歷vi頂點前後w的每一個頂點(進入循環)
3.更新參數(爲什麼用梯度下降???)
4.退出裏層循環
5.退出外層循環

總體過程總體過程

node2vec基本思想

node2vec通過改變隨機遊走序列生成的方式進一步擴展了DeepWalk算法。DeepWalk選取隨機遊走序列中下一個節點的方式是均勻隨機分佈的,而node2vec通過引入兩個參數p和q,將寬度優先搜索和深度優先搜索引入隨機遊走序列的生成過程。寬度優先搜索(BFS)注重臨近的節點,並刻畫了相對局部的一種網絡表示,寬度優先中的節點一般會出現很多次,從而降低刻畫中心節點的鄰居節點的方差;深度優先搜索(BFS)反應了更高層面上的節點間的同質性。(即BFS能夠探究圖中的結構性質,而DFS則能夠探究出內容上的相似性(相鄰節點之間的相似性)。其中結構相似性不一定要相連接,甚至可能相距很遠。)如下圖所示:
node2vec
NBFS={s1,s2,s3} 局部微觀結構
NDFS={s4,s5,s6} 全局宏觀結構

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