统计学习方法-PageRank算法-读书笔记
1、前言
PageRank算法是图链接分析的代表算法,属于图数据上的无监督学习方法。
算法的基本思想是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。
PageRank算法表示这个马尔可夫链的平稳分布。
2、PageRank定义
理想定义:有向图需要满足强连通且非周期性的条件。
一般定义:给定一个含有n个结点的任意有向图,在有向图上定义一个一般地随机游走模型,即一阶马尔可夫链。一般地随机游走模型的转移矩阵由两部分的线性组合组成。一部分是有向图的基本转移矩阵M,表示从一个结点到其连出的所有结点的转移概率都是1/n,线性组合系数为阻尼因子d。这个一般随机游走的马尔可夫链存在平稳分布,记作R。定义平稳分布向量R为这个有向图一般PageRank
R
=
d
M
R
+
1
−
d
n
1
R=dMR+\frac{1-d}{n}1
R=dMR+n1−d1
决定,其中1是所有分量为1的n维向量。
3、PageRank迭代算法
输入:含有n个结点的有向图,转移矩阵M,阻尼因子d,初始向量R0
输出:有向图的PageRank向量R
(1)t=0
(2)计算
R
t
+
1
=
d
M
R
t
+
1
−
d
n
1
R_{t+1}=dMR_t+\frac{1-d}{n}1
Rt+1=dMRt+n1−d1
(3)如果
R
t
+
1
R_{t+1}
Rt+1与
R
t
R_t
Rt充分接近,停止迭代
(4)否则,t=t+1,跳转到(2)
3.1幂法
幂法是一个常用的PageRank计算方法,通过近似计算矩阵的主特征值和主特征向量求得有向图的一般PageRank。
主特征值是指绝对值最大的特征值,著特征向量是其对应的特征向量。
R
=
(
d
M
+
1
−
d
n
E
)
R
=
A
R
R=(dM+\frac{1-d}{n}E)R=AR
R=(dM+n1−dE)R=AR
计算一般PageRank的幂法
输入:含有n个结点的有向图,转移矩阵M,阻尼因子d,初始向量x0,计算精度
ϵ
\epsilon
ϵ
输出:有向图的PageRank向量R
(1)令t=0,选择初始向量x0
(2)计算有向图的一般转移矩阵A
A
=
d
M
+
1
−
d
n
E
A=dM+\frac{1-d}{n}E
A=dM+n1−dE
(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)当
∣
∣
x
t
+
1
−
x
t
∣
∣
<
ϵ
||x_{t+1}-x_t||<\epsilon
∣∣xt+1−xt∣∣<ϵ时,R=xt停止迭代
(5)否则,t=t+1执行(3)
(6)对R进行规范化处理(使其分量和为1),使其表示概率分布。
3.2代数算法
代数算法通过一般转移矩阵的逆矩阵计算求有向图的一般PageRank。
R
=
d
M
R
+
1
−
d
n
1
R=dMR+\frac{1-d}{n}1
R=dMR+n1−d1
(
I
−
d
M
)
R
=
1
−
d
n
1
(I-dM)R=\frac{1-d}{n}1
(I−dM)R=n1−d1
R
=
(
I
−
d
M
)
−
1
1
−
d
n
I
R=(I-dM)^{-1}\frac{1-d}{n}I
R=(I−dM)−1n1−dI
这里的I是单位矩阵,当0<d<1时,线性方程组的解存在且唯一。这样可以通过求逆矩阵得到有向图的一般PageRank.