简介

PageRank算法,是一种网页排名算法。在组建搜索引擎时,爬下来的数据从网页的角度来看,将所有的连接指向放到一起,可以构成一个图。PageRank,就是在这图上做文章。利用PageRank算法,得到PR(PageRank)值,当一个网页的PR值越大,则说明该网页越受欢迎。

算法原理

基本思想

"重要性",即如果两个网页的链入的网页数相同的,如果网页1的连入的页面重要性较高,则认为网页1比网页2重要

随机游走模型

假设有一个永不停息,在浏览器上浏览网页的人,他随机的点击一个链接继续访问下一个网页,当达到稳态的时候(即经过了足够长的时间),他会正在看哪个网页?

这等价于,在静态情况下,每个网页pagerank算法实现 java pagerank算法的妙处_Google都有一个被访问的概率pagerank算法实现 java pagerank算法的妙处_Google_02,它可以视为网页的重要程度。

pagerank算法实现 java pagerank算法的妙处_搜索引擎_03

pagerank算法实现 java pagerank算法的妙处_算法原理_04

其中pagerank算法实现 java pagerank算法的妙处_算法原理_05时网页pagerank算法实现 java pagerank算法的妙处_搜索引擎_06的"出度",pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_07

我们可以令pagerank算法实现 java pagerank算法的妙处_搜索引擎_08

此时的公式就改写为pagerank算法实现 java pagerank算法的妙处_搜索引擎_09,写成矩阵形式

pagerank算法实现 java pagerank算法的妙处_Google_10

当节点为悬挂节点时,,即出度为0的节点,修正为pagerank算法实现 java pagerank算法的妙处_Google_11

模型存在的问题

上诉随机游走模型有稳态解的条件:强连通,无圈,即形成的有向图通过链接方式访问到每一个网页

破坏条件:

  • 图中有圈
  • 有入度或出度为0的点

改进后PageRank模型

引入一个随机跳转概率pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_12,每次浏览者都有pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_13的概率沿着链接走,有pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_12的概率重新随机的选择一个新的起始点。

pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_15

其中 Google matrix 为

pagerank算法实现 java pagerank算法的妙处_pagerank算法实现 java_16

模型的求解过程

pagerank算法实现 java pagerank算法的妙处_算法原理_17