由于近期在开发一个网页搜索应用,因此需要对搜索引擎的排序算法进行一定的了解和研究,因此对常见搜索引擎排序算法进行一点简要的分析,并且结合实际应用谈一谈如何优化搜索引擎排名。
最早的搜索引擎采用分类目录的方法,即通过人工进行网页分类并整理出高质量的网站。被称为第一代搜索引擎。
随着网页数量的增多,人工分类的方法已经不再有效,搜索引擎开始进入了文本检索的时代,通过计算用户查询关键词与网页内容的相关程度来返回搜索结果,虽然不再受数量的限制,但是对于某些恶意重复关键词来提高自己搜索引擎排名的网站难以处理,这是第二代搜索引擎。
在文本检索时代过后,出现了一种新的排名形式,通过外部链接来进行排名;当时,外部链接代表的是一种推荐的含义,通过每个网站的推荐链接的数量来判断一个网站的流行性和重要性。然后搜索引擎再结合网页内容的重要性来和相似程度来改善用户搜索的信息质量。Google首先使用了这种模式,其最主要的算法是PageRank算法,Google不仅首次使用并且大获成功,这一成就在当时引起了学术界和其他商业搜索引擎的极度关注。后来,学术界以此成就为基础,提出了更多的改进的链接分析算法。大多数的主流搜索引擎都在使用分析链接技术算法。这就是第三代搜索引擎。
第四代的搜索引擎发展出了以用户为中心的模式,用户进行每次查询时,相同的关键字可能背后是不同的需求,例如用户输入的是“苹果”,那么作为一个想要购买iPhone的用户和一个果农来说,那么要求就完全不一样。甚至是同一个用户,所查询的关键词一样,也会因为所在的时间和所在的场合不同而需要搜索不同的内容。主流搜索引擎通过对用户行为的分析,比如搜索的历史记录,还有对于权限内的用户行为,比如地理位置,网络运营商分析等,对搜索结果再度进行排名,筛选出用户需要的数据。
PageRank算法由谷歌的两位创始人,美国斯坦福大学研究生Larry Page和Sergey Brin所发明,他们在对网页排序问题的研究中,借鉴了学术界评判学术论文重要性的通用方法, 那就是看论文的引用次数。由此想到网页的重要性也可以根据这种方法来评价。于是PageRank的核心思想就诞生了:
PageRank算法的优点在于它对互联网上的网页给出了一个全局的重要性排序,并且算法的计算过程是可以离线完成的,这样有利于迅速响应用户的请求。不过,其缺点在于主题无关性,没有区分页面内的导航链接、广告链接和功能链接等,容易对广告页面有过高评价;另外,PageRank算法的另一弊端是,旧的页面等级会比新页面高,因为新页面,即使是非常好的页面,也不会有很多链接,除非他是一个站点的子站点。这就是PageRank需要多项算法结合的原因。
HITS是英文Hyperlink-Induced Topic Search 的缩写,意译为“超链诱导主题搜索”。
按照HITS算法,用户输入关键词后,算法对返回的匹配页面计算两种值,一种是枢纽值(Hub Scores),另一种是权威值(Authority Scores),这两个值是互相依存、互相影响的。所谓枢纽值,指的是页面上所有导出链接指向页面的权威值之和。权威值指的是所有导入链接所在页面的枢纽值之和。
上面的定义比较拗口,我们可以简单地说,HITS算法会提炼出两种比较重要的页面,也就是枢纽页面和权威页面。枢纽页面本身可能没有多少导入链接,但是有很多导出链接指向权威页面。权威页面本身可能导出链接不多,但是有很多来自枢纽页面的导入链接。
典型的枢纽页面就是如雅虎目录、开放目录或好123这样的网站目录。这种高质量的网站目录作用就在于指向其他权威网站,所以称为枢纽。而权威页面有很多导入链接,其中包含很多来自枢纽页面的链接。权威页面通常是提供真正相关内容的页面。
HITS算法是针对特定查询词的,所以称为主题搜索。
HITS算法的最大缺点是,它在查询阶段进行计算,而不是在抓取或预处理阶段。所以HITS算法是以牺牲查询排名响应时间为代价的。也正因为如此,原始HITS算法在搜索引擎中并不常用。不过HITS算法的思想很可能融入到搜索引擎的索引阶段,也就是根据链接关系找出具有枢纽特征或权威特征的页面。
HillTop,是一项搜索引擎结果排序的专利,是Google的一个工程师Bharat在2001年获得的专利。HillTop算法的指导思想和PageRank是一致的,即都通过反向链接的数量和质量来确定搜索结果的排序权重。但HillTop认为只计算来自具有相同主题的相关文档链接对于搜索者的价值会更大,即主题相关网页之间的链接对于权重计算的贡献比主题不相关的链接价值要更高。在1999-2000年,当这个算法被Bharat与其他Google开发人员开发出来的时候,他们称这种对主题有影响的文档为“专家”文档,而只有从这些专家文档页面到目标文档的链接决定了被链接网页“权重得分”的主要部分。
Hilltop算法的过程:首先计算查询主题最相关的“专家”资源列表;其次在选中的“专家”集中识别相关的链接,并追踪它们以识别相关的网页目标;然后将目标根据非关联的指向它们的“专家”数量和相关性排序。由此,目标网页的得分反映了关于查询主题的最中立的专家的集体观点。如果这样的专家池不存在,Hilltop不会给出结果。
从Hilltop算法过程可见,该算法包括两个主要的方面:寻找专家、目标排序。通过对搜索引擎抓取的网页进行预处理,找出专家页面。对于一个关键词的查询,首先在专家中查找,并排序返回结果。
权威页面是对于一个查询主题来说最好的专家指向的页面。专家也有可能在更宽泛的领域或其它领域的主题上也是专家。在专家页面中只有一部分链接与主题相关。因此,把查询主题的专家中相关的外向链接合并,以找到查询主题相关页面高度认可的页面。
从排名在前的匹配专家页面和相联系的匹配信息中选择专家页面中一个超链接的子集。尤其选择那些与所有的查询相关的链接。基于这些选中的链接找出一个它们的目标子集作为查询主题最相关的网页。这个目标子集包含至少被两个非亲属的专家页面链接到的网页。目标集根据指向它们的专家的综合成绩来排序。
Hilltop在应用中还存在一些不足。专家页面的搜索和确定对算法起关键作用,专家页面的质量决定了算法的准确性;而专家页面的质量和公平性在一定程度上难以保证。Hiltop忽略了大多数非专家页面的影响。在Hiltop的原型系统中,专家页面只占到整个页面的1.79%,不能全面代表整个互联网。
Hiltop算法在无法得到足够的专家页面子集时(少于两个专家页面),返回为空,即Hiltop适合于对查询排序进行求精,而不能覆盖。这意味着Hilltop可以与某个页面排序算法结合,提高精度,而不适合作为一个独立的页面排序算法。Hilltop中根据查询主题从专家页面集合中选取与主题相关的子集也是在线运行的,这与前面提到的HITS算法一样会影响查询响应时间。随着专家页面集合的增大,算法的可伸缩性存在不足之处。
与前面的两种算法相比,Ask Jeeves公司的Direct Hit算法是一种注重信息的质量与用户反馈的排序方法。它的基本思想是,搜索引擎将查询的结果返回给用户,并跟踪用户在检索结果中的点击。如果返回结果中排名靠前的网页被用户点击后,浏览时间较短,用户又重新返回点击其它的检索结果,那么可以认为其相关度较差,系统将降低该网页的相关度。另一方面,如果网页被用户点击打开进行浏览,并且浏览的时间较长,那么该网页的受欢迎程度就高,相应地,系统将增加该网页的相关度。可以看出,在这种方法中,相关度在不停地变化,对于同一个词在不同的时间进行检索,得到结果集合的排序也有可能不同,它是一种动态排序。
该算法的优点是能够节省大量时间,因为用户阅读的是从搜索结果中筛选出来的更加符合要求的结果。同时,这种算法直接融入用户的反馈信息,能够保证页面的质量。
然而,统计表明,Direct Hit算法只适合于检索关键词较少的情况,因为它实际上并没有进行排序,而是一种筛选和抽取,在检索数据库很大、关键词很多的时候,返回的搜索结果成千上万,用户不可能一一审阅。因此,这种方式也不能作为主要的排序算法来使用,而是一种很好的辅助排序算法,目前在许多搜索引擎当中仍然在使用。
其实对于网页的搜索排名,都是多种算法综合作用的结果,简单分析上面的三种算法,Pagerank可以给网站上的所有网页给予一个重要性的排序,但是没有针对性、相关性,而且现在PR值作弊已经到了一个泛滥的地步,所以PR就Hilltop算法的提出,对于广大站长做外部链接建设,将起到指导作用。在Hilltop算法中,每个领域都会有若干专家页面,如果搜索相关关键词,搜索引擎首先会从专家页面查找,如果匹配度不够,再从专家页面链接的下一级页面查找,以此类推。Direct Hit算法可以作为Hilltop和pagerank很好的补充,Direct Hit更多的是,考虑了用户体验的影响,对搜索结果的质量,进行实时的更新,一个最符合搜索用户要求的页面,应该是用户从搜索框中点击页面链接开始,用户浏览网站超过一定时间则被认为结果页面,更符合用户搜索的要求,长期有效的点击,页面在搜索引擎中排名,就会有相应的提高。
根据对上述搜索引擎排序算法的分析,我们可以获得以下几个关键词:枢纽,相同主题,专家页面。
以上排序算法基本都是针对与网页外链,即连接相关性的排名,因此,我们可以通过链接对关键字进行分析理解。
枢纽代表的是一种特殊的页面,比如页面目录,其作用主要是有许多导出链接去指向专家页面,而不一定有很多导入链接;专家页面指的是具有很多主题相同的外链的页面,通过专家页面就可以获得贡多主题相关的信息,因此可以获取很高的相关性评分。枢纽页面与专家页面的关系一般是专家页面会有很多枢纽页面的外链。
以上是链接相关性的基本描述,对于一个基本的搜索引擎来说,还需要对于搜索的关键字进行匹配,获得文本的相关性得分,再将两者的得分进行平衡计算得到一个最终的评分值,从而得到最终的相关性评分。
搜索引擎还需要对页面的热度和新旧程度进行评分,避免新页面的排名过低导致难以搜索到,最后我们就可以计算出一个总分,通过总分进行排名即可得到最终搜索的排名。
通过学习常用的搜索引擎评分机制,我们可以更好的对搜索引擎的结果排名进行调整优化。
公式如下:
GoogleScore = (KW Usage Score * 0.3) + (Domain Strength * 0.25) +(Inbound Link Score * 0.25) + (User Data * 0.1) + (Content QualityScore * 0.1) + (Manual Boosts) – (Automated & Manual Penalties)
由公式可知,在公式中,占比最大的三项分别是相关关键词分数(KW Usage Score),域名权重(Domain Strength)和外链分数(Inbound Link Score),占比达到0.8,此后内容质量分数(Content QualityScore)一般来说需要使用机器学习等方式自动评定,而用户数据(User Data)需要权限以及长期统计,而人工干预则要运营人员进行处理,因此不做考虑。
在搜索引擎最终评分决定时就可以按照上述规则,再加以使用范围的适应性调整得到所需的评分机制。
由于鄙人水平所限,可能文章中有诸多错误之处,还请各位有识之士能在评论中指出:)