您的当前位置: 首页>>商学院>>SEO优化

PageRank算法从原理到实现的全过程

浏览量(65799) 时间:2020-09-07

 一、 PageRank算法概述:

    PageRank,即网页排名,又称网页级别、Google左側排名或佩奇排名。

    是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,自从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界十分关注的计算模型。眼下许多重要的链接分析算法都是在PageRank算法基础上衍生出来的。PageRank是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个站点的好坏的唯一标准。在揉合了诸如Title标识和Keywords标识等全部其他因素之后,Google通过PageRank来调整结果,使那些更具“等级/重要性”的网页在搜索结果中另站点排名获得提升,从而提高搜索结果的相关性和质量。其级别从0到10级,10级为满分。PR值越高说明该网页越受欢迎(越重要)。比如:一个PR值为1的站点表明这个站点不太具有流行度,而PR值为7到10则表明这个站点很受欢迎(或者说极其重要)。一般PR值达到4,就算是一个不错的站点了。Google把自己的站点的PR值定到10,这说明Google这个站点是很受欢迎的,也能够说这个站点很重要。

PageRank算法

    二、从入链数量到 PageRank:

    在PageRank提出之前,已经有研究者提出利用网页的入链数量来进行链接分析计算,这样的入链方法如果一个网页的入链越多,则该网页越重要。早期的非常多搜索引擎也採纳了入链数量作为链接分析方法,对于搜索引擎效果提升也有较明显的效果。 PageRank除了考虑到入链数量的影响,还參考了网页质量因素,两者相结合获得了更好的网页重要性评价标准。

    对于某个互联网网页A来说,该网页PageRank的计算基于下面两个基本如果:

    1、数量如果:在Web图模型中,如果一个页面节点接收到的其它网页指向的入链数量越多,那么这个页面越重要。

    2、质量如果:指向页面A的入链质量不同,质量高的页面会通过链接向其它页面传递很多其它的权重。所以越是质量高的页面指向页面A,则页面A越重要。

    利用以上两个如果,PageRank算法刚開始赋予每一个网页同样的重要性得分,通过迭代递归计算来更新每一个页面节点的PageRank得分,直到得分稳定为止。 PageRank计算得出的结果是网页的重要性评价,这和用户输入的查询是没有不论什么关系的,即算法是主题无关的。如果有一个搜索引擎,其相似度计算函数不考虑内容相似因素,全然採用PageRank来进行排序,那么这个搜索引擎的表现是什么样子的呢?这个搜索引擎对于随意不同的查询请求,返回的结果都是同样的,即返回PageRank值最高的页面。

    三、PageRank算法原理:

    1、基本概念

    先了解几个基本概念,一遍后面内容理解

    Ⅰ、出链

    如果在网页A中附加了网页B的超链接B-Link,用户浏览网页A时可以点击B-Link然后进入网页B。上面这种A附有B-Link这种情况表示A出链B。可知,网页A也可以出链C,如果A中也附件了网页C的超链接C-Link。

    Ⅱ、入链

    上面通过点击网页A中B-Link进入B,表示由A入链B。如果用户自己在浏览器输入栏输入网页B的URL,然后进入B,表示用户通过输入URL入链B

    Ⅲ、无出链

    如果网页A中没有附加其他网页的超链接,则表示A无出链

    Ⅳ、只对自己出链

    如果网页A中没有附件其他网页的超链接,而只有他自己的超链接A-Link,则表示A只对自己出链

    Ⅴ、PR值

    一个网页的PR值,概率上理解就是此网页被访问的概率,PR值越高其排名越高。

    下面给出计算PR值可能遇到的几种不同情况:

    case1:网页都有出入链

PageRank算法

    此种情况下的网页A的PR值计算公式为:

PageRank算法

    case2:存在没有出链的网页

PageRank算法

    网页C是没有出链。因为C没有出链,所以对A,B,D网页没有PR值的贡献。PageRank算法的策略:从数学上考虑,为了满足Markov链,设定C对A,B,C,D都有出链(也对他自己也出链~)。你也可以理解为:没有出链的网页,我们强制让他对所有的网页都有出链,即让他对所有网页都有PR值贡献。

   此种情况PR(A)的计算公式:


    case3:存在只对自己出链的网页

PageRank算法

    C是只对自己出链的网页。

    此时访问C时,不会傻乎乎的停留在C页面,一直点击C-Link循环进入C,即C网页只对自己的网页PR值有贡献。正常的做法是,进入C后,存在这种情况:在地址输入栏输入A/B/C/D的URL地址,然后跳转到A/B/C/D进行浏览,这就是PageRank算法解决这种情况的策略:设定存在一定概率为α,用户在地址栏输入A/B/C/D地址,然后从C跳转到A/B/C/D进行浏览。

    此时PR(A)的计算公式为:

PageRank算法

    一般取值α=0.85

    Ⅵ、算法公式:

PageRank算法

    注:Mpi是有出链到pi的所有网页集合,L(pj)是有网页pj的出链总数,N是网页总数,α一般取值为0.85

    所有网页PR值同时计算需要迭代计算:一直迭代计算,停止直到下面2情况之一发生:每个网页的PR值前后误差dleta_pr小于自定义误差阈值,或者迭代次数超过了自定义的迭代次数阈值

    三、PR值计算方法:

    1、几个基本公式

PageRank算法

    2、幂迭代法

PageRank算法

    先对P0赋随机初值,然后通过上面公式进行迭代计算,直到满足条件停止迭代计算:一直迭代计算,停止直到下面2情况之一发生:每个网页的PR值前后误差dleta_pr小于自定义误差阈值,或者迭代次数超过了自定义的迭代次数阈值

    3、特征值法

    Markov Chain收敛时,存在:

PageRank算法

    4、代数法

    Markov Chain收敛时,存在:

PageRank算法

    可以通过上面公式计算出来PR值矩阵。


以上文章来源于网络,如有侵权请联系创一网的客服处理。谢谢!