The PageRank Citation Ranking: Bringing Order to the Web

Page L., Brin S., Motwani R. and Winograd T. The pagerank citation ranking: bringing order to the web. Technical report, Stanford InfoLab, 1998.

经典的 PageRank 算法.

符号说明

  • \(u, v\) 结点;
  • \(F_u\), 由结点 \(u\) 指向的结点 \(v\) 构成的集合;
  • \(B_u\), 由指向结点 \(u\) 的结点 \(v\) 构成的集合;
  • \(N_u = |F_u|\);

算法流程

  • 以往往往通过 \(|B_u|\) 来衡量一个网页的重要性, 但是现实往往并不是这样的. 由一些权威官网所引导的出来的网站, 往往比那些被很多个'小'网站指向的网站更具权威性;

  • 故作者认为, 所有网站的评级 \(R \in \mathbb{R}^N\), 应当满足:

    \[R(u) = c \sum_{v \in B_u} \frac{R(v)}{N_v}. \]

    可以这么理解, 每个网站会平均地将自己的价值 \(R(v)\) 分给所指向的网站 \(u\), 而网站 \(u\) 的价值为所有指向它网站所给予的价值的总和 (不考虑 \(c\)), 用矩阵的表示方法即为

    \[R = c A R, \]

    其中 \(A \in \mathbb{R}^{N \times N}\),

    \[A_{uv} = \left \{ \begin{array}{ll} \frac{1}{N_v} & v \rightarrow u, \\ 0 & \text{else}. \end{array} \right . \]

    易知 \(\sum_{u} A_{uv} = 1\);

  • 上面的定义方式, 容易发生自训练 (self-loop), 比如两个网页互相指向对方, 且同时没有其它的指向, 那么很容易任何指向二者的 flow 都会陷入这个 loop 中无法逃脱, 产生了 rank sink 的问题, 故作者采用如下的迭代方式:

    \[R' = cAR' + c E, \]

    其中 \(E \in \mathbb{R}^{N}\) 是事先指定的向量, 比如取 \(E(v) = \frac{1}{N} \: \forall v\) 以表达一视同仁, 用 \(E(v) = \mathbb{I}(v = u)\) 表示 indicator 向量, 作为个性化的推荐;

  • 上面的形式通常有显式解:

    \[R' = c(I - cA)^{-1}E. \]

posted @ 2022-09-01 15:35  馒头and花卷  阅读(235)  评论(0编辑  收藏  举报