深度优先遍历(DFS)、广度优先遍历(BFS)、随机游走(Random Walk)

深度优先遍历(Depth-First-Search)

深度优先遍历(DFS)的方法是:
从根节点开始(可选图中任意节点作为根节点),并在回溯之前尽可能沿着每个分支进行探索,如下图所示(图摘自Wikipedia)。
深度优先遍历(DFS)、广度优先遍历(BFS)、随机游走(Random Walk)
深度优先遍历得到的是同质性(homophily):通过两个节点的距离来衡量它们之间的相似性。如果两个节点的距离越近,则它们的同质性越高,也就是相似度越大。

广度优先遍历(Breadth-First-Search)

广度优先遍历(BFS)的方法是:
从根节点(或图的任意节点,有时称为“搜索关键字” )开始,并探索当前深度的所有邻居节点,然后再继续下一个节点 深度级别,如下图所示(图摘自Wikipedia)。

深度优先遍历(DFS)、广度优先遍历(BFS)、随机游走(Random Walk)
广度优先遍历得到的是结构相似性 (structural equivalence):结构相似性是衡量两个节点在网络中所在的位置和结构的相似性。

BFS的非递归实现类似于深度优先遍历的非递归实现,但在以下两个方面有所不同:

  1. 采用先入先出的序列代替了DFS的堆栈
    It uses a queue (First In First Out) instead of a stack
  2. 在将顶点加入序列前检查顶点是否被发现,而不是在遍历时才检测
    It checks whether a vertex has been discovered before enqueueing the vertex rather than delaying this check until the vertex is dequeued from the queue.

随机游走(Random Walk)

随机游走是一种数学对象,称为随机过程或随机过程,它描述的路径由某些数学空间(例如整数)上的一系列随机步长组成,最早由Karl Pearson在1905年提出。
图上的随机游走是指选择图中一个顶点,随机地选择一个邻居节点,然后把其作为出发点,再随机选择邻居节点,然后重复。
在加权网络结构图,还可以根据权重来设置某节点游走到另外一个节点的概率。
随机游走在生成节点序列中,在一定程度上既可以照顾到homophily,又可以照顾到structural equivalence。

*文章参考

  1. Wikipedia
  2. 深度学习在金融领域的应用