Node2vec理论
1)介绍
前面介绍过基于DFS邻域的DeepWalk和基于BFS邻域的LINE。
node2vec是一种综合考虑DFS邻域和BFS邻域的graph embedding方法。简单来说,可以看作是deepwalk的一种扩展,是结合了DFS和BFS随机游走的deepwalk。

2)优化目标
设f ( u ) f(u)f(u)是将顶点u uu映射为embedding向量的映射函数,对于图中每个顶点u uu,定义N S ( U ) N_S(U)NS(U)为通过采样策略 S SS采样出的顶点u uu近邻顶点集合。
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_uZu的计算代价高,所以采用负采样技术优化。
3)顶点序列采样策略
node2vec引入两个超参数p pp 和 q qq来控制随机游走的策略,假设现在游走序列从t tt走到v vv,这时候需要算出三个系数,分别作为控制下一步走向方向的偏置α \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 tt结点到下一步结点x xx的最短路,最多为2。
当d t x = 0 d_{tx}=0dtx=0时,表示下一步游走是回到上一步的结点;
当d t x = 1 d_{tx}=1dtx=1时,表示下一步游走跳向t tt的另外一个邻居结点;
当d t x = 2 d_{tx}=2dtx=2时,表示下一步游走向更远的结点移动。
下面讨论超参数p pp和q qq 对游走策略的影响。
对于p pp
参数p pp控制重复访问刚刚访问过的顶点的概率。 注意到p pp仅作用于d t x = 0 d_{tx}=0dtx=0的情况,而d t x = 0 d_{tx}=0dtx=0表示顶点 x xx就是访问当前顶点v vv之前刚刚访问过的顶点。 那么若p pp 较高,则访问刚刚访问过的顶点的概率会变低,反之变高。
对于q qq
参数q qq控制的是游走向更远方向的概率,也就是激进探索系数。如果q qq较大,那么游走策略则更偏向于广度优先策略,若1 11较小,则偏向于深度优先策略。
下面的图描述的是当从t tt访问到v vv时,决定下一个访问顶点时每个顶点对应的α \alphaα。

给定当前顶点 v vv,给定当前顶点x xx 的概率为:
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 vv和顶点 x xx之间的未归一化转移概率,π 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 vv和顶点 x xx之间的权重,Z ZZ是归一化常数。
Graph Embedding——(1)DeepWalk理论
Graph Embedding——(2)LINE理论
Graph Embedding——(4)Struc2vec理论
Graph Embedding——(5)SDNE理论
Graph Embedding常见类型的理论详解