美文网首页算法深度学习
重启随机游走算法Random Walk with Restart

重启随机游走算法Random Walk with Restart

作者: 笨蛋白熊 | 来源:发表于2020-05-06 14:14 被阅读0次

最近找了一下RWR算法的介绍,发现中文的blog全是互相抄的,讲的不是很清楚。最后发现medium上面有个博文写的还不错,下面抄了一点。
https://medium.com/@chaitanya_bhatia/random-walk-with-restart-and-its-applications-f53d7c98cb9

问题描述

最基本的随机游走:给定一个连接图,以及图中每个节点的转移概率,目的就是找到从某个起点开始随机走动,最终停在每个点的概率。
重启随机游走的区别就是在每次游走之后有一定概率回到起点。

先看一下公式:

r = cWr+ (1-c)e

c的大小在0,1之间,W为转移概率矩阵,W_{ij}是从节点{i}到节点{j}的概率。e是起点向量,i为起点则e[i]=1。r是终点向量。
下面来解释这个公式

公式解释

当e为起点,下次移动的落点为i的概率可以用下面这个公式得到:

r_o[i] = e*W[i]

W[i]W的第i行。所以如果没有重启机制的话,k次移动之后的落点为i的概率是:

r_k[i] = W[i]^k*e = W[i]*r_{k-1}

如果有重启机制就只能用递推公式:

r_k[i] = c*W[i].r_{k-1} + (1-c)*e

如果假定随着移动次数增加,r最终会收敛(事实也是如此),递推公式就可以写成最开始给出的那个公式:

r = cWr+ (1-c)e

解法

暴力一点就是迭代直到收敛。
或者求逆矩阵

(I — cW)r = (1-c)e

得到

r = (1-c)( I — cW)⁻¹e

有啥用呢?

感觉基本上都是把落点概率作为一种相似度度量。
Image segmentation
图像分割中,每个像素作为图中的节点,转移概率为像素之间的相似度,以某个像素为起点游走,落点概率高的可以作为一个cluster。
类似的应用还有Community detection, Recommender Systems等。

相关文章

网友评论

    本文标题:重启随机游走算法Random Walk with Restart

    本文链接:https://www.haomeiwen.com/subject/kgzightx.html