PageRank原理

真尴尬····参加Wind的宣讲会,笔试第一个简答就是描述PageRank,我一脸懵逼·····我只知道这是谷歌用来对网页进行排序的算法,好像有个什么权重系数,什么什么来着???回来赶紧补上。这么重要经典的算法我都不知道,真是枉为立志搞算法的人了【哭唧唧】

进入正题

PageRank的原理是,通过计算链接到一个网页的数量及质量来对该网页的重要程度有一个估计。它所依赖的假设是越重要的网页通常会有更多的网页链接到他。——-from wiki
PageRank原理
PageRank的结果从0到10,10级为满分。PR值越高说明网页越重要/受欢迎。例如PR值为1的网站不太重要,而PR值为7~10的网站可以说是非常重要了。一般到4,就能说是一个不错的网站。Google将自身PR值定为10(调皮).
两个假设:

  • 数量假设:指向它的链接越多,那么说明这个网页越重要
  • 质量假设:指向它的链接越重要(用权重衡量),说明这个网页越重要。

    算法过程如下:

    • 初始阶段,网页通过链接构建web图,为每一个网页分配一个初始的权值。
    • 权值更新:每个网页,为每个出链设置当前权值的平均值大小的权重;对入链的权值求和,可得到新的权值。
    • 最终每个页面都会得到一个pagerank的最终得分。
      PageRank原理
      修正公式
      PageRank原理
      PageRank原理
      PageRank原理
      否则,L(Pi,Pj) = 0.

关于R矩阵方程式的含义,按照矩阵相乘规则,实际上是所有网页节点的方程式聚合组:

以第一行为例,分拆开来实际上是:

PR(P1) = (1-q)/N + a*(L(p1,p1)*PR(P1) + L(p1,p2)*PR(P2) + … + L(p1,pn)*PR(Pn) )

其余行数以此类推。遂构成上述矩阵方程式。
PageRank原理

内容来自简书https://www.jianshu.com/p/f6d66ab97332

代码实现

https://www.cnblogs.com/rubinorth/p/5799848.html