PageRank的定义
基本想法
PageRank算法作为计算互联网网页重要程度的算法被提出,它定义网页集合上的一个函数,它对每个网页给出一个正实数,表示网页的重要程度,值越大重要程度就越大。
假设互联网是一个有向图,在其基础上定义随机游走模型,即一阶马尔可夫链,表示网页浏览者在互联网上随机浏览网页的过程,假设浏览者在每个网页依照连接出去的超链接以等概率跳转到下一个网页,并在网页上持续不断进行这样的随机跳转,这个过程形成一阶马尔可分夫链,最后会收敛到一个固定值
有向图和随机游走模型
- 随机游走模型
给定一个含有n个结点的有向图,在有向图上定义随机游走模型,即一阶马尔可夫链,其中结点表述状态,有向边表示状态之间的转移,假设从一个节点到通过有向边相连的所有结点的转移概率相等,具体地,转移矩阵是一个n阶矩阵 M M M
M = [ m i j ] n × n M=[m_{ij}]_{n×n} M=[mij]n×n
第 i i i行第 j j j列的元素 m i j m_{ij} mij取值规则如下:如果节点 j j j有 k k k个有向边连出,并且节点 i i i是其连出的一个结点,则 m i j = 1 k m_{ij}=\frac{1}{k} mij=k1.否则 m i j = 0 m_{ij}=0 mij=0
∑ i = 1 n m i j = 1 \sum\limits_{i=1}^nm_{ij}=1 i=1∑nmij=1
随机游走在某时刻 t t t访问各个结点的概率分布就是马尔可夫链在时刻 t t t的状态分布,可以用一个 n n n维向量 R t R_t Rt表示,则
R t + 1 = M R t R_{t+1}=MR_t Rt+1=MRt
PageRank的基本定义
给定一个包含
n
n
n个结点
v
1
,
v
2
,
.
.
,
v
n
v_1,v_2,..,v_n
v1,v2,..,vn的强联通且非周期的有向图,在有向图定义随机游走模型,即一阶马尔可分链,随机游走的特点是从一个节点到有有向边连出的所有结点的转移概率相等,转移矩阵为
M
M
M,这个马尔可夫链具有平稳分布
R
R
R
R
=
M
R
R=MR
R=MR
平稳分布
R
R
R称为这个有向图的PageRank,R的各个分量称为各个结点的PageRank值
R
=
[
P
R
(
v
1
)
P
R
(
v
1
)
.
.
.
P
R
(
v
n
)
]
(3)
R= \left[ \begin{matrix} PR(v_1) \\ PR(v_1) \\ ... \\ PR(v_n) \end{matrix} \right] \tag{3}
R=⎣⎢⎢⎡PR(v1)PR(v1)...PR(vn)⎦⎥⎥⎤(3)
其中
P
R
(
v
i
)
≥
0
PR(v_i)\ge0
PR(vi)≥0
∑
i
=
1
n
P
R
(
v
i
)
=
1
\sum\limits_{i=1}^nPR(v_i)=1
i=1∑nPR(vi)=1
R
P
(
v
i
)
=
∑
v
j
∈
M
(
v
i
)
P
R
(
v
j
)
L
(
v
j
)
RP(v_i)=\sum\limits_{v_j \in M(v_i)}\frac{PR(v_j)}{L(v_j)}
RP(vi)=vj∈M(vi)∑L(vj)PR(vj)
M
(
v
i
)
M(v_i)
M(vi)表示指向结点
v
i
v_i
vi的结点集合,
L
(
v
j
)
L(v_j)
L(vj)表示结点
v
j
v_j
vj连出的有向边的个数
不可约且非周期的有限状态马尔可夫链,有唯一平稳分布存在,并且当时间趋于无穷时状态分布收敛于唯一的平稳分布
PageRank的一般定义
给定一个含有
n
n
n个结点的任意有向图,在有向图定义一个一般的随机游走模型,即一阶马尔可夫链。一般的随机游走模型的转移矩阵由两部分的线性组合组成,一部分是有向图的基本转移矩阵
M
M
M,表示从从一个结点到其连出的所有结点的转移概率相等,另一部分是完全随机的转移矩阵,表示从任意一个结点到任意一个结点的转移概率为
1
n
\frac{1}{n}
n1,线性组合系数为阻尼因子
d
(
1
≤
d
≤
1
)
d(1\le d \le 1)
d(1≤d≤1)这个一般随机游走的马尔可夫链存在平稳分布,记作
R
R
R定义平稳分布向量
R
R
R为这个有向图的一般PageRank
R
=
d
M
R
+
1
−
d
n
1
R=dMR+\frac{1-d}{n}\pmb1
R=dMR+n1−d111决定,其中
1
\pmb 1
111是所有分量为1的n维向量.
PageRank的计算
迭代算法
输入:含有
n
n
n个结点的有向图,转移矩阵
M
M
M,阻尼因子
d
d
d,初始向量
R
0
R_0
R0
输出:有向图PageRank的向量
R
R
R
(
1
)
(1)
(1)令
t
=
0
t=0
t=0
(
2
)
(2)
(2)计算
R
t
+
1
=
d
M
R
t
+
1
−
d
n
1
R_{t+1}=dMR_t+\frac{1-d}{n}\pmb1
Rt+1=dMRt+n1−d111
(
3
)
(3)
(3)如果
R
t
+
1
R_{t+1}
Rt+1和
R
t
R_t
Rt充分接近,令
R
=
R
t
+
1
R=R_{t+1}
R=Rt+1,停止
(
4
)
(4)
(4)否则
t
=
t
+
1
t=t+1
t=t+1转向
(
2
)
(2)
(2)
幂法
任取初始向量
x
0
x_0
x0,构造如下的一个
n
n
n维向量序列
x
0
,
x
1
=
A
x
0
,
x
2
=
A
x
1
,
.
.
.
,
x
k
=
A
x
k
−
1
x_0,x_1=Ax_0,x_2=Ax_1,...,x_k=Ax_{k-1}
x0,x1=Ax0,x2=Ax1,...,xk=Axk−1
假设
∣
λ
1
∣
≥
∣
λ
2
∣
≥
.
.
.
≥
∣
λ
n
∣
|\lambda_1|\ge|\lambda_2|\ge...\ge|\lambda_n|
∣λ1∣≥∣λ2∣≥...≥∣λn∣
对应额线性无关特征向量
u
1
,
u
2
,
.
.
.
,
u
n
u_1,u_2,...,u_n
u1,u2,...,un
则
x
0
=
a
1
u
1
+
a
2
u
2
+
.
.
.
,
+
a
n
u
n
x_0=a_1u_1+a_2u_2+...,+a_nu_n
x0=a1u1+a2u2+...,+anun
x
1
=
a
1
A
u
1
+
a
2
A
u
2
+
.
.
.
,
+
a
n
A
u
n
x_1=a_1Au_1+a_2Au_2+...,+a_nAu_n
x1=a1Au1+a2Au2+...,+anAun
x
k
=
a
1
A
k
u
1
+
a
2
A
k
u
2
+
.
.
.
,
+
a
n
A
k
u
n
x_k=a_1A^ku_1+a_2A^ku_2+...,+a_nA^ku_n
xk=a1Aku1+a2Aku2+...,+anAkun
=
a
1
λ
1
k
u
1
+
a
2
λ
2
k
u
2
+
.
.
.
,
+
a
n
λ
n
k
u
n
=a_1\lambda_1^ku_1+a_2\lambda_2^ku_2+...,+a_n\lambda_n^ku_n
=a1λ1ku1+a2λ2ku2+...,+anλnkun
=
a
1
λ
1
k
[
u
1
+
a
2
a
1
(
λ
2
λ
1
)
k
u
2
+
.
.
.
+
a
n
a
1
(
λ
n
λ
1
)
k
u
n
]
=a_1\lambda_1^k[u_1+\frac{a_2}{a_1}(\frac{\lambda_2}{\lambda_1})^ku_2+...+\frac{a_n}{a_1}(\frac{\lambda_n}{\lambda_1})^ku_n]
=a1λ1k[u1+a1a2(λ1λ2)ku2+...+a1an(λ1λn)kun]
当k充分大时
x
k
=
a
1
λ
1
k
[
u
1
+
ϵ
k
]
x_k=a_1\lambda_1^k[u_1+\epsilon_k]
xk=a1λ1k[u1+ϵk]
x
k
→
a
1
λ
1
k
u
1
x_k\to a_1\lambda_1^ku_1
xk→a1λ1ku1
x
k
≈
a
1
λ
1
k
u
1
x_k\approx a_1\lambda_1^ku_1
xk≈a1λ1ku1
x
k
+
1
≈
a
1
λ
1
k
+
1
u
1
x_{k+1}\approx a_1\lambda_1^{k+1}u_1
xk+1≈a1λ1k+1u1
λ
1
≈
x
k
+
1
,
j
x
k
,
j
\lambda_1\approx\frac{x_{k+1,j}}{x_{k,j}}
λ1≈xk,jxk+1,j
在实际计算的时候,我们需要规范化
y
t
+
1
=
A
x
t
y_{t+1}=Ax_t
yt+1=Axt
x
t
+
1
=
y
t
+
1
∣
∣
y
t
+
1
∣
∣
x_{t+1}=\frac{y_{t+1}}{||y_{t+1}||}
xt+1=∣∣yt+1∣∣yt+1
其中
∣
∣
x
∣
∣
||x||
∣∣x∣∣为无穷范数
输入:含有n个结点的有向图,有向图转移矩阵为
M
M
M,系数为
d
d
d,初始向量
x
0
x_0
x0计算精度
ϵ
\epsilon
ϵ
输出:有向图的PageRankR
(
1
)
(1)
(1)令
t
=
0
t=0
t=0,选择初始向量
x
0
x_0
x0
(
2
)
(2)
(2)计算有向图的一般转移矩阵
A
A
A
A
=
d
M
+
1
−
d
n
E
A=dM+\frac{1-d}{n}E
A=dM+n1−dE
(
3
)
(3)
(3)迭代并规范化结果
y
t
+
1
=
A
x
t
y_{t+1}=Ax_t
yt+1=Axt
x
t
+
1
=
y
t
+
1
∣
∣
y
t
+
1
∣
∣
x_{t+1}=\frac{y_{t+1}}{||y_{t+1}||}
xt+1=∣∣yt+1∣∣yt+1
(
4
)
(4)
(4)
∣
∣
x
t
+
1
−
x
t
∣
∣
<
ϵ
||x_{t+1}-x_t|| \lt \epsilon
∣∣xt+1−xt∣∣<ϵ,令
R
=
x
t
R=x_t
R=xt,停止
(
5
)
(5)
(5)否则
t
=
t
+
1
t=t+1
t=t+1执行
(
3
)
(3)
(3)
(
6
)
(6)
(6)对
R
R
R进行规范化处理,使其表示概率分布
代数算法
按照定义
R
=
d
M
R
+
1
−
d
n
1
R=dMR+\frac{1-d}{n}\pmb1
R=dMR+n1−d111
则
(
I
−
d
M
)
R
=
1
−
d
n
1
(I-dM)R=\frac{1-d}{n}\pmb 1
(I−dM)R=n1−d111
R
=
(
I
−
d
M
)
−
1
1
−
d
n
1
R=(I-dM)^{-1}\frac{1-d}{n}\pmb 1
R=(I−dM)−1n1−d111