搜索引擎的核心算法

第一种算法:PageRank算法算法

  1998年,Sergey Brin和Lawrence Page提出了PageRank算法。该算法基于“从许多优质的网页连接过来的网页,一定仍是优质网页”的回归关系,来断定网页的重要性。该算法认为从网页A导向网页B的连接能够看做是页面A对页面B的支持投票,根据这个投票数来判断页面的重要性。固然,不只仅只看投票数,还要对投票的页面进行重要性分析,越是重要的页面所投票的评价也就越高。根据这样的分析,获得了高评价的重要页面会被给予较高的PageRank值,在检索结果内的名次也会提升。PageRank是基于对“使用复杂的算法而获得的连接构造” 的分析,从而得出的各网页自己的特性。数据库

  分析:PageRank算法的优势在于它对互联网上的网页给出了一个全局的重要性排序,而且算法的计算过程是能够离线完成的,这样有利于迅速响应用户的请求。不过,其缺点在于主题无关性,没有区分页面内的导航连接、广告连接和功能连接等,容易对广告页面有太高评价;另外,PageRank算法的另外一弊端是,旧的页面等级会比新页面高,由于新页面,即便是很是好的页面,也不会有不少连接,除非他是一个站点的子站点。这就是PageRank须要多项算法结合的缘由。并发

  第二种算法:Hilltop算法网站

  HillTop,是一项搜索引擎结果排序的专利,是Google的一个工程师Bharat在2001年得到的专利。HillTop算法的指导思想和PageRank是一致的,即都经过反向连接的数量和质量来肯定搜索结果的排序权重。但HillTop认为只计算来自具备相同主题的相关文档连接对于搜索者的价值会更大,即主题相关网页之间的连接对于权重计算的贡献比主题不相关的连接价值要更高。在1999-2000年,当这个算法被Bharat与其余Google开发人员开发出来的时候,他们称这种对主题有影响的文档为“专家”文档,而只有从这些专家文档页面到目标文档的连接决定了被连接网页“权重得分”的主要部分。搜索引擎

  Hilltop算法的过程:首先计算查询主题最相关的“专家”资源列表;其次在选中的“专家”集中识别相关的连接,并追踪它们以识别相关的网页目标;而后将目标根据非关联的指向它们的“专家”数量和相关性排序。由此,目标网页的得分反映了关于查询主题的最中立的专家的集体观点。若是这样的专家池不存在,Hilltop不会给出结果。排序

  从Hilltop算法过程可见,该算法包括两个主要的方面:寻找专家;目标排序。经过对搜索引擎抓取的网页进行预处理,找出专家页面。对于一个关键词的查询,首先在专家中查找,并排序返回结果。索引

  权威页面是对于一个查询主题来讲最好的专家指向的页面。专家也有可能在更宽泛的领域或其它领域的主题上也是专家。在专家页面中只有一部分连接与主题相关。所以,把查询主题的专家中相关的外向连接合并,以找到查询主题相关页面高度承认的页面。资源

  从排名在前的匹配专家页面和相联系的匹配信息中选择专家页面中一个超连接的子集。尤为选择那些与全部的查询相关的连接。基于这些选中的连接找出一个它们的目标子集做为查询主题最相关的网页。这个目标子集包含至少被两个非亲属的专家页面连接到的网页。目标集根据指向它们的专家的综合成绩来排序。开发

  Hilltop在应用中还存在一些不足。专家页面的搜索和肯定对算法起关键做用,专家页面的质量决定了算法的准确性;而专家页面的质量和公平性在必定程度上难以保证。Hiltop忽略了大多数非专家页面的影响。在Hiltop的原型系统中,专家页面只占到整个页面的1.79%,不能全面表明整个互联网。文档

  Hiltop算法在没法获得足够的专家页面子集时(少于两个专家页面),返回为空,即Hiltop适合于对查询排序进行求精,而不能覆盖。这意味着Hilltop能够与某个页面排序算法结合,提升精度,而不适合做为一个独立的页面排序算法。Hilltop中根据查询主题从专家页面集合中选取与主题相关的子集也是在线运行的,这与前面提到的HITS算法同样会影响查询响应时间。随着专家页面集合的增大,算法的可伸缩性存在不足之处。

  分析:HITS算法的优势在于它能更好地描述互联网的组织特色,因为它只是对互联网中的很小的一个子集进行分析,因此它须要的迭代次数更少,收敛速度更快,减小了时间复杂度。

  但HITS算法也存在以下缺点:中心网页之间的相互引用以增长其网页评价,当一个网站上的多篇网页指向一个相同的连接,或者一个网页指向另外一个网站上的多个文件时会引发评分的不正常增长,这会致使易受“垃圾连接”的影响;网页中存在自动生成的连接;

  主题漂移,在邻接图中常常包括一些和搜索主题无关的连接,若是这些连接自身也是中心网页或权威网页就会引发主题漂移:对于每一个不一样的查询算法都须要从新运行一次来获取结果。这使得它不可能用于实时系统,由于对于上千万次的并发查询这样的开销实在太大。

  第三种算法:Direct Hit 算法

  与前面的算法相比,Ask Jeeves公司的Direct Hit算法是一种注重信息的质量和用户反馈的排序方法。它的基本思想是,搜索引擎将查询的结果返回给用户,并跟踪用户在检索结果中的点击。若是返回结果中排名靠前的网页被用户点击后,浏览时间较短,用户又从新返回点击其它的检索结果,那么能够认为其相关度较差,系统将下降该网页的相关性。另外一方面,若是网页被用户点击打开进行浏览,而且浏览的时间较长,那么该网页的受欢迎程度就高,相应地,系统将增长该网页的相关度。能够看出,在这种方法中,相关度在不停地变化,对于同一个词在不一样的时间进行检索,获得结果集合的排序也有可能不一样,它是一种动态排序。

  分析:该算法的优势是可以节省大量时间,由于用户阅读的是从搜索结果中筛选出来的更加符合要求的结果。同时,这种算法直接融入用户的反馈信息,可以保证页面的质量。

  然而,统计代表,Direct Hit算法只适合于检索关键词较少的状况,由于它实际上并无进行排序,而是一种筛选和抽取,在检索数据库很大、关键词不少的时候,返回的搜索结果成千上万,用户不可能一一审阅。所以,这种方式也不能做为主要的排序算法来使用,而是一种很好的辅助排序算法,目前在许多搜索引擎当中仍然在使用。

  其实对于网页的搜索排名,都是多种算法综合做用的结果,简单分析上面的三种算法,Pagerank能够给网站上的全部网页给予一个重要性的排序,可是没有针对性、相关性,并且如今PR值做弊已经到了一个泛滥的地步,因此PR就网页排名的重要性已经大为降低;

  Hilltop算法的提出,对于广大站长作外部连接建设,将起到指导做用。在Hilltop算法中,每一个领域都会有若干专家页面,若是搜索相关关键词,搜索引擎首先会从专家页面查找,若是匹配度不够,再从专家页面连接的下一级页面查找,以此类推。

  Direct Hit算法能够做为Hilltop和pagerank很好的补充,Direct Hit更多的是,考虑了用户体验的影响,对搜索结果的质量,进行实时的更新,一个最符合搜索用户要求的页面,应该是用户从搜索框中点击页面连接开始,用户浏览网站超过必定时间,则被认为结果页面,更符合用户搜索的要求,长期有效的点击,页面在搜索引擎中排名,就会有相应的提升。

  经过以上三种算法,就能够明白,不管是作外链仍是网站内容建设,首先须要考虑的就是相关性,在外链建设中,要努力寻找主题相关中,权威度高的网站,软文、友情连接等,均可以看做是这些网站,对你的支持,同时,注意网站的跳出率和浏览时间,时刻反馈用户数据,对一些重点页面,用户点击量较高的页面,作好相关性推荐,引导用户点击更多的页面。

相关文章
相关标签/搜索