决策论web爬行探测和预测网页改变的制作方法

文档序号:6515037阅读:133来源:国知局

专利名称::决策论web爬行探测和预测网页改变的制作方法
技术领域
:本发明一般涉及数据分析,尤其涉及利用分布式web爬行探测器(crawler)从网络化系统获得信息的系统和方法。
背景技术
:计算机和网络技术从高成本、低性能数据处理系统到低成本、高性能通信、问题解决和娱乐系统的演变,已经提供了一种成本有效且节省时间的方法来减少执行诸如通信、帐单支付、购物、预算和信息收集之类日常任务的负担。例如,通过有线或无线技术与因特网接口的计算系统,可以为用户提供信道,用于通过用户的指尖对来自位于全世界的网站和服务器储存库的大量信息进行几乎即时的访问。通常,可通过网站和服务器获得的信息是通过在web客户机(例如计算机)上执行的web浏览器来访问的。例如,web用户可以采用web浏览器,并通过将网站统一资源定位符(URL)(例如,web地址和/或因特网地址)输入到web浏览器的地址栏中并按键盘上的回车键或者用鼠标点击“go(转到)”按钮来访问网站。URL通常包括促进访问的四部分信息表示用于信息交换的一组规则和标准的协议(用于计算机相互通信的语言)、指向网站的地址、维护网站的组织名称以及标识组织类型的后缀(例如,com、org、net、gov和edu)。在某些情况下,用户事先知道其想要访问的站点或服务器的名称和/或URL。在这类情况下,用户可以如上所述地通过在地址栏内输入URL并连接到站点来访问该站点。然而,在很多情况下,用户并不知道URL或站点名称。相反,用户使用搜索引擎来促进基于由用户提供的关键字的站点定位。一般地,搜索引擎由可执行应用或程序组成,它们按关键字搜索网站或服务器的内容,并返回一个链接列表,指向找到关键字的网站和服务器。基本地,搜索引擎含有一个web“爬行探测器(crawler)”(也称为“蜘蛛探测器(spider)”或“机器人”),它尽可能多地检索文档(例如,通过检索与文档相关联的URL)。然后存储这一信息,使得索引编制器(indexer)可以操纵检索到的数据。索引编制器阅读文档,并基于包含在每一文档中的关键字和文档的其它属性来创建优先化索引。相应的搜索引擎一般使用专有算法来创建索引,从而为查询返回有意义的结果。因而,web爬行探测器对于搜索引擎的操作是至关紧要的。为了提供当前和最新的搜索结果,爬行探测器必须不断地搜索web以发现新的网页、更新旧的网页信息、并移去已删除的页面。在因特网上找到的网页是天文数量的。因此需要web爬行探测器是极端快速的。由于大多数web爬行探测器通过轮询提供网页的服务器来收集其数据,因此爬行探测器还必须尽可能地以不引人注目的方式访问特定的服务器。极端地,爬行探测器可以非常快速地吸收服务器的所有资源并导致服务器停止运转。通常,爬行探测器向服务器标识它自己,并在访问服务器的网页之前寻求许可。在这一点上,服务器可以拒绝对一个偷窃服务器所有资源的滥用的爬行探测器的访问。作为网页主机的服务器一般从搜索引擎中得益,因为它们使用户能够更容易地找到其网页。因而,大多数服务器欢迎爬行探测器,只要它们不耗尽服务器过多资源,因为这会不利地妨碍用户使用服务器内容的能力。当今在因特网上的巨量信息对有效的web爬行探测呈现出了好象不能克服的障碍。例如,试图编目(catalogue)因特网上的每一页面的一个典型的web爬行探测器可能花费数周甚至数月来费劲地阅读它们。在已经被爬行探测过之后一瞬间即被更新的页面可能要经过数月之后才被重新爬行探测,在这种情况下,与该网页相关联的信息没有被准确地编目,进而降低了用户能够接收与搜索有关的信息的效率。因而,在本领域中存在一种未满足的需求,即对提高web爬行探测速度和效率的系统和方法的需求。
发明内容以下为提供本发明一些方面的基本理解而提供了本发明的简化概述。这个概述不是本发明的详尽综述。它并不旨在确定本发明的关键/重要元素或者描绘本发明的范围。其唯一作用是以简化形式提出本发明的一些概念作为稍后给出的更详细描述的序言。本发明提供促进通过决策论方法(decision-theoreticapproach)的网页预测分析来优先化要被爬行探测的网页的系统和方法。依照本发明的一个方面,可以应用一种预测网页何时将改变的统计方法。决策论web爬行探测方法可以有选择地挑选页面来下载,以便最大化预期的性能指标。决策论方法包括这样的算法它们基于要采取的可能动作的集合、这些动作的可能结果的集合、由特定动作导致特定结果的概率以及用于每一结果并捕捉其值的效用系数来促进用于爬行探测的页面选择。这类算法用于通过应用最大预期效用主体(MaximumExpectedUtilityprincipal)来选择最佳动作。依照本发明的一个有关方面,可以预测网页改变以便于关于页面爬行探测优先级的确定。网页从最后一次爬行探测起已经改变的概率可通过,例如,对与所述特定页面有关的历史改变信息和与其它页面有关的历史改变数据的分析来确定。另外,页面的各种特征可用于预测页面何时将改变。例如,可分析页面的URL来确定它是否以“.html”、“.com”等结尾。类似地,可评估文档或HTML的特征(例如,它是否包含表格、照片等)来预测页面改变。而且,可利用在页面下载期间所获得的页面和/或HTTP状态信息上单词的特征来预测页面何时将改变。依照本发明的另一方面,可提供反馈/前馈回路来增强网页改变预测。这个方面提供了创建URL的样本集合并以定期间隔爬行探测它们,而不管改变概率,以便收集用于了解概率预测器、调整爬行探测策略的参数等的训练数据。样本可用值来加权,这样的值由,例如,URL在用户搜索的结果集合中出现的次数、URL由接收到搜索结果集合中URL的用户点击的频率等来确定。样本集合可按定期间隔更新,使得单个URL或URL子集可换入或换出样本集合,从而在一段时间后(例如,一个月、两个月等),样本集合完全为新的。可替换地,样本集合可按照预定时间表全部换出。为了达到前述和有关目的,这里结合以下描述和附图来描述本发明的某些示例方面。然而,这些方面只表现出可使用本发明原理的各种方法中的少许,而本发明旨在包括所有这样的方面及其等效方面。本发明的其它优点和新颖特征在结合附图考虑时可从本发明以下详细描述中变得显而易见。图1示出依照本发明一个方面的web爬行探测系统100。图2示出依照本发明一个方面的web爬行探测系统200。图3示出依照本发明一个方面的web爬行探测系统300,详细列出共同工作的web爬行探测器组件。图4示出依照本发明一个方面的web爬行探测系统400,详细列出共同工作的web爬行探测器组件。图5示出依照本发明一个方面的方法500。图6示出依照本发明一个方面的方法600。图7示出依照本发明一个方面的方法700。图8示出依照本发明一个方面的方法800。图9示出依照本发明一个方面的方法900。图10和11示出依照本发明一个方面的示例性计算环境1000和1100。详细说明现在参考附图描述本发明,贯穿附图,相同的标号用来引用相同的元素。在以下描述中,为说明起见,阐述了许多具体的细节以便提供本发明的完整理解。但是,显然本发明可在没有这些具体细节的情况下实施。在其它实例中,以方框图形式示出众所周知的结构和设备,以便于描述本发明。如在本申请中所使用的,术语“组件”意在指与计算机有关的实体,或者硬件、硬件和软件的结合、软件,或者执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行对象、执行线程、程序和/或计算机。为了说明,运行在服务器上的应用程序和服务器都可以是计算机组件。一个或多个组件可驻留在进程和/或执行线程内,且一个组件可位于一台计算机上和/或分布在两台或多台计算机上。“线程”是进程中操作系统内核为执行而调度的实体。如本领域众所周知的,每个线程有一个相关联的“上下文环境”,它是与线程的执行相关联的易失数据。线程的上下文环境包括系统寄存器的内容和属于线程的进程的虚拟地址。因而,包括线程的上下文环境的实际数据在其执行时变化。本发明提供了维护web文档索引的改进系统和方法。它还可用来为其它类型信息检索和维护数据。传统的web爬行探测器具有某些由缺点,它们由本发明减轻。每一客户机(例如,任何访问web的个人的机器)存储本地信息,因此它可了解从上次客户机访问之后网页是否改变。如果它已改变,则客户机随后可将此信息传达到搜索引擎。同样地,服务器可使用有关客户机所访问的网页的信息来发现当前服务器未知的页面。有效地找出文档并维护有关这些文档的现有知识对于内联和因特网搜索都是极其重要的任务。本发明还可用于诸如内联网搜索的环境中,其中爬行探测页面和保持服务器上页面信息最新甚至是个更大的挑战。搜索引擎(用于因特网、内联网或者其它)的一个重要组件是数据爬行探测器或web爬行探测器。web爬行探测器执行两个主要任务找出未知文档以由搜索引擎编制索引,以及试图确保它具有关于每一已知文档的最新知识。这两个任务都是困难的,并且(连同页面分级质量)是搜索引擎之间最重要的和可见的质量区分点。文档爬行探测器一般基于服务器模型。搜索引擎通过拓扑搜索来爬行探测web。始于已知网页的种子集合,爬行探测器跟随来自那些网页的链接,并从而能找到通过来自种子集合的路径(URL引用的集合)连接的所有网页。为确保搜索引擎具有文档集的最新知识,必须经常重复爬行探测。由于爬行探测器在每次爬行探测时重新访问网页,因此它能够了解页面(或子页面)改变的频率,并且基于例如历史的改变频率、预测的未来改变等比其它网页更频繁地重新爬行探测某些页面。现有的基于服务器的爬行探测范例有许多缺点。例如,搜索引擎只能当爬行探测器碰巧重新访问页面时才能了解到文档的改变(例如,内容改变、或者页面不再存在等等)。常规系统一般不能调整其明显有效地爬行探测经常改变的页面的频率。本发明给出了以矫正上述弱点的方法来维护有关已知文档的最新知识的系统和方法。如这里所使用的,术语“推理”通常指从通过事件和/或数据捕捉的一组观察来论证或推断系统、环境和/或用户的状态的过程。例如,可使用推理来标识特定的上下文环境或动作,或者可以生成状态的概率分布。推理可以是概率统计的——即,基于数据和事件的考虑进行感兴趣的状态的概率分布的计算。推理还指用来从一组事件和/或数据构成更高级事件的技术。这种推理导致了从一组观察到的事件和/或存储的事件数据中进行新事件或动作的构造,无论这些事件是否在相邻的时间相互关联,并且无论这些事件和数据是否来自一个或几个事件和数据源。图1示出系统100,它提供了为爬行探测优先化页面的预测方法。系统100包括web爬行探测组件102,它爬行探测页面以便发现和更新可能搜索结果目录中的页面。web爬行探测组件102可有效地关联于捆绑组件104,它基于页面的效用(utility)将网页优先化为组,或“块(chunk)”。捆绑组件104还可操作地关联于搜索服务器106,它包含项的子集,诸如URL,它们能够由管理组件108选择以供爬行探测组件102进行爬行探测。以这一方式,搜索服务器106可由爬行探测组件102爬行探测,并通过捆绑组件104连续地重新优先化。系统100便于预测网页何时将改变,以便基于改变加速网页的爬行探测,从而能够在没有相当大延时的情况下就更新搜索服务器。这样的预测可通过评估页面从它上次爬行探测起已改变的概率来进行。为了确定网页已改变的概率,可评估与所述特定页面有关的历史信息(例如,在过去页面改变过的次数、改变的幅度等),以及涉及其它页面改变的历史数据。另外,人们可利用页面URL的特征(例如,URL是否以“.html”、“.com”等结尾)、文档或HTML的特征(例如它是否包含表格、照片等)、页面上词语的特征和/或下载页面时获得的HTTP状态信息。管理组件108可构建统计模型来预测与网页改变相关联的概率。这种统计模型可以是,例如,对数回归、支持向量机(supportvectormachine)的概率版本等等。为构建统计模型,管理组件106可为一组页面收集与网页改变时间密切相关的训练数据(并且更一般地,描述可能结果的其它方面,诸如页面察看数量、改变程度等等),以及每个页面何时改变的特定历史。管理组件106还可以通过利用页面内容、页面改变历史、其URL、关联于下载页面的HTTP状态消息等对每个页面提取特征来构造训练集合。在预测“新页面”的情况下,管理组件104可以使用此信息的子集(例如,其中历史信息不可用)。依照本发明的另一方面,系统100可以使用网页何时将改变的预测来支持决策论,以有选择地下载页面,来最大化爬行探测组件102在发现和更新改变的网页时的效率。可使用各种系数来促进对爬行探测一个特定页面的合适时间的决策论选择。例如,这类系数可以包括可能动作的集合A;可能结果的集合O;出现一个特定结果的概率Pr;以及与每一结果相关联的效用系数Utility(O),它捕捉特定结果的值。这类系数可以用来通过应用最大预期效用主体选择一个最佳动作。例如,选择一个动作a∈A,它最大化下面的值Σo∈OPr(o|a)×Utility(o)]]>所有动作的集合A可以包括可以从搜索服务器106下载的所有可能的页面子集。每个单独页面可以被认为与其它页面无关,以便简化选择动作,并且可以基于它们各自的等级来选择页面的集合。这一方法便于作出关于在当前时段内哪些页面要更新的决策,并减轻与爬行探测每一页面所需时间(这可以是在数周或数月的数量级上)相关联的问题。对于每一所选的动作,有可能有几个结果O。例如,一个结果可以是不下载页面的决定、下载页面的失败尝试、未改变页面的下载、和/或已改变页面的下载。可以扩展可能的结果变量以包括其它方面,诸如,例如,在即将到来的一个时段(例如,日,周,月等)内一个页面可能被察看的次数、页面变化的幅度,等等。效用函数加权每一结果的值,使得一个页面的值可以是该页面的重要性、在给定时段内察看该页面的次数、在该页面上点击的次数、在该页面上被点击的特定链接、在已改变页面中改变的程度、各种商业规则(例如,每4周爬行探测每一页面一次、每日至多爬行探测一个页面一次,等)和/或与该页面的重要性相关联的任何其它合适的方面的函数。确定出现一个给定结果的概率是最重要的。web爬行探测的一个基本目标是评估一个页面自从上次被爬行探测后已经被改变的概率。为了准确地预测出现一个特定结果的概率,管理组件可以使用涉及在检查中的特定页面的历史数据,以及其它页面的改变历史等。有选择地爬行探测这样巨大范围的页面需要一种用于确定在当前和将来的时段中要爬行探测哪些页面的策略。例如,如果在检查中的页面是新页面,则对于管理组件108没有可用的历史数据来作为页面改变概率的预测的基础。按照此例,管理组件可以依赖于页面内容、页面的URL等。如果页面不是新的,则除在上面参考新页面描述的信息之外,管理组件还可以检查可用的页面改变历史。另外,决策论还可以促进更频繁地爬行探测新页面,以便增加和/或获得有关页面改变的速率的信息。例如,如果概率预测器指示关于页面何时将改变的预测是不确定的,则决策论可以选择为谨慎的并且经常爬行探测页面,因而减少页面不可接受地变成过时的风险并提供更多的历史数据,这可以提高未来概率预测的确定性。另外,管理组件108可以指示爬行探测组件102通过使用诸如,例如“棒球”、“股价”等之类的类别来执行类别专用的爬行探测。如此,爬行探测组件102可以有选择地爬行探测包含特定类别的标记的页面。同样,管理组件108可以指示爬行探测组件102执行查询专用的爬行探测(例如,“澳大利亚公开赛”、“股票X”等)。这类例子表示其中信息经常改变的主题,并且因此,与这些主题有关的网页将被经常更新(例如,分数、价格等)。这类查询专用的爬行探测可以增强网页改变预测的效率。而且,可以扩展结果空间以包括在未来的时段内察看一个页面的次数、页面改变的次数和/或幅度等等。图2例示系统200,它依照本发明的一个方面按其效用捆绑URL。管理组件202可以从搜索服务器204下载网页块。块可以是,例如,65,536个页面、32,768个页面或分组在一起的某些其它数量的网页。管理组件202从下载块的子集中收集信息,每个子集至少包括一个网页。由管理组件202收集的信息可包括,例如,页面内容、URL、HTTP标题信息、历史信息等。管理组件202然后可将特定页面或页面的子集自前一次爬行探测后已改变或将在调度好的下一次爬行探测前改变的概率预测作为基础,并指示web爬行探测器204采取行动来促进所要想的结果(例如,如果改变即将来临则爬行探测页面、因改变是不可能的而忽略这个页面直至调度好的爬行探测为止等等)。另外,可以作出关于页面改变的时限和/或页面将在特定的未来日期改变或在特定的过去日期的确改变的概率的预测。这种预测可用来提供表示页面将在若干日期之一改变的分布曲线。这种预测可以用于确定页面应是哪个块的一部分。一旦所选择的页面已被爬行探测过,且已经更新了相关信息,则捆绑组件208可从web爬行探测器206接收URL信息,并基于例如页面何时将改变的预测把URL重新打包到新的块(块*)中。捆绑组件208然后可将重新打包的块*重新存储到搜索服务器204。图3例示此处依照本发明的一个方面描述的web爬行探测器的组件。循环法(RoundRobin)组件302被示出为它自顶向下地逐个爬行探测所列的页面1-n,如由垂直向下指的虚线箭头所指示的。循环法组件由此确保每个页面将在规定的爬行探测期(例如,28日)内被爬行探测,这进而保证没有页面将过时超过28日。要理解,爬行探测期可以是足以爬行探测搜索服务器的任何时段,而不限于28日的时间段。按照图3,循环法组件302已爬行探测了块1(如由块1左下角的“RR”标记所示),并处在爬行探测块2的过程中。在块2的爬行探测完成后,循环法组件302可以前进以爬行探测块3,来确定其内容。但是,贪心法(Greddy)组件304处在爬行探测块3过程中,并且因此,循环法组件302可以接收并指示块3不需要爬行探测。因而,循环法组件302将爬行探测的下一块是块4。要注意,贪心法组件304已经爬行探测了块N,且与贪心法组件相关联的虚线垂直箭头沿着集合中的块列表的两个方向延伸,以示出贪心法组件304在爬行探测时不受块次序限制。相反,贪心法组件304可以基于最佳分数,诸如,例如预测分数(例如,自从上次爬行探测后改变的最大平均概率)、效用分数(例如,最大平均效用)和/或决策论分数(例如,最大期望效用)等来选择块(可以是单个的页面)进行爬行探测。如此,循环法组件302可确保所有块都在规定时段内被爬行探测过,而贪心法组件确保具有最高效用和/或有可能改变分数的块在那些具有较低分数的块之前被搜索。而且,循环法组件302识别块已在当前爬行探测期中由贪心法组件304爬行探测过的能力降低了爬行探测块、搜索服务器等所需的时间。描述循环法组件302和贪心法组件304共同操作的方式的算法在下文中参考图7-9。来描述。图4例示此处依照本发明的一个方面描述的web爬行探测器的组件。该图在块(例如,项或页面等的子集等)的周边上绘出了循环法组件402,以便示出由循环法组件402完成的块的有序爬行探测。如所例示的,循环法组件402已爬行探测了块1并在爬行探测块2的过程中。块1和2在左下角示有“RR”,以指示每个块已经或正在由循环法组件402爬行探测。贪心法组件404示于这些块的中心,以便更清楚地表示贪心法组件404有权访问所有块,而不管其循环法次序如何。例如,贪心法组件404当前正在爬行探测块3,如由将贪心法组件404连接到块3的通信链接所指示的。但要注意,块5已经由贪心法组件404爬行探测过,尽管事实上块5位于块3之后。按照这个例子,贪心法组件404确定了块5具有比块3更高的分数(例如,预测、效用和/或决策论等),并且因此在块3之前爬行探测了块5。循环法组件402可以尝试在完成块2之后爬行探测块3,但可以认识到,块3已经由贪心法组件404爬行探测过了。因而,循环法组件将爬行探测的下一块将是块4。尽管为简化说明的目的,这里例如以流程图的形式示出的一个或多个方法都被示出并描述为一系列动作,然而要理解和懂得,本发明并不受限于动作的次序,因为依照本发明,一些动作可以不同次序和/或与其它来自此处所示和描述的行为同时发生。例如,本领域的技术人员将理解和意识到,一种方法可以可替换地被表示为一系列相互关联的状态和事件,诸如以状态图表示。而且,不是所有例示的行为都需要来依照本发明实现一种方法。图5例示依照本发明的一个方面通过贪心算法预测web爬行探测器的方法。在502,从要被爬行探测的搜索服务器下载块。在504,确定块分数以便于确定哪一个块要被爬行探测。例如,块分数可以是预测分数(例如,从上次爬行探测起已改变的最大平均概率等)、效用分数(例如,最大平均效用等)和/或决策论分数(例如,最大期望效用等)。在506,可就块分数作出关于给定块的分数是否批准贪心法爬行探测(例如,爬行探测器是否应该在时间表之前进行爬行探测等)的决定。如果给定块的分数不批准贪心法爬行探测,则将不立即爬行探测该块。如果该块的分数高得足以批准贪心法爬行探测,则在508,可爬行探测具有足够分数的块。图6例示依照本发明的一个方面的方法,其中选择用于爬行探测的块数量可以基于,例如,爬行探测容量。在602,确定web爬行探测器的爬行探测容量(例如,评估有可能爬行探测的块的最大数量M)。在604,可从搜索服务器下载块用于潜在的爬行探测。在606,可以确定块分数(例如,预测、基于效用和/或决策论)以便于确定哪些块要爬行探测。在608,可以就块分数以及给定块的分数是否批准贪心法爬行探测(例如,爬行探测器是否应该在时间表之前爬行探测等)作出决定。如果给定块的分数不批准贪心法爬行探测,那么不立即爬行探测该块。如果块分数高得足以批准贪心法爬行探测,则在610,具有最佳分数的块将被爬行探测。图7例示依照本发明一个方面的方法700,其中结合循环算法使用贪心算法。本发明的这一方面使用贪心算法,通过利用预测、基于效用和/或决策论的分数来选择块,同时保证在所有块过时达到D日前可以(在将来)被爬行探测。在702,确定由循环法所需的爬行探测容量的百分比为多少(rr%),以便保证没有URL过时超过D日(例如,以保证在D日内至少爬行探测所有页面一次)。例如,如果50%的可用爬行探测容量可以使用循环算法来保证没有块过时超过28日,则循环算法可以按照块的最终期限来爬行探测它们。例如可以通过评估一个块被爬行探测的最后日期来确定最终期限。例如,如果块A是在14日以前被爬行探测的,则其最终期限是将来的14日。如果块B是在7日以前被爬行探测的,则其最终期限是在将来的21日。因而,将在块B之前爬行探测块A。依照本例,可以在704将50%的爬行探测容量分配给循环法。在706,可以将爬行探测容量的剩余部分(1-rr%)分配给贪心算法(g%)用于贪心法爬行探测。然后在708,可以确定在一个时段内可以爬行探测的块的最大数量(M),例如,通过评估要选择的块尺寸和时段的长度来确定,其中爬行探测速度是已知值。在710,可以确定哪些特定的块要被爬行探测(TBC)。接着在712,使用公式g%*M选择要添加到TBC的具有最佳分数的块数量的下限(floor)。例如,如果g%是55%,且M等于5,则g%*M等于2.75,而下限将为2。最后在714,通过公式M-size(TBC)作出最旧的块的选择,这些块将被添加到TBC。如此,为贪心法爬行探测选择块,同时循环算法确保在给定时段内将爬行探测所有的块。图8例示依照本发明一个方面的方法800,其中结合循环算法使用贪心算法。在802,确定由循环法所需的爬行探测容量的百分比为多少(rr%),以便保证没有URL过时超过D日(例如,以保证在D日内至少爬行探测所有页面一次)。然后在804可以将爬行探测容量分配给循环法。在806,可以将爬行探测容量的剩余部分(1-rr%)分配给贪心算法(g%)用于贪心法爬行探测。然后在808,可以确定在一个时段内可以爬行探测的块的最大数量(M),例如,通过评估要被选择的块的尺寸和时段的长度来确定,其中爬行探测速度是已知值。在810,确定哪些特定块要被爬行探测(TBC)。在812,基于公式rr%*M选择要添加到TBC的块的数量的上限(ceiling)。例如,如果rr%等于53%,且M等于10,则rr%*M等于5.3,而得到的上限值将为6。在814,选择具有最佳分数(例如,预测、效用和/或决策论等)的最旧的M-尺寸(TBC)块并添加到TBC。如此,为贪心法爬行探测选择块,同时循环算法确保在给定的时段内爬行探测所有块。图9例示依照本发明一个方面的方法900,其中结合循环算法使用贪心算法。有可能的是,循环算法可以比它在使用上述方法时所需要的时间更短地完成爬行探测所有块。这种之所以发生,是因为贪心法也正在爬行探测块。例如,如果所有块需要在28日内被爬行探测,使用方法700或800可以导致实际上在20日内爬行探测所有页面。为解决这种可能出现的情况,详细地阐述下面的算法。设C是块的集合且C0,C1,...,Cn是C的一部分,其中Cj是在j时段内到期的块而Nj是在Cj中的块的数量。在C的部分(例如n)中的成员数量是最大过时容限的函数。设L是在一个时段内希望被爬行探测的块的最大数量(例如以保证没有块过时超过D日),并设M是有可能在一个时段内爬行探测的最大块数量,其中M大于或等于L。设TBC是要在当前时段内爬行探测的块的集合。注意,在下面的“for”循环中,使用R存储在当前日之后要求被爬行探测的、其到期日期<j的块的数量,而PQ是按块的分数优先化的块的优先队列。为每个块分配一个分数(预测、效用或决策论);TBC=C0;初始化PQ={};Forj=1ton{将Cj中的块添加到优先队列PQ;While(size(PQ)>j*L)//超过容量,因此通过移动项来满足容量{将最上面的项从PQ移到TBC}}//选择块以填充爬行探测容量While(size(TBC)<M){将最上面的项从PQ移到TBC}返回TBC;}仍参考图9,如前所述,在902为每个块C0...Cn分配一个分数(例如,预测、效用和/或决策论)。在904,按照到期日期(例如,要在j时间内爬行探测的块由集合Cj包括,集合Cj包括Nj个块)排序块。在906,将在Cj中的块添加到优先队列(PQ)。然后在908,根据值j*L确定PQ尺寸,其中L是要被爬行探测的块的最大想要的数量。如果PQ小于j*L,则可以使用这样的信息来提供反馈,并且该方法可以回到906以进一步添加块。如果PQ大于j*L,则在910可以将PQ中的最上面的块移到要被爬行探测(TBC)的块的集合。在912,根据M确定TBC的尺寸,其中M是在一个时段内有可能爬行探测的块的最大数量。如果TBC小于M(例如,在TBC中还有空间用于更多的块等),则该方法可以回到910,以接着将PQ中下一个最上面的块移到TBC。如果在912确定TBC的尺寸不小于M,则在914可以将TBC返回到web爬行探测器用于爬行探测。如此,可以连续地更新块状态和爬行探测的最终期限,以便利用循环算法和贪心算法合作地以比所需要的少的时间来完成爬行探测时所出现的情况。要意识到,本发明可以结合网页改变预测使用反馈回路。例如,除上面所述的定期的爬行探测之外,可以不管改变的概率,选择URL的样本并以定期的间隔进行爬行探测,以提供用于了解概率预测器并用于调整爬行探测策略的训练数据。这样还可以提供数据,以便于测试爬行探测策略、为这样的测试建立度量标准和验证爬行探测方法。例如,64,000个URL的样本尺寸已大到足够有用,并且样本在所有URL上不必均匀,而是可以用值进行加权。依照一个方面,样本值可以通过从被发送给使用给定搜索引擎的用户的结果集合中选取的URL来确定。而且,可以利用可用的点击通过(click-through)信息以便于确定用户点击的所建议的URL,以比结果集合中其它样本更多地加权这类URL。可以将爬行探测间隔与在生产环境中爬行探测事件的最大频率(例如,每日,每周等)进行匹配。要意识到,本发明不受限于这类间隔。另外,随机爬行探测是有用的,因为它与生产爬行探测策略无关。通常也可以爬行探测样本中的页面。依照这一方面,不必将URL移到这一样本,但可以将它们复制到那里。可以周期性地(例如每月、每两个月等)取一个新样本。可替换地,可以平滑地换入和换出URL,使得经过一个月(或两个月等),与前一个月相比样本是新的。依照这一方面,可以保持比定期爬行探测更多的关于每一URL的数据量。作为例子,定期爬行探测可能只允许保存一个网页的改变次数、相同的次数和/或在爬行探测网页之间的平均间隔。然而,这里描述的反馈协议可以允许保存与例如网页是否在给定日改变有关的信息。而且,对于样本中的每一URL,可以保存有关其初始条件(例如,关于在定期爬行探测期间收集的特定页面的信息)的记录。因而,web爬行探测仿真不要求假定在样本中的每一URL是新的URL。如此,可以增强web爬行探测策略以增加具有较高改变速率的页面(相对于仅不经常改变的页面)的新鲜度,进而便于使用显著更少的机器来产生显著更新鲜的结果。为了提供用于实现本发明的各方面的另外的环境,图10和下面的讨论旨在提供可实现本发明的各方面的合适的计算环境1000的简短概括的描述。尽管在上面已经在运行于本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的一般环境中描述了本发明,但本领域的技术人员将认识到,也可结合其它程序模块来实现本发明。通常,程序模块包括例程、程序、组件、数据结构等,它们完成特定的任务和/或实现特定的抽象数据类型。而且,本领域的技术人员将意识到,本发明的方法可用其它计算机系统配置来实现,包括单处理器或多处理器计算机系统、小型机、大型机以及个人计算机、手持式计算设备、基于微处理器的和/或可编程消费电子产品等等,其每一个可操作地与一个或多个相关联的设备通信。本发明所例示的方面也可在分布式计算环境中实施,其中某些任务由通过通信网络链接的远程处理设备来执行。然而,本发明的某些(如果不是全部)方面可在独立的计算机上实施。在分布式计算环境中,程序模块可位于本地和/或远程存储器存储设备中。如在本申请中所使用的,术语“组件”意指与计算机有关的实体,或者为硬件、硬件与软件的结合、软件,或者为在执行中的软件。例如,组件可以是,但不限于,在处理器上运行进程、处理器、对象、可执行体(executable)、执行的线程、程序和计算机。作为例示,在服务器上运行的应用和/或服务器可以是组件。另外,组件可包括一个或多个子组件。参考图10,用于实现本发明各方面的示例性系统环境1000包括常规的计算机1002,它包括处理单元1004、系统存储器1006和系统总线1008,系统总线1008将包括系统存储器在内的各种系统组件耦合至处理单元1004。处理单元1004可以是任何可购买的或者专有的处理器。另外,处理单元可被实现为由一个以上处理器构成(如并行地连接)的多处理器。系统总线1008可以是若干类型的总线结构中的任一种,包括存储器总线或存储控制器、外围总线和使用各种各样常规总线体系结构的任一种的局部总线,如PCI、VESA、微通道、ISA和EISA等。系统存储器1006包括只读存储器(ROM)1010和随机存取存储器(RAM)1012。基本输入/输出系统(BIOS)1014存储在ROM1010中,它包含如在启动期间帮助在计算机1002内的元件之间传递信息的基本例程。计算机1002还可包括,例如,硬盘驱动器1016,如读写可移动磁盘1020的磁盘驱动器1018、以及如读写CD-ROM盘1024或其它光介质的光盘驱动器1022。硬盘驱动器1016、磁盘驱动器1018和光盘驱动器1022分别通过硬盘驱动器接口1026、磁盘驱动器接口1028和光盘驱动器接口1030连接到系统总线1008。驱动器1016-1022及其相关联的计算机可读介质为计算机1002提供数据、数据结构、计算机可执行指令等的非易失存储。尽管上面计算机可读介质的描述指硬盘、可移动磁盘和CD,但本领域的技术人员应当意识到,计算机可读的其它类型的介质,诸如磁盒、闪存卡、数据视频盘、伯努利盒带(Bernoullicatridge)等等,也可以在示例性操作环境1000中使用,且此外,任何这类介质可包含用于执行本发明的方法的计算机可执行指令。可在驱动器1016-1022和RAM1012中存储许多程序模块,包括操作系统1032、一个或多个应用程序1034、其它程序模块1036和程序数据1038。操作系统1032可以是任何合适的操作系统或操作系统组合。作为例子,应用程序1034和程序模块1036可以包括促进依照本发明一个方面的基于客户机的web爬行探测。用户可以通过一个或多个用户输入设备,诸如键盘1040和定点设备(例如鼠标1042)来将命令与信息输入到计算机1002中。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、无线遥控、扫描仪等等。这些和其它输入设备常常通过与系统总线1008相耦合的串行端口接口1044连接到处理单元1004,但也可通过其它接口,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器1046或其它类型的显示设备也可通过接口,诸如视频适配器1048连接到系统1008。除监视器1046之外,计算机1002也包括其它外围输出设备(未示出),如扬声器、打印机等。要意识到,计算机1002可以使用与一个或多个远程计算机1060的逻辑连接在网络化环境中运行。远程计算机1060可以是工作站、服务器计算机、路由器、对等设备或其它公共网络节点,并且一般包括相对于计算机1002描述的许多或全部元件,尽管为了简短起见,只在图10中例示一个存储器存储设备1062。在图10中描述的逻辑连接可以包括局域网(LAN)1064和广域网(WAN)1066。这类网络环境在办公室、企业级计算机网络、内联网和因特网中很常见。当在LAN网络环境中使用时,例如,计算机1002通过网络接口或适配器1068连接到局域网1064。当在WAN网络环境中使用时,计算机1002一般包括(例如电话、DSL、电缆等)调制解调器1070,或者连接到LAN上的通信服务器,或者具有通过WAN1066,诸如因特网建立通信的其它装置。调制解调器1070,对于计算机1002它可以是内置的或外置的,通过串行端口接口1044连接到系统总线1008。在网络化环境中,程序模块(包括应用程序1034)和/或程序数据1038可以存储在远程存储器存储设备1062中。要意识到,所示的网络连接是示例性的,并且在实现本发明的一个方面时,可以使用在计算机1002与1060之间建立通信链路的其它(例如有线的或无线的)装置。依照计算机编程领域的技术人员的实施,已经参考由计算机(如计算机1002或远程计算机1060,除非另有指示)执行的动作和操作的符号表示描述了本发明。这类动作和操作有时被称为计算机执行的。要意识到,这些动作和以符号表示的操作包括由处理单元1004对表示数据比特的电子信号的处理,它导致电子信号表示的作为结果的变换或减少,并且将数据位保存在存储器系统(包括系统存储器1006、硬盘驱动器1016、软盘1020、CD-ROM1024和远程存储器1062)中的存储单元中,从而重新配置或者改变计算机系统的操作和对信号的其它处理。保存这类数据比特的存储单元是具有特殊的相应于数据比特的电、磁或光属性的物理单元。图11是本发明可以与其交互的示例计算机环境1100的另一个方框图。系统1100还例示了包括一个或多个客户机1102的系统。客户机1102可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1100还包括一个或多个服务器1104。服务器1104也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1104可以容纳线程,以例如通过使用本发明来进行变换。在客户机1102与服务器1104之间的一种可能的通信可以用适合于在两个或多个计算机进程之间传输的数据包的形式进行。系统1100包括通信框架1108,它可以用来促进客户机1102与服务器1104之间的通信。客户机1102可操作地连接到一个或多个客户机数据存储器1110,它们可以用来存储客户机1102的本地信息。同样,服务器1104可操作地连接到一个或多个服务器数据存储器1106,它们可以用来存储服务器1104本地的信息。在本发明的一个实例中,在两个或多个计算机组件之间传输的、用于促进web爬行探测的数据包,至少部分地是由与web爬行探测有关的信息组成的,web爬行探测至少部分地利用用于web爬行探测的分布式系统。在本发明的另一个实例中,存储用于促进web爬行探测的系统的计算机可执行组件的计算机可读介质,至少部分地是由web爬行探测系统组成的,web爬行探测系统至少部分地确定涉及由用于web爬行探测的分布式系统编译的网页的信息。要意识到,在促进计算机组件和非计算机有关的组件的web爬行探测系统中,类似地可以利用本发明的系统和/或方法。而且,本领域的技术人员将认识到,本发明的系统和/或方法可在大量的电子相关技术中使用,包括但不限于,计算机、服务器和/或手持式电子设备等,它们可以是有线的和/或无线的等等。本领域的技术人员也将意识到,本发明不仅可以用于基于服务器—客户机的爬行探测系统,而且也可以用于对等爬行探测系统。也有可能的是,客户机可以执行一般与“服务器”行为相关联的任务,并因而在本发明的某些实例中,将某些与服务器相关联的特性传送到客户机。本发明的一个实例的一个例子是对其它客户机执行“子爬行探测(sub-crawl)”以确定和/或检索信息以发送到服务器的客户机。这个实例是有益的,例如,在某些客户机与服务器之间具有瓶颈的网络中。数据可以被传送到具有对服务器的最佳访问的客户机。在本发明的其它实例中,客户机可以通过在内联网系统中启动子爬行探测来展示服务器行为,从而仅从内联网上存在的单个和/或实质上减少的客户机数量来向服务器报告信息。如此,搜索服务器可以在客户机上启动多个子爬行探测来扩展其爬行探测资源。上面所述的内容包括本发明的例子。当然,不可能描述为了描述本发明的目的而描述组件或方法的每一可能的组合,但本领域的技术人员可认识到,许多本发明的其它组合和变换是可能的。因此,本发明旨在包含所有这样的落在所附权利要求书的精神和范围之内的变更、修改和变体。而且,或者在详细描述中,或者在权利要求书中,使用术语“包含”的情况下,该术语指包含在内,这与在使用术语“包括”作为权利要求中的过渡文字时将其解释为“包括”相似。权利要求1.一种促进web爬行探测的系统,其特征在于,包括一管理组件,它执行关于确定是否、何时以及如何执行web爬行探测的预测分析;以及一web爬行探测组件,它根据所述预测分析爬行探测网页的子集。2.如权利要求1所述的系统,其特征在于,它还包括一决策论组件,它作出关于至少一个网页的改变的预测,以确定一个适当的时间来爬行探测所述至少一个网页。3.如权利要求2所述的系统,其特征在于,所述决策论组件至少部分地基于下列内容作出关于所述至少一个网页的改变的预测要在所述至少一个网页上执行的可能动作的集合A,;可能结果的集合O;出现一个特定结果的概率Pr;以及与每一结果相关联的效用系数Utility(O)。4.如权利要求3所述的系统,其特征在于,所述决策论组件通过从所述可能动作的集合A中选择一个使得下列值最大化的动作a,来作出关于所述至少一个网页的改变的预测Σo∈OPr(o|a)×Utility(o)]]>其中o是所有可能结果的集合O中的一个结果。5.如权利要求1所述的系统,其特征在于,所述预测分析至少部分地基于所述至少一个网页的效用。6.如权利要求1所述的系统,其特征在于,所述预测分析至少部分地基于与所述至少一个网页有关的历史数据。7.如权利要求1所述的系统,其特征在于,所述预测分析至少部分地基于包含在所述至少一个网页中的内容。8.如权利要求1所述的系统,其特征在于,它还包括一捆绑组件,它依照所述网页的效用将经爬行探测的网页重新安排到新的子集中。9.如权利要求1所述的系统,其特征在于,所述web爬行探测组件包括一循环法爬行探测组件,它顺序地爬行探测一个子集中的网页,并确保在一爬行探测时段内爬行探测每一网页,并且所述web爬行探测组件包括一贪心法爬行探测组件,它依照与每一页面相关联的分数非顺序地爬行探测页面。10.一种优先化用于爬行探测的网页的方法,其特征在于,包括预测在至少一个页面子集中的改变;将一分数分配给所述至少一个网页的子集;有选择地在具有较低分数的页面子集之前爬行探测具有较高分数的页面子集;以及非有选择地依次爬行探测所有未经爬行探测的页面。11.如权利要求10所述的方法,其特征在于,它还包括依照在所述子集内各个页面的察觉到的效用,将至少一个页面子集分开。12.如权利要求11所述的方法,其特征在于,它还包括依照所分开的页面的所述察觉到的效用,将已被分开的页面重新捆绑成新的子集。13.如权利要求10所述的方法,其特征在于,它还包括基于下列内容执行决策论分析来确定何时爬行探测一个页面要在所述至少一个网页上执行的可能动作的集合A;可能结果的集合O;出现一个特定结果的概率Pr;以及与每一结果相关联的效用系数Utility(O)。14.如权利要求13所述的方法,其特征在于,它还包括从所述可能动作的集合A中选择一个使得下列值最大化的动作aΣo∈OPr(o|a)×Utility(o)]]>其中o是所有可能结果的集合O中的一个结果。15.如权利要求10所述的方法,其特征在于,它还包括至少部分地基于先前对一页面的爬行探测的数量来作出关于所述页面何时会改变的预测。16.如权利要求10所述的方法,其特征在于,如果所述页面先前未被爬行探测过,则所述预测基于所述页面的统一资源定位符(URL)和指向所述页面的URL的网站中的至少一个。17.如权利要求10所述的方法,其特征在于,如果所述页面先前只被爬行探测过一次,则所述预测基于所述页面的URL、指向所述页面的URL的网站、所述页面的超文本传输协议(HTTP)标题和所述页面的内容中的至少一个。18.如权利要求10所述的方法,其特征在于,如果所述页面已经被爬行探测过一次以上,则所述预测基于所述页面的URL、指向所述页面的URL的网站、所述页面的HTTP标题、所述页面的内容、所述页面的改变的历史和与所述页面有关的增量信息中的至少一个。19.如权利要求18所述的方法,其特征在于,所述增量信息包括分析所述页面的内容以确定所述页面从一次爬行探测到下一次爬行探测之间的差异。20.如权利要求10所述的方法,其特征在于,非有选择地爬行探测所有未经爬行探测的页面的顺序基于自从上次爬行探测起的时间。21.如权利要求20所述的方法,其特征在于,它还包括确保在超过一预定的时段后没有网页未被爬行探测过。22.如权利要求10所述的方法,其特征在于,所述分数至少是预测分数、效用分数和决策论分数中的至少一个。23.如权利要求10所述的方法,其特征在于,它还包括基于已经改变的概率、最大平均效用和最大预期效用中的至少一个来加权分数。24.如权利要求10所述的方法,其特征在于,它还包括确保没有网页过时超过D日,其中D是一个实数。25.一种用于通过反馈回路预测网页的改变的方法,其特征在于,包括从一服务器上的网页子集中选择一URL的样本集合;以及以定期的间隔爬行探测所述样本集合。26.如权利要求25所述的方法,其特征在于,它还包括使用从所述经爬行探测的样本集合收集的数据来提供用于了解概率预测器和/或用于调整爬行探测策略的训练数据。27.如权利要求25所述的方法,其特征在于,它还包括使用从所述经爬行探测的样本集合收集的数据来测试爬行探测策略和/或建立用于测试爬行探测策略的度量标准。28.如权利要求25所述的方法,其特征在于,所述URL的样本集合是从利用搜索引擎发送给用户的URL的结果集合中选择的。29.如权利要求28所述的方法,其特征在于,它还包括对所述结果集合中已由用户点击过的URL比对用户还没有点击过的URL给予更大的权值。30.如权利要求25所述的方法,其特征在于,它还包括在选择所述URL的样本集合之前,先执行对所述网页子集的定期爬行探测。31.如权利要求30所述的方法,其特征在于,它还包括记录在所述定期的爬行探测期间确定的所述样本URL的初始条件。32.如权利要求25所述的方法,其特征在于,它还包括周期性地选择一新的URL的样本集合。33.如权利要求25所述的方法,其特征在于,它还包括通过用一次替换至少一个样本URL以逐渐地创建一新的URL样本集合,来周期性地更新所述URL的样本集合。34.一种预测网页改变的方法,其特征在于,包括用于预测web服务器上至少一个网页子集的改变的装置;用于在一时段内爬行探测所述整个页面子集的装置;用于确定与每一页面相关联的分数的装置;以及用于有选择地爬行探测被确定为具有较高分数的页面的装置。35.如权利要求34所述的方法,其特征在于,它还包括用于基于已经改变的概率、最大平均效用和最大预期效用中的至少一个对至少一个网页的分数加权的装置。36.如权利要求34所述的方法,其特征在于,它还包括用于确保没有网页过时超过D日的装置,其中D是实数。37.一种计算机可读介质,其上存储着具有计算机可执行指令,以便预测一服务器上至少一个网页子集中的至少一个网页的改变;将一分数分配给所述至少一个子集中的所述至少一个网页;以及如果被分配给所述至少一个网页的分数大于一预定的最小值,则有选择地爬行探测所述至少一个网页。全文摘要描述了促进在计算机环境中预测的web爬行探测的系统和方法。本发明的诸方面提供预测、基于效用和网页子集中改变的决策论概率评估来增强web爬行探测能力和确保网页信息保持在新鲜状态。另外,本发明促进对具有高改变概率的页面的有选择的爬行探测。文档编号G06F17/30GK1680938SQ200510008158公开日2005年10月12日申请日期2005年2月7日优先权日2004年2月12日发明者C·M·卡迪,C·A·米克申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1