简单PageRank的理解

最近由于要考试涉及PageRank算法在Hadoop上的实现,因此学习了一下PageRank的简单模型。主要学习资料为网易公开课上的一个大约半小时的视频,:http://open.163.com/movie/2015/4/E/5/MAL6BDF3J_MALTODME5.html

  • 基本介绍

PageRank主要通过网页间互相的链接关系来确定网页的重要性(等级),同时一个重要的网页指向的网页也认为是较为重要的(爱屋及乌?)。下面是视频中的图片,后面也可能还有:

这里写图片描述

假设有A,B,C三个网页的链接关系如下:

这里写图片描述
(右边是其有向图的矩阵表示,Mij=1表示有i指向j的边)

我们把A,B,C比喻为三个水池,假设只要有某个水池向外的箭头那么其中的水会全部流出,这样最后其最后剩余的水量(权值)只取决于流入量。这样我们就将一个网页的等级计算转换为其他链接指向他的权值运算。

上图第一行描述了A的流出,其流向B的概率为M12=1,进行归一化处理(0~1之间的值)为 1/(0+1+1) =1/2。同理流向C的概率也为1/2。这样我们得到一个概率矩阵:

这里写图片描述

根据值V决定于流入量的原则有:

Va = 1/1 * (上一次的)Vb     ;即第一列
Vb = 1/2 * (上一次的)Va + 1/1 * (上一次的)Vb        ;即第二列
Vc = 1/2 * (上一次的)Va     ;即第三列

给定一列初始值,按照上面的公式就行迭代,最终会得到A,B,C的稳定不变的值。这样理解,A,B, C是深度不同的水池,水通过管道(链接)在其间互相流动,最后总会处于一个平衡的状态(连通器原理)。水池深度越深水量越多其等级也就越高。

在上面的公式中,概率的取值是按列取值的 ,为了进行矩阵的运算得到一维矩阵(描述n个网页等级),一定是(概率P,网页W, Pnn * Wn1 –> Rn1)。这样计算时就要求以行的形式取概率值,因此进行转置概率矩阵。

  • 可能遇到的问题:

这里写图片描述

leak泄露问题: A就像一个无底洞,其他节点的水迟早会全部流进A导致这些节点值为0,而设计上A的值是受链接他的节点的值影响的,这样就会导致全为0,就像水全部泄露出去了。

这里写图片描述

**sink(沉没问题):**A点只有流出,一开始计算就为0,沉到底了没法和其他节点进行交流。

  • 解决办法:

上述问题的原因无非是某个节点的出度或者入度为0,我们只要假设任意一个节点都有一定概率达到其他节点,引入阻尼系数α, 这样完整的概率矩阵类似于:

这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值