什么是PageRank
- PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。
- 是Google创始人拉里·佩奇和谢尔盖·布林于1997年创造的
- PageRank实现了将链接价值概念作为排名因素。
计算环境
- Hadoop-2.5.2
- 四台主机
- 两台NN的HA
- 两台RM的HA
- 离线计算框架MapReduce
网络上各个页面的链接图
算法原理(一)
- 入链(投票)
- PageRank让链接来“投票“,到一个页面的超链接相当于对该页投一票。
- 入链数量
- 如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
- 入链质量
- 指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。所以越是质量高的页面指向页面A,则页面A越重要。
算法原理(二)
- 初始值
- 每个页面设置相同的PR值
- Google的pagerank算法给每个页面的PR初始值为1。
- 迭代递归计算(收敛)
- Google不断的重复计算每个页面的PageRank。那么经过不断的重复计算,这些页面的PR值会趋向于稳定,也就是收敛的状态。
- 在具体企业应用中怎么样确定收敛标准?
- 每个页面的PR值和上一次计算的PR相等
- 设定一个差值指标(0.0001)。当所有页面和上一次计算的PR差值平均小于该标准时,则收敛。
- 设定一个百分比(99%),当99%的页面和上一次计算的PR相等
算法原理(三)
- 修正PageRank计算公式
- 由于存在一些出链为0,也就是那些不链接任何其他网页的网,也称为孤立网页,使得很多网页能被访问到。因此需要对PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)q,q一般取值q=0.85。
- 完整PageRank计算公式