jie's profile迷失星空PhotosBlogLists Tools Help

Blog


    April 25

    悼念阮图南老师

    穷发之北,有冥海者,天池也。有鱼焉,其广数千里,未有知其修者,其名为鲲。有鸟
    焉,其名为鹏,背若泰山,翼若垂天之云,抟扶摇羊角而上者九万里,绝云气,负青
    天,然后图南,且适南冥也。
    ……
    故九万里则风斯在下矣,而后乃今培风;背负青天而莫之夭阏者,而后乃今将图南。
                                                                   ——————《庄子 逍遥游》
     
    当年几乎把所有上量子的老师的课听了一遍,其实最不喜欢阮图南先生的课。
    他总是背对着我们,在黑板上细致的不厌其烦的推导着那些琐碎的公式。这在我看来实在是对物理的歪曲。先生经常说,你们每一步都要问我有什么物理意义,哪有那么多物理意义!于是,我基本就都逃课掉了...现在想想实在懊悔,其实经过那么细致的推导后,对物理过程的理解也更深了。用他的话说就是"业务要熟"。先生70多岁的高龄,还那么辛苦的站在讲坛上。讲课对他来说是个体力活,先生也常这么说:上课是个很好的锻炼身体的活动... 真是后悔当年确不该那么任性地逃掉。
    ...想来上过他课的同学应该还是很多的,考试给高分的好人,在学校还是不多。考试前习题课基本讲了考试题目,考试时一抄就能高分。这点也使得我不喜欢他。现在想想才是误会了先生的良苦用心,他注重的不是考试成绩,而在意的是基本功是否扎实。那些考试内容,我现在都还记在心上,这些的确都是牢牢掌握了的。
    很多的记忆都已模糊,BBS上大家各种悼念的帖子,又多少勾起了些许涟漪。
    席慕容有段颇有哲理的话,抄在这里:
    这个世界上有很多事情,
    你以为明天一定可以再继续做的;
    有很多人你以为一定可以再见到面的,
    于是,在你暂时放下手,
    或者暂时转过身的时候,
    你心中所有的,只是明日又重聚的希望,
    有时候甚至连这点希望也不会感觉到。
    因为,你以为日子既然这样一天一天过来。
    当然也应该这样一天一天过去,
    昨天,今天,明天应该是没有什么不同的。
    但是,就会有那么一次,
    在你放手,一转身的一刹那,有的事情就完全改变了。
    太阳落下去,而在它重新升起以前,
    有些人,就从此和你永别了
     
    以是纪念先生。
    April 24

    Search Engine 算法研究

    source:http://www.seochat.org/

    1.引言

           万维网WWW(World Wide Web)是一个巨大的,分布全球的信息服务中心,正在以飞快的速度扩展。1998年WWW上拥有约3.5亿个文档[14],每天增加约1百万的文档[6],不到9个月的时间文档总数就会翻一番[14]。WEB上的文档和传统的文档比较,有很多新的特点,它们是分布的,异构的,无结构或者半结构的,这就对传统信息检索技术提出了新的挑战。

           传统的WEB搜索引擎大多数是基于关键字匹配的,返回的结果是包含查询项的文档,也有基于目录分类的搜索引擎。这些搜索引擎的结果并不令人满意。有些站点有意提高关键字出现的频率来提高自身在搜索引擎中的重要性,破坏搜索引擎结果的客观性和准确性。另外,有些重要的网页并不包含查询项。搜索引擎的分类目录也不可能把所有的分类考虑全面,并且目录大多靠人工维护,主观性强,费用高,更新速度慢[2]

           最近几年,许多研究者发现,WWW上超链结构是个非常丰富和重要的资源,如果能够充分利用的话,可以极大的提高检索结果的质量。基于这种超链分析的思想,Sergey Brin和Lawrence Page在1998年提出了PageRank算法[1] ,同年J. Kleinberg提出了HITS算法[5],其它一些学者也相继提出了另外的链接分析算法,如SALSA,PHITS,Bayesian等算法。这些算法有的已经在实际的系统中实现和使用,并且取得了良好的效果。

           文章的第2部分按照时间顺序详细剖析了各种链接分析算法,对不同的算法进行了比较。第3部分对这些算法做了评价和总结,指出了存在的问题和改进方向。

    2.WEB超链分析算法

    .1 GooglePageRank算法

           搜索引擎Google最初是斯坦福大学的博士研究生Sergey Brin和Lawrence Page实现的一个原型系统[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值不分布出去而不断的累计。如下图:

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

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

           另外还有一些特殊的链接,指向的网页没有向外的链接。PageRank计算时,把这种链接首先除去,等计算完以后再加入,这对原来计算出的网页的rank值影响是很小的。

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

    2.1.2 算法的一些问题

           Google是结合文本的方法来实现PageRank算法的[2],所以只返回包含查询项的网页,然后根据网页的rank值对搜索到的结果进行排序,把rank值最高的网页放置到最前面,但是如果最重要的网页不在结果网页集中,PageRank算法就无能为力了,比如在 Google中查询search engines,像Google,Yahoo,Altivisa等都是很重要的,但是Google返回的结果中这些网页并没有出现。 同样的查询例子也可以说明另外一个问题,Google,Yahoo是WWW上最受欢迎的网页,如果出现在查询项car的结果集中,一定会有很多网页指向它们,就会得到较高的rank值, 事实上他们与car不太相关。

           在PageRank算法的基础上,其它的研究者提出了改进的PageRank算法。华盛顿大学计算机科学与工程系的Matthew Richardson和Pedro Dominggos提出了结合链接和内容信息的PageRank算法,去除了PageRank算法需要的前提2,增加考虑了用户从一个网页直接跳转到非直接相邻的但是内容相关的另外一个网页的情况[3]。斯坦大学计算机科学系Taher Haveliwala提出了主题敏感(Topic-sensitive)PageRank算法[4]。斯坦福大学计算机科学系Arvind Arasu等经过试验表明,PageRank算法计算效率还可以得到很大的提高[22]

    .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-Induced Topic Search)算法是利用Hub/Authority方法的搜索方法,算法如下:将查询q提交给传统的基于关键字匹配的搜索引擎.搜索引擎返回很多网页,从中取前n个网页作为根集(root set),用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算法最大的弱点是处理不好主题漂移问题(topic drift)[7,8],也就是紧密链接TKC(Tightly-Knit Community Effect)现象[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 Monika R. Henzinger和Krishna Bharat对HITS的改进

          对于上述提到的HITS遇到的第2个问题,Monika R. Henzinger和Krishna Bharat在[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算法。

          在这基础上,Monika R. Henzinger和Krishna Bharat还引入了传统信息检索的内容分析技术来解决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算法

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

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

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

    2.HITS算法中,每个链接对应的矩阵值设为1,实际上每个链接的重要性是不同的,ARC算法考虑了链接周围的文本来确定链接的重要性。考虑链接p->q,p中有若干链接标记,文本1<a href=”q”>锚文本</a>文本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)算法

          Allan Borodin等在[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值高。因此,Allan Borodin修改了HITS的O操作:

    O操作: ,n是(v,u)的个数

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

    2.2.3.4 阈值(Threshhold—Kleinberg)算法

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

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

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

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

    .3 SALSA算法

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

         具体算法如下:

    1.和HITS算法的第一步一样,得到根集并且扩展为网页集合T,并除去孤立节点。
    2.从集合T构造无向图G’=(Vh,Va,E)
    Vh = { sh |   s∈C and out-degree(s) > 0 } ( G’的Hub边).
    Va = { sa |   s∈C and in-degree(s) > 0 } (G’的Authority边).
    E= { (sh , ra) |  s->r   in T }
    这就定义了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(Backword Forward Step)算法

         SALSA算法计算网页的Authority值时,只考虑网页在直接相邻网页集中的受欢迎程度,忽略其它网页对它的影响。HITS算法考虑的是整个图的结构,特别的,经过n步以后,网页i的Authority的权重是为离开网页i的的路径的数目,也就是说网页j<>i,对i的权值贡献等于从i到j的路径的数量。如果从i到j包含有一个回路,那么j对i的贡献将会呈指数级增加,这并不是算法所希望的,因为回路可能不是与查询相关的。

         因此,Allan Borodin等[11]提出了BFS(Backward Forward Step)算法,既是SALSA的扩展情况,也是HITS的限制情况。基本思想是,SALSA只考虑直接相邻网页的影响,BFS扩展到考虑路径长度为n的相邻网页的影响。在BFS中,被指定表示能通过路径到达i的结点的集合,这样j对i的贡献依赖就与j到i的距离。BFS采用指数级降低权值的方式,结点i的权值计算公式如下:

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

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

    .4 PHITS

         D. Cohn and H. Chang提出了计算Hub和Authority的统计算法PHITS(Probabilistic analogue of the HITS)[12]。他们提出了一个概率模型,在这个模型里面一个潜在的因子或者主题z影响了文档d到文档c的一个链接,他们进一步假定,给定因子z,文档c的条件分布P(c|z)存在,并且给定文档d,因子z的条件分布P(z|d)也存在。
         P(d) P(z|d) P(c|z) ,其中

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

    ,M是对应的连结矩阵

         然后,PHITS算法使用Dempster等提出的EM算法[20]分配未知的条件概率使得L最大化,也就是最好的解释了网页之间的链接关系。算法要求因子z的数目事先给定。Allan Borodin指出,PHITS中使用的EM算法可能会收敛于局部的最大化,而不是真正的全局最大化[11]。D. Cohn和T. Hofmann还提出了结合文档内容和超链接的概率模型[13]

    .5 贝叶斯算法

         Allan Borodin等提出了完全的贝叶斯统计方法来确定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个未知参数()指定先验分布,这些分布应该是一般化的,不提供信息的,不依赖于被观察数据的,对结果只能产生很小影响的。Allan Borodin等在中指定满足正太分布N(μ,),均值μ=0,标准方差δ=10,指定满足Exp1)分布,即x>=0P(>=x)P(>=x)Exp(-x)。

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

    2.5.1 简化的贝叶斯算法

       Allan Borodin同时提出了简化的上述贝叶斯算法,完全除去了参数,也就不再需要正太分布的参数μ,δ了。计算公式变为:P(i,j)=/(1+),Hub网页到Authority网页j没有链接时,P(i,j)=1/(1+)。

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

    .6 Reputation

        上面的所有算法,都是从查询项或者主题出发,经过算法处理,得到结果网页。多伦多大学计算机系Alberto Mendelzon, Davood Rafiei提出了一种反向的算法,输入为某个网页的URL地址,输出为一组主题,网页在这些主题上有声望(repution)[16]。比如输入,www.gamelan.com,可能的输出结果是“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)的结果得到, ,WEB上网页的总数估计值某些组织会经常公布,在计算中是个常量不影响RM的排序,RM最后如此计算:

        给定网页p和主题t,RM可以如上计算,但是多数的情况的只给定网页p,需要提取主题后计算。算法的目标是找到一组t,使得RM(p,t)有较大的值。TOPIC系统中是抽取指向p的网页中的锚文本的单词作为主题(上面已经讨论过锚文本能很好描述目标网页,精度很高),避免了下载所有指向p的网页,而且RM(p,t)的计算很简单,算法的效率较高。主题抽取时,还忽略了用于导航、重复的链接的文本,同时也过滤了停止字(stop word),如“a”,“the”,“for”,“in”等。

        Reputation算法也是基于随机漫游模型的(random walk),可以说是PageRank和SALSA算法的结合体。

    .链接算法的分类及其评价

        链接分析算法可以用来提高搜索引擎的查询效果,可以发现WWW上的重要的社区,可以分析某个网站的拓扑结构,声望,分类等,可以用来实现文档的自动分类等。归根结底,能够帮助用户在WWW海量的信息里面准确找到需要的信息。这是一个正在迅速发展的研究领域。

        上面我们从历史的角度总结了链接分析算法的发展历程,较为详细的介绍了算法的基本思想和具体实现,对算法的存在的问题也做了讨论。这些算法有的处于研究阶段,有的已经在具体的系统实现了。这些算法大体可以分为3类,基于随机漫游模型的,比如PageRank,Repution算法,基于Hub和Authority相互加强模型的,如HITS及其变种,基于概率模型的,如SALSA,PHITS,基于贝叶斯模型的,如贝叶斯算法及其简化版本。所有的算法在实际应用中都结合传统的内容分析技术进行了优化。一些实际的系统实现了某些算法,并且获得了很好的效果,Google实现了PageRank算法,IBM Almaden Research Center 的Clever Project实现了ARC算法,多伦多大学计算机系实现了一个原型系统TOPIC,来计算指定网页有声望的主题。

        AT&T香农实验室的Brian Amento在指出,用权威性来评价网页的质量和人类专家评价的结果是一致的,并且各种链接分析算法的结果在大多数的情况下差别很小[15]。但是,Allan Borodin也指出没有一种算法是完美的,在某些查询下,结果可能很好,在另外的查询下,结果可能很差[11]。所以应该根据不同查询的情况,选择不同的合适的算法。

        基于链接分析的算法,提供了一种衡量网页质量的客观方法,独立于语言,独立于内容,不需人工干预就能自动发现WEB上重要的资源,挖掘出WEB上重要的社区,自动实现文档分类。但是也有一些共同的问题影响着算法的精度。

    1.根集的质量。根集质量应该是很高的,否则,扩展后的网页集会增加很多无关的网页,产生主题漂移,主题泛化等一系列的问题,计算量也增加很多。算法再好,也无法在低质量网页集找出很多高质量的网页。

    2.噪音链接。WEB上不是每个链接都包含了有用的信息,比如广告,站点导航,赞助商,用于友情交换的链接,对于链接分析不仅没有帮助,而且还影响结果。如何有效的去除这些无关链接,也是算法的一个关键点。

    3.锚文本的利用。锚文本有很高的精度,对链接和目标网页的描述比较精确。上述算法在具体的实现中利用了锚文本来优化算法。如何准确充分的利用锚文本,对算法的精度影响很大。

    4.查询的分类。每种算法都有自身的适用情况,对于不同的查询,应该采用不同的算法,以求获得最好的结果。因此,对于查询的分类也显得非常重要。

        当然,这些问题带有很大的主观性,比如,质量不能精确的定义,链接是否包含重要的信息也没有有效的方法能准确的判定,分析锚文本又涉及到语义问题,查询的分类也没有明确界限。如果算法要取得更好的效果,在这几个方面需要继续做深入的研究,相信在不久的将来会有更多的有趣和有用的成果出现。

    April 14

    无聊了......

    《魔女柔熙》第8集也看完了,后面的还没出来。《越狱》也没得看了。
     没有韩剧美剧的日子,乏味了许多:(
     为了避免生活平庸,要找点事情来虐待自己,嗷嗷
    April 10

    搜索引擎2.0

    *这篇文章是转的,我也不表明自己的想法,仁者见仁了:)
     
    Google的财富神话是否还能再现?创新的2.0模式搜索引擎将更加人性化与可定制化,所有的一切都将以最大限度地提升用户搜索效率为目标。

      知道“百度狗”、
    “百Google度”吗?不要以为自己眼花了,这是两个现在在网友间被广泛使用的搜索网站。2006年年初,上海青年余熠创建了百度狗(baidugoo.com),这个“新型”搜索网站一经问世,便迅速在网友间推广开来。虽然能在Google和百度牢牢控制的搜索引擎市场赢得追捧,但百度狗并没有自己的核心搜索技术。百度狗搜索的全部内容来自于Google和百度,在网站样式、结构、功能甚至Logo等方面,也完全模仿Google和百度。余熠似乎对这种全盘“抄袭”行为根本不避讳,他在网站介绍中解释说:“百度狗纯粹是为了方便网友搜索而诞生的。”

      创新搜索一触即发

      的确,即使像Google和百度这样看起来已经很全面的搜索引擎,对网页的搜索也是有限的。统计显示,没有一个搜索引擎涵盖了世界上所有网页的30%。因此,如果把各种搜索引擎的结果聚合在一起,那用户就能得到更多的信息,余熠正是按照这一思路创建了百度狗。

      创新是具有感染力的。时隔不久,网络上又出现了一个名叫百Google度(baigoogledu.com)的搜索网站。虽然与百度狗一样是集成了Google和百度的内容,但百Google度没有将二者的搜索结果结合在一起显示,而是将内容分列在两侧,即一个搜索过程实现两个搜索结果。百Google度同样受到了网友们的欢迎,它甚至比百度狗更能让使用者体会到“Google+百度”的搜索体验。

      创新还在继续。上海思唐网络信息技术有限公司创建的网站“一网搜”干脆将Google、百度、雅虎、搜狗、网易、新浪、TOM、中搜、3721、21cn、QQ、中华网等各大门户的搜索引擎集聚在一起。公司总经理李海澎充满信心地指出,一网搜实现各大门户搜索引擎互连互通,让网民不再费心查找众多的搜索平台,不再打开繁多的浏览器,实现真正的网路逍遥游。为了彰显自我集大成的能力,李海澎还为一网搜起了一个响亮的口号:国内第一聚合搜索引擎。

      敢为自己标榜一个好的概念,一网搜是希望在商业上取得成功。它甚至冒着牺牲品牌的危险,在各种论坛或博客网站中粘贴网络“垃圾广告”寻求风险投资。但让李海澎失望的是,一网搜漂亮的概念并没有引起多少投资者的关注,反倒是一家名为“比比猫”(bbmao.com)的搜索网站,引起了目前美国第一网站MySpace.com的母公司Intermix创始人布莱德·格林斯潘(Brad Greenspan)的青睐。2006年8月,北京比比猫网络技术有限公司成为格林斯潘旗下风险投资公司Palisades Technologies第一家公布注资的亚洲公司。

      聚类搜索异军突起

      比比猫的创建人是新加坡人朱明谦,毕业于加拿大多伦多大学,获取了物理和计算机人工智能的双硕士学位。利用自己所学的专业知识,朱明谦的创业方向锁定在搜索的聚类技术,即自动分类技术。

      在获得风险投资之后,朱明谦表示:“技术上的领先将是我们未来一直坚持的核心竞争力之一。”这句话听起来值得回味。事实上,无论是百度狗、百Google度、一网搜还是比比猫,都是对搜索引擎的搜索。换句话说就是,当用户在搜索引擎中输入关键字搜索,该搜索引擎会在选定的普通搜索引擎(如Google、百度、雅虎)中进行搜索,并将所有查询结果集中起来处理后返回给用户。

      在互联网行业,这种搜索被称为“元搜索”。1995年,美国华盛顿大学的硕士生Eric Selberg和 Oren Etzioni推出世界上第一个元搜索引擎 Metacrawler。自Google创造了新的互联网财富,搜索引擎内容的不断丰富,为元搜索的生长提供了温床。目前在美国市场,元搜索引擎占整个搜索市场份额的3%左右。

      元搜索存在的一个理由是,单个搜索引擎(即使像Google这样的大网站)对网页的搜索也是有限的,如果把两家的搜索结果聚合在一起,那用户就能得到更多的信息。但这并不能成为用户放弃普通搜索引擎的充分条件。Google、百度上动则上百万条的信息已经够用户慢慢看了,用户很难为了区区一个概念改变自己的习惯。这也许就是百度狗、百Google度和一网搜等搜索网站无法赢得投资者青睐的根本原因。简单的聚合只是方便了用户的使用,但并没有从本质上提升用户的搜索效率。加之在技术上都属于成熟源代码的嵌入,即使拼凑更多的搜索引擎,网站之间也并没有本质上的区别。

      朱明谦那句值得回味的话解释了比比猫与其他元搜索网站的不同。在用户使用比比猫搜索的时候,网页左边会出现一些类别列表,这些类别是通过分析搜索内容返回的结果。用户可以通过搜索分类来关注他所需要的结果,过滤掉跟用户需求不相关的结果。

      朱明谦将此看作为比比猫独有的聚类技术,它有别于一网搜所提出的“聚合搜索”概念,在元搜索的基础上提供了更加个性化的服务。从本质上讲,单纯的聚合搜索无法做到与众不同,而在聚合的基础之上形成聚类,却可以大大提升差异化程度。每个搜索引擎可以按照自我的技术开发独特的分类标准。

      然而这种先入为主式的聚类技术,势必也会因为分类方法科学性、合理性等因素过滤掉一些有价值的信息,降低了搜索的范围。为此,比比猫推出了一种称为“网络收藏夹”的功能。众所周知,浏览器收藏夹可以让用户快速进入某一个被记录的网站,但传统浏览器里的收藏夹是完全本地化的,用户一旦离开某一台计算机或系统重装,都会导致收藏信息无法找到。比比猫的网络收藏夹借助网络存储技术将用户的搜索过程记录下来。一方面,每一个用户可以通过用户登陆的方式从比比猫中迅速找到自己收藏过的网页;另一方面,所有用户的网络收藏也被其他用户共享,使经过人们筛选的有价值的搜索结果被集中性地显示出来。

      网络社区化大趋势

      比比猫的网络收藏夹如同Wikipedia一样,需要借助网民们的齐心协力,更多的使用群体来丰富搜索结果。朱明谦将比比猫看作是一个“社会化搜索”。有意思的是,比比猫的架构与MySpace.com有着异曲同工之妙。其中最重要的成功经验是,如何将网络社会化。

      网络社会化的概念一下子将我们的思路引向了这个时代最热门的话题:Web2.0。美国耶鲁大学研究网络经济学的教授本克勒认为,网络合作正在刺激一种新的生产模式诞生,而且它将超越经济学赖以生存的两大基础——公司和市场。新技术能够在同一时间让许多人建立联系,这种由底层向上组织起来的合作通常能够发挥出比我们想象中要大得多的作用,如自然界的蚁群。

      虽然从目前的发展情况来看,比比猫这样的网站仍就要归类为搜索引擎,但从功能性原理角度分析,我们并不怀疑比比猫搜索与Web2.0式网站结合的可能性。8月6日,在美国圣地亚哥奥赖利新兴技术会议上就介绍了一个被称为Boxxet的新软件。它运作在这样一个假设上:在一个网络社区中有100人,至少有三个人评估的条目具有相关性。而Boxxet就是要从中寻找到其中的这三个人,最终将网络上兴趣相投的人聚合起来,代替传统网络社区只围绕人或事的方法。

      这种功能使得Boxxet更像是一款典型的Web社区搜索工具。纽约大学电信互动计划教师克莱·思瑞基(Clay Shirky)很久前就开始关注社会化软件。他认为像Boxxet这样的聚合搜索引擎在网络上是有需求的:“目前,搜索就是把一些事情从它们的上下文中剥离出来,这脱离了它们的原意。任何想要解决如何在不脱离上下文就能够聚合事情的人,都需要有一个非常高层次的应用程序。”

      纯粹的聚合型搜索思路随着社会化的概念而被深入推广开来,新一代的网络搜索越来越注重自身的社会辐射效应。不久前,雅虎公司也推出了自己的社区型搜索网站。有意思的是,雅虎索性将这个搜索网站定义为MyWeb。看来,搜索个性化的发展方向已成为一个共识与趋势。目前,包括Google、MSN在内的各大搜索公司都在积极开发基于社会化的搜索技术,以顺应新的发展趋势。

      显然,在搜索引擎新的发展趋势中,升级版的2.0式搜索引擎是无法再现Google的财富神话。这是因为,搜索引擎之间的差别不再是信息的重叠率,而是不同搜索技术所集成的特定社会性。而在这一过程中,搜索引擎所得出的结果就如同是一个用户自己编辑的社区,任何与用户兴趣无关的信息都将通过更加精致化的搜索条件限定而被筛选掉。

      因此,创新的2.0式搜索引擎将更加人性化与可定制化,所有的一切都将以最大限度的提升用户搜索效率为目标。

    April 06

    谈Page Rank - Google

    大家可能听说过,Google 革命性的发明是它名为 “Page Rank” 的网页排名算法,这项技术彻底解决了搜索结果排序的问题。其实最先试图给互联网上的众多网站排序的并不是 Google。Yahoo! 公司最初第一个用目录分类的方式让用户通过互联网检索信息,但由于当时计算机容量和速度的限制,当时的 Yahoo! 和同时代的其它搜索引擎都存在一个共同的问题: 收录的网页太少,而且只能对网页中常见内容相关的实际用词进行索引。那时,用户很难找到很相关信息。我记得 1999 年以前查找一篇论文,要换好几个搜索引擎。后来 DEC 公司开发了 AltaVista 搜索引擎,只用一台 ALPHA 服务器,却收录了比以往引擎都多的网页,而且对里面的每个词进行索引。AltaVista 虽然让用户搜索到大量结果,但大部分结果却与查询不太相关,有时找想看的网页需要翻好几页。所以最初的 AltaVista 在一定程度上解决了覆盖率的问题,但不能很好地对结果进行排序。

    Google 的 “Page Rank” (网页排名)是怎么回事呢?其实简单说就是民主表决。打个比方,假如我们要找李开复博士,有一百个人举手说自己是李开复。那么谁是真的呢?也许有好几个真的,但即使如此谁又是大家真正想找的呢?:-) 如果大家都说在 Google 公司的那个是真的,那么他就是真的。

    在互联网上,如果一个网页被很多其它网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这就是 Page Rank 的核心思想。 当然 Google 的 Page Rank 算法实际上要复杂得多。比如说,对来自不同网页的链接对待不同,本身网页排名高的链接更可靠,于是给这些链接予较大的权重。Page Rank 考虑了这个因素,可是现在问题又来了,计算搜索结果的网页排名过程中需要用到网页本身的排名,这不成了先有鸡还是先有蛋的问题了吗?

    Google 的两个创始人拉里•佩奇 (Larry Page )和谢尔盖•布林 (Sergey Brin) 把这个问题变成了一个二维矩阵相乘的问题,并且用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名,然后再根据第一次迭代排名算出第二次的排名。他们两人从理论上证明了不论初始值如何选取,这种算法都保证了网页排名的估计值能收敛到他们的真实值。值得一提的事,这种算法是完全没有任何人工干预的。

    理论问题解决了,又遇到实际问题。因为互联网上网页的数量是巨大的,上面提到的二维矩阵从理论上讲有网页数目平方之多个元素。如果我们假定有十亿个网页,那么这个矩阵 就有一百亿亿个元素。这样大的矩阵相乘,计算量是非常大的。拉里和谢尔盖两人利用稀疏矩阵计算的技巧,大大的简化了计算量,并实现了这个网页排名算法。今天 Google 的工程师把这个算法移植到并行的计算机中,进一步缩短了计算时间,使网页更新的周期比以前短了许多。

    我来 Google 后,拉里 (Larry) 在和我们几个新员工座谈时,讲起他当年和谢尔盖(Sergey) 是怎么想到网页排名算法的。他说:”当时我们觉得整个互联网就像一张大的图 (Graph),每个网站就像一个节点,而每个网页的链接就像一个弧。我想,互联网可以用一个图或者矩阵描述,我也许可以用这个发现做个博士论文。” 他和谢尔盖就这样发明了 Page Rank 的算法。

    网页排名的高明之处在于它把整个互联网当作了一个整体对待。它无意识中符合了系统论的观点。相比之下,以前的信息检索大多把每一个网页当作独立的个体对待,很多人当初只注意了网页内容和查询语句的相关性,忽略了网页之间的关系。

    今天,Google 搜索引擎比最初复杂、完善了许多。但是网页排名在 Google 所有算法中依然是至关重要的。在学术界, 这个算法被公认为是文献检索中最大的贡献之一,并且被很多大学引入了信息检索课程 (Information Retrieval) 的教程。

    来源:Google黑板报