Node2vec原理剖析,代码实现

本文介绍了Node2vec,一种扩展自DeepWalk的图嵌入技术,用于处理有权图。Node2vec通过调整二阶随机游走策略,结合DFS和BFS,根据边权重学习节点的向量表示。算法包括随机游走序列生成、skip-gram模型学习节点嵌入以及别名采样方法。此外,文章还给出了Node2vec的代码实现步骤。
摘要由CSDN通过智能技术生成

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<

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值