PageRank算法和HITS算法

链接分析算法

PageRank算法

PageRank算法是一种静态的网页评级方法,每一个网页都有一个PageRank值,作为网页排序的依据。

PageRank值的影响因素
  • 数量因素:如果一个页面节点接收到的入链数量越多,这个页面越重要
  • 质量因素:指向页面A的入链质量不同,越是质量高的页面指向页面A,则页面A越重要

我们将网页之间的链接关系看作一个有向图G(V,E),其中V是所有节点的集合,E是所有有向边的集合。假设|V|=n,PageRank值的定义如下:

其中,P(i)表示网页i的PageRank值,(i,j)表示存在网页j指向网页i的超链接。

我们用一个列向量P来表示n个网页的PageRank值,给定初值P0就可以通过若干次迭代得到Pn。满足公式方程组的解P*就是最终的全局PageRank值列向量。

但是,要存在这样的解,需要转移矩阵A满足三个条件:

  • 随机矩阵
  • 不可约矩阵
  • 非周期性矩阵

随机矩阵理解为避免出现悬空节点(指没有出度的节点),否则不断迭代,网页整体的PageRank值会降低为0。

解决方式:将矩阵全为0的一行元素用1/n代替,即我们是有一定概率访问其他网页的。

不可约矩阵就是矩阵A对应的有向图是强连接图,每个节点都存在链接,即我们无论在访问哪个网页,都有概率访问别的网页。

解决方式:以α的概率选择一个链出链接继续浏览,1-α概率不点击链接,随机选择一个网页进行浏览。

最终的迭代公式为:

我们可以用幂迭代法求解,赋予任意的PageRank初始值,当PageRank值不再显著变化,趋于收敛时,迭代算法结束。

上一篇:kibana日志告警


下一篇:xenomai内核解析--双核系统调用(三)--如何为xenomai添加一个系统调用