PageRank算法

PageRank算法概述

PageRank是由LarryPage命名的一个算法,它的作用是粗略的计算网页的排名。它的一个潜在假设:越重要的网

站,那么从其他网站得到的链接也越多。它在加上阻尼系数的基础上有两个公式:

PR(A) = {1 - d \over N} + d \left( \frac{PR(B)}{L(B)}+ \frac{PR(C)}{L(C)}+ \frac{PR(D)}{L(D)}+\,\cdots \right).                                  (1)

PR(A)= 1 - d + d \left( \frac{PR(B)}{L(B)}+ \frac{PR(C)}{L(C)}+ \frac{PR(D)}{L(D)}+\,\cdots \right).                                   (2)

文献1说明了,Page和 Brin的公式(2)错误的把全部的网页看成是一个概率分布。所以一般用公式(1)

现在把它写成迭代的形式,如下:

PR(p_i) = \frac{1-d}{N} + d \sum_{p_j \in M(p_i)} \frac{PR (p_j)}{L(p_j)}                               (3)

我们让:

\mathbf{R} =\begin{bmatrix}PR(p_1) \\PR(p_2) \\\vdots \\PR(p_N)\end{bmatrix}                                                        (4)

那么公式就变成如下:

\mathbf{R} =\begin{bmatrix}{(1-d)/ N} \\{(1-d) / N} \\\vdots \\{(1-d) / N}\end{bmatrix}+ d\begin{bmatrix}\ell(p_1,p_1) & \ell(p_1,p_2) & \cdots & \ell(p_1,p_N) \\\ell(p_2,p_1) & \ddots &  & \vdots \\\vdots & & \ell(p_i,p_j) & \\\ell(p_N,p_1) & \cdots & & \ell(p_N,p_N)\end{bmatrix}\mathbf{R}                      (5)

其中d是阻尼系数(默认设置为0.85),\ell(p_i,p_j)是如果i和j没有链接,那么为0,

而且\sum_{i = 1}^N \ell(p_i,p_j) = 1也就是说,先把之间的链接数填上,之后对列进行归一化。

现在用过一个列子来进行说明。

假设网页A,B,C和D关系如下:


步骤1:找出链接关系

步骤2:对列归一化


步骤3:那么

下面通过matlab来进行迭代:

%迭代公式:
% R = A+d*B*R

R=[1/4;1/4;1/4;1/4];

A=[0.15;0.15;0.15;0.15]/4;

B=[0 1 1 1
    0 0 0 0
    0 0 0 0
    0 0 0 0];
for i = 1:100
    R = A +0.85*B*R;
    disp(i)
    disp(R)
end
结果:

...
   98

    0.1331
    0.0375
    0.0375
    0.0375

    99

    0.1331
    0.0375
    0.0375
    0.0375

   100

    0.1331
    0.0375
    0.0375
    0.0375
最终的结果Pr(A)=0.1331, Pr(B)=0.0375,Pr(C)=0.0375,Pr(D)=0.0375
















参考文献

1、http://infolab.stanford.edu/pub/papers/google.pdf

2、https://en.wikipedia.org/wiki/PageRank

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值