網路表述學習經典論文——DeepWalk

dicksonjyl560101發表於2019-04-19

https://www.toutiao.com/a6680040009191391758/


論文題目:《DeepWalk: Online Learning of Social Representations》出版時間2014年6月

這篇文章是網路表示學習的經典文章,下面將簡單介紹這篇文章的演算法思想。

這篇論文提出的演算法可以將網路中的節點用低維度,連續的向量表示,以便進行進一步機器學習

本文提出的演算法的主要貢獻有:

1、使用隨機遊走的方法學習到的頂點表示,會更加具有健壯性(robust)

2、deepwalk甚至可以在只給出部分網路的情況下,學習到更好的頂點表示

3、這種方法更加有利於並行化

定義:

E⊆(V,E),這裡V是網路的節點集合,E是邊的集合,E⊆(V*V)。給出一個部分帶標籤的社群網路:G=(V,E,X,Y)。其中,X∈R^(|V|S),這裡S是特徵向量,就是每個點的特徵數,Y∈R^(|V||y|)這裡y是標籤的集合(就是有幾類)。我們的目標是學習一個XE∈R^(|V|*d)。這裡d就是我們學習到的低維的隱藏的表示。這裡的意思就是說,這裡d維的向量中,包含了社群結構,我們可以通過這個向量進行進一步的訓練和對整個社群的進一步的學習。

這個演算法學習到的主要的優點有:

1、自適應性:在新的點加進來之後,不用重新學習。

2、社群表示性:向量相似的點,對應在網路中,被分在同一個類的機率比較大。

3、低維度性:產生低維的向量可以加速進一步的分類及其他問題的求解。

4、連續性:在連續的空間中的頂點表示,可以進一步增強分類的效果。

下面是一些相關的演算法的基礎

1、隨機遊走:定義,從根節點出發,隨機遊走的結果定義為向量Wvi,向量中的每個值是當前頂點隨機選擇的下一步的鄰居。

2、冪率:如果在整個網路中的點遵循冪率分佈,那麼,在某個隨機遊走的點上也遵循冪率分佈。

冪率科普(網上資源+個人理解)如下圖:簡單來說,就是,擁有大量的度數的點的數量是少的,擁有少量的度數的點的數量是多的。

網路表述學習經典論文——DeepWalk

3、語言模型:假設,有個文章,我們給出一個詞序列:W=(w0,w1,……..,wn),我們在訓練的時候要最大化這個概率:Pr(wn| w0,…,wn-1)。同樣,放在隨機遊走的序列中,我們要最大化這個概率:Pr(Vi| (v1,v2,…,vi-1))。我們的目標是學習一個函式(隱含的表示方法)φ,這個φ對應一個點的d維表示,那麼:上面的概率值可以表示為:Pr(Vi| (φ(v1),….,φ(vi-1))。但是,這個不太好最大化。於是,可以用以下方法:1、用文章預測缺失詞,化為用詞預測上下文;2、上下文對應於給出的詞的左右兩邊;3、移除出現的詞的順序問題。最後,模型要求最大化一個詞在上下文出現的概率,在沒有給出詞的情況下(就是說,輸出一個向量,這個向量的每個概率表示這個向量的這個位置表示的詞出現在這個位置的概率)。

最終,優化問題變成了最小化下面這個式子(個人理解,這裡用log主要是將連乘變為連加,有利於優化):

網路表述學習經典論文——DeepWalk

最終產生的頂點的向量表示,由於隨機遊走,比較近的點遊走到的概率比較大,在網路上比較相似的點的表示會比較相似,這樣就可以用於其他機器學習演算法了。

演算法

DEEPWALK

網路表述學習經典論文——DeepWalk

這個演算法由兩個步驟組成:1、隨機遊走,2、更新步驟。

演算法引數:一個圖G(V,E),遊走視窗大小w,產生的向量的長度(頂點表示的維度)d,對於每個點走的次數γ,走的長度t。

輸出:一個頂點表示矩陣φ,大小為|V|*d

下面逐行介紹:

1:初始化φ

2:從V構建一個二叉樹T(應該是用來做分層softmax的)

3-9是演算法核心,外層迴圈代表了每個頂點產生多少個隨機序列,內層迴圈表示對每個點產生一個Wi,並用SkipGram進行更新φ。

SkipGram

網路表述學習經典論文——DeepWalk

這個演算法是語言模型中,最大化視窗w中出現的詞的概率的方法(梯度下降),如上圖所示

外層迴圈是對這個序列中的每個詞進行操作,內層迴圈是對每個詞的視窗大小為w的詞序列進行操作。具體操作是用一個似然函式J(φ)表示φ,然後求導,用梯度下降的方法更新,(這個α應該是學習率)。

Hierarchical Softmax

網路表述學習經典論文——DeepWalk

由於直接計算概率Pr(uk|φ(vj))不好計算,因此,如果把頂點放在二叉樹的葉子上,那麼預測的問題,就變成了最大化下面這個概率

網路表述學習經典論文——DeepWalk

路徑被定義為這樣一個序列:

網路表述學習經典論文——DeepWalk

計算複雜度由O(|v|)變為O(log|v|),可以加速訓練過程。

優化:

這裡優化使用隨機梯度下降(SGD),這裡的學習率α一般為0.25,然後線性減少。

通俗來講,v1在v3和v5之間,那麼,hierarchical Softmax會計算Pr(v3|φ(v1)和Pr(v5|φ(v1))的概率,而φ則向著v1的上下文是v3和v5的“方向”更新。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2641918/,如需轉載,請註明出處,否則將追究法律責任。

相關文章