借助于矩阵索引变换和改进的高速缓存而有效地分级网页的制作方法

文档序号:6649628阅读:199来源:国知局
专利名称:借助于矩阵索引变换和改进的高速缓存而有效地分级网页的制作方法
技术领域
本发明通常涉及互联网搜索领域,尤其是借助于矩阵计算来将网页分级。
背景技术
目前互联网包含由超链接互连的上亿个网页。互联网用户典型地利用网络浏览应用程序(“浏览器”)来通过选择和单击超链接或者通过手动地输入其允许浏览器直接访问特定网页的“统一资源定位器”(“URL”)而在这些页面间进行导航。然而,用户常常希望搜索互联网以查找含有特定信息项的页面。由于互联网尺寸的原因,用户手动地浏览互联网以搜索相关页面是不切实际的。作为替代,用户一般地激活搜索引擎,该搜索引擎是为了搜索互联网而开发的计算机应用程序。搜索引擎典型地保存在服务器计算设备上并接受来自客户机用户的查询。搜索引擎通常与网页的索引相关,以及,响应用户查询,返回满足该查询的页面列表。
某些现代的搜索引擎将网页分级以便向用户提供比较相关的结果。许多搜索引擎借助于矩阵来表示网页的互连,并且得到相当于得到矩阵的主要特征向量的页面分级。Page等1998年1月在Stanford Digital Libraries Working Paper上的文章“The PageRank citation rankingBringing order to the web”中描述了这种搜索引擎,这里参考引用其全部内容,尽管如此它教导不排除其任何部件。通常,迭代取得网页分级并且穿过互连矩阵而传送网页分级,以获得该页面的更新分级。最终所有页面的分级聚合于固定值,该固定值是主要特征向量的记录。这相当于估算马尔可夫链的静态分布。由于矩阵尺寸的原因,计算特征向量—以及由此计算页面分级—在现有的系统中是计算密集的作业,在所有页面的值聚合到特征向量之前需要几次矩阵变换的迭代。为了更有效地计算页面分级,研究人员试图利用互连矩阵的特定数学特性以便发现更迅速地计算或者近似页面分级的方法。
因为几个原因,计算页面分级是一种计算密集作业。一个原因仅仅是信息量的大小对于上亿个网页,甚至是在快速处理器上,即使对于该处理器来说所有数据都是立即可用的,执行必要的计算仍需要大量时间。然而,另一个原因是,通常对于处理器来说不是所有数据都是立即可用的,必须从如RAM这样的存储区或如硬盘这样的辅助存储器中重现数据。访问RAM的典型成本约为每次访问耗时100纳秒;访问硬盘的典型成本约为每次访问耗时5-10毫秒。对于其他快速处理器来说这成为了一个瓶颈—能一秒执行十亿次运算的处理器被限制在以约每秒一千万个记录的速率或其能力的大约百分之一来读取数据此外,由现有的页面分级技术来执行的许多矩阵运算利用任意的网页索引标记。结果,在相应互连性矩阵的行(或列)之间没有关系。例如,如果页面#_1含有到页面#_226、#_4,250,221和#_1,000,000,152的链接,则互连性矩阵的相应行#_1将在列#_226、#_4,250,221和#_1,000,000,152中具有记录。为了检索那些页面,必须从存储器的三个可能很远的区域中形成三次访问。
研究人员不得不研究高速缓存系统。通常,“高速缓存”是暂时保存从较慢、较便宜的存储器中所检索的数据或指令的快速存储器的小块区域。通过在高速缓存中暂时性存储经常使用的数据或指令,处理器不需要从较慢的存储器中检索那些数据或指令。因此,高速缓存的有效利用提高了速度,利用高速缓存可在计算设备上执行许多运算。

发明内容
提供了更有效地计算页面分级的方法和系统。利用描述网页互连的互连性矩阵,而计算新矩阵。该新矩阵用来计算与每个网页的相邻网页相关的值的平均值。计算这个新矩阵的第二特征向量,并且根据该特征向量来重新标记网页的索引。存储互连性信息的数据结构也最好是根据该特征向量来在物理上进行分类。通过重新组织用于网页分级计算中的矩阵,更有效地执行高速缓存,产生更快的页面分级技术。
在一个方面,提供一种在对象集合中将对象分级的方法,一个或多个该集合中的对象具有到该集合中其他对象的链接,该方法包括根据对象到关于链接的集合中其他对象的接近度而排序该对象,并且根据对象的排序而在存储器中的对象间存储该链接。
在另一个方面,提供一种计算机可读介质,包括用于便于对象集合中对象的分级的计算机可执行指令、集合中的一个或多个对象具有到集合中其他对象的链接,该计算机可执行指令执行步骤根据对象到关于链接的集合中其他对象的接近度而排序该对象,并且根据对象的排序而在存储器中的对象间存储该链接。
在再一个方面,提供了一种从互连对象的集合中排序对象的方法,由第一矩阵表示的对象的互连,该方法包含计算相对于第一矩阵的第二矩阵,估计第二矩阵的第二特征向量,以及相对于对第二特征向量的估计的值而排序对象。
在又一个方面,提供一种计算机可读介质,包括用于便于互连对象集合中的对象的排序的计算机可执行指令,由第一矩阵表示的对象的互连,计算机可执行指令执行以下步骤相对于第一矩阵而计算第二矩阵,估计第二矩阵的第二特征向量,以及相对于对第二特征向量的估计的值而排序对象。
在再一个方面,提供一种计算机可读介质,包括用于便于互连对象集合中的对象的分级的计算机可执行指令,根据对象的第一次排序而在存储器中存储互连的描述,该计算机可执行指令执行关于对象到经由互连的其它对象的接近度来重新排序对象的步骤。
附图的简要描述在附加权利要求具体阐述了本发明特征的同时,结合附图从以下详细描述中将更好地理解本发明及其优点。其中

图1显示了根据本发明实施例的用于执行网页分级和搜索的示例性计算设备结构的简要示意图;图2显示了根据本发明实施例的用于执行网页分级和搜索的连接到互联网的计算机装置的示意图;图3显示了根据本发明实施例的网页集合的例子;图4a和4b显示了根据本发明实施例的相应于网页互连的节点和边的示意图;图5显示了根据本发明实施例的在网页集合中执行搜索的方法的流程图;图6显示了根据本发明实施例的网页链接数组的重标记和分类的示意图;图7显示了根据本发明实施例的用于计算网页的重排序的通用方法的流程图;图8显示了根据本发明实施例的用于计算表示相邻网页影响的矩阵的方法流程图;以及图9显示了根据本发明实施例的用于计算第二特征向量的方法流程图。
具体实施例方式
现在根据优选实施例来描述有效地计算页面分级的方法和系统;然而,本发明的方法和系统不局限于计算网页的页面分级。另外,技术人员会容易地知道此处描述的方法和系统仅是示范性的并且在不脱离本发明的精神和范围的情况下可作出改进。
通过以下的详细说明将更完全地了解本发明,应当结合附图而阅读本发明。在说明书中,相同编号涉及本发明各实施例内的相同元件。如在适当的计算环境中来实现而说明本发明。虽然不需要,仍然在由个人计算机执行的如进程这样的计算机可执行指令的通用环境中描述本发明。通常,进程包括程序模块、子程序、函数、程序、对象、分支、数据结构等等,它执行特定作业或实现特定抽象数据类型。另外,所属领域技术人员应当明白,本发明可用其他计算机系统结构来实现,包括掌上型的器材、多处理机系统、使用微处理机的或可编程的用户电器、网络PC、小型计算机、大型计算机等等。本发明也可在其中由通过通信网络所链接的远程处理设备来执行作业的分布式计算环境中实现。在分布式计算环境中,程序模块既可位于本地也可位于远程存储器存储设备中。术语计算机系统可用来指如可在分布式计算环境中发现的计算机系统。
图1示出在其上实现本发明的适当计算系统环境100的例子。计算系统环境100仅是适当的计算环境的一个例子,不用于暗示对本发明用途或功能的范围的任何限制。计算环境100不应解释为具有对示范性操作环境100中所示部件的任何一个或其组合的任何依赖或需要。虽然本发明的一个实施例包括示范性操作环境100中所示的每个部件,但是本发明另一个更典型的实施例排除了不必要的部件,例如除了网络通信所需部件之外的输入/输出装置。
参考图1用于实现本发明的示范性系统包括计算机110形式的通用型计算设备。计算机110的部件包括但不局限于处理单元120、系统存储器130以及将包括系统存储器在内的各系统部件耦合到处理单元120的系统总线121。系统总线121可以是任意几种类型的总线结构,包括存储器总线或存储器控制器、外围总线以及利用任何各种总线体系结构的本地总线。举例来说,而不是限制,这种体系结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外设部件互连(PCI)总线又名附加板总线。另外,计算机110的部件可包括内存高速缓冲存储器122。与从系统存储器130中存取数据相比,处理单元120可从内存高速缓冲存储器中更迅速地存取数据。内存高速缓冲存储器122典型地存储最近要从系统存储器130中访问的或最近要由处理部件120来处理的数据。在从系统存储器130中检索数据之前,处理部件120检验当前数据是否存储在内存高速缓冲存储器122中。如果是,则“高速缓存命中”产生并且从内存高速缓冲存储器122中检索数据而不是从通常较慢的系统存储器130中检索数据。
计算机110一般包括各种计算机可读介质。计算机可读介质可以是由计算机110访问的任何可用介质且包括易失性和非易失介质以及可移除和不可移除介质。举例说来,但并非是限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于存储如计算机可读指令、数据结构、程序模块或其它数据这样的信息的所有方法或技术来实现的易失性和非易失性的、可移除和不可移除的介质。计算机存储介质包括但不局限于RAM、ROM、EEPROM、闪速存储器或其它存储技术、CD-ROM、数字多用途盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储器、或者可用于存储所希望的信息并且可由计算机110访问的任何其它介质。通信介质典型地体现为计算机可读指令、数据结构、程序模块或如载波或其它传送机制这样的已调数据信号中的其它数据,并且包括所有的信息传送介质。术语“已调数据信号”意思是一种具有一个或多个其特征集的信号或以关于在信号中编码信息这样的方式来改变的信号。举例来说,而不是限制,通信介质包括如有线网络或直接线连接这样的有线介质或如声音、RF、红外线及其他无线介质这样的无线介质。以上任何的组合也将包括在计算机可读介质的范畴内。
系统存储器130包括如只读存储器(ROM)131和随机存取存储器(RAM)132这样的易失性和/或非易失存储器形式的计算机存储介质。含有有助于在如启动期间时在计算机110内的元件间传送信息的基本子程序的基本输入/输出系统133(BIOS)典型地存储在ROM 131中。RAM 132一般包含立即可访问的和/或目前由处理部件120处理的数据和/或程序模块。举例来说,而不是限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移除/不可移除、易失性/非易失性的计算机存储介质。仅举例来说,图1示出了从不可移除的、非易失性的磁介质中读出或向不可移除的、非易失性的磁介质写入的硬盘驱动器141,从可移除的、非易失性的磁盘152中读出或向可移除的、非易失性的磁盘152中写入的磁盘驱动器151,以及从如CD ROM或其它光介质这样的可移除的、非易失性的光盘156中读出或向可移除的、非易失性的光盘156中写入的光盘驱动器155。可用于示范性操作环境中的其它可移除/不可移除、易失性/非易失性计算机存储介质包括但不局限于磁带盒、快擦写存储卡、数字多用途盘、数字视频磁带、固态RAM、固态ROM等等。硬盘驱动器141典型地通过如接口140这样的不可移除的存储器接口而连接到系统总线121,以及磁盘驱动器151和光盘驱动器155典型地由如接口150这样的可移除存储器接口而连接到系统总线121。
以上讨论及图1所示的驱动器及其关联计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块及其它数据的存储器。在图1中,例如,将硬盘驱动器141显示为存储了操作系统144、应用程序145、其他程序模块146和程序数据147。值得注意的是这些部件可以相同或者不同于操作系统134、应用程序135、其它程序模块136和程序数据137。此处对操作系统144、应用程序145、其它程序模块146和程序数据147给出不同符号表示至少它们是不同的拷贝。用户可通过如图形输入卡、或电子数字转换器164、麦克风163、键盘162和通常称为鼠标、轨迹球或触摸垫的光标位置指示器161而将命令和信息输入到计算机110中。其它输入装置(未显示)可包括操纵杆、游戏垫、卫星盘、扫描器等等。这些及其它输入装置常常经由耦合到系统总线的用户输入接口160而连接到处理部件120,也可以是通过如并行端口、游戏端口或通用串行总线(USB)这样的其它接口和总线结构而连接到处理部件120。经由如视频接口190这样的接口也可将监视器191或者其它类型的显示装置连接到系统总线121。监视器191也可与触摸屏等集成为一体。值得注意的是监视器和/或触摸屏可以物理上耦合到其也包括计算机110的一个外壳中,如平板型个人计算机。此外,如计算机110这样的计算设备也可包括其它外围输出设备,如扬声器197和打印机196,其可通过输出外围设备接口194等等而连接。
计算机110可操作于利用了到如远程计算机180这样的一个或多个远程计算机的逻辑连接的网络环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并且一般包括如上所述关于计算机110的许多或所有元件,虽然图1仅显示了一个存储器设备181。图1中所述逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这种连网环境在办公室、企业范围计算机网络、内部网和互联网中是常见的。例如,在本发明中,计算机110包含从中迁移数据的源机器,而远程计算机180包含目的机器。然而值得注意的是源和目的机器不必通过网络或任何其它装置而连接,但是作为替代,经由能够由源平台写入和由目的平台读出的任何介质或平台而迁移数据。
当用在LAN连网环境中时,计算机110经由网络接口或适配器170而连接到LAN 171。当用在WAN连网环境中时,计算机110典型地包括调制解调器172或用于建立如互联网这样的WAN 173上的通信的其它装置,其可以是内置或外置的调制解调器172可经由用户输入接口160或其它适当机制而连接到系统总线121。在网络环境中,可将关于计算机110或其一部分而描述的程序模块存储在远程存储器存储装置中。举例来说,而不是限制,图1显示了存在于存储装置181上的远程应用程序185。应当明白的是,所示网络连接是示范性的并且可采用在计算机间建立通信链接的其他装置。
转向图2,描述了一种其中潜在地利用了本发明的计算环境的简单例子。在该说明性的环境中,计算机200包括用于便于传播介质上的通信的网络接口卡(未具体地显示)。在图2所述的特定例子中,计算机200经由物理连接而与局域网206进行通信。替换地,计算机200可经由WWAN或WLAN介质或经由其它传播介质而与该局域网206进行通信。
作为所承载网络介质的结果,计算机200的用户能够访问互联网202。例如,计算机200经由到LAN 206的物理连接来直接访问LAN 206上的资源。在该说明性的例子中LAN 206被认为包括网络访问和代理服务器,其允许正确地认证计算机200的用户以访问互联网202的资源。
以网页的形式将互联网202呈现给计算机200的用户。网页含有要由存在于计算机200上的浏览器应用程序208所处理和显示的内容和指令。替换地,浏览器应用程序208保存在网络计算机210上,并且经由远程显示程序而图示于计算机200上。网页也含有到其它网页的超链接,其允许用户容易地通过选择所呈现超链接而从所示页面导航到相关页面。用这种方法,页面上的超链接创建互连页面的″网″,借此用户可以通过一系列超链接选择而从一个页面导航到所有百万或上亿的页面。虽然可能有几十亿个互联网202可访问的互连网页,然而对于本发明的目的来说,将页面认定为编号为1到n的页面212的有序集是很有用的。其中,n是网页互联网络上可访问的页面的总数。为了帮助用户记录感兴趣的网页,浏览器应用程序可包含“喜好”或“书签”特征214,借此用户能够存储他可能经常访问的网页列表,将来允许容易地导航到那些页面。
虽然用户能够仅通过选择超链接来导航到网页,但是也存在着如搜索引擎这样的工具以帮助用户发现包含于网页中的特定信息。在典型的情形中,搜索引擎220容纳于连接到互联网202的服务器222中,并且也连接到包含关于互联网上网页的索引和信息226的数据库224。在典型的搜索引擎中,向用户呈现一个他可在其上输入通常为搜索条件形式的搜索参数的网页。搜索引擎220利用其数据库224来处理用户请求并且随后向用户呈现一个包含有到满足用户请求参数的其它页面的链接的新网页。
当大量页面满足搜索参数时,以一种有组织的方式向用户呈现搜索结果可能是有问题的。一个没有具体顺序的数以千计的网页的列表将迫使用户艰苦地手动归类整个列表以找到相关的页面。因此,现代搜索引擎常常通过利用例如是嵌入式页面分级引擎228来基于假定的相关性向用户分等或“分级”页面。因此,可通过假定的相关性来分类满足搜索的网页,以便在结果列表的顶部向用户呈现最相关结果。
然而,判断所有特定网页的相关性不是一项普通的工作。一种判断相关性的方法考察互联网上页面间的互连性结构,以发现在包含通向那个页面的超链接的众多其它网页中哪个页面是“受欢迎的”。可将互连性结构以“连通度矩阵”的形式存储于连接到搜索引擎的数据库中,其中矩阵中的记录[i,j]表示从页面j到页面i的超链接的存在。现在参考图3描述了一个当用在本发明实施例中时用于描述网页间的互连性的连通度矩阵的例子。为了说明性的目的,在图3的例子中网页的整体仅包括五个网页。页面1301包含到页面2302、页面3303和页面4304的超链接。页面2302包含到页面1301和页面4304的超链接。页面3303仅包含一个到页面4304的超链接。页面4包含到页面1301和页面2302的超链接。页面5包含到页面3303和页面4304的超链接。在该例子中,这个互连由连通性矩阵描述为
0101010010100011110100000]]>其中当且仅当存在从页面j到页面i的链接时i行j列处的分量是1。如果从页面中随机唯一地选择出一个超链接,则当选择超链接时具有从页面j跳转到页面i的相应概率p(i,j)。相应的随机移动转换矩阵A是A=00.500.500.33000.500.330000.50.330.5100.500000]]>矩阵A每列的和等于1。然而,本发明不限于在页面内随机地唯一选择一个超链接。所有任意概率分布均可应用于任何特定页面内超链接的选择中。例如,如果己知统计数据是关于实际用途模式的,那么可将该信息应用于指定A中所包含的可能性。
假定当前互联网包含上亿的页面,并且大多数的这些页面不包含它们之间的超链接,则当用在这个例子之外的实现中时矩阵A是一个主要包含0记录的稀疏矩阵。由于它允许压缩技术以有效地存储该矩阵,因此该稀疏特性是有用的。除了稀疏性,另一个重要的矩阵概念是矩阵的″分级″,即与网页的“页面级别”或单个网页的“分级”无关的数学术语。矩阵的级别是矩阵线性无关列(或行)的数目。为了实用目的,将较低级别矩阵比较高级别矩阵更有效地存储—k级n×n矩阵包含需要约kn次存储器的信息而n级矩阵可能需要约n2次存储。
替换地,页面间的连通性可认为是按照包含顶点和有向边的图形的形式。用这样的方式,每个顶点代表一个网页而每个有向边代表页面间的一个超链接。通过为该边指定权重,可表示页面超链接之间的概率分布。现在参考图4a-4b描述相当于图3所示网页的互连的图形的例子。在图4a中描述了一组相当于网页的顶点和一组连接该顶点的边。例如有向边402相当于从页面1404(相当于图3中的页面1301)到页面2406(即图3中的页面2302)的链接。图4a的有向图与以上给定的互连性矩阵相一致。如图4b所示,本发明的实施例考虑具有无向边的图形。在无向图中,页面1 404和页面2 406间的边410相当于从页面1 301到页面2 302的链接或者从页面2 302到页面1301的链接,或者两者都有。对于无向图的相应互连性矩阵通常是对称矩阵,以致于j列i行的记录等于j行i列的记录。相应于图4b的图形的对称矩阵是0111010010100111110100110]]>转向图5,根据一个实施例,用户在步骤504输入搜索条件并且在步骤506向搜索引擎发送该查询。在接收该查询之前,在步骤508页面分级引擎已经在互联网上的网页的互连性(以及可能的其他统计数据)的基础上为该页面计算了页面级别。接收查询之后,在步骤510搜索引擎执行给定搜索条件上的搜索并获得结果。然后在步骤512搜索引擎通过页面级别将结果分类。在步骤514将已分类结果返回给用户。
用于分级网页的几种现有方法利用在互联网的网页间进行理论上的“随机移动”的概念。通常将随机移动认为是从某些网页k开始,接着选择一个到具有某种可能性A[i,j]的页面j的超链接。该移动通过选择到具有某种可能性A[i,j]的另一个页面i的超链接或者通过随机地“远距传输”到另一个页面以避免到达尽头而从页面j继续。理论上的随机移动无限期地继续。通过在随机移动转换矩阵A上执行数学变换,搜索引擎可在随机移动步骤中基于到达该页面的可能性而分级页面。现有页面分级算法通过计算由A或相关转换矩阵所表示的马尔可夫链的静态分布来计算页面的页面级别。这相当于找到转换矩阵的主要特征向量(即它的相应特征值最大的特征向量)。用于以这种方式计算页面分级的几种技术是已知的。
典型地利用现有的页面分级方法,本发明的实施例在具有特定的数据结构的存储器中存储关于网页互连的数据。参考图6描述了一种示范性的数据结构。数组602包含一个关于如图4a所示的相应网络图形中每个边(即,关于连通度矩阵中的每个非零分量)的记录。每个数组元素是大小相等的,并且数组602占用存储器的连续模块。通过仅存在关于实际边而不是不存在边的信息,会比存储整个连通度矩阵(即,包括零记录)需要更少的存储器。数组元素包含表示从页面i到页面j的链接的边描述(i,j)。在图6的例子中,通过该数据对中的第一个值来将数组602中的元素进行分类,其中该第一个值代表链接是从其之中发出的那个网页。用于分类该示范性阵列602的索引是任意的,并且对于相对顺序或者页面标记来说是无意义的。
典型地,一种页面分级方法将连续地访问如图6的例子中的数据结构,一个接一个的处理元素。另外,典型的页面分级方法利用一个附加的数据结构以保存相应于页面的页面分级信息。用于保存页面分级信息的典型数据结构是每页具有一个数组元素的单维数组。通过为特别指定的索引而检索元素,这种页面分级信息的数组通常经由随机存取来进行访问。
正如前面提到的那样,对于执行页面分级所需时间量的一个影响因素是处理器所需存储器访问的次数。对存储器的每次访问增加了一个时间量(大约100纳秒),这与处理器的速度极大地有关。然而,处理器高速缓冲存储器需要显然更少的访问的时间。本发明的实施例利用高速缓冲存储器及两个独立技术中之一或全部以降低存储器需要访问的次数。首先,根据最佳化的顺序来重新标记节点(网页)。虽然不能在存储器中物理上重排边,但是改变页面关联节点的标识符会改变访问页面分级信息数组的模式。例如,如果将相应于由其它页面经常与它们都进行链接的那两个页面的节点重新标记以具有邻接索引,那么将通过对第一个页面的元素的访问来继续进行对第二个页面的页面分级信息数组元素的众多访问。因为高速缓冲存储器存储了连续存储器的一大块(并且存储最近访问的数据),因此,对第一个页面的访问可能会将与两个页面都相关的分级数据带入高速缓冲存储器中。不重新标记的话,由于对两个页面的访问是对存储器的不同区域的并且可能在非常不同的时间发生,因此高速缓存不能更有效地服务于第二个访问。通过重新标记节点,相应于相邻节点的页面分级数据同时处于高速缓存中变得更加可能了,这降低了不得不从存储器中检索数据的可能性。当对存储页面分级信息的数据结构执行变址存取时,这个优点尤其可见。
在第二种技术中,以一种特定网络图形表示的最佳化顺序来分类页面链接数据。也就是说,如果第一存储器模块包含相应于从第一节点发出的边的数组元素,那么数组中元素的邻接第二模块与从第二节点发出的边相对应,并目在网络图形中第一和第二节点彼此“接近”。由节点的接近度照这样来设置数组元素提高了从如图6所示的数据结构中连续地读出链接的效率;当从头到尾读出一遍该数据结构并且遇到页面j发出的边时,提高了已经根据某些边(i,j)而为在先页面i处理了页面j的信息的可能性。这因而提高了页面j的页面分级信息当前正保存在高速缓存中的可能性,导致了页面分级计算中的速度提高。此外,当在链接的探测中跟随链接而从一个页面转到另一个页面(即,不连续地遍历边信息数组)时,在存储器中下一个页面的连接并不太远。这提供了一个优势,由于如果立即将包含边信息的连续存储器的一大块读入到高速缓存中,那么不大可能需要在不久以后读出第二大块。通常,如以上所述的第一种技术,也将节点重新标记并且又会获得那些优点。
图6中显示了应用如上所述这两种技术的结果。在该例子中,通过根据置换阵123454′5′2′3′1′]]>604置换标记来执行网页的重新标记,以便将页面1重新标记为页面4′、页面2重新标记为页面5′等。数组606显示了具有重新标记的元素的数组。然而在一个实施例中,没有重新标记数组的元素本身。作为替代,在数组元素之外执行该重新标记;不对由重新标记的数组606所表示的边进行分类,因此,对于数组602的内容来说不会有任何物理上的变化。这相当于如上所述的第一种技术。继续该例子,如上所述的第二种技术用于根据他们的重新标记来分类数组元素。这导致数组元素的重新排列以产生示范性数组608。即使没有重新标记数组元素的实际内容,根据该重新标记而从物理上分类数组的元素608。因此,重分类数组608的元素610实际上包含值“(1,4)”,而不是重新标记值“(2′,3′)”—用重新标记的索引来访问页面的页面分级信息数组,利用了重新分类数组608的页面分级方法最好是执行运行时重新标记该边。
转向图7-9,如用在本发明的实施例中的,描述了一种用于计算网页重排序以用估算页面分级来提高速度的方法。通常,在步骤702,该方法取得一组网页的初始排序,在步骤704,构造表示那个页面对其相邻页面的权重影响的矩阵,并且在步骤706得到这个矩阵的第二特征向量(即其相应特征值是第二大的)。在步骤708,根据该特征向量的值而重新标记和分类网页。
更详细地,图8显示了构造表示那个页面对其相邻页面权重影响的矩阵的方法。在步骤802,该方法通过读出页面间的链接列表而开始。在步骤804,构造表示页面间链接的第一对称矩阵。替换地,不构造对称矩阵,并且该方法仅考虑进入该页面的或者仅考虑从页面中发出的链接。然后在步骤806构造对角线矩阵D,其中对角线元素D[i,j]设置为进入或离开相应页面i的链接数目。对于图3和4中的示范性网页组,对角矩阵是
3000002000003000004000002]]>在步骤808通过平均第一矩阵和对角线矩阵D的元素而构造一个新矩阵。本发明的实施例执行这个步骤808以保证稍后在计算第二特征向量时不会出现各种退化条件。在步骤810,通过将对角线矩阵D的逆矩阵与新矩阵相乘以便计算表示相邻页面的权重的矩阵W。在图3和4的例子中,矩阵W是W=]]>0.33000000.5000000.33000000.25000000.5×1.50.50.50.500.5100.500.501.50.50.50.50.50.520.5000.50.51=]]>0.50.1670.1670.16700.250.500.2500.16700.50.1670.1670.1250.1250.1250.50.125000.250.250.5]]>转向图9,如用于本发明实施例中,根据计算矩阵的第二特征向量而描述了一种计算网页重新排序的方法。在步骤902,如用图8中的方法所计算的那样,该方法采用表示相邻网页的权重影响的矩阵作为输入。在步骤904,初始任意选择值并将该值指定到每个网页以形成初始向量。初始向量的例子是417992.]]>在步骤906,将该向量与W相乘以产生一个表示相邻页面值的估计平均值的向量W417992=19.8326.252151.2527.5.]]>在步骤908,通过为新向量中的每个值加上一个足够的固定值以便使值的平均值为0而使新向量集中于中心
19.8326.252151.2527.5+-29.17-29.17-29.17-29.17-29.17=-9.33-2.92-81.722.08-1.67]]>然后,在步骤910将向量标准化以保持新向量大小恒定标准化-9.33-2.92-8.1722.08-1.67=-0.37-0.11-0.320.86-0.07]]>在步骤912,检验结束条件。在本发明的一个实施例中,结束条件是新向量中的值是否与前面的迭代向量有显著的差别。在另一个实施例中结束条件是是否已经执行了若干次迭代。在另一个实施例中,结束条件是从一次迭代到下一次迭代的向量间的内积是否接近于1。在又一个实施例中,结束条件是对于若干次迭代来说向量的值的相对顺序是否未改变。如果满足结束条件,该方法结束,在步骤914输出该向量作为第二特征向量。否则返回到步骤906发生另一次迭代以将新向量与W相乘。在上述例子中,经过20次迭代之后,向量稳定在-0.34-0.620.340.000.62]]>这个向量近似于上面给出的矩阵W的第二特征向量。
一旦已经用如上所述方法那样的方法计算了第二特征向量,就根据该特征向量在物理存储器中重新标记和/或分类网页。在上述的例子中,第二特征向量的第五个值是最大的,因此页面5重新标记为页面1′,并且相应地重新标记连通度矩阵的索引。类似地,按照第二特征向量中值的顺序,将页面3重新标记为页面2′,页面4重新标记为页面3′等等。然后利用页面的新标号,采用页面分级方法来分级网页。具有这种重新标记页面的矩阵将原矩阵的行和原矩阵的列进行有效地移位,以便彼此接近的行和彼此接近的列表示网络图形中彼此接近的网页。由于许多页面分级技术通过按所标记的顺序来处理矩阵的所有行和/或列而执行矩阵运算,因此,由本发明实施例所执行的重新标记会导致页面分级技术的效率提高。因而,可将如上所述用于重新标记和分类网页索引的方法作为预处理步骤而执行,这对许多页面分级技术来说都适用。
本发明的应用程序不限于分级网页。本发明同样适合于其中矩阵用来表示互连的所有互连对象组。例如,本发明可应用于在社会网中对个体进行分级,或者在电子表格或远程通信网上识别重要资源。
此外,本发明可应用于在分布式网络中寻找有效的资源分布。这种资源分布的一个具体的例子是包含许多用户的虚拟消息传送业务。用户一般登录到提供服务的分布式服务器之一上,并且被通知他之前的关联用户列表组(“朋友”或“密友”)当前也登录到了服务中。在他们的列表中包括他的其他用户同样被通知到他的登录。因此,这些用户可参与到彼此间的直接通信对话中。在这种系统中,如果通过同一个分布式服务器来服务其在彼此列表中的用户是有益的,那么会降低分布式网络上服务器间的通信成本。因此,通过帮助确保彼此通信的用户通常由同样的服务器或由附近的服务器来服务,将本发明应用到这种系统中降低了系统的总通信成本。
考虑到可将本发明原理应用于其中的许多可能的实施例,应当承认的是,此处参考附图而描述的实施例仅是说明性的,而不应看作是对本发明范围的限制。例如,所属领域技术人员应当承认,在不脱离本发明精神的情况下可在设置和细节上修改所示实施例。虽然根据软件模块或元件而描述了本发明,但是所属领域技术人员应当承认,其可同等地由硬件元件来替代。因此,此处所描述的本发明将所有这些实施例归入到以下权利要求及其等价物的范围之内。
权利要求
1.一种在对象集合中分级对象的方法,该集合中一个或多个对象链接到集合中的其它对象,该方法包括根据它们到关于链接的集合中其他对象的接近度而排序该对象;以及根据对象的排序而在存储器中存储对象间的链接。
2.根据权利要求1所述的方法,由第一矩阵表示对象和链接的集合,该排序包括计算相对于第一矩阵的第二矩阵;估计第二矩阵的第二特征向量;以及相对于第二特征向量的近似值而标记该对象。
3.根据权利要求2所述的方法,其中第二矩阵表示为每个对象计算与链接到每个对象的对象相关的近似平均值的函数。
4.根据权利要求1所述的方法,该方法进一步包含利用保存在存储器中的链接来计算对象的分级。
5.根据权利要求4所述的方法,该计算包含利用高速缓冲存储器暂时地存储最近从存储器中访问的链接。
6.根据权利要求1所述的方法,其中对象是网页。
7.一种计算机可读介质,包括便于对象集合中对象分级的计算机可执行指令,该集合中一个或多个对象链接到集合中的其它对象,该计算机可执行指令执行步骤根据它们到关于链接的集合中其它对象的接近度而排序该对象;以及根据对象的排序而在存储器中存储对象间的链接。
8.根据权利要求7所述的计算机可读介质,由第一矩阵表示对象和链接的集合,该排序包括以下步骤计算相对于第一矩阵的第二矩阵;估计第二矩阵的第二特征向量;以及相对于第二特征向量的近似值而标记该对象。
9.根据权利要求8所述的计算机可读介质,其中第二矩阵表示为每个对象计算与链接到每个对象的对象相关的近似平均值的函数。
10.根据权利要求7所述的计算机可读介质,该计算机可执行指令进一步执行步骤利用保存在存储器中的链接来计算对象的分级。
11.根据权利要求10所述的计算机可读介质,计算分级包含利用高速缓存暂时存储最近从存储器中访问的链接。
12.一种从互连对象集合中排序对象的方法,由第一矩阵表示对象的互连,该方法包括计算相对于第一矩阵的第二矩阵;估计第二矩阵的第二特征向量;以及相对于第二特征向量的近似值而标记该对象。
13.根据权利要求12所述的方法,其中对象是网页。
14.根据权利要求12所述的方法,其中第二矩阵表示为每个对象计算与链接到每个对象的对象相关的近似平均值的函数。
15.根据权利要求12所述的方法,其中近似第二特征向量包括选择第一向量的初始值;以及重复以下步骤将第二矩阵与第一向量相乘以获得第二向量;将第二向量集中于中心;以及由第二向量的值代替第一向量的值;直到满足结束条件。
16.根据权利要求15所述的方法,其中将第二向量集中于中心包括为第二向量中的每个记录加上一个固定值以便第二向量的记录平均值是零。
17.根据权利要求15所述的方法,进一步包括标准化第二向量。
18.一种计算机可读介质,包括便于互连对象集合中的对象的排序的计算机可执行指令,由第一矩阵表示对象的互连,该计算机可执行指令执行以下步骤计算相对于第一矩阵的第二矩阵;估计第二矩阵的第二特征向量;以及相对于第二特征向量的近似值而标记该对象。
19.根据权利要求18所述的计算机可读介质,其中对象是网页。
20.根据权利要求18所述的计算机可读介质,其中,第二矩阵表示为每个对象计算与链接到每个对象的对象相关的近似平均值的函数。
21.根据权利要求18所述的计算机可读介质,其中近似第二特征向量包括选择第一向量的初始值;以及重复以下步骤将第二矩阵与第一向量相乘以获得第二向量;将第二向量集中于中心;以及由第二向量的值代替第一向量的值;直到满足结束条件。
22.根据权利要求21所述的计算机可读介质,其中将第二向量集中于中心包括为第二向量中的每个记录加上一个固定值以便第二向量的记录平均值是零。
23.根据权利要求18所述的计算机可读介质,其中对象是包括多个服务器的分布式计算机系统中的资源,该计算机可读介质进一步在多个服务器间便于一个或多个互连资源的分配,并且进一步执行以下步骤根据排序将资源分配给多个服务器。
24.一种计算机可读介质,包括便于互连对象集合中对象的排序的计算机可执行指令,根据对象的第一次排序而在存储器中存储互连的描述,该计算机可执行指令执行以下步骤关于对象到经由互连的其它对象的接近度来重新排序对象。
25.根据权利要求24所述的计算机可读介质,该计算机可执行指令进一步包括步骤通过利用对象的重新排序而计算对象的分级。
26.根据权利要求25所述的计算机可读介质,计算包括利用高速缓存来暂性存储最近从存储器访问的互连描述信息。
全文摘要
描述了一种用于更有效地计算页面分级的方法以及系统。利用描述网页互连的互连性矩阵而计算新矩阵。该新矩阵用来计算与每个网页的相邻网页相关的平均值。计算这个新矩阵的第二特征向量,并且根据该特征向量而重新标记网页的索引。最好是也根据该特征向量而物理上分类存储该互连性信息的数据结构。通过重新组织用于网页分级计算中的矩阵,更有效地执行高速缓存,产生更快的页面分级方法。也描述了用于有效地分配资源配置的方法。
文档编号G06F17/30GK1737803SQ20051010985
公开日2006年2月22日 申请日期2005年7月29日 优先权日2004年7月30日
发明者F·D·麦克谢瑞 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1