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

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

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

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

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

带重启的随机游走算法考虑的是一个网络: 随机性神经网络的实验 随机游走 图神经网络_人工智能.

首先我们有一个转移概率矩阵: 随机性神经网络的实验 随机游走 图神经网络_算法_02, 对角线的值应该全为0

此外我们有一个重启概率(restart probability), 当从节点随机性神经网络的实验 随机游走 图神经网络_算法_03进行下一步随机游走时,有一个概率随机性神经网络的实验 随机游走 图神经网络_线性代数_04: 从节点随机性神经网络的实验 随机游走 图神经网络_算法_03触发将会到达随机的一个邻居节点,同时有随机性神经网络的实验 随机游走 图神经网络_线性代数_06的概率会停留在节点随机性神经网络的实验 随机游走 图神经网络_算法_03.

如果随机性神经网络的实验 随机游走 图神经网络_人工智能_08定义为游走器从随机性神经网络的实验 随机游走 图神经网络_算法_03随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_10的概率, 随机性神经网络的实验 随机游走 图神经网络_算法_11是从随机性神经网络的实验 随机游走 图神经网络_算法_03出发到达各个节点的概率向量, 那么:
随机性神经网络的实验 随机游走 图神经网络_算法_13
上面这个式子可以改写为:
随机性神经网络的实验 随机游走 图神经网络_人工智能_14
这个随机性神经网络的实验 随机游走 图神经网络_人工智能_15通过解方程得到, 因为转移概率矩阵随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_16是在不考虑重启(restart)情况下的,当具有重启后,随机性神经网络的实验 随机游走 图神经网络_算法_03转义到各个节点的真实概率应当重启计算.

在这, 随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_18随机性神经网络的实验 随机游走 图神经网络_人工智能_15这两个向量维度一样, 不同之处在于, 随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_18只有第随机性神经网络的实验 随机游走 图神经网络_算法_03个元素为1(其余为0).随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_18代表了从随机性神经网络的实验 随机游走 图神经网络_算法_03节点游走回随机性神经网络的实验 随机游走 图神经网络_算法_03节点这个操作.

最终: 节点随机性神经网络的实验 随机游走 图神经网络_算法_03随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_10的相似度可以定义为:
随机性神经网络的实验 随机游走 图神经网络_人工智能_27


上面求解随机性神经网络的实验 随机游走 图神经网络_人工智能_15的式子虽然看起来直观但是实现时就会产生疑问, 随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_16是二维矩阵而随机性神经网络的实验 随机游走 图神经网络_人工智能_15是一维向量,相乘如何有意义?为此,下面从细节来阐述。此时我们不在局限于某一点到零一点的转移向量,我们考虑的是全局转移矩阵:

首先我们考虑计算综合概率矩阵的第一项(这里我们忽略随机性神经网络的实验 随机游走 图神经网络_线性代数_04, 因为对于一个确定的重启概率, 随机性神经网络的实验 随机游走 图神经网络_线性代数_04不过是一个常量:

随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_33

最终会得到一个矩阵随机性神经网络的实验 随机游走 图神经网络_人工智能_34, 该矩阵应该从的方向上看, 譬如第1列, 代表从第一个节点到其他节点的综合转移概率. [事实上, 行列的规定, 与随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_16随机性神经网络的实验 随机游走 图神经网络_人工智能_36矩阵的行列息息相关并无定式]

接下来我们再考虑第二项, 之前我们说到, 随机性神经网络的实验 随机游走 图神经网络_随机性神经网络的实验_18向量是只有第随机性神经网络的实验 随机游走 图神经网络_算法_03个元素为1其余为0的向量, 把其组合为矩阵, 就得到一个单位矩阵(对角线为1, 其余元素为0的矩阵)! 这个单位矩阵与随机性神经网络的实验 随机游走 图神经网络_线性代数_06相乘, 再加到第一项上, 就可以达到这样一种效果:

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