DeepWalk原理介绍
与词嵌入类似,图嵌入基本理念是基于相邻顶点的关系,将目的顶点映射为稠密向量,以数值化的方式表达图中的信息,以便在下游任务中运用。
Word2Vec根据词与词的共现关系学习向量的表示,DeepWalk受其启发。它通过随机游走的方式提取顶点序列,再用Word2Vec模型根据顶点和顶点的共现关系,学习顶点的向量表示。可以理解为用文字把图的内容表达出来,如下图所示。
DeepWalk训练图表示的整个过程大致可以分为2步:
- 随机游走提取顶点序列
- 使用skip-gram学习顶点嵌入
训练时采用层次Softmax(Hierarchical Softmax)优化算法,避免计算所有词的softmax。
Node2vec原理
DeepWalk不适用于有权图,它无法学习边上的权重信息。Node2Vec可以看作DeepWalk的扩展,它学习嵌入的过程也可以分两步:
- 二阶随机游走(2ndorderrandomwalk)
- 使用skip-gram学习顶点嵌入
可以看到与DeepWalk的区别就在于游走的方式,在二阶随机游走中,转移概率 π v x π_{vx} πvx 受权值 w v x w_{vx} wvx 影响(无权图中 w v x w_{vx} wvx 为1):
π v x = α p q ( t , x ) ⋅ w v x \pi_{vx}=\alpha_{pq}(t,x) \cdot w_{vx} πvx=αpq(t,x)⋅wvx
α 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)=\left\{ \begin{aligned} \frac{1}{p}, \quad & if\quad{d_{tx}=0} \\ 1, \quad & if\quad{d_{tx}=1} \\ \frac{1}{q}, \quad & if\quad{d_{tx}=2} \end{aligned} \right. αpq(t,x)=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧p<