PageRank算法详解

文章目录

  • 1、 P a g e R a n k \bold{PageRank} PageRank 基本定义
    • 1.1 Spider Traps问题
      • Spider Traps解决方案
    • 1.2 Dead Ends问题
      • Dead Ends解决方案
  • 2、 P a g e R a n k \bold{PageRank} PageRank的一般定义

P a g e R a n k \bold{PageRank} PageRank算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。在一定条件下,极限情况访问每个结点的概率收敛到平稳分布,这时各个结点的平稳概率值就是其 P a g e R a n k \bold{PageRank} PageRank值,表示结点的重要度。 P a g e R a n k \bold{PageRank} PageRank是递归定义的, P a g e R a n k \bold{PageRank} PageRank的计算可以通过迭代算法进行。

1、 P a g e R a n k \bold{PageRank} PageRank 基本定义

已知:一个包含 n n n个节点的强连通且非周期性的有向图,在此基础上定义随机游走模型(一阶马尔科夫链)。

随机游走的特点:一个节点转移到有向边连出的所有节点的概率相等,转移矩阵为 M \bold{M} M,并且这个马尔可夫链具有平稳分布 R R R,所谓平稳分布也就是最终节点间的转移概率趋于平稳,平稳分布可以认为是一个最终收敛后得到的概率矩阵。
M R = R MR=R MR=R
此时,平稳分布 R \bold{R} R 即为有向图的 P a g e R a n k \bold{PageRank} PageRank 值, R \bold{R} R的各个分量为每一个节点 v i v_i vi P a g e R a n k \bold{PageRank} PageRank
R = [ P R ( v 1 ) P R ( v 2 ) ⋯ P R ( v i ) ] R=\begin{bmatrix} PR(v_1)\\ PR(v_2)\\\cdots \\PR(v_i) \end{bmatrix} R= PR(v1)PR(v2)PR(vi)
并且满足,
P R ( v i ) ≥ 0 , i = 1 , 2 , … , n PR(v_i)\ge0,i=1,2,\dots,n PR(vi)0,i=1,2,,n
∑ i = 1 n P R ( v i ) = 1 \sum_{i=1}^{n}PR(v_i)=1 i=1nPR(vi)=1

最后得到
P R ( v i ) = ∑ v j ∈ M ( v i ) P R ( v j ) N ( v j ) PR(v_i)=\sum_{v_j \in M(v_i)}\frac{PR(v_j)}{N(v_j)} PR(vi)=vjM(vi)N(vj)PR(vj)
节点 v i v_i vi P a g e R a n k \bold{PageRank} PageRank值为其连边节点 P a g e R a n k \bold{PageRank} PageRank值的总和

1.1 Spider Traps问题

自循环节点。某个节点存在一个外链,并且外链连接自己

PageRank算法详解_第1张图片
此类问题情况下,转移矩阵 M \bold{M} M 如下:
PageRank算法详解_第2张图片
可以发现节点 C \bold{C} C 唯一连接是连接自己,导致转移矩阵 C \bold{C} C 节点转移至其它节点的概率均为0,而C节点的 P a g e R a n k \bold{PageRank} PageRank会趋于1,而其他节点的 P a g e R a n k \bold{PageRank} PageRank值趋于0

Spider Traps解决方案

为了避免这种节点没有出链或只有入链的情况。在式中增加了阻尼因子,阻尼因子模拟了用户通过链接继续点击网页的概率,避免了某个节点 P a g e R a n k \bold{PageRank} PageRank值趋于1的情况。

得到改进后 P a g e R a n k \bold{PageRank} PageRank计算公式如下图,d为阻尼因子,N为页面总数。
P R ( v i ) = d M R + ( 1 − d ) PR(v_i)=d\bold{M}R+(1-d) PR(vi)=dMR+(1d)
前一项表示访问节点的概率,若该节点没有访问者,则概率为 1 − d 1-d 1d,避免了最终概率为0的情况

1.2 Dead Ends问题

一般的有向图未必满足强连通且非周期,比如在互联网中,一部分网页没有连接出去的超链接,也就是通过这些网页无法跳转到其它网页。

PageRank算法详解_第3张图片
此类问题情况下,转移矩阵 M \bold{M} M 如下:
PageRank算法详解_第4张图片
可以发现节点 C \bold{C} C 没有连出的外链,导致转移矩阵 C \bold{C} C 节点转移至其它节点的概率均为 0 \bold{0} 0,会导致反复迭代之后最终结果为 0 \bold{0} 0

Dead Ends解决方案

  • 增加一个列矩阵,元素均为 1 n \frac{1}{n} n1,其中 n n n为节点个数

2、 P a g e R a n k \bold{PageRank} PageRank的一般定义

P a g e R a n k \bold{PageRank} PageRank的一般定义意味着互联网浏览者,按照以下方法在网上随机游走:

  1. 浏览者以概率 d d d 决定按照超链接随机跳转,这时以等概率从连接出去的超链接跳转到下一个网页
  2. 以概率 1 − d 1-d 1d 决定完全随机跳转,这时以等概率跳转到任意一个网页。 第二个机制保证从没有连接出去的超链接的网页也可以跳转出。

故每个节点的 P a g e R a n k \bold{PageRank} PageRank值为:

P R ( v i ) = d ( ∑ v j ∈ M ( v i ) P R ( v j ) N ( v j ) ) + 1 − d n PR(v_i)=d\left ( \sum_{v_j\in M(v_i)}\frac{PR(v_j)}{N(v_j)} \right )+\frac{1-d}{n} PR(vi)=d vjM(vi)N(vj)PR(vj) +n1d

你可能感兴趣的:(算法,数据挖掘)