排级算法
PageRank是Google核心创新技术,其他搜索引擎大多借鉴使用了该方法的变种。下面介绍两种应用最广、最成功的排级算法PageRank和HITS。
1. PagePank算法
PageRank算法由Stanford大学的S. Brin和L. Page提出,算法的理论基础是图论,它将Web页面看做点,完全忽视访问内容。PageRank的算法思想,是一个页面的影响力等于所有入链集合的页面带来的影响力之和。即PageRank值根据下式计算:
算法:PageRank
输入:各页面赋予相同的初值Pr(t);
输出:各页面新的PageRank值Pr(t)。
Stepl: 给各页面赋初值Pr(t)(可以对各页面初值进行归一化,使得所有页面的PageRank之和为1);
Step2:根据链接关系使用上面给出的公式计算各页面新的PageRank值,这时的PageRank可以视为各页面被访问到的概率;
Step3:判断当前的结果是否收敛,不收敛,则跳转至Step2;
Step4: 算法结束。
更复杂的情况:
(1)只有入链,没有出链。如果一个网页没有出链,就像是一个黑洞一样,吸收了其他网页的影响力而不释放,最终会导致其他网页的PageRank值为0。
(2)只有出链,没有入链。计算的过程迭代下来,会导致这个网页的PageRank值为0。
PageRank 算法的优点如下:
(1)直接高效。PageRank 算法直接对从 Internet 上模糊得来的“第一手资料”进行挖掘操作,没有中间步骤,实时性较高。而且,其思路是利用一个迭代公式进行计算,算法简单,效率较高。
(2)主题集中。PageRank算法的操作完全针对某一主题,可以较精确返回与之相关的重要页面,较好克服“主题漂移”“问题。
PageRank算法存在的缺陷如下:
(1)完全忽略网页内容,干扰挖掘结果。例如,有相关内容的竞争对手网页没有链接,而无太多相关内容的合作伙伴网页互相链接的现象,会造成挖掘结果不准确。
(2) 结果范围窄。同 HITS 算法的“知识范围扩大”与“主题漂移”类似,PageRank 算法的结果范围窄,无联想,这是“主题集中”的负面影响。
2. HITS算法
HITS 算法由Kleinberg等人提出,是Clever搜索引擎的核心技术之一。该算法的主导思想是页面的Authority权重与Hub权重分开考虑,且分别由网页的出度与入度来决定。在网页根集(root set )上进行扩充,形成比较完备的基集( Base Root ),在基集内,利用迭代公式,计算网页的Authority权重与 Hub 权重,如图所示。
算法基于以下假设:
(1)一个高质量的Authority页面会被很多高质量的Hub页面所指向;
(2)一个高质量的Hub页面会指向很多高质量的Authority页面。
HITS算法结构分为两部分:
(1)Subgraphy子程序:获得根集合和基本集合。
(2)Iterate子程序:迭代计算,每次迭代都更新每个页面的auth值hub值。
算法:HITS-Iterate
Step1:初始化,将各节点的权威值和枢纽值均设为1;
Step2:更新节点的权威值;(注意:首先计算权威值!)
Step3:更新节点的枢纽值;
Step4:将权威值和枢纽值规范化;
Step5:重复步骤2-4,直至最终收敛。
HITS 算法的优点如下:
(1)知识范围扩大。因为基集是在初步搜索所得到的根集基础上,通过链接扩充形成的。
(2)搜索时部分地考虑了页面内容。初步搜索结果的根集向分析挖掘对象的基集扩充过程,对于每个页面从Authority性与Hub性两方面考虑,部分考虑网页内容,挖掘结果科学性大大增强。
HITS 算法的缺点如下:
(1)实时性差。挖掘对象(即基集)的分析是在初步搜索结果(即根集)的基础上扩充而成的,有一定的时滞性。挖掘效率和实时性有所降低。
(2)“主题漂移”。由“知识范围扩大”特性决定,相关结果的回馈在一定程度上干扰了挖掘结果的精确性。
(3)根集的生成无确定依据。利用现有引擎确定根集,根据经验确定在200页左右,缺乏科学的搜索依据,带有一定的搜索盲目性。
3. PageRank算法和HITS算法的比较
相似之处:
(1)都是同时期提出的网页排序算法
(2)都考虑了所连接网页的数量和影响力。
不同之处:
(1) HITS计算每个网页的权威值和枢纽值,将二者分开考虑。而PageRank只计算PageRank值;
(2)HITS只处理与关键词相关的网页集合,范围很小。而PageRank是全局算法,范围很大。