圖游走類算法的目標:學習出圖中每一個節點的一維表示,即node embeddings:
1.得到node embeddings之后,可以進行下游任務(節點分類等)
2.通過node embeddings可以學習節點和鄰居的關系,更好的表示圖結構與圖特征的信息
那么,如何得到node embeddings呢?
答案是:圖游走類算法,下圖簡單的說明了什么是圖游走(圖中展示的游走序列並不是全部),通過圖表示學習使用圖上的多次游走得到的序列,從而得到節點的一維表示(用於下游任務)
在上圖中,可以將節點看作NLP中的詞,將節點序列看作是NLP中的句子,下面引入NLP中的算法:word2vec。圖游走類算法,最開始參考的是NLP中的word2vec模型,通過舉例簡單說明:
如果給出一個詞語:“蘋果”,它可以是水果,也可以是品牌,但在給出一些句子描述后
我們可以確定給出的“蘋果”是水果而非品牌,通過這個例子可以知道詞的語義是通過上下文決定的,那么word2vec是如何建立這種上下文的語義關系呢?
word2vec提出了兩種訓練模式:CBOW(Continuous Bag-of-Words Model)和Skip-gram (Continuous Skip-gram Model),因為圖游走算法更多用到的是skip-gram,因此下面介紹skip-gram。
Sikp-gram的目的:通過中心詞預測上下文,下圖中的neighbors就是中心詞
通過一個簡單例子進行過程說明:
最后一層輸出層是一個分類層,softmax:假設給定中心詞orange,要預測其上下文詞中的juice,計算圖表中所有單詞的概率,計算量很大,因此通過negative sampling(負采樣)的方法進行優化
negative sampling說明:我們將樣本分為正樣本和負樣本,如下圖所示:
因為是二分類,因此將正樣本的label標簽設置為1,負樣本的label標簽設置為0,將softmax修改成了multiple sigmoid,sigmoid函數為二分類函數,將變量映射到0和1,數學公式如下:
softmax層變成了多個,sigmoid層,只對正樣本和選取的負樣本進行分類,從而減少了計算量,通過skip-gram之后就可以得到node embeddings。
word2vec應用:圖嵌入領域
通常,圖中的節點會收到其鄰居的影響
正式開始介紹圖游走類算法:Deepwalk和node2vec(同構圖游走)
在上圖中,我們將NLP中的word2vec算法,應用到圖嵌入領域,對於word2vec,句子是可以直接獲取的,但是對於圖我么,我們應該如何得到節點序列?
Deepwalk提出random walk的游走方式,如下面的例子所示,隨機選取一個節點進行游走,該節點再隨機選取鄰居,重復以上的過程得到游走的序列,此時序列就可以類比NLP中得到的句子。
隨機游走的本質:可以回頭的DFS
我們可以得到下面公式:
其中:
ci-1=v:當前節點
ci=x:下一個要游走的節點
pievx/Z=1/|N(v)|:N(v)表示V的鄰居節點,|N(v)|表示v的鄰居節點的個數。換句話說就是,等概率選擇,即每一個鄰居節點都有被選中的可能,且這個可能性是相同的
Deepwalk模型的整體架構:graph -> random walk + skip-gram + negative sampling,其中skip-gram -> node embeddings -> downstream task。大部分的圖游走類算法都是再游走部分進行創新和改動,所以對於deepwalk算法,我們更多關注random walk這一部分。
deepwalk的缺點:它忽略了圖是一個復雜的結構,而deepwalk中節點選擇下一個節點的方式是均勻隨機采樣,且游走方式是簡單直接的DFS
以上為圖遍歷的兩種方法:BFS和DFS,BFS是一圈一圈散開,就像把石頭扔進水面一樣,而DFS是一直往前走,直到遇到死胡同再回頭。
node2vec模型結合了BFS和DFS對圖進行探索和學習
deepwalk是通過random walk,而node2vec則是使用bias random walk
我們再次回顧deepwalk的游走方式和公式表達:
其中:
ci-1=v:當前節點
ci=x:下一個要游走的節點
pievx/Z=1/|N(v)|:N(v)表示V的鄰居節點,|N(v)|表示v的鄰居節點的個數。換句話說就是,等概率選擇,即每一個鄰居節點都有被選中的可能,且這個可能性是相同的
而node2vec中的pievx為:
可以看出,node2vec加入了邊的權值,考慮了帶權邊,而αpq為:
其中dtx為x到t節點的距離,例如x2和x3節點需要經過v才能到達t節點,因此dtx=2,通過上述公式得到以下結果:
我們再繼續討論參數對於搜索的影響:
·參數p:控制隨機游走以多大的概率回頭
·參數q:控制隨機游走偏向DFS還是BFS
q較大時(q>1),傾向於BFS
q較大時(q<1),傾向於DFS
node2vec模型的整體架構:graph ->bias random walk + skip-gram + negative sampling,其中skip-gram -> node embeddings -> downstream task。