PageRank
该算法求得的是每个网页节点相对于全局的重要性程度。
图中的节点可以视为网页,边表示跳转链接。
1.PageRank两阶段:
-
数量假设。当一个节点被指向的越多,则越重要。
-
质量假设。质量高的页面通过链接向其他页面传递更高的权重。
2.计算过程
-
将有向图转换为邻接矩阵。每一行为出链
M = [ 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 ] M=\begin{bmatrix} 0 & 1 & 1 & 1\\ 1 & 0 & 0 & 1\\ 0 & 0 & 0 & 0\\ 0 & 1 & 1 & 0 \end{bmatrix} M=⎣⎢⎢⎡0100100110011100⎦⎥⎥⎤ -
计算概率矩阵,即归一化
M ′ = [ 0 1 / 3 1 / 3 1 / 3 1 / 2 0 0 1 / 2 0 0 0 0 0 1 / 2 1 / 2 0 ] M'=\begin{bmatrix} 0 & 1/3 & 1/3 & 1/3\\ 1/2 & 0 & 0 & 1/2\\ 0 & 0 & 0 & 0\\ 0 & 1/2 & 1/2 & 0 \end{bmatrix} M′=⎣⎢⎢⎡01/2001/3001/21/3001/21/31/200⎦⎥⎥⎤
表示有多少概率链接到其他节点,如,节点1分别有1/3的概率跳转到2,3,4。求转置即可得到概率转移矩阵。
P = [ 0 1 / 2 0 0 1 / 3 0 0 1 / 2 1 / 3 0 0 1 / 2 1 / 3 1 / 2 0 0 ] P=\begin{bmatrix} 0 & 1/2 & 0 & 0\\ 1/3 & 0 & 0 & 1/2\\ 1/3 & 0 & 0 & 1/2\\ 1/3 & 1/2 & 0 & 0 \end{bmatrix} P=⎣⎢⎢⎡01/31/31/31/2001/2000001/21/20⎦⎥⎥⎤
概率转移矩阵即可描述一个用户在网上的下一步访问行为。假设初始化用户对每一个网页节点访问的概率相同。即:
ν = [ 1 / 4 1 / 4 1 / 4 1 / 4 ] \nu = \begin{bmatrix} 1/4\\ 1/4\\ 1/4\\ 1/4 \end{bmatrix} ν=⎣⎢⎢⎡1/41/41/41/4⎦⎥⎥⎤
下一次访问各节点的概率为:
ν ′ = P ν \nu'=P\nu ν′=Pν
3,当用户操作时,不一定按照链接顺序来转移,可能会随机打开这4个网站中的任何一个,此时转移矩阵的概率每个节点都是一样的为1/4。那么再引入一个参数α,来表示按照当前转移矩阵跳的概率。此时转移矩阵为:
A
=
α
×
[
0
1
/
2
0
0
1
/
3
0
0
1
/
2
1
/
3
0
0
1
/
2
1
/
3
1
/
2
0
0
]
+
(
1
−
α
)
×
[
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
1
/
4
]
A=\alpha\times \begin{bmatrix} 0 & 1/2 & 0 & 0\\ 1/3 & 0 & 0 & 1/2\\ 1/3 & 0 & 0 & 1/2\\ 1/3 & 1/2 & 0 & 0 \end{bmatrix}+(1-\alpha)\times \begin{bmatrix} 1/4 & 1/4 & 1/4 & 1/4\\ 1/4 & 1/4 & 1/4 & 1/4\\ 1/4 & 1/4 & 1/4 & 1/4\\ 1/4 & 1/4 & 1/4 & 1/4 \end{bmatrix}
A=α×⎣⎢⎢⎡01/31/31/31/2001/2000001/21/20⎦⎥⎥⎤+(1−α)×⎣⎢⎢⎡1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4⎦⎥⎥⎤
通常情况下,α=0.85
4,最终计算迭代公式
ν
′
=
P
ν
\nu'=P\nu
ν′=Pν
当ν和v’误差在一定范围内,即为最终的PageRank值。通过计算,PageRank的值为,
ν
=
[
0.3245
0.2251
0.2251
0.2251
]
\nu = \begin{bmatrix} 0.3245\\ 0.2251\\ 0.2251\\ 0.2251 \end{bmatrix}
ν=⎣⎢⎢⎡0.32450.22510.22510.2251⎦⎥⎥⎤
5,总结
上述公式可以总结为:
P
R
(
i
)
=
α
∑
j
∈
i
n
(
i
)
P
R
(
j
)
∣
o
u
t
(
j
)
∣
+
1
−
α
N
PR(i)=\alpha\sum_{j\in in(i)}\frac{PR(j)}{|out(j)|}+\frac{1-\alpha}{N}
PR(i)=αj∈in(i)∑∣out(j)∣PR(j)+N1−α
α:转移概率
N:节点总数
in(i):指向节点i的网页集合
out(j):节点j指向的网页集合。