对于搜索引擎搜索结果的排名取决于两组信息:关于网页的质量信息、每个网页与这个查询的相关性。
1 PageRank算法的原理
PageRank算法是由Google创始人拉里佩奇和谢尔盖布林提出的网页排名算法。主要思想是采用的民主表决方式。在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高,这就是PageRank算法的核心思想。同时在PageRank算法中,也考虑了网页排名高的网站贡献的链接权重大。
比如举个例子,一个网页的排名分数就等于所有指向这个网页的其他网页的权重之和。如图,网页Y的分数就等于0.081。
但是根据上面的例子,就会产生了“先有鸡还是先有蛋”的问题。一个网页的分数等于指向这个网站的其他网站的权重之后,但是其他网页的权重又是由网页排名所决定的。
但是,后来布林破解了这个问题。他的主要思想是采用迭代法进行实现的。在进行第一次计算的时候,假定每个网页的排名是相同的,计算出第一次的迭代排名,然后根据第一次的迭代排名算出第二次的排名,直到最后排名收敛为止。
2 PageRank的计算方法
假定向量
为第一、第二…第N个网页的网页排名。
矩阵
为网页之间链接的数目,其中amn代表第n个网页指向第m个网页的链接数。A是已知的,B是未知的。
假定Bi是第i次迭代的结果,那么
在进行第一次迭代时,所有网页的排名都是1/N,即
就这样一直迭代下去,大概10次之后就会收敛。
因为计算排名的时候也需要对零概率或者小概率事件进行平滑处理。因此对它的平滑处理这里采用一个很小的常数a,这时公式10.3变成:
其中N是互联网网页的数量,a是一个较小的常数,I是单位矩阵。