HITS算法,网上有比较详细介绍的文章并不多。从现在搜索引擎算法来看,HITS算法扮演着很重要的位置。是比较权威和使用广泛的算法之一。HITS算法要比PageRank算法复杂些,但可以用简单的形式描述其本质,同时也会给出其工作原理的示例。
HITS算法,首先要做的是判别与主题相关的网页集合,要分别为每个提交给搜索引擎的用户查询判定出一个主题相关网页集。如果网页满足下面的条件,便可判定它们是与主题相关的:
a)这些网页属于一个网页集合,且网页集合中含有与用户查询最相关的文本。
b)这些网页链向满足a条件的网页,或是满足a条件的网页链向该网页。
这里有一个重要的链接假设是部分基于“链接——内容”假设的。也就是说,如果一个网页与主题相关的网页有链接关系,即使它并不含有与主题相匹配的文本信息(至少从用户查询文本来看是这样的),该网页也可能是与主题相关的。
即使是根据文本内容判定出来的相关网页,有些时候也并不相关,因为在实践中很难判定主题相关性,尤其是那些本身就有歧义的查询。一个经典的例子就是“美洲虎”。用户可能是想要查询动物,或以该词命名的汽车的相关信息。结果,返回的与主题相关的网页却是不全的,且只是部分相关的。但Kleinberg的试验表明,这并不是一个严重问题。
算法的第二部分是为主题相关集合中的每个页面算出其中心度和权威度。算法使用了与PageRank算法中相似的投票方法,同时也采用了逆向投票机制,使得每个网页都可以给链向它的网页投票。HITS算法的结果是为每个网页赋予一个中心度和一个权威度,而不是像前面所说的那样,只是将它们区分为中心网页和权威网页。
简化的HITS算法:
第一阶段:找出与查询相关或主题相关的网页集合
1.根据搜索引擎中用户输入的文本查询,找出N个与该查询最为相关的文本网页,其中N是预先设定的参数;
2.向集合中添加所有与匹配网页存在着链接关系(链向或者被链向)的网页;
3.移除所有的站内链接;
第二阶段:初始化每个网页的中心度和权威度
4.为每个网页赋予一个权威权重X和中心权重y,如X=y=1;
第三阶段:重复投票过程
5.统计每个网页的入链网页的中心度之和,计算出每个网页的权威权重;
6.统计每个网页的出链网页的权威度之和,计算出每个网页的中心权重;
7.将所有网页的中心度都除以最高中心度以将其标准化,将所有网页的权威度都除以最高权威度以将其标准化;
8.重复第5步到第7步N次,而Kleinberg在一些言论当中是建议重复20次;
第四阶段:报告结果
9.返回一张排好序的网页列表,列表中的网页有些具有较高的中心度,有些则具有较高的权威度,这样用户自己就可以选出他们认为是最好的那种类型的网页(Kleinberg建议选择前5—10个中心网页和前5-10个权威网页)。