[論文閱讀筆記] node2vec:Scalable Feature Learning for Networks
本文結構
- 解決問題
- 主要貢獻
- 算法原理
- 參考文獻
(1) 解決問題
由於DeepWalk的隨機游走是完全無指導的隨機采樣,即隨機游走不可控。本文從該問題出發,設計了一種有偏向的隨機游走策略,使得隨機游走可以在DFS和BFS兩種極端搜索方式中取得平衡。
(2) 主要貢獻
Contribution: 本篇論文主要的創新點在於改進了隨機游走的策略,定義了兩個參數p和q,使得隨機游走在BFS和DFS兩種極端中達到一個平衡,同時考慮到局部和宏觀的信息。
(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的隨機游走策略。
通過以上方式生成同構網絡上的隨機游走序列之后,采用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.
