文章目錄
摘要
我們提出了DeepWalk,這是一種用於學習網絡中頂點的隱表示的新穎方法。這些隱表徵將社會關係編碼在一個連續的向量空間中,這很容易被統計模型利用。 Deep-Walk 概括了語言建模和無監督特徵學習(或深度學習)方面的最新進展,從單詞序列到圖形。
DeepWalk使用從截斷的隨機遊走中獲得的局部信息,通過將遊走視爲句子的等效詞來學習潛在表示。我們演示了Deep-Walk在社交網絡(例如BlogCatalog,Flickr和YouTube)的多個多標籤網絡分類任務中的潛在表示形式。我們的結果表明,DeepWalk的性能優於具有挑戰性的基準,這使網絡可以全局查看,尤其是在缺少信息的情況下。當標記的數據稀疏時,DeepWalk的表示形式可以提供比競爭方法高10%的F1分數。在某些實驗中,DeepWalk的表示能夠勝過所有基線方法,而使用的訓練數據卻少60%。 DeepWalk也是可擴展的。這是一種在線學習算法
可以建立有用的增量結果,並且可以並行化。這些品質使其適用於各種實際應用,例如網絡分類和異常檢測。
1、簡介
文章的貢獻如下:
- 我們將深度學習介紹爲一種分析圖形的工具,以構建適用於統計建模的強大表示形式。 DeepWalk學習短時隨機遊走中存在的結構規律。
- 我們廣泛評估了我們在多個社交網絡上對多標籤分類任務的表示形式。 我們發現,在存在標籤稀疏性的情況下,分類性能顯着提高,在我們考慮的最稀疏問題上,Micro F1的改進率爲5%-10%。 在某些情況下,即使僅提供少60%的培訓數據,DeepWalk的表現仍能勝過競爭對手。
- 我們通過使用並行實現構建Web規模圖的表示形式(例如YouTube),展示了算法的可擴展性。 而且,我們描述了構建我們的方法的流版本所需的最小更改。
2、問題定義
我們考慮的問題是將社交網絡中的成員分爲單個或者多個類目標籤。令 ,其中 代表 網絡中的節點, 表示連接的邊 , 是部分帶標籤網絡,屬性 , 是特徵空間中每個屬性向量的大小,, 是標籤集合。
傳統的機器學習中,我們的目標是學習一個假設 ,將特徵集合 映射到標籤集合 上,在我們的案例中,我們可以利用有關嵌入在 結構中的示例的相關性的重要信息來實現出色的性能。
在文獻中,這被稱爲關係分類(或集體分類問題[37])。傳統的關係分類方法將問題作爲無向馬爾可夫網絡中的推理提出,然後使用迭代近似推理算法(例如迭代分類算法[32],Gibbs Sampling [15]或標籤鬆弛[19])給定網絡結構,計算標籤的後驗分佈。
我們提出了一種不同的方法來捕獲網絡拓撲信息。與其將標籤空間作爲特徵空間的一部分進行混合,我們提出了一種不受監督的方法,該方法可學習捕獲與標籤分佈無關的圖形結構的特徵。
結構表示和標記任務之間的這種分離避免了級聯錯誤,該級聯錯誤可能在迭代方法中發生[34]。而且,相同的表示可以用於與該網絡有關的多個分類問題。
我們的目標是學習 ,其中 是較小的隱維數。 這些低維表示形式是分佈式的。 意思是每個社會現象都由維度的一個子集表達,每個維度都對空間表達的社會概念的一個子集有所貢獻。
使用這些結構特徵,我們將擴大屬性空間以幫助分類決策。 這些功能是通用的,可以與任何分類算法(包括迭代方法)一起使用。 但是,我們認爲這些功能的最大用途是易於與簡單的機器學習算法集成。 它們將在現實世界的網絡中適當擴展,如我們將在第6節中所示。
3、學習社交表徵
我們尋求學習具有以下特徵的社交表徵
- 適應性 真實的社交網絡在不斷髮展; 新的社會關係不應要求重複學習過程
- 社區意識 潛在維度之間的距離應代表用於評估網絡相應成員之間的社會相似性的度量。 這允許具有同構性的網絡泛化。
- 低維 當缺乏標籤數據時,低維模型可以更好地泛化,並加快收斂和推理速度。
- 連續的 我們需要潛在的表示來對連續空間中的部分社區成員進行建模。 除了提供社區成員細微差別的視圖外,連續的表示形式在社區之間具有平滑的決策邊界,從而可以實現更可靠的分類。
我們的方法通過使用最初爲語言建模設計的優化技術,從一小段隨機遊走中學習頂點的表示形式,從而滿足了這些要求。 在這裏,我們回顧了隨機遊走和語言建模的基礎知識,並描述了它們的組合如何滿足我們的要求。
3.1 隨機遊走
我們將根源於頂點 的隨機遊走表示爲 。它是具有隨機變量 的隨機過程。 這樣 是從頂點 的鄰居中隨機選擇的一個頂點。隨機遊走已被用作內容推薦[12]和社區檢測[2]中各種問題的相似性度量。它們也是一類輸出敏感算法的基礎,該算法使用它們在時間上與輸入圖的大小成線性關係計算本地社區結構信息[38]。
正是這種與本地結構的聯繫促使我們使用短隨機遊走流作爲我們從網絡提取信息的基本工具。除了捕獲社區信息之外,使用隨機遊走作爲我們算法的基礎還爲我們提供了兩個其他理想的屬性。首先,本地勘探很容易並行化。幾個隨機遊走者(在不同的線程,進程或機器中)可以同時瀏覽同一圖形的不同部分。其次,依靠從短距離隨機遊走中獲得的信息,可以適應圖結構中的細微變化,而無需全局重新計算。我們可以用新的隨機遊程迭代地更新學習的模型,該隨機遊程從變化的區域按時間線性變化到整個圖形。
3.2 連接:冪定律(power laws)
選擇在線隨機遊走作爲捕獲圖結構的原始方法之後,我們現在需要一種合適的方法來捕獲此信息。如果連接圖的度數分佈遵循冪定律(即無標度),則我們觀察到在短隨機遊走中頂點出現的頻率也將遵循冪律分佈。
自然語言中的單詞頻率遵循相似的分佈,並且來自語言建模的技術解釋了這種分佈行爲。爲了強調這種相似性,我們在圖2中顯示了兩個不同的冪律分佈。第一個來自無標度圖上的一系列短隨機遊動,第二個來自英語Wikipedia的100,000條文章。
我們工作的核心貢獻在於,可以將用於建模自然語言(符號頻率遵循冪律分佈(或齊普夫定律)的模型)的技術重新用於建模網絡中的社區結構。我們將在本節的其餘部分中回顧語言建模方面不斷髮展的工作,並將其轉換爲學習滿足我們標準的頂點表示。
3.3 語言模型
語言建模的目的是估計單詞在語料庫中出現特定序列的可能性。 更正式地說,給定一個單詞序列 ,其中 (是詞彙量),我們希望在所有訓練語料庫上最大化 。表示學習的最新工作集中在使用概率神經網絡來構建單詞的一般表示,這將語言建模的範圍擴展到了其最初的目標之外。
在這項工作中,我們提出了一種語言建模的一般化方法,以通過一系列簡短的隨機遊走探索圖。 這些步行可以被認爲是特殊語言中的簡短句子和短語。 直接的模擬是在給定的隨機遊走中迄今訪問過的所有先前頂點的情況下估計觀察頂點 的可能性。
我們的目標是學習潛在的表徵,而不僅僅是節點共現的概率分佈,因此我們引入了一個映射函數:該映射表示與圖中每個頂點 相關的隱社交表徵。(實際上,我們用一個自由參數的 的矩陣表示 ,以後將用作我們的 )。 然後,問題就是估計可能性: 但是隨着遊走長度的增加,計算這個條件概率變得不可行。語言建模的最新鬆弛[27,28]使預測問題在最開始的時候做了轉變。 首先,它不是使用上下文來預測缺失的單詞,而是使用一個單詞來預測上下文。 其次,上下文由出現在給定單詞左右兩側的單詞組成。 最後,它消除了對問題的排序約束,而是要求模型最大化任何單詞在上下文中出現的概率,而無需從給定單詞知道它的集合。 在頂點表示建模方面,這產生了優化問題 我們發現,這些鬆弛對於社交表徵學習尤爲可取。 首先,順序獨立性假設可以更好地捕捉隨機遊走所提供的“近距離感”。 此外,這種鬆弛對於通過一次建立一個頂點來構建小模型來加快訓練時間非常有用。
等式(3)中解決優化問題,即建立了捕獲頂點之間局部圖結構中共享相似性的表徵。 具有相似鄰域的頂點將獲得相似的表徵(對共引文相似性進行編碼),從而可以對機器學習任務進行概括。
通過結合截斷的隨機遊走和語言模型,我們制定了一種滿足我們所有期望屬性的方法。 此方法生成低維的社交網絡表徵,並存在於連續向量空間中。 它的表徵編碼了社區成員關係的潛在形式,並且由於該方法輸出有用的中間表徵,因此它可以適應不斷變化的網絡拓撲。
4、方法
4.1 概覽
像在任何語言建模算法中一樣,唯一需要的輸入是一個語料庫和一個詞彙表 。DeepWalk認爲一組短截短的隨機遊走是它自己的語料庫,而圖頂點則是它自己的詞彙表( = )。 雖然瞭解 和隨機中頂點的頻率分佈在訓練之前是有益的,但正如我們在4.2.2中所示,算法在工作中其實沒必要了解
4.2 算法:深度遊走
算法主要由兩部分組成,首先是隨機遊走生成器,其次是一個更新過程。隨機遊走生成器以圖 作爲輸入,隨機採樣一個節點 作爲隨機遊走序列 的根節點。一個遊走從最近的節點開始隨機採樣,直到達到最大長度 (),在實驗中我們對隨機遊走的長度設了一個固定值,當然沒有嚴格的限制要求必須是一樣長短,這些遊走可以從頭開始(返回根節點),但是我們的初步結果並未顯示使用重啓(返回根節點)的任何優勢。 在實踐中,我們的實現指定了 個長度爲 的隨機遊動從每個頂點開始。
算法 1 中的3-9行顯示了我們方法的核心,外循環確定了次數 ,我們應該在每個頂點處開始隨機遊走。 我們認爲每次迭代都是對數據進行“遍歷”,並在此遍歷中對每個節點進行一次遍歷。 在每次遍歷的開始,我們都會生成一個隨機排序以遍歷頂點。 這不是嚴格要求的,但衆所周知,它可以加快隨機梯度下降的收斂速度。
在內循環裏,我們循環遍歷圖中所有的節點,對於每個頂點 ,生成一個遊走序列 =,然後第7行中用它來更新我們的表徵,我們根據等式 (3) 中的目標函數,使用SkipGram算法 [27] 更新這些表徵。
4.2.1 SkipGram
SkipGram是一種語言模型,可最大程度地提高出現在窗口 中句子中的單詞之間的共現概率。 它使用以下獨立性假設來近似公式3中的條件概率
算法2迭代出現在窗口 (第1-2行)中的隨機遊走中所有可能的組合。 對於每個頂點,我們將每個頂點 映射到其當前表徵向量 (請參見圖3b)。 給定 的表示形式,我們希望最大化其在步行中的鄰居的概率(第3行)。 我們可以使用幾種分類器來學習這種後驗分佈。 例如,使用邏輯迴歸對先前的問題建模將導致大量的標籤(等於 ),可能達數百萬或數十億。 這樣的模型需要大量的計算資源,這些資源可能超過整個計算機集羣[4]。 爲了避免這種必要性並加快訓練時間,我們改用Hierarchical
Softmax [40,31]來近似概率分佈。
4.2.2 Hierarchical Softmax
給定 ,計算 是不可行的,計算分區函數(歸一化因子)非常昂貴,因此我們將使用分層softmax分解條件概率。 我們將頂點分配給二叉樹的葉子,從而將預測問題轉化爲最大化層次結構中特定路徑的概率(參見圖3c)。 如果到頂點 的路徑由一系列樹節點標識 , ,因此 如等式6所示, 可以由分配給節點 的父節點的二進制分類器建模,其中 是節點 的父節點的表徵,這樣使得計算 的複雜度從 下降到
通過爲隨機行走中的頻繁頂點分配較短的路徑,我們可以進一步加快訓練過程。 霍夫曼編碼用於減少樹中頻繁元素的訪問時間。
4.2.3 優化
模型參數集爲 ,每個大小均爲 ,隨機梯度下降(SGD)[5]用於優化這些參數(第4行,算法2)。 使用反向傳播算法估計導數。 在訓練開始時,SGD的學習率 最初設置爲2.5%,然後根據到目前爲止看到的頂點數量線性降低
4.3 並行化
如圖2所示,社交網絡中隨機遊走的頂點的頻率分佈和語言中的單詞都遵循冪律。這會導致很少出現的頂點的長尾情況,因此影響 的更新將很稀疏。在多woker的情況下,這使我們可以使用異步版本的隨機梯度下降(ASGD)。鑑於我們的更新是稀疏的,並且我們沒有獲得訪問模型共享參數的鎖,因此ASGD將實現最佳收斂速度[36]。當我們在一臺使用多線程的機器上運行實驗時,已證明該技術具有高度的可擴展性,並且可以用於超大規模的機器學習[9]。圖4展示了並行化DeepWalk的效果。它表明,隨着我們將工作人員數量增加到8,處理BlogCatalog和Flickr網絡的速度是一致的(圖4a)。它還表明,相對於串行運行DeepWalk而言,預測性能沒有損失(圖4b)。
5、實驗設計
5.1 數據集
- BlogCatalog
- Flick
- YouTube
5.2 Baseline 方法
- SpectralClustering [41]:
- Modularity [39]:
- EdgeCluster [40]:
- wvRN [25]:
- Majority:
原文鏈接:deepwalk