8.算法进阶之分布式篇——Pagerank算法计算网页排名

谷歌三驾马车——mapreduce,page rank,google file system。

PageRank 算法不止可以让用户搜索到自己关心的内容,也往往能让质量更高的网页得以排到更前的位置,同时它也是一个典型的 MapReduce 的应用场景。

基于引用的排名

思想源于学术论文的引用次数,高引用的文章一般来说被认为是质量高的文章。

被更多超链接指向的网页,可以推断它往往会有更好的质量,因为当时许多 HomePage 类的导航网站都会链接到一些提供优质服务的网站,如果一个网站质量很差,自然也不会被太多链接所指向。

但不同网页的链接,所代表的权重应该是不同的

假设 u 代表了某一个网页;Fu​ 代表 u 所指向的网页集合,Nu​ 代表 Fu​ 集合的大小;Bu​ 代表指向 u 的网页集合;c 是一个因子,用来保持所有网页权重之和是一个常数。
在这里插入图片描述
R(u) 表示网页 u 的权重

不太好理解,看一个例子:
在这里插入图片描述
出度权重的计算:
左上权重为100,出度为2,那么我们认为他的每条出度权重即为50

入度权重的计算:
右上网页入度有两个,一个是被二分的100,就是50,另一个是被三分的9,就是3.所以被指向的这个网页的权重即为50+3=53;

如何初始化权重

无论怎么初始化权重,最终都会趋于平稳,数学上这个问题被称为马氏链平稳状态定理。

在更大的图上,这样的收敛性质,在所有节点强连通的情况下依然是可以得到保障的。所以在有限次的计算中,一旦给定了网页链接图,所有网页的权重都是收敛到一个稳定值的。那么在搜索的时候我们基于这个权重来做排名,就可以得到一个比较优的搜索结果了。

特殊问题1——Dangling link——有入无出

指的是那些有入边但是没有出边的节点,在网页链接图中,有这样的节点存在会导致很大的问题。

解决方法:直接移出,等剩余网络收敛,再加入回去计算权重,但不影响已经收敛的权重
这样的节点对其他节点权重的计算没有任何贡献,既然让它们参与计算会导致所有权重收敛为 0,不如直接把它们都移除

不过这个移除过程可能会导致新的 Dangling links 产生,所以整个过程需要迭代地进行,直到剩余的网页中不再存在 Dangling links。当然,被移除的额外节点会对整个马氏链的计算产生一定影响,但是 Larry Page 认为这个影响在谷歌搜索引擎收纳的巨量网页前是可以接受的。

移除后,等新的网页链接图上的计算收敛,我们再把被移除的节点加入图中,进行权重计算,但是不去修改所有已经收敛的权重,这样就可以得到全部网页的权重了。

特殊问题2——spider traps

在这里插入图片描述

指虽然有出度,但是指向自己
和上面一个问题导致的结果一样,会导致所有权重都集中在这一个节点上。
pagerank运行之后,很有可能各个节点之间的权重分布是不均匀的,某一些网络边缘的节点入度很少,权重就几乎为0,而另一部分权重则极大。导致两极分化。

解决方法:增加跳转因子,使某些权重小的节点不至于出现几乎没有权值的情况,以抑制蜘蛛陷阱
添加了跳转因子 β 后,每个新的权重计算就不只依赖原图中的链接,还考虑了雨露均沾的跳转因子。这样,Spider Traps 就会被抑制了,至少不会出现某些节点上几乎没有权重的情况,可以得到一个比较合理的网页排名权重。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值