本文主要是介绍网络表示学习(DeepWalk,node2vec),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考链接
DeepWalk
- DeepWalk的主要思想是在由物品组成的图结构上进行随机游走,产生大量物品序列,然后将这些物品序列作为训练样本输入word2vec进行训练,得到物品的embedding。
- RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。
node2vec
- 2016年出现的n2v,相较于DeepWalk,是通过调整随机游走权重的方法使graph embedding的结果在网络的同质性(距离相近的节点embedding也应该相似)和结构性(结构相似的节点embedding应该相似)中进行权衡。
- 与DeepWalk的主要区别是:跳转概率;度优先搜索(BFS) 反映结构性;深度优先搜索(DFS)反映同质性;
- 跳转概率是三阶关系,即考虑当前跳转节点,以及前一个节点 到下一个节点的“距离”,通过返回参数p和进出(或叫远离)参数q控制游走的方向(返回还是继续向前);所以原文中p越小,越容易返回,一直在起始点周边震荡,微观搜索,发现节点处于中心还是边缘,结果越反映结构性,q越小,越容易往远处走,进行更广范围的搜索,才能发现不同“群体”的节点之间的相似性,才能更加体现宏观的同质性。
这篇关于网络表示学习(DeepWalk,node2vec)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!