Node2vec理论
1)介绍
前面介绍过基于DFS邻域的DeepWalk和基于BFS邻域的LINE。
node2vec是一种综合考虑DFS邻域和BFS邻域的graph embedding方法。简单来说,可以看作是deepwalk的一种扩展,是结合了DFS和BFS随机游走的deepwalk。
2)优化目标
设 f ( u ) f(u) f(u)是将顶点 u u u映射为embedding向量的映射函数,对于图中每个顶点 u u u,定义 N S ( U ) N_S(U) NS(U)为通过采样策略 S S S采样出的顶点 u u u近邻顶点集合。
node2vec优化的目标是给定每个顶点条件下,令其近邻顶点(如何定义近邻顶点很重要)出现的概率最大。即:
m
a
x
f
∑
u
∈
V
log
P
r
(
N
S
(
u
)
∣
f
(
u
)
)
\underset{f}{max}\quad \sum_{u\in V} \log{Pr(N_S(u)|f(u))}
fmaxu∈V∑logPr(NS(u)∣f(u))
为了将上述最优化问题可解,文章提出两个假设:
-
条件独立性假设
假设给定源顶点下,其近邻顶点出现的概率与近邻集合中其余顶点无关。
P r ( N S ( u ) ∣ f ( u ) ) = ∏ n i ∈ N S ( u ) P r ( n i ∣ f ( u ) ) Pr(N_S(u)|f(u))=\prod_{n_i\in N_S(u)}Pr(n_i|f(u)) Pr(NS(u)∣f(u))=ni∈NS(u)∏Pr(ni∣f(u))
-
特征空间对称性假设
这里是说一个顶点作为源顶点和作为近邻顶点的时候共享同一套embedding向量。(对比LINE中的2阶相似度,一个顶点作为源点和近邻点的时候是拥有不同的embedding向量的)
在这个假设下,上述条件概率公式可表示为:
P r ( n i ∣ f ( u ) ) = e x p ( f ( n i ) ⋅ f ( u ) ) ∑ v ∈ V e x p ( ( f ( v ) ⋅ f ( u ) ) ) Pr(n_i|f(u))=\frac{exp(f(n_i)\cdot f(u))}{\sum_{v\in V}exp((f(v)\cdot f(u)))} Pr(ni∣f(u))=∑v∈Vexp((f(v)⋅f(u)))exp(f(ni)⋅f(u))
根据以上两个假设条件,最终的目标函数表示为:
m
a
x
f
∑
u
∈
V
[
−
∣
N
S
(
u
)
∣
log
Z
u
+
∑
n
i
∈
N
S
(
u
)
f
(
n
i
)
⋅
f
(
u
)
]
\underset{f}{max}\quad \sum_{u\in V}\bigg[-|N_S(u)|\log{Z_u}+\sum_{n_i\in N_S(u)}f(n_i)\cdot f(u)\bigg]
fmaxu∈V∑[−∣NS(u)∣logZu+ni∈NS(u)∑f(ni)⋅f(u)]
其中,
Z
u
=
∑
v
∈
V
e
x
p
(
f
(
n
i
)
⋅
f
(
u
)
)
Z_u=\sum_{v\in V}{exp(f(n_i)\cdot f(u))}
Zu=∑v∈Vexp(f(ni)⋅f(u))。由于归一化因子
Z
u
Z_u
Zu的计算代价高,所以采用负采样技术优化。
3)顶点序列采样策略
node2vec引入两个超参数
p
p
p 和
q
q
q来控制随机游走的策略,假设现在游走序列从
t
t
t走到
v
v
v,这时候需要算出三个系数,分别作为控制下一步走向方向的偏置
α
\alpha
α
α
p
q
(
t
,
x
)
=
{
1
p
i
f
d
t
x
=
0
1
i
f
d
t
x
=
1
1
q
i
f
d
t
x
=
2
\alpha_{pq(t,x)} = \begin{cases} \frac{1}{p} & if \quad d_{tx}=0 \\ 1 & if \quad d_{tx}=1 \\ \frac{1}{q} & if \quad d_{tx}=2 \\ \end{cases}
αpq(t,x)=⎩⎪⎨⎪⎧p11q1ifdtx=0ifdtx=1ifdtx=2
其中,
d
t
x
d_{tx}
dtx代表
t
t
t结点到下一步结点
x
x
x的最短路,最多为2。
-
当 d t x = 0 d_{tx}=0 dtx=0时,表示下一步游走是回到上一步的结点;
-
当 d t x = 1 d_{tx}=1 dtx=1时,表示下一步游走跳向 t t t的另外一个邻居结点;
-
当 d t x = 2 d_{tx}=2 dtx=2时,表示下一步游走向更远的结点移动。
下面讨论超参数 p p p和 q q q 对游走策略的影响。
-
对于 p p p
参数 p p p控制重复访问刚刚访问过的顶点的概率。 注意到 p p p仅作用于 d t x = 0 d_{tx}=0 dtx=0的情况,而 d t x = 0 d_{tx}=0 dtx=0表示顶点 x x x就是访问当前顶点 v v v之前刚刚访问过的顶点。 那么若 p p p 较高,则访问刚刚访问过的顶点的概率会变低,反之变高。
-
对于 q q q
参数 q q q控制的是游走向更远方向的概率,也就是激进探索系数。如果 q q q较大,那么游走策略则更偏向于广度优先策略,若 1 1 1较小,则偏向于深度优先策略。
下面的图描述的是当从 t t t访问到 v v v时,决定下一个访问顶点时每个顶点对应的 α \alpha α。

给定当前顶点
v
v
v,给定当前顶点
x
x
x 的概率为:
P
(
c
i
=
x
∣
c
i
−
1
=
v
)
=
{
π
v
x
Z
i
f
(
v
,
x
)
∈
E
0
i
f
o
t
h
e
r
w
i
s
e
P(c_i=x|c_{i-1}=v) = \begin{cases} \frac{\pi_{vx}}{Z} & if \quad (v,x)\in E \\ 0 & if \quad otherwise \\ \end{cases}
P(ci=x∣ci−1=v)={Zπvx0if(v,x)∈Eifotherwise
π
v
x
\pi_{vx}
πvx是顶点
v
v
v和顶点
x
x
x之间的未归一化转移概率,
π
v
x
=
α
p
q
(
t
,
x
)
⋅
w
v
x
\pi_{vx}=\alpha_{pq}(t,x)\cdot w_{vx}
πvx=αpq(t,x)⋅wvx,
w
v
x
w_{vx}
wvx是顶点
v
v
v和顶点
x
x
x之间的权重,
Z
Z
Z是归一化常数。
Graph Embedding——(1)DeepWalk理论
Graph Embedding——(2)LINE理论
Graph Embedding——(4)Struc2vec理论
Graph Embedding——(5)SDNE理论
Graph Embedding常见类型的理论详解