RWR介绍
Random Walk with Restart(RWR)
- RWR是最早提出的一种用于图像分割的算法。它迭代地探索网络的整体结构,以估计两个节点之间的接近度(亲和力分数)。
从一个节点开始,步行者在每一步都面临两个选择:要么移动到随机选择的邻居,要么跳回到开始节点。该算法只包含一个固定参数r,称为“重启概率”(1−r表示移动到邻居的概率)。在迭代达到稳定后,稳定概率向量包含了网络中所有节点与起始节点的亲和力评分。这个稳定的概率向量可以看作是起始节点对网络施加的“有影响力的影响”。
除了单个启动节点外,RWR还可以扩展到一组启动节点。在这种情况下,得到的稳定概率向量也可以被认为是对网络的“有影响的影响”,但由一组起始节点共同施加。
根据单个启动节点的稳态概率向量,可以计算出一组启动节点的稳态概率向量。因此,预先计算图中节点与作为种子的每个起始节点的亲和矩阵(通过循环遍历图中的每个节点)是很有用的。这背后的动机是,这个预先计算的关联矩阵可以被广泛重用,以获得任何节点组合之间的关联得分。例如,这种策略可以极大地减轻在对大量随机节点组合进行抽样时所涉及的计算负担。因此,这种预计算在下游使用中确实允许一些灵活性,特别是在统计测试中。
- 重启随机游走算法是在随机游走算法的基础的改进。从图中的某一个节点出发,每一步面临两个选择,随机选择相邻节点,或者返回开始节点。算法包含一个参数a为重启概率,1-a表示移动到相邻节点的概率,经过迭代到达平稳,平稳后得到的概率分布可被看作是受开始节点影响的分布。重启随机游走可以捕捉两个节点之间多方面的关系,捕捉图的整体结构信息。
RWR公式推导
- 给出一个具有转移概率pᵢⱼ的连通图,该概率表示从状态/节点j到i的转移概率。在每个阶段的普通随机游走中,我们可以到达任何相邻节点。所以最后的任务是计算我们最有可能到达的位置。
在RWR中,主要不同之处在于,在每个阶段,我们可以重启(即转到起始节点)的概率是存在的。从形式上讲,我们必须找到这个方程的解
其中,c是(0,1)范围内的数,W是转移概率矩阵,其中W[i,j]表示从j到i的概率,e是起始向量,即,如果i是起始节点则e[i]=1,否则e[i]=0,并且r是列向量,其中r[i]表示在节点i的概率。
我们是如何得到这个方程式的,我们将在以下几节中解释。
可以将正常的随机行走与醉酒人在普通场地中行走相关联,在普通场地中,他可以以固定的概率向每个方向迈出一步,而RWR可以被认为是在场地中的同一个醉酒人,在该场地中,他在每一步都有有限的概率可以触摸端口按键,该端口按键会将他传送回场地中的起始位置。
解释
- 假设我们正好在起始节点e,那么在下一步移动中出现在任何节点i的概率r将由下式给出
- 其中W[i]表示矩阵W的第i行,即从所有节点到节点i的转移概率。在下一圈中,位于节点i的概率将为
- 因此,在没有重新启动的情况下,k次移动后到达节点i的概率可以简单地由下式给出
- 现在考虑到重启,得到了
- 如果假定随着移动次数增加,r最终会收敛(事实也是如此),递推公式就可以写成最开始给出的那个公式:
- 上面的方程式看起来可能与PageRank方程式非常相似。事实上,普通PageRank和RWR之间的唯一区别是,通常在页面排名中,跳转到另一个页面的概率是一致的,即我们用全1的列向量替换e。与PageRank相比,RWR不谈论矩阵W是如何构造的。
RWR解法
传统上,有两种解决方案用于解决与RWR相关的问题。
1)迭代直到收敛
该解决方案涉及使用以下公式迭代地计算向量r的值
直到我们到达收敛点或指定的迭代次数。因此,解决方案不需要预计算,通常我们在很少的迭代次数内就能达到收敛。例如,在PageRank的原始论文中,有报道说,对于一个由3.22亿条链路(边内和边外)组成的网络,PageRank算法在52次迭代中收敛到可容忍的限度内。但是,对于具有低连接性和大量节点的图,这个数字可能会更大。所需时间与迭代次数成线性关系,与图形中的节点数成平方关系(由于矩阵向量相乘)。
2)使用矩阵的逆
通过将带有r的项带到LHS,可以重写上面得到的公式。这样我们就能得到
这给了我们
在该方法中,耗时和计算量大的一步是利用高斯消去法求复杂度为O(n³)的矩阵的逆矩阵。由于矩阵向量乘法的复杂度为O(n²),因此矩阵求逆运算的复杂度决定了算法的整体复杂度。另一个需要注意的重要事项是,在这里,通过计算矩阵
一旦我们可以获得给定图形的任何起始节点所需的概率。如果我们需要在具有不同起始节点的同一图上执行几次随机遍历,这是特别有用的(例如,在使用随机游走算法的图像分割任务中)。但是,它需要存储
这需要O(n²)空间。
- 还存在一些优化,其通过假设矩阵中的大多数值是相关的来减少存储矩阵逆所需的空间量。
- 需要注意的重要一点是,只要图是连通的,向量r的初始值就不会影响收敛的概率。这可以从我们使用RWR的矩阵求逆方法得到的表达式中看出。
RWR应用
(1)图像分割:
最初提出RWR用于图像分割。图像被转换成图形,其中相邻像素之间的边缘的权重表示两个像素之间的相似性。它的工作方式是,我们从图像中的某些位置释放多个随机漫游者(由用户选择或使用自动过程)。这给了我们一个分数,即每个像素与给定像素的距离有多近。算法为给定随机行走产生较高值的像素/节点被分配与该随机行走的起始节点相同的簇。
(2)自动图像字幕:
RWR可用于自动为图像生成字幕。它的工作方式是,首先使用一组带标题的图像和查询图像制作一个图。然后,对于每个字幕词,它使用RWR来估计与图像的贴近度。然而,由于基于深度学习的技术的兴起,这种方法目前并没有得到很好的应用
(3)社区检测:
社区检测方法通常基于某些函数/距离对图中的节点进行聚类。由于RWR给出了图中节点的接近程度,因此它可以用作图中一对节点之间的距离。
(4)推荐系统:
RWR给出了图中不同节点的接近程度。这一特性自然适用于推荐系统。Twitter使用类似的方法来推荐用户关注。