图神经网络-随机游走

1. Random Walk with Restart(RWR): 带重启的随机游走算法

参考博客: Random Walk with Restart and its application

参考博客:重启随机游走算法RWR

在带重启的随机游走算法中, 一个节点转移到另一个节点的概率有两个(为了避免混乱, 应当心中常记这两项):

  1. 转移矩阵中的概率(我们简单的称之为转移概率)
  2. 综合了转移矩阵和重启(restart)概率的转移概率(这里我称之为综合转移概率)

注意, 这些说法只是为了在这篇笔记中不至于使人混乱, 真实、权威的叫法未必如此.

​ 带重启的随机游走算法考虑的是一个网络: G ( V , E ) G(V,E) G(V,E).

​ 首先我们有一个转移概率矩阵: P = [ P 00 P 01 P 10 P 11 ] P=\begin{bmatrix} P^{00} & P^{01} \\ P^{10} & P^{11} \end{bmatrix} P=[P00P10P01P11], 对角线的值应该全为0

​ 此外我们有一个重启概率(restart probability), 当从节点 x x x进行下一步随机游走时,有一个概率 a a a: 从节点 x x x触发将会到达随机的一个邻居节点,同时有 1 − a 1-a 1a的概率会停留在节点 x x x.

​ 如果 q x y q_{xy} qxy定义为游走器从 x x x y y y的概率, q y q_y qy是从 x x x出发到达各个节点的概率向量, 那么:
q x ⃗ = a P T q x ⃗ + ( 1 − a ) e x ⃗ \vec{q_{x}}=a\bold{P}^T\vec{q_x}+(1-a)\vec{e_x} qx =aPTqx +(1a)ex
​ 上面这个式子可以改写为:
q x ⃗ = ( 1 − a ) ( 1 − a P ) − 1 e x ⃗ \vec{q_x}=(1-a)(1-aP)^{-1}\vec{e_x} qx =(1a)(1aP)1ex
​ 这个 q x ⃗ \vec{q_x} qx 通过解方程得到, 因为转移概率矩阵 P P P是在不考虑重启(restart)情况下的,当具有重启后, x x x转义到各个节点的真实概率应当重启计算.

​ 在这, e x ⃗ \vec{e_x} ex q x ⃗ \vec{q_x} qx 这两个向量维度一样, 不同之处在于, e x ⃗ \vec{e_x} ex 只有第 x x x个元素为1(其余为0). e x ⃗ \vec{e_x} ex 代表了从 x x x节点游走回 x x x节点这个操作.

​ 最终: 节点 x x x y y y的相似度可以定义为:
S x y R W R = q x y + q y x S_{xy}^{RWR} = q_{xy} + q_{yx} SxyRWR=qxy+qyx


上面求解 q x ⃗ \vec{q_x} qx 的式子虽然看起来直观但是实现时就会产生疑问, P P P是二维矩阵而 q x ⃗ \vec{q_x} qx 是一维向量,相乘如何有意义?为此,下面从细节来阐述。此时我们不在局限于某一点到零一点的转移向量,我们考虑的是全局转移矩阵:

首先我们考虑计算综合概率矩阵的第一项(这里我们忽略 a a a, 因为对于一个确定的重启概率, a a a不过是一个常量:

计算综合概率矩阵的第一项

最终会得到一个矩阵 A A A, 该矩阵应该从的方向上看, 譬如第1列, 代表从第一个节点到其他节点的综合转移概率. [事实上, 行列的规定, 与 P P P Q Q Q矩阵的行列息息相关并无定式]

接下来我们再考虑第二项, 之前我们说到, e x ⃗ \vec{e_x} ex 向量是只有第 x x x个元素为1其余为0的向量, 把其组合为矩阵, 就得到一个单位矩阵(对角线为1, 其余元素为0的矩阵)! 这个单位矩阵与 1 − a 1-a 1a相乘, 再加到第一项上, 就可以达到这样一种效果:

上文中我们提过, 转移概率矩阵 P P P的对角线元素都是0-即节点不会游走到自己(概率为0), 最终的综合概率矩阵对角线元素也应全为0, 但通过restart重启, 将第二项加到综合概率矩阵上, 得到的综合概率矩阵就不为0了, 这也恰恰符合带重启的随机游走算法会停留在当前节点的行为!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanqiliang630

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值