员外陪你读论文:DeepWalk: Online learning of Social Representations
本次要分享的是 14 年論文 DeepWalk: Online learning of Social Representations, 論文鏈接DeepWalk[1],參考的代碼CODE[2],本論文是圖表示學習領域內的一篇較早的文章,是學習圖表示學習繞不過的一篇文章,雖然整體難度不大,但是文章所提出的方法個人感覺非常獨到和有趣。
論文動機和創新點
本論文提出的是一種針對圖結構的representation learning 方法,其從某種角度來說機器學習或深度學習的發展就是圍繞著representation learning 方法進行的。
在自然語言處理領域,word2vec(以前總結的 word2vec[3])是一個非?;A和著名的詞表示方法,利用 句子 中詞與詞之間的共現或相鄰關系,對詞進行表示學習,所學習到的詞表示向量能準確的刻畫詞與詞之間的實際意義關系。
那么在非語言結構的其他結構中,例如圖結構中,是否可以根據圖中節點與節點相鄰關系,來學習每個節點的表示呢?顯然是可以的,論文中提出,在圖結構中,以任意一個節點為起始節點,進行隨機游走,當游走到最長的步數時,可以獲取一串由節點構成的序列,這個序列就可以類比自然語言中的句子,節點類比句子中的詞,然后利用 word2vec 的方法對每個節點進行表示學習。
該論文所提出的方法是一種無監督的特征學習方法,具體來說,就是從可截斷的隨機游走中得到一串節點序列,利用 word2vec 方法學習每個節點的表示向量。我們認為這樣學習到的表示向量可以捕捉到節點之間的鄰近相似關系以及其所屬社區(類別)的關系。
論文中講到所提方法有以下特點 ① 適應性:在實際的社交網絡中,由社交關系產生的圖是不斷發展的,而該方法可以自適應的去學習,不必重復從頭再學習。② 社區意識:該方法學習到的隱空間應該表示網絡中同質節點或相鄰節點的距離遠近信息。③ 低維度:當帶標簽的數據稀疏和低維度時,模型生泛化能力更好,訓練更容易收斂。④ 連續性:該方法所學習到的表示是連續型的,因此具有光滑的決策邊界,魯棒性更高。
論文實驗證明了,在缺乏足夠的帶標簽數據時,本文所提方法比其他的無監督表征學習方法效果上更好。
個人感覺,本論文在實驗部分,某些細節并未講清,例如圖是如何構建的?節點和邊的具體業務意義是什么?并未講清,只是籠統的說,利用這些數據構圖,有多少個節點,多少條邊。
在實際應用時,需根據業務邏輯,定義節點,以及根據某種規則定義連接節點的邊,由此可以構成一張圖進行表示學習。
Learning Social Representations
圖的定義
在社交網絡中多分類任務為例:
V 表示圖中的節點,節點的含義為圖中的類別(member)。E 表示圖中的邊,??表示一個帶標簽的圖,其中, S 表示節點的特征空間大小,,??表示類別個數。
在實際應用中,是需要根據業務的具體邏輯去構建圖。傳統的機器學習方法是由 X 映射到 Y,模型所需要學習的是如何準確的學習到這個映射函數。而本論文所提方法是獨立于標簽的分布信息,由圖中的拓撲信息去學習節點的向量表示。是完全無監督學習方法。
該方法所學習到的表示向量可以使用在任何的分類算法中。
隨機游走
以任意一個節點為起始節點,每次隨機的選擇與它鄰近節點進行游走,直到達到最大步長。這種截斷的隨機游走方式提供了兩個優點
局部探索游走很容易并行化進行,幾個不同 walker 可以同時游走多條不同的線路。
從截斷隨機游走中獲取信息,當圖結構發生小的變化時,不需要重復重新的去學習。
在實際應用時,方便很多。
長尾分布
在論文指的是 power laws,其實和長尾分布大同小異,在自然語言領域,我們發現大部分詞的詞頻都很小,只有少數詞的詞頻很高,符合長尾分布。而在 YouTube Social Graph 中,進行隨機游走,發現節點的分布也是符合這種長尾分布的,如下圖所示:詞頻分布和節點頻率分布一致,因此認為在自然語言處理領域內有效的 word2vec 方法可以復用在圖結構中。
Deep Walk
在這里插入圖片描述以上兩個算法流程已經能很好的說明 Deep Walk 的步驟,其中 SkipGram 算法表示由某個節點預測他周圍的節點,是 word2vec 方法中的一種模型。上述公式表示,由節點?來預測與之相鄰的周圍節點,其中所得到的副產品?這個 embedding 矩陣就是我們要學習的目標。
和自然語言處理相同,這里的 skip-Gram 同樣面臨計算復雜度很高的問題,如果不做任何處理,每次都需要對所有節點進行概率計算,時間復雜度過高,訓練緩慢,由此引入了 Hierarchical Softmax。
Hierarchical Softmax 是 NLP 中常用方法,詳情可以查看Hierarchical Softmax[4]。其主要思想是以詞頻構建 Huffman 樹,樹的葉子節點為詞表中的詞,相應的高頻詞距離根結點更近。當需要計算生成某個詞的概率時,不需要對所有詞進行 softmax 計算,而是選擇在 Huffman 樹中從根結點到該詞所在結點的路徑進行計算,得到生成該詞的概率,時間復雜度從 O(N) 降低到 O(logN)(N 個結點,則樹的深度 logN)。該方法同樣適用在圖結構的 skip-Gram 模型中。
實驗
論文中使用了三個數據集:
但是論文沒有詳細給出在三個數據集中,所構成的圖結構中節點以及邊的實際業務意義,例如在圖中,每個數據集中節點具體指的是什么?以什么樣的規則來定義邊的?
論文實驗中,隨機抽取部分樣本作為訓練集(帶 label),剩余的作為測試集,在訓練集中,以上面所說的方式(DeepWalk+Skip-Gram+Hierarchical softmax)學習每個節點的表示向量,然后以學習到的表示向量作為特征,LR 分類器進行訓練,訓練出一個分類模型;再在測試集上進行測試。實驗結果如下:可以看出當選取較少的帶 label 訓練數據時(label sparse),相對于其他方法,DeepWalk 的效果更好。
個人總結
本文所提方法不難,其 word2vec 也是很基礎的方法,但是能借此應用到圖結構中的確很有趣和有意義,使得 word2vec 這種簡單有效的方法能應用的更加廣泛。
參考資料
[1]
DeepWalk: http://www.perozzi.net/publications/14_kdd_deepwalk.pdf
[2]CODE: https://github.com/phanein/deepwalk
[3]以前總結的word2vec: https://blog.csdn.net/Mr_tyting/article/details/80091842
[4]Hierarchical Softmax: https://blog.csdn.net/itplus/article/details/37969979
關于本站
“機器學習初學者”公眾號由是黃海廣博士創建,黃博個人知乎粉絲23000+,github排名全球前110名(32000+)。本公眾號致力于人工智能方向的科普性文章,為初學者提供學習路線和基礎資料。原創作品有:吳恩達機器學習個人筆記、吳恩達深度學習筆記等。
往期精彩回顧
那些年做的學術公益-你不是一個人在戰斗
適合初學者入門人工智能的路線及資料下載
吳恩達機器學習課程筆記及資源(github標星12000+,提供百度云鏡像)
吳恩達深度學習筆記及視頻等資源(github標星8500+,提供百度云鏡像)
《統計學習方法》的python代碼實現(github標星7200+)
精心整理和翻譯的機器學習的相關數學資料
首發:深度學習入門寶典-《python深度學習》原文代碼中文注釋版及電子書
備注:加入本站微信群或者qq群,請回復“加群”
加入知識星球(4300+用戶,ID:92416895),請回復“知識星球”
總結
以上是生活随笔為你收集整理的员外陪你读论文:DeepWalk: Online learning of Social Representations的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速掌握TensorFlow中张量运算的
- 下一篇: 在线阅读!!机器学习数学精华:线性代数