天天看點

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

本文主要記錄一些經典的基于随機遊走Graph Embedding方法,以及自己的一些實踐經驗。

      • 引言
        • a. 獨熱表示(one-hot representation)
        • b. 分布式表示(distributed representation)
        • c. 圖和embedding?
      • 1.deepwalk
        • 1.1 随機遊走
        • 1.2 向量學習
      • 2.node2vec
        • 2.1 DFS和BFS随機遊走
        • 2.2 參數p、q對遊走政策的影響
        • 2.3 node2vec學習同質性和結構性
        • 2.4 向量學習
      • 3.metapath2vec
        • 3.1 Meta-Path-Based Random Walks
        • 3.2 Heterogeneous negative sampling
      • 4.EGES
      • 總結對比

引言

在NLP領域,關于如何對詞進行更好的表示,有許多研究者進行了深入的研究。

a. 獨熱表示(one-hot representation)

将每一個表示成一個N維(N是詞表大小)的向量,其中隻有目前詞對應的次元為1,其他為零。一般來說詞表會比較大(至少是十萬量級),是以高維稀疏的表示會導緻維數災難。還有一個重要的問題是,獨熱表示無法描述詞與詞之間的相似性,也就是我們常說的語義鴻溝。

b. 分布式表示(distributed representation)

既然獨熱表示有這麼大的問題,總是需要去解決的。于是人們提出了分布式表示,即用低維稠密的向量來表示。低維稠密向量解決次元過高的問題;同時稠密向量可以計算向量之間的距離(相似度),解決語義鴻溝問題。

既然我們想通過低維稠密的向量來表示詞,那麼接下來就是用什麼方法得到我們想要的向量了。要相信方法總是比問題多的,我在此列舉一些經典的預訓練詞向量方法:word2vec、glove、ELMo、GPT以及BERT等等。

c. 圖和embedding?

在很多場景下,業務問題可以抽象成圖結構,如搜尋點選二部圖、社交網絡、交通網絡、電商網站中使用者與物品的關系等。

1.deepwalk

deepwalk是14年KDD paper: DeepWalk:Online Learning of Social Representations

核心思路: 1) 在圖中随機遊走采樣,擷取節點序列;2) 使用skip-gram + Hierarchical Softmax方式學習節點表達向量。

1.1 随機遊走

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)
圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

1.2 向量學習

把每條遊走後的序列當作句子,每個節點看作一次詞,利用skip-gram語言模型進行學習,且采用Hierarchical Softmax提升訓練效率。

2.node2vec

node2vec是16年KDD paper: node2vec: Scalable Feature Learning for Networks

整體思路和deepwalk一緻,可以看作是deepwalk的改進版。主要對deepwalk的随機遊走政策進行了改進,可以看作是引入DFS和BFS随機遊走的deepwalk。

2.1 DFS和BFS随機遊走

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

node2vec采用的是一種有偏的随機遊走,給定目前頂點 v v v,通路下一個頂點 x x x 的機率為 P ( c i = x ∣ c i − 1 = v ) P(c_i = x | c_{i-1} = v) P(ci​=x∣ci−1​=v)

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

其中 π v x = α p , q ( t , x ) ∗ w v x \pi_{vx} = \alpha_{p,q}(t,x) * w_{vx} πvx​=αp,q​(t,x)∗wvx​,且 w v x w_{vx} wvx​ 是頂點 v v v 和 x x x之間的邊權重, α p , q ( t , x ) \alpha_{p,q}(t,x) αp,q​(t,x)是表示DFS、BFS遊走政策。

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)
圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

d t x d_{tx} dtx​為頂點 t t t 和頂點 x x x 之間的最短路徑距離

2.2 參數p、q對遊走政策的影響

Return parameter:p

參數 p p p 控制重複通路剛剛通路過的頂點的機率(即 d t x = 0 d_{tx}=0 dtx​=0時),若 p p p 較大,則通路剛剛通路過的頂點的機率越低,反之越高。

In-out papameter:q

參數 q q q 控制着遊走偏向,如果 q > 1 q>1 q>1 ,随機遊走傾向于BFS;若 q < 1 q<1 q<1 ,随機遊走傾向于DFS。

2.3 node2vec學習同質性和結構性

同質性指的是距離相近節點的embedding應該盡量近似,例如節點u和s1、s2、s3、s4應該屬于同質性相似的節點;

結構性指的是結構上相似的節點的embedding應該盡量接近,例如節點u和節點s6應該屬于結構性相似的節點。

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

上圖是DFS結果,下圖是BFS結果,顔色接近的節點代表其embedding的相似性更強。

2.4 向量學習

遊走完得到節點序列後,向量學習的方法和deepwalk方式一緻,在此不做贅述。

3.metapath2vec

metapath2vec是17年KDD paper: metapath2vec: Scalable Representation Learning for Heterogeneous Networks

上面所介紹的deepwalk,node2vec等算法雖然可以用于網絡表示學習,但僅适合那些隻包含一類頂點類型和邊類型的同構網絡(Homogeneous Networks),并不能很好地用于包含多種頂點類型和邊類型的複雜關系網絡。于是作者在基于meta-path的基礎上,提出了能很好應對指定scheme結構的異構複雜關系網絡的表示學習方法。

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

3.1 Meta-Path-Based Random Walks

在同構網絡中,DeepWalk和node2vec等算法通過随機遊走的方式來建構Skip-Gram模型的上下文語料庫。論文作者提出了一種基于meta-path的随機遊走方式,本質上就是遊走過程中将節點類型做為限制。

3.2 Heterogeneous negative sampling

模型依然是skip-gram結構,将word2vec原版的negative sampling改進為Heterogeneous negative sampling,即負樣本不再是從所有節點中選取,而是從某一特定類别的節點中進行随機選取。

4.EGES

EGES是18年KDD paper: Billion-scale commodity embedding for e-commerce recommendation in alibaba

主要亮點:引入節點的side information。

主要流程如下面兩張圖所示:

圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)
圖網絡學習理論和實踐(deepwalk,node2vec,metapath2vec,EGES)

總結對比

方法 核心思路 code
deepwalk(2014 KDD) 随機遊走+skip-gram python原版 、c++版
node2vec(2016 KDD) 基于DFS和BFS的随機遊走+skip-gram 原版、斯坦福snap
metapath2vec(2017 KDD) 基于meta-path的異構網絡随機遊走,Heterogeneous negative sampling 原版
EGES(2018 KDD) 使用者行為序列構成有向圖,引入節點的side information python實作版

繼續閱讀