君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理

摘  要:     本文简要介绍和比较了目前搜索引擎所使用的排序算法,主要包括词频位置加权排序算法,链接分析排序算法,并着重介绍了PageRank算法和HITS算法的思想以及二者比较的优缺点。

关键词:     搜索引擎;排序; PageRank; HITS

 

1     前言

Google和Baidu的崛起,很大程度上是由于他们使用了较以往搜索引擎更加优秀的排序技术。由于通常人们只会关注搜索结果的前10项或20项,所以将与用户查询的结果最相关的信息排列在结果的前排是尤为重要的。比如说以.jp, .de和.edu域名下的网页通常会比.com和.net域名下的网页更加有用[1] 。如何使用户关注的网页排列在搜索结果中靠前排列,使各个搜索引擎公司不断改进优化的方向。作者通过阅读论文与网络资料,将总结并介绍几种比较主要的排序算法:词频位置加权排序算法,链接分析排序算法。

2     词频位置加权排序算法

此类技术是由传统的情报检索和技术基础上发展而来的,即用户输入的检索词在网页中出现的频率越高,出现的位置越重要,那么就认为该网页与此检索词的相关度越高,其在搜索结果出现的位置越靠前,早期的搜索引擎如InfoSeek, Excite, Lycos都使用此类排序方法。

2.1    词频加权

词频加权即根据用户提供的检索词在网页中出现的次数作为判定网页相关度权值高低的依据。词频加权的方法有绝对词频加权、相对词频加权、反词频加权、基于词分辨值加权等等。对于单一词搜索引擎, 只用单纯地计算一个词在网页中的出现频率就可给定权值,而对于具有进行逻辑组配功能的搜索引擎, 则必须用其它的加权方法。因为用组配的检索式检索时, 检索结果跟检索式中的每个检索词相关, 而每个检索词在所有的网页中出现的总频率是不同的,如果按总权值来排序, 就会造成结果的不相关。这可以通过其它多种方法解决。例如, 利用相对词频加权原理, 可以通过对大量网页的统计, 把越是在所有网页中出现频率高的词赋予一个较低的初始值相对地, 在所有网页中出现频率低的词, 给一个较高的权值[2]。                                                                                                                                                                          

2.2    词位置加权

通过对词在网页中不同位置和版式, 给予不同的权值, 从而根据权值来确定所搜索的结果和搜索词的相关程度。词的位置包括网页标题元、网页描述关键字元、正文标题、正文内容、文本链接、标识等, 版式包括字体、字号、有无加粗强调等。例如要了解排序技术, 在搜索“排序技术” 时, 有两个结果,一个标题是《搜索引擎的排序技术》, 另一篇文章的标题是《Web信息检索》, 但内容有个别地方提到搜索引擎的排序技术, 显然第一个结果的相关性更大,“排序技术” 这个词在第一个结果中给予的权值应大一些。

2.3    此类算法的优缺点

此类方法的主要优点就是易用易实现,而且发展的也最成熟,基本上目前所有的搜索引擎排序核心技术的基础。但是由于目前网络的内容质量无法得到保证,为使其网页在搜索引擎中排名靠前,在网页中加入和背景颜色一样的层,并填入大量热门关键词, 人来浏览网页时完全看不到,但搜索引擎在标引时, 却能发现。这种问题目前已经得到一定程度的改善,但仍然未能完全根除。

3     链接分析排序

链接分析排序算法的思想,其实来自于论文文献索引机制,即一篇论文或文献被引用的次数越多,那么其学术价值就越高,同样类比到网页,如果指向某网页的链接越多,那么该网页的重要性就越高。链接分析算法主要分为基于随机漫游模型的, 比如PageRank算法;基于Hub和Authority相互加强模型的, 如HITS及其变种;基于概率模型的, 如SALSA; 基于贝叶斯模型的, 如贝叶斯算法及其简化版本。下面将分别对这几种算法进行介绍。

3.1    PageRank算法

Google搜索引擎有两个重要的特征使得它可以得到高准确度的结果。一,它利用网络的链接特性来计算网页的质量排名,这就是PageRank;二,它利用链接来改进搜索结果[3]

    简单的PageRank原理即如图1所示的那样,从网页A导向网页B的链接被看作是对页面A对页面B的支持投票,Google根据这个投票数来判断页面的重要性。可是 Google 不单单只看投票数(即链接数),对投票的页面也进行分析。重要性高的页面所投的票的评价会更高。

 

图1 PageRank原理简易示意图[4]

最初的PageRank算法:PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

式中:PR(A) :网页A页的PageRank值;PR(Ti): 链接到A页的网页Ti的PageRank值;C(Ti) :网页Ti的出站链接数量;d :阻尼系数,0<d<1。Lawrence Page和Sergey Brin为以上这个PageRank算法给出了一个非常简单直观的解释。他们将PageRank视作一种模型,就是用户不关心网页内容而随机点击链接。

在第二个版本的算法里:PR(A) = (1-d) / N + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

这里的N是整个互联网网页的总数。这个算法2,并不是完全不同于算法1。随机冲浪模型中,算法2中页面的PageRank值就是在点击许多链接后到达这个页面页面的实际概率。因此,互联网上所有网页的PageRank值形成一个概率分布,所有RageRank值之和为1。

由于PR(A)取决于其他链向网页A的网页PageRank值,而其他网页的PR值同样取决于指向该网页的网页PR值,如此往复下去,是个递归的过程。如此看来需要进行无穷尽的计算,才能获得网页的PR值,根据参考文献5中的试验,它对网络中的3.22亿个链接进行递归计算,发现进行52次计算后可获得收敛稳定的PageRank值,而对其中一半的链接计算PageRank值时,进行了45次计算。通过试验,发现需要进行递归计算的次数和链接数是成对数比例增长的,即要对N个链接进行计算PageRank值时,只需进行logN次递归计算就可获得稳定的PageRank值[5]

3.2    Hits算法

PageRank算法中对于链接一视同仁,认为每个链接所贡献的权值都是相同的,而在实际生活中,有些链接是指向广告,而有些链接则指向权威网页。可见,均匀分布的权值并不符合实际情况。于是康奈尔大学的Jon Kleinberg博士于1998年首先提出Hits算法。

HITS算法对网页进行质量评估的结果反映在它对每个网页给出的两个评价数值:内容权威度(Authority)和链接权威度(Hub)上。

内容权威度与网页自身直接提供内容信息的质量相关,被越多网页所引用的网页,其内容权威度越高;与之相对应的,链接权威度与网页提供的超链接的质量相关,引用越多内容质量高网页的网页,其链接权威度越高。将查询提交给传统的基于关键字匹配的搜索引擎.搜索引擎返回很多网页,从中取前n个网页作为根集合。把根集合中的页面所指向的页面都包括进来,再把指向根集合中页面的页面也包括进来,这样就扩充成了基础集合。HITS算法输出一组具有较大Hub值的网页和具有较大权威值的网页[6]

与PageRank等实用性算法不同,HITS算法更大程度上是一种实验性质的尝试。表面上看,HITS 算法对需排序的网页数量较小,但由于需要从基于内容分析的搜索引擎中提取根集并扩充基本集,这个过程需要耗费相当的时间,而PageRank 算法表面上看,处理的数据数量上远远超过了HITS算法,但由于其计算量在用户查询时已由服务器端独立完成,不需要用户端等待,基于该原因,从用户端等待时间来看,PageRank算法应该比HITS 要短[7]

3.3    其他链接分析排序算法

PageRank算法是基于用户随机的向前浏览网页的直觉知识,HITS算法考虑的是Authoritive网页和Hub网页之间的加强关系。实际应用中,用户大多数情况下是向前浏览网页,但是很多时候也会回退浏览网页。基于上述直觉知识,R. Lempel和S. Moran提出了SALSA(Stochastic Approach for Link-Structure Analysis)算法,考虑了用户回退浏览网页的情况,保留了PageRank的随机漫游和HITS中把网页分为Authoritive和Hub的思想,取消了Authoritive和Hub之间的相互加强关系[8]

Allan Borodin等提出了完全的贝叶斯统计方法来确定Hub和Authoritive网页。假定有M个Hub网页和N个Authority网页,可以是相同的集合。每个Hub网页有一个未知的实数参数,表示拥有超链的一般趋势,一个未知的非负参数,表示拥有指向Authority网页的链接的趋势。每个Authoritive网页j,有一个未知的非负参数,表示j的Authority的级别。统计模型如下,Hub网页i到Authority网页j的链接的先验概率如下给定:P(i,j)=Exp(+)/(1+Exp(+))。Hub网页i到Authority网页j没有链接时,P(i,j)=1/(1+Exp(+))。从以上公式可以看出,如果很大(表示Hub网页i有很高的趋势指向任何一个网页),或者和都很大(表示i是个高质量Hub,j是个高质量的Authority网页),那么i->j的链接的概率就比较大[9]

4     其他排序技术

除了上述两大类排序算法外,还有其他一些排序的方法,比如:竞价排名(竞价排名是一些搜索引擎公司如百度所推出的一种按价格高低决定排名先后的网络推广方式,但对竞价者的信息真实性需要进行严格甄选,否则用户对搜索引擎的信任会被灰色产业利用[10]),通过用户反馈提高排序准确性,通过理解增加排序的相关性,通过智能过滤减少排序结果的重复性等。

5     结束语

综上所述,目前像Google这样的搜索引擎,其中排序方法是非常复杂的,它需要考虑各个方面的因素而不是单一的上述某种算法。我个人认为搜索引擎今后会变得更加人性化,会根据用户的喜好来对结果进行排序和过滤,另外针对特定领域的专业搜索引擎也会逐渐发展起来,比如针对财经,体育之类的专门搜索引擎。相信在浏览器逐渐强大的未来,搜索引擎将发挥更大的影响力。

 

 

References:

 [1]     Dennis Fetterly , Mark Manasse , Marc Najork , Janet Wiener: A Large-Scale Study of the Evolution of Web Pages, In:Proc.of the 12th Int'l World Wide Web Conf.New York:ACM Press,2003.669-678..

 [2]     杨思洛. 搜索引擎的排序技术研究[J].现代图书情报技术, 2005, (01).

 [3]     S.Brin and L.Page, "The anatomy of a large-scale hypertextual Web search engine," presented at Proceeding of the Seventh International World Wide Web Conference(WWW7)/Computer Networks, Amsterdam, 1998

 [4]     Page L, Brin S, etc. The pagerank citation ranking: bringing order to the Web[J].Stanford Digital Libraries Working Paper,1998,(6):102-107.

 [5]     T. Have liwala. Efficient computation of PageRank. Technical Report 1999-31, 1999.

 [6]     http://www.360doc.com/showWeb/0/0/569471.aspx

 [7]     何晓阳, 吴强, 吴治蓉:HITS算法与PageRank算法比较分析.情报杂志2004年第2期

 [8]     http://hi.baidu.com/en_seo/blog/item/ba54f586b343f13c67096e97.html

 [9]     朱炜, 王超, 李俊等. Web超链分析算法研究.计算机科学,2003,30(1)

[10]     常璐, 夏祖奇; 搜索引擎的几种常用排序算法.图书情报工作2003年第6期

转载 http://blog.csdn.net/arthur0808/article/details/4030340

posted on 2015-06-19 05:33  刺猬的温驯  阅读(3252)  评论(0编辑  收藏  举报