論文分享-- >Graph Embedding-- > DeepWalk: Online learning of Social Representations

博客內容將首發在微信公衆號"跟我一起讀論文啦啦",上面會定期分享機器學習、深度學習、數據挖掘、自然語言處理等高質量論文,歡迎關注!
在這裏插入圖片描述

本次要分享的是14年論文DeepWalk: Online learning of Social Representations, 論文鏈接DeepWalk,參考的代碼CODE,本論文是圖表示學習領域內的一篇較早的文章,是學習圖表示學習繞不過的一篇文章,雖然整體難度不大,但是文章所提出的方法個人感覺非常獨到和有趣。

論文動機和創新點

  • 本論文提出的是一種針對圖結構的representation learning方法,其從某種角度來說機器學習或深度學習的發展就是圍繞着representation learning方法進行的。

  • 在自然語言處理領域,word2vec(以前總結的word2vec)是一個非常基礎和著名的詞表示方法,利用 句子 中詞與詞之間的共現或相鄰關係,對詞進行表示學習,所學習到的詞表示向量能準確的刻畫詞與詞之間的實際意義關係。

  • 那麼在非語言結構的其他結構中,例如圖結構中,是否可以根據圖中節點與節點相鄰關係,來學習每個節點的表示呢?顯然是可以的,論文中提出,在圖結構中,以任意一個節點爲起始節點,進行隨機遊走,當遊走到最長的步數時,可以獲取一串由節點構成的序列,這個序列就可以類比自然語言中的句子,節點類比句子中的詞,然後利用word2vec的方法對每個節點進行表示學習。

  • 該論文所提出的方法是一種無監督的特徵學習方法,具體來說,就是從可截斷的隨機遊走中得到一串節點序列,利用word2vec方法學習每個節點的表示向量。我們認爲這樣學習到的表示向量可以捕捉到節點之間的鄰近相似關係以及其所屬社區(類別)的關係。

  • 論文中講到所提方法有以下特點
    ① 適應性:在實際的社交網絡中,由社交關係產生的圖是不斷髮展的,而該方法可以自適應的去學習,不必重複從頭再學習。
    ② 社區意識:該方法學習到的隱空間應該表示網絡中同質節點或相鄰節點的距離遠近信息。
    ③ 低維度:當帶標籤的數據稀疏和低維度時,模型生泛化能力更好,訓練更容易收斂。
    ④ 連續性:該方法所學習到的表示是連續型的,因此具有光滑的決策邊界,魯棒性更高。

  • 論文實驗證明了,在缺乏足夠的帶標籤數據時,本文所提方法比其他的無監督表徵學習方法效果上更好。

  • 個人感覺,本論文在實驗部分,某些細節並未講清,例如圖是如何構建的?節點和邊的具體業務意義是什麼?並未講清,只是籠統的說,利用這些數據構圖,有多少個節點,多少條邊。

  • 在實際應用時,需根據業務邏輯,定義節點,以及根據某種規則定義連接節點的邊,由此可以構成一張圖進行表示學習。

Learning Social Representations

圖的定義

在社交網絡中多分類任務爲例:
G=(V,E) G=(V,E)
V 表示圖中的節點,節點的含義爲圖中的類別(member)。 E表示圖中的邊,E(V×V)E\subseteq(V \times{V})
GL=(V,E,X,Y)G_L=(V,E,X,Y) 表示一個帶標籤的圖,其中XRV×SX\in R^{|V| \times{S}}, S表示節點的特徵空間大小,YRV×γY \in R^{|V| \times {\gamma}}γ\gamma 表示類別個數。

在實際應用中,是需要根據業務的具體邏輯去構建圖。
傳統的機器學習方法是由X映射到Y,模型所需要學習的是如何準確的學習到這個映射函數。而本論文所提方法是獨立於標籤的分佈信息,由圖中的拓撲信息去學習節點的向量表示。是完全無監督學習方法。

該方法所學習到的表示向量可以使用在任何的分類算法中。

隨機遊走

以任意一個節點爲起始節點,每次隨機的選擇與它鄰近節點進行遊走,直到達到最大步長。這種截斷的隨機遊走方式提供了兩個優點

  • 局部探索遊走很容易並行化進行,幾個不同walker可以同時遊走多條不同的線路。
  • 從截斷隨機遊走中獲取信息,當圖結構發生小的變化時,不需要重複重新的去學習。

在實際應用時,方便很多。

長尾分佈

在論文指的是power laws,其實和長尾分佈大同小異,在自然語言領域,我們發現大部分詞的詞頻都很小,只有少數詞的詞頻很高,符合長尾分佈。而在YouTube Social Graph中,進行隨機遊走,發現節點的分佈也是符合這種長尾分佈的,如下圖所示:
在這裏插入圖片描述
詞頻分佈和節點頻率分佈一致,因此認爲在自然語言處理領域內有效的word2vec方法可以複用在圖結構中。

Deep Walk

在這裏插入圖片描述

在這裏插入圖片描述
以上兩個算法流程已經能很好的說明Deep Walk的步驟,其中SkipGram算法表示由某個節點預測他周圍的節點,是word2vec方法中的一種模型。
在這裏插入圖片描述
上述公式表示,由節點viv_i 來預測與之相鄰的周圍節點vjv_j其中所得到的副產品Φ\Phi 這個embedding 矩陣就是我們要學習的目標。

和自然語言處理相同,這裏的skip-Gram同樣面臨計算複雜度很高的問題,如果不做任何處理,每次都需要對所有節點進行概率計算,時間複雜度過高,訓練緩慢,由此引入了Hierarchical Softmax。

Hierarchical Softmax 是NLP中常用方法,詳情可以查看Hierarchical Softmax。其主要思想是以詞頻構建Huffman樹,樹的葉子節點爲詞表中的詞,相應的高頻詞距離根結點更近。當需要計算生成某個詞的概率時,不需要對所有詞進行softmax計算,而是選擇在Huffman樹中從根結點到該詞所在結點的路徑進行計算,得到生成該詞的概率,時間複雜度從 O(N) 降低到 O(logN)(N個結點,則樹的深度logN)。該方法同樣適用在圖結構的skip-Gram模型中。

實驗

論文中使用了三個數據集:
在這裏插入圖片描述

但是論文沒有詳細給出在三個數據集中,所構成的圖結構中節點以及邊的實際業務意義,例如在圖中,每個數據集中節點具體指的是什麼?以什麼樣的規則來定義邊的?

論文實驗中,隨機抽取部分樣本作爲訓練集(帶label),剩餘的作爲測試集,在訓練集中,以上面所說的方式(DeepWalk+Skip-Gram+Hierarchical softmax)學習每個節點的表示向量,然後以學習到的表示向量作爲特徵,LR分類器進行訓練,訓練出一個分類模型;再在測試集上進行測試。實驗結果如下:
在這裏插入圖片描述
可以看出當選取較少的帶label訓練數據時(label sparse),相對於其他方法,DeepWalk的效果更好。

個人總結

本文所提方法不難,其word2vec也是很基礎的方法,但是能借此應用到圖結構中的確很有趣和有意義,使得word2vec這種簡單有效的方法能應用的更加廣泛。

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