1.背景
DeepWalk中根据边的权重进行随机游走,而node2vec加了一个权重调整参数,最终生成的随机序列是一种DFS和BFS的结合;模型仍使用skip gram去训练。
2.原理
2.1 Random Walks
给定一个起始节点,我们模拟一个固定长度
的随机游走,
表示行走中的第
个节点,起始节点:
。节点
走到节点
概率定义为:

2.2 Search bias α
假设已知游走路径已从走到
,从节点
走到下一个节点
按照转移概率
选择对应的节点;


其中:
2.2.1 参数p
- 表示访问已遍历节点的可能性;
-
:表示在连续两步,越小的可能访问已遍历节点;这种策略鼓励适度的探索,并避免了距离为2的节点抽样中的冗余
-
:表示遍历的节点接近起始节点;
2.2.2 参数q
- 允许搜索区分“向内”和“向外”节点;
-
: 表示越大的可能抽样节点靠近
;可以获得与遍历中的开始节点相关的底层图的局部视图,与BFS类似;
-
: 表示越大的可能抽样节点远离
; 与DFS类似;
-
就是deepwalk
3. algorithm

3.源码
py版本代码结构:
