赞
踩
PageRank算法是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。实际的网页连接图是一个非常庞大的图结构,通常将节点表示一个一个的网页,节点之间相连接的边表示网页与网页之间的连接关系。PageRank算法就是衡量网页重要性的算法之一。
Page Rank算法是一种“流动”的模型,也可以理解成“投票”的想法,来自越重要网页的投票权重占比越高,我们以下图为例,算法有如下特点:
由于重要节点(页面)的票数更多(因为重要性更高),因此,在Page Rank算法中如果一个页面被其他重要页面所指向,那么此页面也是重要的。
下面可以给出具体的定义,我们定义节点 j j j重要性得分为“rank”:
r j = ∑ i → j r i d i r_{j}=\sum_{i \rightarrow j} \frac{r_{i}}{d_{i}} rj=i→j∑diri
其中, d i d_i di为出度(一个节点向外连接的所有边的个数)。根据上述方程,可以写成矩阵的形式,
r = M ⋅ r \boldsymbol{r}=\boldsymbol{M} \cdot \boldsymbol{r} r=M⋅r
其中, M \boldsymbol{M} M为列随机邻接矩阵(列和为1),若 i → j i \rightarrow j i→j, 则 M j i = 1 d i \boldsymbol{M}_{j i}=\frac{1}{d_{i}} Mji=di1; r \boldsymbol{r} r的每个元素 r i r_i ri为节点(页面) i i i的重要性得分,满足 ∑ i r i = 1 \sum_{i} r_{i}=1 ∑iri=1。下图为一个具体的例子:
下面我们从随机游走的视角来考虑这个问题,将上面的重要性得分 r i r_i ri理解成某一时刻浏览 i i i网页的概率。 t t t时刻的概率我们记为 p ( t ) p(t) p(t)。因此迭代的公式可以记为:
p ( t + 1 ) = M ⋅ p ( t ) \boldsymbol{p}(t+1)=\boldsymbol{M} \cdot \boldsymbol{p}(t) p(t+1)=M⋅p(t)
当上式满足 M ⋅ p ( t ) = p ( t ) \boldsymbol{M} \cdot \boldsymbol{p}(t) = \boldsymbol{p}(t) M⋅p(t)=p(t),则称 p ( t ) \boldsymbol{p}(t) p(t)为随机游走的平稳分布。
此时,我们可以将 M \boldsymbol{M} M作为马尔科夫随机矩阵,根据方程:
1 ⋅ r = M ⋅ r 1 \cdot \boldsymbol{r}=\boldsymbol{M} \cdot \boldsymbol{r} 1⋅r=M⋅r
可知,矩阵 M \boldsymbol{M} M一定有一个值为1的特征值。并且根据 Gershgorin circle theorem 可得,马尔科夫矩阵的任意一个特征值的绝对值都不大于1。因此1即为矩阵 M \boldsymbol{M} M的主特征值(最大特征值),而幂迭代法便是通过迭代来计算矩阵的主特征值与其对应特征向量的方法。最终的特征向量就是我们所需要的稳定之后的重要性得分向量 r \boldsymbol{r} r。
算法迭代过程如下( N N N为节点/网页个数):
下面为前面介绍的y-a-m图迭代示例:
(
r
y
r
a
r
m
)
=
(
1
/
3
1
/
3
1
/
3
)
(
1
/
3
3
/
6
1
/
6
)
(
5
/
12
1
/
3
3
/
12
)
(
9
/
24
11
/
24
1
/
6
)
…
(
6
/
15
6
/
15
3
/
15
)
\left(
下面考虑三个问题:
关于这三个问题的回答,我们将在下个博客中进行阐述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。