HillTop ,是一项搜索引擎结果排序的专利,是Google的一个工程师Bharat在2001年获得的专利。Google的排序规则经常在变化,但变化最大的一次也就是基于HillTop算法进行了优化。
其实HillTop算法的指导思想和PageRank的是一致的,都是通过网页被链接的数量和质量来确定搜索结果的排序权重。但HillTop认为只计算来自具有相同主题的相关文档链接对于搜索者的价值会更大:即主题相关网页之间的链接对于权重计算的贡献比主题不相关的链接价值要更高。如果网站是介绍“服装”的,有10个链接都是从“服装”相关的网站链接过来,那这10个链接比另外10个从“电器”相关网站链接过来的贡献要大。。在1999与2000年,当这个算法被Bharat与其他Google开发人员开发出来的时候,Bharat称这种对主题有影响的文档为“专家”文档,从这些专家文档页面到目标文档的链接决定了被链接网页“权重得分”的主要部分。
与PageRank结合HillTop算法确定网页与搜索关键词的匹配程度的基本排序过程取代了过分依靠PageRank的值去寻找那些权威页面的方法。这对于两个具有同样主题而且PR相近的网页排序过程中, HillTop算法就显得非常的重要了。HillTop同时也避免了许多想通过增加许多无效链接来提高网页PageRank值的作弊方法。
Google最早利用HillTop算法去定义相关网站:一个网站与另一个网站的相关性,实际上,HillTop算法在Google中也作为一个识别跨站点的链接交换干扰(spam)与识别相似链接的技术。HillTop算法要求:如果有两个以上相关主题的网站链接到你的网站,那么你的网站在搜索结果中出现的机会会更大,如果HillTop算法不查找到最少两个相关性的网站,那么搜索返回的结果的机会绝对是0。
HillTop算法实际上是拒绝了部分通过随意交换链接的方法来扰乱Google的排名规则而得到较好排名的做法,而在HillTop的论文中也提到很多关于识别“网站链接交换联盟”的设计:如根据IPv4地址的头3段,根据域名的别名推测:1
PR值对于搜索关键词的匹配度作用不大:因为在很多包含相应关键词的非相关主题的网站具有很高的PR值。这就是Google在HillTop算法中尽量避免的东西:应该尽其所能去列出与搜索关键词相关的结果。
总得看来,从过去到今天,很多搜索引擎停止了那种只使用一种有价值的算法去决定排名的做法。如:meta keyword标签等。这只是一个开始,Google在第一步已经完全忽略html header中的meta标签了。与不可见的meta标签相比,一个网站的可视部分使用干扰技术较在meta使用的要少,因为可视部分毕竟还要面对大部分的实际的访问者。
算法难点
基于“专家”文档的HillTop算法最大的难点是第一次“专家文档”的筛选,从观察来看:Google显然首先给了教育(.edu),政府(.gov)和非盈利组织(.org)站点很高的优先级。在运行时:Google会在庞大的内存里储存搜索频率比较高的关键词的索引,以备搜索者在短期内继续用同样的关键字短语等进行搜索。这些高频关键词还有另外一种作用,在“佛罗里达”更新之前很多人已经注意到的了:含有那些突增的搜索关键字的网站会得到较快的更新频率。如关于:\"SARS",每天的搜索次数数以百万计:Google就会优先对与这个主题有关的网站进行更新。
回头看一下以前每个月的“Google Dance”,也能得出以下的结论:Google也明显地为一个关键词给予一个随机的“权重”,动态的根据关键词查询统计发现这些热门关键词,然后基于HillTop算法面向主题地找到这些含有热门关键词的网页,让这些网页作为相应关键词的“专家”文档,针对这些索引入口保持比较高的更新频率:这点显然对于应对突发事件非常有效。而那些含有查询频率比较低的关键词所对应的网页可能要1月才更新一次。简单的说就是:Google会根据主题的热门程度动态调整相应网站的索引的强度。而Google中文用户在总体用户中的比例与Google索引的中文网页在索引的总体网页中的比例,从某种程度上说,也是有一定关系的。
运行频率
Google所拥有的服务器体系架构就是网络上分布的一万台奔腾级服务器。而一旦了解了Hilltop算法后,我们很难相信这样的奔腾服务器能够具备如此的处理能力:试想一下,首先要从成千上万的主题性文件中找到“专家文件”,然后计算目标网页自这些专家文件的链接的得分,然后再将数值返回 Google算法的其它排名系统,并做进一步处理—而所有这些要在大约0.07秒内--这个让Google举世闻名的搜索速度内完成。确实使人难以置信。
我们认为,要保证Google一贯的“闪电般”搜索速度,Google会对搜索频率较高(热门)的查询词(即所谓的“商业词”黑名单)定期运行批处理,并将结果存储起来供日后使用。Google的数据库拥有数目庞大的高查询频率的查询词,收集自实地搜索和其AdWords自助广告系统中所使用的关键词。Google很可能对关键词搜索次数设置了上限值,凡搜索频率高于此阈值的查询词都将被纳入Hilltop系统,然后Hilltop系统再对收集的所有高查询频率关键词定期运行批处理,可能一个月一次。增量级的稍小规模的批处理可能会频繁一些。同时,每个月将对Hilltop系统运行批处理后的结果对Google的万台服务器的数据库进行同步更新,但稍小规模的批处理的数据库更新会更加频繁一些。
对于那些用户查询频率不算高,因而无此“荣幸”被纳入Hilltop算法的查询词语,Google仍将使用原来的算法并显示原来的排名结果。因而对于那些高度明确或专业化的关键词,由于它们被排除在新算法的范围之内,因而有望保持原来的排名。
HillTop算法不足
专家页面的搜索和确定对算法起关键作用,专家页面的质量决定了算法的准确性;而专家页面的质量和公平性在一定程度上难以保证。 Hiltop忽略了大多数非专家页面的影响。
在Hilltop的原型系统中,专家页面只占到整个页面的1.79%,不能全面反映民意。
Hilltop算法在无法得到足够的专家页面子集时(少于两个专家页面),返回为空,即Hilltop适合于对查询排序进行求精,而不能覆盖。这意味着Hilltop可以与某个页面排序算法结合,提高精度,而不适合作为一个独立的页面排序算法。
Hilltop中根据查询主题从专家页面集合中选取与主题相关的子集也是在线运行的,这与前面提到的HITS算法一样会影响查询响应时间。随着专家页面集合的增大,算法的可伸缩性存在不足之处。