COMP5313 Tutorial 06 - PageRank 题解

Week 6 Tutorial: PageRank 题解

课程:COMP5313/COMP4313 — Large Scale Networks, S1 2026 主题:PageRank 的定义与计算 依据教材 Networks, Crowds, and Markets(Easley & Kleinberg)第 14.3 节


一、预备知识回顾

1.1 基本 PageRank 更新规则(Basic PageRank Update Rule)

网络有 \(n\) 个节点,所有节点初始 PageRank 值为 \(1/n\)

更新规则: > 每个页面将其当前 PageRank 均等地(equally)分给每条出链(out-going link),送给其指向的页面。若某页面没有出链,则把自己的 PageRank 全部传给自己(即保留不变)。

数学形式\[v'_i = \sum_{j \to i} \frac{v_j}{d_j^{out}}\] 其中 \(d_j^{out}\) 为节点 \(j\) 的出度;若 \(d_j^{out}=0\)\(v'_j = v_j\)(保留自身)。

矩阵形式\(v' = M v\),其中 \(M\) 是列随机的转移矩阵(column-stochastic transition matrix)。

1.2 均衡 PageRank 值(Equilibrium PageRank)

均衡条件\[v = Mv\]

即再次应用更新规则时所有分数不变。同时有 \(\sum_i v_i = 1\)(归一化条件)。

1.3 缩放 PageRank(Scaled PageRank)

为避免 Spider Trap(自环陷阱)和 Dead End(死端)问题,引入缩放因子 \(\alpha \in (0, 1)\)(常用 \(0.8 \sim 0.9\))。

缩放更新规则\[v' = \alpha M v + \frac{1-\alpha}{n} \mathbf{e}\]

其中 \(\mathbf{e}\) 是全 1 向量。直观解释:以概率 \(\alpha\) 跟随链接浏览,以概率 \(1-\alpha\) 随机跳转到任意节点。


二、练习 1:基本 PageRank 值计算

2.1 Figure 1(a):三节点图

图结构:节点 \(\{a, b, c\}\),边集: - \(a \to a\)(自环),\(a \to b\)\(a \to c\) - \(b \to a\)\(b \to c\) - \(c \to b\) - \(c \to c\)(自环)

出度

节点 出度 出链目标
\(a\) 3 \(a, b, c\)
\(b\) 2 \(a, c\)
\(c\) 2 \(b, c\)

建立均衡方程 \(v = Mv\)

\[v_a = \frac{v_a}{3} + \frac{v_b}{2}\]

\[v_b = \frac{v_a}{3} + \frac{v_c}{2}\]

\[v_c = \frac{v_a}{3} + \frac{v_b}{2} + \frac{v_c}{2}\]

归一化条件\(v_a + v_b + v_c = 1\)

求解

由第一式: \[v_a - \frac{v_a}{3} = \frac{v_b}{2} \quad \Rightarrow \quad \frac{2v_a}{3} = \frac{v_b}{2} \quad \Rightarrow \quad v_b = \frac{4v_a}{3}\]

由第三式: \[v_c - \frac{v_c}{2} = \frac{v_a}{3} + \frac{v_b}{2} \quad \Rightarrow \quad v_c = \frac{2v_a}{3} + v_b\]

代入 \(v_b = \frac{4v_a}{3}\),得: \[v_c = \frac{2v_a}{3} + \frac{4v_a}{3} = 2v_a\]

结合归一化: \[v_a + \frac{4v_a}{3} + 2v_a = 1 \quad \Rightarrow \quad \frac{13v_a}{3} = 1 \quad \Rightarrow \quad v_a = \frac{3}{13}\]

因此 \(v_b = \frac{4}{13}\)\(v_c = \frac{6}{13}\)

均衡值\[\boxed{v_a = \frac{3}{13},\quad v_b = \frac{4}{13},\quad v_c = \frac{6}{13}}\]

2.2 均衡验证

应用一次更新规则:

  • \(a\) 接收\(a\) 的三分之一 \(\frac{1}{13}\) + \(b\) 的一半 \(\frac{2}{13}\)\(v'_a = \frac{3}{13}\)
  • \(b\) 接收\(a\) 的三分之一 \(\frac{1}{13}\) + \(c\) 的一半 \(\frac{3}{13}\)\(v'_b = \frac{4}{13}\)
  • \(c\) 接收\(a\) 的三分之一 \(\frac{1}{13}\) + \(b\) 的一半 \(\frac{2}{13}\) + \(c\) 的一半 \(\frac{3}{13}\)\(v'_c = \frac{6}{13}\)

三个值均未改变 → 确实是均衡值。

2.3 Figure 1(b):移除 \(b \to a\)

关键变化:移除 \(b \to a\) 后,\(b\) 仍有出链 \(b \to c\),所以它不是死端(Dead End)。图中 \(\{b,c\}\) 形成闭合部分:PageRank 一旦从 \(a\) 流入 \(b,c\),就不会再回到 \(a\)

新的边集: - \(a \to a\)\(a \to b\)\(a \to c\) - \(b \to c\) - \(c \to b\)\(c \to c\)

新的转移矩阵列(列 = 源节点,行 = 目标节点): \[M = \begin{pmatrix} 1/3 & 0 & 0 \\ 1/3 & 0 & 1/2 \\ 1/3 & 1 & 1/2 \end{pmatrix}\]

(列序 \(a, b, c\)

均衡方程\[v_a = \frac{v_a}{3}\] \[v_b = \frac{v_a}{3} + \frac{v_c}{2}\] \[v_c = \frac{v_a}{3} + v_b + \frac{v_c}{2}\]

求解

由第一式: \[v_a = \frac{v_a}{3} \quad \Rightarrow \quad v_a = 0\]

代入第二式: \[v_b = \frac{v_c}{2}\]

结合归一化: \[v_b + v_c = 1,\quad v_b = \frac{v_c}{2}\]

因此: \[\frac{3v_c}{2} = 1 \quad \Rightarrow \quad v_c = \frac{2}{3},\quad v_b = \frac{1}{3}\]

均衡值\[\boxed{v_a = 0,\quad v_b = \frac{1}{3},\quad v_c = \frac{2}{3}}\]

2.4 现象解释

  • \(a\) 只有自环作为入链,但每轮会把一部分 PR 分给 \(b,c\);均衡时必须满足 \(v_a = v_a/3\),所以 \(v_a = 0\)
  • \(b,c\) 形成闭合子图:\(b \to c\)\(c \to b,c\),PageRank 进入后不会回到 \(a\)
  • \(c\) 同时接收 \(b\) 的全部 PR 和自己的部分 PR,因此最终高于 \(b\)

这是基本 PageRank 在非强连通图上的典型现象:PageRank 会集中到闭合连通部分,其他节点可能降为 0。Scaled PageRank(见练习 3)通过引入"随机跳转"解决此问题。


三、练习 2:均衡值验证

3.1 Figure 2(a):六节点对称图

图结构(节点 \(\{A, B, C, D, E, G\}\)):

边集(根据图中箭头): - \(A \to B\)\(A \to C\) - \(B \to D\)\(B \to E\) - \(C \to E\)\(C \to G\) - \(D \to A\)\(E \to A\)\(G \to A\)

出度

节点 出度 出链目标
\(A\) 2 \(B, C\)
\(B\) 2 \(D, E\)
\(C\) 2 \(E, G\)
\(D\) 1 \(A\)
\(E\) 1 \(A\)
\(G\) 1 \(A\)

提议值\(v_A = v_E = \frac{1}{4}\)\(v_B = v_C = v_D = v_G = \frac{1}{8}\)

验证 \(v = Mv\)

\[v_B = \frac{v_A}{2} = \frac{1}{8} \quad \text{成立}\]

\[v_C = \frac{v_A}{2} = \frac{1}{8} \quad \text{成立}\]

\[v_D = \frac{v_B}{2} = \frac{1}{16} \ne \frac{1}{8} \quad \text{不成立}\]

因此提议值不是均衡值。

建立完整方程组:

\[v_A = v_D + v_E + v_G\]

\[v_B = \frac{v_A}{2}\]

\[v_C = \frac{v_A}{2}\]

\[v_D = \frac{v_B}{2}\]

\[v_E = \frac{v_B}{2} + \frac{v_C}{2}\]

\[v_G = \frac{v_C}{2}\]

代入消元:

\[v_B = v_C = \frac{v_A}{2}\]

\[v_D = v_G = \frac{v_A}{4}\]

\[v_E = \frac{v_A}{4} + \frac{v_A}{4} = \frac{v_A}{2}\]

利用归一化条件:

\[v_A + \frac{v_A}{2} + \frac{v_A}{2} + \frac{v_A}{4} + \frac{v_A}{2} + \frac{v_A}{4} = 1\]

\[3v_A = 1 \quad \Rightarrow \quad v_A = \frac{1}{3}\]

正确的均衡 PageRank 值

\[\boxed{v_A = \frac{1}{3},\quad v_B = v_C = v_E = \frac{1}{6},\quad v_D = v_G = \frac{1}{12}}\]

结构洞见\(A\) 将 PR 均分给 \(B,C\)\(B,C\) 再向下游分流;\(D,E,G\) 都回到 \(A\)。其中 \(E\) 同时接收 \(B,C\) 的贡献,所以 \(E\)\(B,C\) 同为 \(\frac{1}{6}\),而 \(D,G\) 只有单侧贡献,各为 \(\frac{1}{12}\)

3.2 Figure 2(b):六节点图

图结构(节点 \(\{A, B, C, D, E, F\}\)):

边集(根据图中箭头): - \(A \to C\)\(A \to D\) - \(B \to D\)\(B \to E\) - \(C \to D\)\(C \to F\) - \(D \to F\) - \(E \to D\)\(E \to F\) - \(F \to A\)\(F \to B\)

出度

节点 出度 出链目标
\(A\) 2 \(C, D\)
\(B\) 2 \(D, E\)
\(C\) 2 \(D, F\)
\(D\) 1 \(F\)
\(E\) 2 \(D, F\)
\(F\) 2 \(A, B\)

提议值\(v_A = v_B = 0.15\)\(v_C = v_E = 0.10\)\(v_D = 0.20\)\(v_F = 0.30\)

逐项验证 \(v = Mv\)

  • \(v_A = \frac{v_F}{2} = \frac{0.30}{2} = 0.15\)
  • \(v_B = \frac{v_F}{2} = 0.15\)
  • \(v_C = \frac{v_A}{2} = \frac{0.15}{2} = 0.075\) ❌ (提议值 \(0.10\)

\(C\) 不满足均衡条件!

结论:❌ 提议值不是正确的均衡值

3.3 求解正确的均衡值

建立完整方程组:

\[v_A = \frac{v_F}{2}\]

\[v_B = \frac{v_F}{2}\]

\[v_C = \frac{v_A}{2}\]

\[v_D = \frac{v_A}{2} + \frac{v_B}{2} + \frac{v_C}{2} + \frac{v_E}{2}\]

\[v_E = \frac{v_B}{2}\]

\[v_F = \frac{v_C}{2} + v_D + \frac{v_E}{2}\]

代入消元

\(v_A = v_B = \frac{v_F}{2}\)

\(v_C = \frac{v_A}{2} = \frac{v_F}{4}\)

\(v_E = \frac{v_B}{2} = \frac{v_F}{4}\)

\(v_D = \frac{v_F}{4} + \frac{v_F}{4} + \frac{v_F}{8} + \frac{v_F}{8} = \frac{v_F}{2} + \frac{v_F}{4} = \frac{3v_F}{4}\)

验证 \(v_F\) 方程\[v_F = \frac{v_C}{2} + v_D + \frac{v_E}{2} = \frac{v_F}{8} + \frac{3v_F}{4} + \frac{v_F}{8} = \frac{v_F}{4} + \frac{3v_F}{4} = v_F \quad \text{成立}\]

系统自洽,利用归一化条件求 \(v_F\)\[v_A + v_B + v_C + v_D + v_E + v_F = 1\]

\[\frac{v_F}{2} + \frac{v_F}{2} + \frac{v_F}{4} + \frac{3v_F}{4} + \frac{v_F}{4} + v_F = 1\]

\[v_F\left(1 + \frac{1}{4} + \frac{3}{4} + \frac{1}{4} + 1\right) = 1\]

\[v_F \cdot \frac{13}{4} = 1 \quad \Rightarrow \quad v_F = \frac{4}{13}\]

正确的均衡 PageRank 值

\[\boxed{v_A = v_B = \frac{2}{13}, \quad v_C = v_E = \frac{1}{13}, \quad v_D = \frac{3}{13}, \quad v_F = \frac{4}{13}}\]

数值对比

节点 提议值 正确值 十进制 差异
A 0.15 \(2/13\) ≈ 0.154 +0.004
B 0.15 \(2/13\) ≈ 0.154 +0.004
C 0.10 \(1/13\) ≈ 0.077 −0.023
D 0.20 \(3/13\) ≈ 0.231 +0.031
E 0.10 \(1/13\) ≈ 0.077 −0.023
F 0.30 \(4/13\) ≈ 0.308 +0.008

注意:提议值虽然总和为 1,但不满足 \(v = Mv\)。特别是 \(v_C = 0.10\) 远偏离正确的 \(0.077\)


四、练习 3:Scaled PageRank 值(\(\alpha = 4/5\)

4.1 问题设置

回到 Figure 1(b)(移除 \(b \to a\) 后的图),计算 \(\alpha = \frac{4}{5}\) 的 Scaled PageRank。

网络参数\(n = 3\)\(\alpha = 4/5\)\(1 - \alpha = 1/5\)

每节点跳转值\(\frac{1-\alpha}{n} = \frac{1/5}{3} = \frac{1}{15}\)

4.2 Scaled 更新方程

\[v'_i = \alpha \cdot (Mv)_i + \frac{1-\alpha}{n}\]

具体写出:

\[v_a = \alpha \cdot \frac{v_a}{3} + \frac{1}{15}\]

\[v_b = \alpha \left( \frac{v_a}{3} + \frac{v_c}{2} \right) + \frac{1}{15}\]

\[v_c = \alpha \left( \frac{v_a}{3} + v_b + \frac{v_c}{2} \right) + \frac{1}{15}\]

4.3 逐步求解

(1)先求 \(v_a\)\[v_a = \frac{4}{5}\cdot\frac{v_a}{3} + \frac{1}{15}\]

\[v_a - \frac{4v_a}{15} = \frac{1}{15}\]

\[\frac{11v_a}{15} = \frac{1}{15} \quad \Rightarrow \quad v_a = \frac{1}{11}\]

(2)用 \(v_b\) 方程表示 \(v_b\)

\[v_b = \frac{4}{5}\left(\frac{1}{33} + \frac{v_c}{2}\right) + \frac{1}{15}\]

\[v_b = \frac{4}{165} + \frac{2v_c}{5} + \frac{1}{15}\]

\[v_b = \frac{1}{11} + \frac{2v_c}{5}\]

(3)由归一化求 \(v_c, v_b\)

\[v_b + v_c = 1 - v_a = \frac{10}{11}\]

代入 \(v_b = \frac{1}{11} + \frac{2v_c}{5}\)

\[\frac{1}{11} + \frac{2v_c}{5} + v_c = \frac{10}{11}\]

\[\frac{7v_c}{5} = \frac{9}{11} \quad \Rightarrow \quad v_c = \frac{45}{77}\]

\[v_b = \frac{10}{11} - \frac{45}{77} = \frac{25}{77}\]

4.4 验证 \(v_b\)

\[v_b = \frac{4}{5}\left(\frac{v_a}{3} + \frac{v_c}{2}\right) + \frac{1}{15}\]

代入 \(v_a = \frac{1}{11}\)\(v_c = \frac{45}{77}\)

\[\frac{v_a}{3} = \frac{1}{33}, \quad \frac{v_c}{2} = \frac{45}{154}\]

通分到 \(/462\)\[\frac{v_a}{3} = \frac{14}{462}, \quad \frac{v_c}{2} = \frac{135}{462}\]

\[\frac{v_a}{3} + \frac{v_c}{2} = \frac{149}{462}\]

\[v_b = \frac{4}{5}\cdot\frac{149}{462} + \frac{1}{15} = \frac{298}{1155} + \frac{77}{1155} = \frac{375}{1155} = \frac{25}{77} \quad \text{成立}\]

同理验证 \(v_c\)

\[v_c = \frac{4}{5}\left(\frac{v_a}{3} + v_b + \frac{v_c}{2}\right) + \frac{1}{15}\]

\[\frac{v_a}{3} + v_b + \frac{v_c}{2} = \frac{1}{33} + \frac{25}{77} + \frac{45}{154} = \frac{299}{462}\]

\[v_c = \frac{4}{5}\cdot\frac{299}{462} + \frac{1}{15} = \frac{1196}{2310} + \frac{154}{2310} = \frac{1350}{2310} = \frac{45}{77} \quad \text{成立}\]

4.5 Scaled PageRank 最终值

\[\boxed{v_a = \frac{1}{11}, \quad v_b = \frac{25}{77}, \quad v_c = \frac{45}{77}}\]

十进制: - \(v_a \approx 0.091\) - \(v_b \approx 0.325\) - \(v_c \approx 0.584\)

4.6 对比基本 PageRank

节点 Basic PR Scaled PR (\(\alpha = 4/5\))
\(a\) 0 \(1/11 \approx 0.091\)
\(b\) \(1/3 \approx 0.333\) \(25/77 \approx 0.325\)
\(c\) \(2/3 \approx 0.667\) \(45/77 \approx 0.584\)

观察与解释: 1. Basic PR\(a\) 因无法从 \(b,c\) 获得回流而降为 0 2. Scaled PR 通过随机跳转机制,让 \(a\) 重新获得正的 PageRank 3. \(c\) 仍然最高,因为它接收 \(b\) 的全部 PR,同时保留自己的部分 PR 4. \(\alpha\) 越小,越接近均匀分布(\(1/n\));\(\alpha\) 越大,越接近基本 PageRank


五、综合总结

5.1 关键公式

类型 公式
Basic Update Rule \(v' = Mv\),死端"传给自己"
Equilibrium Condition \(v = Mv\)\(\sum v_i = 1\)
Scaled Update Rule \(v' = \alpha M v + \frac{1-\alpha}{n}\mathbf{e}\)

5.2 验证均衡值的标准流程

  1. 确定边结构:读图列出出度和出链目标
  2. 写转移矩阵:列 = 源节点,每列和为 1
  3. 建立方程 \(v = Mv\)
  4. 代入提议值:逐项检验是否相等
  5. 若失败:联立求解,用归一化定唯一解

5.3 死端与陷阱的对策

  • Basic PageRank 对死端/陷阱敏感:PR 被少数节点吸收
  • Scaled PageRank 引入随机跳转:所有节点都保留至少 \((1-\alpha)/n\) 的流量
  • 实际搜索引擎通常取 \(\alpha = 0.85\)(即 \(s = 0.85\)

5.4 与 HITS 对比

特性 PageRank HITS
核心概念 单一重要性分数 权威 + 中枢双分数
更新模型 流体/随机游走 相互递归
死端处理 需 Scaled 修正 无此问题
查询相关 查询无关(预计算) 查询相关(原始版本)
收敛性 强连通或 Scaled 时保证 矩阵 \(LL^T\) 保证

六、术语表

中文术语 English Term 简要说明
基本 PageRank Basic PageRank 最简单的 PageRank 定义,无缩放因子
均衡 PageRank Equilibrium PageRank 满足 \(v = Mv\) 的稳定分布
缩放 PageRank Scaled PageRank 引入随机跳转概率的 PageRank
缩放因子 Scaling Factor \(\alpha\) / \(s\) 跟随链接的概率,\(1-\alpha\) 为随机跳转
转移矩阵 Transition Matrix \(M\) 描述 PR 流动的列随机矩阵
列随机矩阵 Column-Stochastic Matrix 每列之和为 1 的非负矩阵
死端 Dead End 无出链的节点,会吸走 PR
自环陷阱 Spider Trap 有出链但永远回不到图外的子图
随机跳转 Teleportation / Random Jump Scaled PR 中以 \(1-\alpha\) 概率跳到随机节点
主特征向量 Principal Eigenvector 对应特征值 1 的向量,即均衡 PR
出度 Out-degree 节点发出的链接数
归一化 Normalization 让所有 PR 之和为 1
均匀分布 Uniform Distribution 每节点 \(1/n\)\(\alpha \to 0\) 时的极限

文档版本:2026-04-16 对应教材:Easley & Kleinberg, Networks, Crowds, and Markets, 第 14.3 节