[論文閱讀筆記] node2vec Scalable Feature Learning for Networks

[論文閱讀筆記] node2vec:Scalable Feature Learning for Networks


本文結構

  1. 解決問題
  2. 主要貢獻
  3. 算法原理
  4. 參考文獻

(1) 解決問題

因爲DeepWalk的隨機遊走是徹底無指導的隨機採樣,即隨機遊走不可控。本文從該問題出發,設計了一種有偏向的隨機遊走策略,使得隨機遊走能夠在DFS和BFS兩種極端搜索方式中取得平衡。html


(2) 主要貢獻

Contribution: 本篇論文主要的創新點在於改進了隨機遊走的策略,定義了兩個參數p和q,使得隨機遊走在BFS和DFS兩種極端中達到一個平衡,同時考慮到局部和宏觀的信息。node


(3) 算法原理

node2vec算法框架主要包含兩個部分:首先在圖上作有偏向的隨機遊走,其次將獲得的節點序列輸入Skip-Gram模型學習節點表示向量嵌入(再也不贅述,參考DeepWalk)。算法

有偏的隨機遊走策略
其定義了兩個參數p(向後參數)和q(向前參數),在廣度優先搜索(BFS)和深度優先搜索(DFS)兩種極端中達到一個平衡,從而同時考慮到局部和全局的結構信息。給定源點u,利用有偏隨機遊走生成長度爲L的序列,隨機遊走的轉移機率計算公式設計以下:網絡

ci表示序列中的第i個點,c0=u,Z爲一個歸一化常數。分母πvx爲v到x的非歸一化的轉移機率,以下所示(dtx爲上一跳節點t與下一跳考慮跳轉節點的距離):框架

以一個例子來解釋,以下圖所示:學習

假設隨機遊走的上一跳節點是t,當前節點是v,則依據上述轉移機率公式的設計下一跳節點怎麼選擇呢?下一跳節點多是x1,x2,x3和t。因爲x1與上一跳節點距離1跳,所以下一跳到節點x1的非歸一化轉移機率爲1,而x2、x3與上一跳節點距離2跳,所以下一跳到x2和x3的非歸一化轉移機率均爲1/q,此外t與上一跳節點距離0跳,所以下一跳到t的非歸一化轉移機率爲1/p。以上即是Node2vec中設計的權衡BFS和DFS的隨機遊走策略。scala

經過以上方式生成同構網絡上的隨機遊走序列以後,採用Skip-Gram模型訓練節點向量便可。設計


(4) 參考文獻

Grover A, Leskovec J. node2vec: Scalable feature learning for networks[A]. Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining[C]. 2016: 855–864.htm

相關文章
相關標籤/搜索