上一文中说道定义节点相似度函数的时候使用Random Walk方法:
- CS224W3.1——节点Embedding
这节课来说一下Random Walk方法。在这篇中,我们来看一个更有效的相似函数——在图上随机游走的节点共现的概率。我们介绍随机游走背后的直觉,我们将优化的目标函数,以及我们如何有效地执行优化。我们引入了node2vec,它结合了BFS和DFS来推广随机游走的概念。
文章目录
- 1. 背景
- 2. Random Walk定义
- 3. 为什么使用Random Walk?
- 4. 无监督学习
- 5. Random Walk流程
- 6. 随机游走策略
- 6.1 node2vec
- 6.2 其他随机游走策略
- 7. 总结
1. 背景
2. Random Walk定义
我们要怎样定义相似性和概率的概念?
下面是思想:
- 首先,我们需要通过随机游走策略(后面会说)估计出,从节点u到节点v的概率。
- 然后我们要优化embedding,用这种方式来编码随机游走统计。
3. 为什么使用Random Walk?
我们想使用随机漫步,因为它们很有表现力,很灵活。给出了一种灵活的随机节点相似度定义,该定义结合了具有信息的局部和高阶邻居。
这个想法是,如果通过随机游走,从节点u访问到节点v,那么节点u和节点v很可能是相似的(它们有类似的网络邻居它们彼此靠得很近,它们之间可能有多条路径等等)。
这在某种程度上也是有效的因为我们在训练时不需要考虑所有的节点对。我们只需要考虑随机漫步中共出现的成对。
4. 无监督学习
设置优化问题:
- 随机游走优化:
但是这样计算复杂度很高:
来自softmax的归一化项是罪魁祸首:
答案是可以的:
其中的负采样:
也就是说度越高的节点,越可能被选为负例。
- 随机梯度下降(Stochastic Gradient Descent)优化损失函数:
5. Random Walk流程
6. 随机游走策略
6.1 node2vec
node2vec的思想是通过设置偏见(biased)去调整随机游走策略,可以是更倾向于广度优先搜索,那么这个时候就会更体现局部信息,也可以更倾向深度优先搜索,那么这个时候就会更体现全局信息。
两个超参数:
思想是记住来路。
参数设置:
总结: