DeepWalk及node2vec简单理解学习

DeepWalk

DeepWalk基本思想

DeepWalk是最早提出的基于 Word2vec 的节点向量化模型。其主要思路,就是利用构造节点在网络上的随机游走路径,来模仿文本生成的过程,提供一个节点序列,然后用Skip-gram和Hierarchical Softmax模型对随机游走序列中每个局部窗口内的节点对进行概率建模,最大化随机游走序列的似然概率,并使用最终随机梯度下降学习参数。
其目标函数为:
在这里插入图片描述
其中:
在这里插入图片描述

DeepWalk算法特点

DeepWalk算法充分利用了网络结构中的随机游走序列的信息,使用随机游走序列的信息有两点好处:
1.随机游走序列只依赖于局部信息,所以可适用于分布式和在线系统,而使用邻接矩阵就必须把所有信息存储于内存中处理,面临着较高的计算时间和空间消耗。
2.对随机游走序列进行建模可以降低建模0-1二值邻接矩阵的方差和不确定性。

node2vec基本思想

node2vec通过改变随机游走序列生成的方式进一步扩展了DeepWalk算法。DeepWalk选取随机游走序列中下一个节点的方式是均匀随机分布的,而node2vec通过引入两个参数p和q,将宽度优先搜索和深度优先搜索引入随机游走序列的生成过程。宽度优先搜索(BFS)注重临近的节点,并刻画了相对局部的一种网络表示,宽度优先中的节点一般会出现很多次,从而降低刻画中心节点的邻居节点的方差;深度优先搜索(BFS)反应了更高层面上的节点间的同质性。(即BFS能够探究图中的结构性质,而DFS则能够探究出内容上的相似性(相邻节点之间的相似性)。其中结构相似性不一定要相连接,甚至可能相距很远。)
如下图所示:
在这里插入图片描述
NBFS={s1,s2,s3} 局部微观结构
NDFS={s4,s5,s6} 全局宏观结构
node2vec 中的两个参数 p 和 q 控制随机游走序列的跳转概率 , 如下图 所示 ,
在这里插入图片描述
当下一个节点x与前一个节点t和当前节点v等距时,α=1; 当下一个节点x是上一个节点时,α=1/p;在其他情况下,α=1/q
假设上一步游走的边为 (t,v), 那么对于节点 v 的不同邻居 , node2vec 根据 p 和 q 定义了不同的邻居的跳转概率 ,p 控制跳向上一个节点的邻居的概率 , q 控制跳向上一个节点的非邻居的概率 (即,p是控制访问走过的node,即往回走;q是控制访问还没有走过的node,即向外走。), 具体的未归一的跳转概率值 πvx= αpq(t,x) 如下所示
在这里插入图片描述
其中 , dtx 表示节点 t 和 x 之间的最短距离 . 为了获得最优的超参数 p 和 q 的取值 , node2vec 通过半监督形式 , 利用网格搜索最合适的参数学习节点表示。

posted @ 2019-10-05 17:28  旅人_Eric  阅读(1151)  评论(0编辑  收藏  举报