搜索引擎算法.docx

上传人:b****2 文档编号:2231393 上传时间:2023-05-02 格式:DOCX 页数:17 大小:31.71KB
下载 相关 举报
搜索引擎算法.docx_第1页
第1页 / 共17页
搜索引擎算法.docx_第2页
第2页 / 共17页
搜索引擎算法.docx_第3页
第3页 / 共17页
搜索引擎算法.docx_第4页
第4页 / 共17页
搜索引擎算法.docx_第5页
第5页 / 共17页
搜索引擎算法.docx_第6页
第6页 / 共17页
搜索引擎算法.docx_第7页
第7页 / 共17页
搜索引擎算法.docx_第8页
第8页 / 共17页
搜索引擎算法.docx_第9页
第9页 / 共17页
搜索引擎算法.docx_第10页
第10页 / 共17页
搜索引擎算法.docx_第11页
第11页 / 共17页
搜索引擎算法.docx_第12页
第12页 / 共17页
搜索引擎算法.docx_第13页
第13页 / 共17页
搜索引擎算法.docx_第14页
第14页 / 共17页
搜索引擎算法.docx_第15页
第15页 / 共17页
搜索引擎算法.docx_第16页
第16页 / 共17页
搜索引擎算法.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

搜索引擎算法.docx

《搜索引擎算法.docx》由会员分享,可在线阅读,更多相关《搜索引擎算法.docx(17页珍藏版)》请在冰点文库上搜索。

搜索引擎算法.docx

搜索引擎算法

几种搜索引擎算法研究

Postedon2010-01-0610:

02我不是高手阅读(266)评论(0)编辑收藏

1.引言

万维网WWW(WorldWideWeb)是一个巨大的,分布全球的信息服务中心,正在以飞快的速度扩展。

1998年WWW上拥有约3.5亿个文档[14],每天增加约1百万的文档[6],不到9个月的时间文档总数就会翻一番[14]。

WEB上的文档和传统的文档比较,有很多新的特点,它们是分布的,异构的,无结构或者半结构的,这就对传统信息检索技术提出了新的挑战。

传统的WEB搜索引擎大多数是基于关键字匹配的,返回的结果是包含查询项的文档,也有基于目录分类的搜索引擎。

这些搜索引擎的结果并不令人满意。

有些站点有意提高关键字出现的频率来提高自身在搜索引擎中的重要性,破坏搜索引擎结果的客观性和准确性。

另外,有些重要的网页并不包含查询项。

搜索引擎的分类目录也不可能把所有的分类考虑全面,并且目录大多靠人工维护,主观性强,费用高,更新速度慢[2]。

最近几年,许多研究者发现,WWW上超链结构是个非常丰富和重要的资源,如果能够充分利用的话,可以极大的提高检索结果的质量。

基于这种超链分析的思想,SergeyBrin和LawrencePage在1998年提出了PageRank算法[1],同年J.Kleinberg提出了HITS算法[5],其它一些学者也相继提出了另外的链接分析算法,如SALSA,PHITS,Bayesian等算法。

这些算法有的已经在实际的系统中实现和使用,并且取得了良好的效果。

文章的第2部分按照时间顺序详细剖析了各种链接分析算法,对不同的算法进行了比较。

第3部分对这些算法做了评价和总结,指出了存在的问题和改进方向。

2.WEB超链分析算法

2.1 Google和PageRank算法

搜索引擎Google最初是斯坦福大学的博士研究生SergeyBrin和LawrencePage实现的一个原型系统[2],现在已经发展成为WWW上最好的搜索引擎之一。

Google的体系结构类似于传统的搜索引擎,它与传统的搜索引擎最大的不同处在于对网页进行了基于权威值的排序处理,使最重要的网页出现在结果的最前面。

Google通过PageRank元算法计算出网页的PageRank值,从而决定网页在结果集中的出现位置,PageRank值越高的网页,在结果中出现的位置越前。

2.1.1 PageRank算法

PageRank算法基于下面2个前提:

前提1:

一个网页被多次引用,则它可能是很重要的;一个网页虽然没有被多次引用,但是被重要的网页引用,则它也可能是很重要的;一个网页的重要性被平均的传递到它所引用的网页。

这种重要的网页称为权威(Authoritive)网页。

前提2:

假定用户一开始随机的访问网页集合中的一个网页,以后跟随网页的向外链接向前浏览网页,不回退浏览,浏览下一个网页的概率就是被浏览网页的PageRank值。

简单PageRank算法描述如下:

u是一个网页,是u指向的网页集合,是指向u的网页集合,是u指向外的链接数,显然=||,c是一个用于规范化的因子(Google通常取0.85),(这种表示法也适用于以后介绍的算法)则u的Rank值计算如下:

这就是算法的形式化描述,也可以用矩阵来描述此算法,设A为一个方阵,行和列对应网页集的网页。

如果网页i有指向网页j的一个链接,则,否则=0。

设V是对应网页集的一个向量,有V=cAV,V为A的特征根为c的特征向量。

实际上,只需要求出最大特征根的特征向量,就是网页集对应的最终PageRank值,这可以用迭代方法计算。

如果有2个相互指向的网页a,b,他们不指向其它任何网页,另外有某个网页c,指向a,b中的某一个,比如a,那么在迭代计算中,a,b的rank值不分布出去而不断的累计。

如下图:

为了解决这个问题,SergeyBrin和LawrencePage改进了算法,引入了衰退因子E(u),E(U)是对应网页集的某一向量,对应rank的初始值,算法改进如下:

其中,=1,对应的矩阵形式为V’=c(AV’+E)。

另外还有一些特殊的链接,指向的网页没有向外的链接。

PageRank计算时,把这种链接首先除去,等计算完以后再加入,这对原来计算出的网页的rank值影响是很小的。

Pagerank算法除了对搜索结果进行排序外,还可以应用到其它方面,如估算网络流量,向后链接的预测器,为用户导航等[2]。

2.1.2 算法的一些问题

Google是结合文本的方法来实现PageRank算法的[2],所以只返回包含查询项的网页,然后根据网页的rank值对搜索到的结果进行排序,把rank值最高的网页放置到最前面,但是如果最重要的网页不在结果网页集中,PageRank算法就无能为力了,比如在Google中查询searchengines,像Google,Yahoo,Altivisa等都是很重要的,但是Google返回的结果中这些网页并没有出现。

同样的查询例子也可以说明另外一个问题,Google,Yahoo是WWW上最受欢迎的网页,如果出现在查询项car的结果集中,一定会有很多网页指向它们,就会得到较高的rank值,事实上他们与car不太相关。

在PageRank算法的基础上,其它的研究者提出了改进的PageRank算法。

华盛顿大学计算机科学与工程系的MatthewRichardson和PedroDominggos提出了结合链接和内容信息的PageRank算法,去除了PageRank算法需要的前提2,增加考虑了用户从一个网页直接跳转到非直接相邻的但是内容相关的另外一个网页的情况[3]。

斯坦大学计算机科学系TaherHaveliwala提出了主题敏感(Topic-sensitive)PageRank算法[4]。

斯坦福大学计算机科学系ArvindArasu等经过试验表明,PageRank算法计算效率还可以得到很大的提高[22]。

2.2 HITS算法及其变种

PageRank算法中对于向外链接的权值贡献是平均的,也就是不考虑不同链接的重要性。

而WEB的链接具有以下特征:

1.有些链接具有注释性,也有些链接是起导航或广告作用。

有注释性的链接才用于权威判断。

2.基于商业或竞争因素考虑,很少有WEB网页指向其竞争领域的权威网页。

3.权威网页很少具有显式的描述,比如Google主页不会明确给出WEB搜索引擎之类的描述信息。

可见平均的分布权值不符合链接的实际情况[17]。

J.Kleinberg[5]提出的HITS算法中引入了另外一种网页,称为Hub网页,Hub网页是提供指向权威网页链接集合的WEB网页,它本身可能并不重要,或者说没有几个网页指向它,但是Hub网页确提供了指向就某个主题而言最为重要的站点的链接集合,比一个课程主页上的推荐参考文献列表。

一般来说,好的Hub网页指向许多好的权威网页;好的权威网页是有许多好的Hub网页指向的WEB网页。

这种Hub与Authoritive网页之间的相互加强关系,可用于权威网页的发现和WEB结构和资源的自动发现,这就是Hub/Authority方法的基本思想。

2.2.1 HITS算法

HITS(Hyperlink-InducedTopicSearch)算法是利用Hub/Authority方法的搜索方法,算法如下:

将查询q提交给传统的基于关键字匹配的搜索引擎.搜索引擎返回很多网页,从中取前n个网页作为根集(rootset),用S表示。

S满足如下3个条件:

1.S中网页数量相对较小

2.S中网页大多数是与查询q相关的网页

3.S中网页包含较多的权威网页。

通过向S中加入被S引用的网页和引用S的网页将S扩展成一个更大的集合T.

以T中的Hub网页为顶点集Vl,以权威网页为顶点集V2,Vl中的网页到V2中的网页的超链接为边集E,形成一个二分有向图SG=(V1,V2,E)。

对V1中的任一个顶点v,用h(v)表示网页v的Hub值,对V2中的顶点u,用a(u)表示网页的Authority值。

开始时h(v)=a(u)=1,对u执行I操作修改它的a(u),对v执行O操作修改它的h(v),然后规范化a(u),h(v),如此不断的重复计算下面的操作I,O,直到a(u),h(v)收敛。

(证明此算法收敛可见)

I操作:

(1)O操作:

(2)

每次迭代后需要对a(u),h(v)进行规范化处理:

(1)反映了若一个网页由很多好的Hub指向,则其权威值会相应增加(即权威值增加为所有指向它的网页的现有Hub值之和)。

(2)反映了若一个网页指向许多好的权威页,则Hub值也会相应增加(即Hub值增加为该网页链接的所有网页的权威值之和)。

和PageRank算法一样,可以用矩阵形式来描述算法,这里省略不写。

HITS算法输出一组具有较大Hub值的网页和具有较大权威值的网页。

2.2.2 HITS的问题

HITS算法有以下几个问题:

1.实际应用中,由S生成T的时间开销是很昂贵的,需要下载和分析S中每个网页包含的所有链接,并且排除重复的链接。

一般T比S大很多,由T生成有向图也很耗时。

需要分别计算网页的A/H值,计算量比PageRank算法大。

2.有些时候,一主机A上的很多文档可能指向另外一台主机B上的某个文档,这就增加了A上文档的Hub值和B上文档的Authority,相反的情况也如此。

HITS是假定某一文档的权威值是由不同的单个组织或者个人决定的,上述情况影响了A和B上文档的Hub和Authority值[7]。

3.网页中一些无关的链接影响A,H值的计算。

在制作网页的时候,有些开发工具会自动的在网页上加入一些链接,这些链接大多是与查询主题无关的。

同一个站点内的链接目的是为用户提供导航帮助,也与查询主题不甚无关,还有一些商业广告,赞助商和用于友情交换的链接,也会降低HITS算法的精度[8]。

4.HITS算法只计算主特征向量,也就是只能发现T集合中的主社区(Community),忽略了其它重要的社区[12]。

事实上,其它社区可能也非常重要。

5.HITS算法最大的弱点是处理不好主题漂移问题(topicdrift)[7,8],也就是紧密链接TKC(Tightly-KnitCommunityEffect)现象[8]。

如果在集合T中有少数与查询主题无关的网页,但是他们是紧密链接的,HITS算法的结果可能就是这些网页,因为HITS只能发现主社区,从而偏离了原来的查询主题。

下面讨论的SALSA算法中解决了TKC问题。

6.用HITS进行窄主题查询时,可能产生主题泛化问题[5,9],即扩展以后引入了比原来主题更重要的新的主题,新的主题可能与原始查询无关。

泛化的原因是因为网页中包含不同主题的向外链接,而且新主题的链接具有更加的重要性。

2.2.3 HITS的变种

HITS算法遇到的问题,大多是因为HITS是纯粹的基于链接分析的算法,没有考虑文本内容,继J.Kleinberg提出HITS算法以后,很多研究者对HITS进行了改进,提出了许多HITS的变种算法,主要有:

2.2.3.1 MonikaR.Henzinger和KrishnaBharat对HITS的改进

对于上述提到的HITS遇到的第2个问题,MonikaR.Henzinger和KrishnaBharat在[7]中进行了改进。

假定主机A上有k个网页指向主机B上的某个文档d,则A上的k个文档对B的Authority贡献值总共为1,每个文档贡献1/k,而不是HITS中的每个文档贡献1,总共贡献k。

类似的,对于Hub值,假定主机A上某个文档t指向主机B上的m个文档,则B上m个文档对t的Hub值总共贡献1,每个文档贡献1/m。

I,O操作改为如下

I操作:

O操作:

调整后的算法有效的解决了问题2,称之为imp算法。

在这基础上,MonikaR.Henzinger和KrishnaBharat还引入了传统信息检索的内容分析技术来解决4和5,实际上也同时解决了问题3。

具体方法如下,提取根集S中的每个文档的前1000个词语,串连起来作为查询主题Q,文档Dj和主题Q的相似度按如下公式计算:

,,=项i在查询Q中的出现次数,

=项i在文档Dj中的出现次数,IDFi是WWW上包含项i的文档数目的估计值。

在S扩展到T后,计算每个文档的主题相似度,根据不同的阈值(threshold)进行刷选,可以选择所有文档相似度的中值,根集文档相似度的中值,最大文档相似度的分数,如1/10,作为阈值。

根据不同阈值进行处理,删除不满足条件的文档,再运行imp算法计算文档的A/H值,这些算法分别称为med,startmed,maxby10。

在此改进的算法中,计算文档的相似度时间开销会很大。

2.2.3.2 ARC算法

IBMAlmaden研究中心的Clever工程组提出了ARC(AutomaticResourceCompilation)算法,对原始的HITS做了改进,赋予网页集对应的连结矩阵初值时结合了链接的锚(anchor)文本,适应了不同的链接具有不同的权值的情况。

ARC算法与HITS的不同主要有以下3点:

1.由根集S扩展为T时,HITS只扩展与根集中网页链接路径长度为1的网页,也就是只扩展直接与S相邻的网页,而ARC中把扩展的链接长度增加到2,扩展后的网页集称为增集(AugmentSet)。

2.HITS算法中,每个链接对应的矩阵值设为1,实际上每个链接的重要性是不同的,ARC算法考虑了链接周围的文本来确定链接的重要性。

考虑链接p->q,p中有若干链接标记,文本1锚文本文本2,设查询项t在文本1,锚文本,文本2,出现的次数为n(t),则w(p,q)=1+n(t)。

文本1和文本2的长度经过试验设为50字节[10]。

构造矩阵W,如果有网页i->j,Wi,j=w(i,j),否则Wi,j=0,H值设为1,Z为W的转置矩阵,迭代执行下面3个的操作:

(1)A=WH

(2)H=ZA(3)规范化A,H

3.ARC算法的目标是找到前15个最重要的网页,只需要A/H的前15个值相对大小保持稳定即可,不需要A/H整个收敛,这样2中迭代次数很小就能满足,[10]中指出迭代5次就可以,所以ARC算法有很高的计算效率,开销主要是在扩展根集上。

 

2.2.3.3 Hub平均(Hub-Averaging-Kleinberg)算法

AllanBorodin等在[11]指出了一种现象,设有M+1个Hub网页,M+1个权威网页,前M个Hub指向第一个权威网页,第M+1个Hub网页指向了所有M+1个权威网页。

显然根据HITS算法,第一个权威网页最重要,有最高的Authority值,这是我们希望的。

但是,根据HITS,第M+1个Hub网页有最高的Hub值,事实上,第M+1个Hub网页既指向了权威值很高的第一个权威网页,同时也指向了其它权威值不高的网页,它的Hub值不应该比前M个网页的Hub值高。

因此,AllanBorodin修改了HITS的O操作:

O操作:

,n是(v,u)的个数

调整以后,仅指向权威值高的网页的Hub值比既指向权威值高又指向权威值低的网页的Hub值高,此算法称为Hub平均(Hub-Averaging-Kleinberg)算法。

2.2.3.4 阈值(Threshhold—Kleinberg)算法

AllanBorodin等在[11]中同时提出了3种阈值控制的算法,分别是Hub阈值算法,Authority阈值算法,以及结合2者的全阈值算法。

计算网页p的Authority时候,不考虑指向它的所有网页Hub值对它的贡献,只考虑Hub值超过平均值的网页的贡献,这就是Hub阈值方法。

Authority阈值算法和Hub阈值方法类似,不考虑所有p指向的网页的Authority对p的Hub值贡献,只计算前K个权威网页对它Hub值的贡献,这是基于算法的目标是查找最重要的K个权威网页的前提。

同时使用Authority阈值算法和Hub阈值方法的算法,就是全阈值算法

2.3 SALSA算法

PageRank算法是基于用户随机的向前浏览网页的直觉知识,HITS算法考虑的是Authoritive网页和Hub网页之间的加强关系。

实际应用中,用户大多数情况下是向前浏览网页,但是很多时候也会回退浏览网页。

基于上述直觉知识,R.Lempel和S.Moran提出了SALSA(StochasticApproachforLink-StructureAnalysis)算法[8],考虑了用户回退浏览网页的情况,保留了PageRank的随机漫游和HITS中把网页分为Authoritive和Hub的思想,取消了Authoritive和Hub之间的相互加强关系。

具体算法如下:

1.和HITS算法的第一步一样,得到根集并且扩展为网页集合T,并除去孤立节点。

2.从集合T构造无向图G’=(Vh,Va,E)

Vh={sh|  s∈Candout-degree(s)>0}(G’的Hub边).

Va={sa|  s∈Candin-degree(s)>0}(G’的Authority边).

E={(sh,ra)|  s->r  inT }

这就定义了2条链,Authority链和Hub链。

3.定义2条马尔可夫链的变化矩阵,也是随机矩阵,分别是Hub矩阵H,Authority矩阵A。

4.求出矩阵H,A的主特征向量,就是对应的马尔可夫链的静态分布。

5.A中值大的对应的网页就是所要找的重要网页。

SALSA算法没有HITS中相互加强的迭代过程,计算量远小于HITS。

SALSA算法只考虑直接相邻的网页对自身A/H的影响,而HITS是计算整个网页集合T对自身AH的影响。

实际应用中,SALSA在扩展根集时忽略了很多无关的链接,比如

1.同一站点内的链接,因为这些链接大多只起导航作用。

2.CGI脚本链接。

3.广告和赞助商链接。

试验结果表明,对于单主题查询java,SALSA有比HITS更精确的结果,对于多主题查询abortion,HITS的结果集中于主题的某个方面,而SALSA算法的结果覆盖了多个方面,也就是说,对于TKC现象,SALSA算法比HITS算法有更高的健壮性。

2.3.1 BFS(BackwordForwardStep)算法

SALSA算法计算网页的Authority值时,只考虑网页在直接相邻网页集中的受欢迎程度,忽略其它网页对它的影响。

HITS算法考虑的是整个图的结构,特别的,经过n步以后,网页i的Authority的权重是,为离开网页i的的路径的数目,也就是说网页j<>i,对i的权值贡献等于从i到j的路径的数量。

如果从i到j包含有一个回路,那么j对i的贡献将会呈指数级增加,这并不是算法所希望的,因为回路可能不是与查询相关的。

因此,AllanBorodin等[11]提出了BFS(BackwardForwardStep)算法,既是SALSA的扩展情况,也是HITS的限制情况。

基本思想是,SALSA只考虑直接相邻网页的影响,BFS扩展到考虑路径长度为n的相邻网页的影响。

在BFS中,被指定表示能通过路径到达i的结点的集合,这样j对i的贡献依赖就与j到i的距离。

BFS采用指数级降低权值的方式,结点i的权值计算公式如下:

=|B(i)|+|BF(i)|+|BFB(i)|+……+||

算法从结点i开始,第一步向后访问,然后继续向前或者向后访问邻居,每一步遇到新的结点加入权值计算,结点只有在第一次被访问时加入进去计算。

2.4 PHITS

D. CohnandH. Chang提出了计算Hub和Authority的统计算法PHITS(ProbabilisticanalogueoftheHITS)[12]。

他们提出了一个概率模型,在这个模型里面一个潜在的因子或者主题z影响了文档d到文档c的一个链接,他们进一步假定,给定因子z,文档c的条件分布P(c|z)存在,并且给定文档d,因子z的条件分布P(z|d)也存在。

P(d)P(z|d)P(c|z),其中

根据这些条件分布,提出了一个可能性函数(likelihoodfunction)L,

,M是对应的连结矩阵

然后,PHITS算法使用Dempster等提出的EM算法[20]分配未知的条件概率使得L最大化,也就是最好的解释了网页之间的链接关系。

算法要求因子z的数目事先给定。

AllanBorodin指出,PHITS中使用的EM算法可能会收敛于局部的最大化,而不是真正的全局最大化[11]。

D.Cohn和T.Hofmann还提出了结合文档内容和超链接的概率模型[13]。

2.5 贝叶斯算法

AllanBorodin等提出了完全的贝叶斯统计方法来确定Hub和Authoritive网页[11]。

假定有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的链接的概率就比较大。

为了符合贝叶斯统计模型的规范,要给2M+N个未知参数(,,)指定先验分布,这些分布应该是一般化的,不提供信息的,不依赖于被观察数据的,对结果只能产生很小影响的。

AllanBorodin等在中指定满足正太分布N(μ,),均值μ=0,标准方差δ=10,指定和满足Exp

(1)分布,即x>=0,P(>=x)=P(>=x)=Exp(-x)。

接下来就是标准的贝叶斯方法处理和HITS中求矩阵特征根的运算。

2.5.1 简化的贝叶斯算法

AllanBorodin同时提出了简化的上述贝叶斯算法,完全除去了参数,也就不再需要正太分布的参数μ,δ了。

计算公式变为:

P(i,j)=/(1+),Hub网页到Authority网页j没有链接时,P(i,j)=1/(1+)。

AllanBorodin指出简化的贝叶斯产生的效果与SALSA算法的结果非常类似。

2.6 Reputation

上面的所有算法,都是从查询项或者主题出发,经过算法处理,得到结果网页。

多伦多大学计算机系AlbertoMendelzon,DavoodRafiei提出了一种反向的算法,输入为某个网页的URL地址,输出为一组主题,网页在这些主题上有声望(repution)[16]。

比如输入,,可能的输出结果是“java”,具体的系统可以访问htpp:

//www.cs.toronto.edu/db/topic。

给定一个网页p,计算在主题t上的声望,首先定义2个参数,渗透率和聚焦率,简单起见,网页p包含主题项t,就认为p在主题t上。

是指向p而且包含t的网页数目,是指向p的网页数目,是包含t的网页数目。

结合非条件概率,引入,,是WEB上网页的数目。

P在t上的声望计算如下:

指定是既指向p有包含t的概率,即,显然有

我们可以从搜索引擎(如Altavista)的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2