专利名称:使用多嵌套排序来改善排序结果的制作方法
使用多嵌套排序来改善排序结果
背景
搜索对计算机用户而言已经变为应用程序和操作系统的重要特征。甚至,
它成为计算机市场上高度有利可图的部分。 一方面,广告客户购买关键词和/ 或当遇到某些搜索项时对期望的列出位置支付额外费用。另一方面,消费者主 要关注搜索的质量,且通常基于其以往的性能和声誉来选择搜索应用程序或引 擎。
更通常地,用户启动文本搜索来在因特网、其网络或其本地PC上査找特
定内容。搜索请求可按照各种格式提交。取决于他/她正在寻找的内容和搜索的 位置,用户可使用关键词、短语或词语的任何组合。搜索引擎的任务是检索与 用户査询相关的文档。当存在与相同或类似项相关的若干文档时,必须有某种 适当的技术来以反映其与查询和用户的相关性程度的次序将其呈现给用户。因 此,对检索出的文档排序可能是信息检索中最有挑战性的任务。由于大多数用 户一般仅査看列表(由搜索引擎返回)顶部的前几个结果,因此对这些结果实 现高准确度变为日益重要。
常规排序系统继续努力来产生良好的排序但仍有问题。这部分是由于可响 应于查询而返回的文档的巨大数目。为了正确地看待这个问题,当前在因特网
或Web上大约有250亿个文档(例如,网站、图像、URL)。因此,响应于 任何一个査询返回数千(如果不是数百万)文档上可行的。尽管当前的排序系 统作出了对这样大量文档准确排序的尝试,但顶部的几个结果仍可能不是与查 询和/或用户最相关的。这是由于若干原因产生的。 一个原因可能是因为这样的 常规排序系统可能尝试以排序较高的结果为代价来提高低排序结果,可能会降 低顶部返回的结果的相关性。第二个可能的原因可能是使用单个排序算法来解 决整个问题(对所有可能的查询)可能限制过多。因此,仍需要改善检索出的 项目的排序同时最小化排序系统性能的花费。概述
以下呈现了简化概述,以提供对此处所述的系统和/或方法的某些方面的 基本理解。本概述不是对此处所述的系统和/或方法的概观。它并非旨在标识关 键/重要元素,也非旨在描绘这样的系统和/或方法的范围。其概述的唯一目的 是以一种简化的形式来介绍一些概念,作为稍后呈现的更为详细的描述的序
本申请涉及一种便于改善排序结果的系统和/或方法。具体地,该系统和 方法应用多个嵌套级的排序技术以对之前排序的项目的子集重新排序。可按此 方式采用不同的排序技术,但是为了讨论并为简明起见,此处将讨论一种排序 技术。
本系统和方法涉及将排序任务分成多级,其中对高或较高排序的项目的递 减子集应用排序技术。假定排序技术采用被训练来对项目排序的神经网络。可 对信息的较小集合训练多个网络以产生向用户呈现的更相关的前几个项目。例 如,想象用户向搜索组件提交了查询。搜索组件可针对给定查询检索超过一百
万个项目,其中项目可对应于文档、文件、图像或URL。可训练第一神经网络 来对该项目的初始集定序或排序。从排序项目的初始集中取前几个(例如,前 2500个)结果,并训练可用于对其重新定序的第二神经网络。可使用修改后的 项目集合——在此示例中为前2500个项目——训练第二神经网络。之后,可 经由第二神经网络对这2500个项目重新排序。从这重新排序的2500个项目中, 取得高排序项目(例如,前1000个)的更小的子集,并训练第三神经网络以 随后对其重新定序。在前1000个被重新排序之后,可使用排序在顶部的项目 的更小的子集以训练另一网络——例如前100个。前100个可按类似方式重新 排序,以产生前10个项目,这前10个项目也可被重新排序。总的效果是在分 开的级中对前2500个结果重新排序,这有效地提高了搜索组件的总体排序性 能。大多数用户仅审阅针对给定查询发回的前几个结果。通过使用以上系统和 方法,可对前几个结果重复地重新排序以改善其相关性和排序次序。因使用这 样的分级系统而得到的改善可部分地源自在每一级,在该级使用的学习机器仅 必须学习正在解决的总排序问题的小的子问题的事实。分级系统的第二个优点 是由于对某些应用(诸如,Web搜索)结果必须实时返回的事实。因此,如果仅使用单个算法来执行排序,则该算法必须非常快。然而,在分级方法中,每 一问题涉及少得多的数据,且因此可在每一级应用更复杂(且更慢)的排序方 法。
为了实现前述及相关目的,在这里结合下列描述及附图来描述本发明的某 些说明性方面。然而,这些方面仅指示了可采用本发明的原理的各种方法中的 几种,且本发明旨在包括所有这些方面及其等效方面。通过结合附图对本发明 的下列详细描述,本发明的其它优点以及新颖特征将是显而易见的。
附图简述
图1是便于通过重新排序高排序项目来改善针对给定査询返回的项目的 排序的排序系统的框图。
图2是便于通过使用多嵌套排序方法来重新排序高排序项目以改善针对
给定查询返回的项目的排序的排序系统的框图。
图3是示出使用多嵌套排序方法来便于将针对给定査询的最相关项目放 置在搜索结果列表顶部或其附近的项目排序的框图。
图4是示出对项目进行排序的伸縮式(telescoping)方法的框图,具体是 高排序项目的递减子集之间的关系和其在嵌套神经网络的训练及与其的交互 中的使用。
图5是示出便于通过重新排序高排序项目来改善针对给定查询返回的项 目的排序的示例性方法的流程图。
图6是示出便于通过使用多嵌套排序方法来重新排序高排序项目以改善 针对给定查询返回的项目的排序的示例性方法的流程图。
图7是示出便于通过修剪或修改个别或连续用于训练相应的排序组件的 训练集来改善针对给定查询返回的项目的排序的示例性方法的流程图。
图8是示出便于通过使用多嵌套排序方法来重新排序高排序项目的递减 子集以改善针对给定查询返回的项目的排序的示例性方法的流程图。
图9是极小规模地示出根据由搜索组件检索出的一组项目对高排序项目 重新定序的示意图。
图10是示出如响应于査询向用户呈现的修改后搜索结果的示例性用户界面。
图11示出了用于实现本发明各方面的示例性环境。 详细描述
现在参考附图详细描述本系统和/或方法,在整个描述中相同的参考标号 表示相同的元素。在以下描述中,为说明起见,阐明了众多具体细节以提供对 本系统和/或方法的彻底理解。然而,显然,本系统和/或方法可以在没有这些 具体细节的情况下实施。在其它情况下,以框图形式示出了公知的结构和设备 以便于描述它们。
如此处所使用的,术语"组件"和"系统"指的是计算机相关实体,它可 以是硬件、硬件和软件的结合、软件、或者执行中的软件。例如,组件可以但 不限于是,运行在处理器上运行的进程、处理器、对象、可执行代码、执行的 线程、程序、和计算机。作为说明,运行在服务器上的应用程序和服务器本身 都可以是组件。 一个或多个组件可以驻留在进程和/或执行的线程中,且组件可 以位于一台计算机上和/或分布在两台或更多台计算机之间。
本系统和/或方法可在每一级结合与识别和标识高排序项目的最佳子集相 关的各种推断方案和/或技术,以使用多嵌套排序方法进行重新排序。具体地, 针对重新排序选择的高排序项目的最佳子集可基于所检索项目的数目而对用 户提交的每一査询改变。例如, 一开始可在第一级重新排序前1500个项目,
而在第二级,可从前面重新排序的项目中选择前250个项目以进行另一次重新 排序。在其它查询中,系统可确定项目的递减子集的不同分割是更适当的。艮P, 这样的推断方案或人工智能可用来自动使这些判断基于所检索的项目的数目 和/或结合用户偏好。所检索的项目的表面相关性也可在判定过程中予以考虑。 例如,可根据赋予项目的值来评估相关性。该值可用于根据哪些项目应被认为 是高排序项目来确定阈值。因此,推断方案可确定例如在给定査询的特定级, 是对1000个经排序项目中的前100个还是前50个重新排序。在后续一级中, 可选择项目的更小子集来进行进一步的重新排序(例如,100个项目中的前10 个)。这可重复直到给用户留下最高排序的项目。也可通过利用一个或多个各 种推断方案来便于选择进行重新排序的级的数目。然而,应注意,对要重新排序的子集的大小的每一选择,必须离线训练排序算法。
如在此处使用时,术语"推断"通常指的是根据经由事件和/或数据捕捉 的一组观察来推出或推断系统、环境、和/或用户状态的过程。例如,推断可用 于标识特定的上下文或动作,或可生成状态上的概率分布。推断可以是概率性 的,即是说,基于对数据和事件的考虑计算所关注状态上的概率分布。推断也 可以指用于从一组事件和/或数据合成更高级事件的技术。这样的推断导致从一 组观察到的事件和/或储存的事件数据构造新的事件或动作,无论事件是否在时 间上紧密相关,也无论事件和数据是来自一个还是若干个事件和数据源。
对响应于用户査询检索到的项目排序使得与用户最相关的项目出现在结 果列表的顶部,对大多数常规搜索引擎而言仍是相对成问题的任务。提出了解 决该问题的涉及机器学习算法的各种解决方案,然而大多数方案应用于每个查 询结果的全集来学习其排序。不幸的是,学习如何针对任何可能的查询来排序 大量文档是非常困难的任务。
如以下图l-8描述的本申请使用机器学习方法来学习以相对于结果列表的 顶部的高度准确性进行排序。更具体地,可采用多嵌套排序方法来分级地(例 如, 一个或多个)执行重新排序,每一级生成结果的新分布。创建新分布的方 式可基于获取排序列表的最顶部处的少数文档或项目的良好排序。每一后续级 的训练集被修剪以仅包括前一排序器排序较高的结果。这将问题分成较小且较 容易的子任务,且分开学习每一级的排序。此外,由于子任务较小,因此可应 用更复杂(且更慢)的排序算法。假定基本排序器已经产生相关文档被置于排 序列表的顶部附近的良好排序。因此,每一以下排序器的目的在于仅学习高分 值结果的重新排序。
而且,假定置于排序列表底部的相关文档更难以学习且因此排序算法或模 块不太可能显著改善其排序是合理的。从而,每一训练集可被修剪以从训练集 中排除这样的困难的相关项目,使得学习可集中于对列表顶部处的项目的排序 (或重新排序)。
存在可用于实现分级重新排序高排序项目的众多不同的排序模型。为简明 和易于讨论起见,将结合在Burges等人于2005年波恩在关于机器学习的第22 届国际会议的期刊上发表的"Learning to Rank Using Gradient Descent (学习使用梯度下降来排序)"中所述的神经网络算法描述本申请。该算法将被称为
RankNet (排序网络)。在常规实践中,可通过对输入提供带标签示例、通过 网络正向传播、基于网络的输出和从带标签数据获取的期望输出计算误差函数 的值,并最终递增地调节权重以减少误差函数的值(例如,当对所有训练数据 平均时)来训练神经网络。
此处所讨论的神经网络算法(例如参见如上所述的序列号为11/066,514 的美国申请)涉及学习排序数据集以最小化作为示例对的函数的成本。具体地, 该神经网络可通过使用示例对学习一组数据点的排序并学习对具有较高相关 性分值的示例赋予较高值的有关对的函数。该神经网络排序算法可在多嵌套排 序器的每一级(例如, 一个或多个级)应用。该算法对示例进行训练,且其输 出用于产生数据点的最终排序。反向传播阶段可调整成适合基于成对误差的成 本函数。对多嵌套排序器的每一级处完成的训练集的修改可被视为将关于文档 在排序列表中的位置的信息引入训练过程并对学习高分值结果的定序施加更 大权重的尝试。
此处提供的多嵌套排序器便于将排序问题分成更小且更可管理的任务。 即,代替一次处理检索到的百万个项目,集中于这数百万个的顶部的子集以仅 改善该顶部子集的排序。因此,在每一级之后,可生成结果的一种新分布,使 得学习算法集中于对顶部结果重新排序。使用排序列表顶部处的结果集而非成 对的准确性来测量排序器的性能。从而,该方法也可通过更强调学习如何对高 分值文档重新排序来桥接训练期间所使用的成本函数与评估测量值之间的间 隙。参考图l-8进一步描述多嵌套排序方法。
现在参考图1,这是便于通过重新排序高排序项目来改善针对给定查询返 回的项目的排序的排序系统100的一般框图。系统100包括针对给定査询检索 初始项目集的搜索组件110。例如,假定用户执行了对"儿童疾病和抗生素" 的搜索。搜索组件110可检索与这些搜索词相关的多个项目。检索出的项目然 后可被用作多嵌套排序组件120的第一训练集。该多嵌套排序组件120可对高 排序项目的一个或多个递减子集排序或重新排序,以便于获取搜索结果列表顶 部处的最相关项目。
多嵌套排序组件120可包括多个神经网络。使用训练项目集来单独训练每一神经网络以学习排序。更具体地,在如上所引用的RankNet中,每一神经网 络可学习使用基于示例对的概率性成本函数来进行排序。在训练期间,神经网
络按照以下次序示出一对示例例如,期望所示的第一示例的排序比第二示例 高;且用于更新网络的成本函数取决于对这两个示例的网络输出。例如,假定 样本A被给予网络输入,接着是样本B;并假定期望使网络将样本A排序成 高于样本B。如果网络对A输出了比B低的数,则成本较大,且网络相应地 更新其权重——以减少成本。而且,在训练阶段期间,可假定第一示例总是或 几乎总是排序成高于第二示例。然而,在测试阶段期间,神经网络可将单个示 例映射到然后用于排序数据的数。
响应于査询检索到的初始项目集可按此方式排序。根据该排序的项目列 表,高排序项目的子集可通过使用该项目子集来训练另一神经网络来重新排 序。实际上,例如想象在100,000个(经排序的)结果中,系统取得前2500 个项目,并对该2500个项目的递减子集执行多次重新排序迭代。结果,可取 决于所执行的重新排序的级数对前10个项目(来自前2500个项目)重新排序 和/重新混洗一次或多次。因而,比较在级=0 (重新排序前)和级=3 (在3 次嵌套迭代后)时列表中顶部位置的项目可产生或可以不产生不同的项目。然 而,在某些情况中,顶部位置中的项目可至少改变一次。
现在参考图2,这是便于通过使用多嵌套排序方法来重新排序高排序项目 以改善针对给定査询返回的项目的排序的排序系统200的框图。具体地,系统 200包括接收初始训练数据集(例如,响应于査询检索到的项目)的排序组件 210。排序组件210可学习使用基于样本对的概率成本函数来排序。更具体地, 排序组件210可采用一种学习算法,对该算法给定i^中的一组样本对[A,B]以 及样本A的排序高于样本B的目标概率。采用以下形式的模型/: ^ ^ ^ ,
一组样本的排序次序由y所取的实值所指定,更具体地,假定y(xi)〉z(x2)意
味着该模型使^的排序高于x2。—使用逻辑函数'7 l + ,来对输出到概率的映 射建模,其中^/s/")-k)且^^prob(xi的排序高于xj)。也可对神经网络采
用成本函数以学习排序。成本函数可变为两个连续训练样本的输出的差的函 数/(52-5,),假定第一样本具有比第二样本高或相同的排序。
因此,排序组件210可提供经排序项目220,借此可将经排序项目的子集用作新的或修改后的训练集230。可将该新的训练集提供给多嵌套排序组件 240,其中在每一级处可通过训练集修改组件250递减地修改训练集。当创建 了新的或修改后的训练集时,它可用于神经网络训练260以在特定级针对给定 项目子集创建神经网络。
图3示意性地示出了通过在各级处对项目子集应用排序函数或模型以便 于将针对给定査询的最相关项目置于搜索结果列表顶部或附近的高排序项目 的重新排序。用户或搜索和检索系统可确定级数和/或要在每一级重新排序的 (高排序)项目的数目。如图3中所示,所选高排序项目可在一个或多个级处 重新排序,借此在每个连续级处,从前一项目子集减少经重新排序的项目的子 集。实际上,例如想象有一训练查询集2 = (^,...,《iei>),且针对每一査询仏, 有由在搜索引擎中使用的基本排序器排序在前及/个结果(在所检索的及7个项 目中)之中的一组文档A =问7, 关于这些项目的排序的信息(例如其
分值)可用作后续排序级的输入。
多嵌套排序方法应用排序算法(例如,图1和2中的排序组件)来在一个 或多个级处重新排序顶部的结果。在每一级处,向排序组件/算法/函数提供包 含高排序项目的递减子集的每个査询结果的新分布。因此,在每一级后,以以 下方式修剪训练集在第一级300处,对前7 /个结果的整个集合应用排序函 数(305),其中例如仗1 =每个査询2500个文档(例如,对象、文件、URL、 图像等)。训练过程计算第一网络,Ne^ (310)。可根据使用Net,计算出的 递减分值来对结果排序(315)。之后,修改训练集,使得仅对每一查询保留 根据Net,收到最高分值的前及2个文档。
第二级320产生Net2,且仅对下一训练集保留前及3得分的文档。该修剪 过程可被称为伸縮式,相当于在第一级后固定排序从/ /到(R2-l)的文档的Neti 排序,用Net2重新排序前及2个文档,在第二级之后再次固定排序置于从i 2 到(R3-1)的文档的排序,用Net3重新排序前iU个结果,并依此类推(例如, 级3、级4等)。因此,在多嵌套排序的每一级之后,产生可供评估的每个査 询所有及/个结果的排序列表。级的数目和每一级中项目的数目可变化。从而, 对一个査询,可使用四级,其中及7=2500,及2=1000,及3=100, i^=10,而在 另一查询中,可使用三级,其中及7=2500,及2=100,及3=10。应理解,每一级处项目的数目可不同于在之前示例中所使用的数目,只要它们出现在递减的子 集中即可。可对确认和测试集合应用类似或相同的伸縮式过程。
如在以上示例性场景中所述,该方法将问题分成小片,使得每一网络具有 较小和较简单的任务要执行。此外,数据集的修剪将排序列表底部的假定困难 的相关文档从训练集中移除,并使算法关注于高得分相关文档的排序。
回想起为示例性目的所描述的排序算法的成本函数依赖于两个连续训练 样本的输出的差。如此处所述,样本为响应于特定査询由搜索引擎返回的文档 或其它项目。随后,在每一迭代之后,训练样本网络的输出生成其相对于査询 的排序。由于成本函数的当前形式,排序算法试图学习文档的正确成对次序而 不考虑其在排序列表中的位置。因此,在训练期间网络有可能通过即使以稍微 下移列表顶部的某些相关结果为代价也显著上移处于列表底部的文档来改善 成对错误。实验数据示出这的确可能在训练期间发生。
现在转向图4,这是示出对项目进行排序的伸縮式方法的框图,更具体地 是高排序项目递减子集之间的关系与其在训练嵌套神经网络及与其的交互中 的使用。该示意图示出了取得高排序项目的初始集并然后修剪其每一连续子集 的伸縮式方面。用于对项目排序的神经网络也可基于这样的子集来连续修改。 作为排序的伸縮式本质的结果,重新排序搜索结果列表中更相关的项目以便于 在列表的顶部获得最相关的项目。
如图中所示,高排序项目的初始集410 (从由搜索组件检索到并随后排序 的项目的列表中取得)可用于训练第一神经网络420。经训练的神经网络420 然后可用于项目410以便获得连续的高排序项目子集430。这可对用户期望的 进行的多次迭代继续,以便于精细调节搜索结果列表顶部的项目。这在图4中 示出,其中神经网络netcj (G是大于等于1的整数)可由相应的修改后的训练 集训练。
现在将通过一连串动作描述各个方法。可以理解和领会,本系统和/或方 法不受动作次序的限制,根据本申请,某些动作可按不同次序发生和/或与此处 所示和所述的其它动作并发。例如,本领域技术人员将会理解并明白,可以将 方法替换表示为一连串相互关联的状态或事件,诸如状态图中。而且,并不是 所有示出的动作都是执行根据本申请的方法所必需的。现在参考图5,这是示出便于通过重新排序高排序项目来改善针对给定查
询返回的项目的排序的示例性方法500的流程图。方法500涉及在510由搜索 组件针对给定査询检索项目初始集。可使用任何排序函数或算法来对该项目集 排序以获得项目的初始排序。随后在520,方法500可重新排序高排序项目的 一个或多个递减子集以便于将对査询最相关的项目置于搜索结果列表的顶部。 一旦执行了所期望的项目重新排序,就可向用户呈现搜索结果列表。因此,想 象响应于用户査询返回了 500,000个项目。代替试图提高较低排序项目(例如, 列表底部附近或低于阈值)的排序,该方法将其精力集中于高排序项目。因此, 可选择列表上的前3000个项目。作为结果,以连续方式重新排序前3000个项 目的嵌套组,使得项目的当前排序可部分由之前的排序确定。
转向图6,这是示出便于通过使用多嵌套排序方法来重新排序高排序项目 以改善针对给定查询返回的项目的排序的示例性方法600的流程图。方法600 涉及在610处响应于查询检索多个项目。在620,可使用任何期望的排序函数 或模型来对项目排序。为了改善较高排序项目(例如,前r个项目,其中V 是大于l的整数)的排序,可在630使用多嵌套排序方法来对较高排序项目重 新排序。即,可在各级处对较高排序的项目应用相同或相似的排序函数(例如, 在项目的递减子集中),而非一次对整个项目组应用该排序函数。例如,可取 得前2500个项目并重新排序以产生前2500个项目的新次序。随后,可取得前 100个项目并重新排序以产生前100个项目的新次序——同时,其余2400个项 目的排序(排序低于前100)保持不变。如果需要,可例如对前IO个项目执行 另一级的重新排序。在640,可向用户呈现由搜索组件检索出的重新排序项目 和其余项目。
在以下的图7和8中,应理解所述的方法(700、 800)可适用于任何定序 问题,其中顶部项目(或更一般地,项目的某个子集)的排序的准确性比其它 地方的排序重要。搜索引擎是这个成立的应用的众多示例之一,且不必是所涉 及的查询。
现在参考图7,这是示出便于通过修剪或修改个别和连续用于训练相应的 排序组件的训练集来改善针对给定查询返回的项目的排序的示例性方法700的 流程图。方法700涉及在710处经由搜索组件或引擎响应于查询而检索项目。在720,可使用训练集计算或训练排序组件。在730,可使用排序组件对搜索 组件检索到的项目排序。在740,可通过排除较低排序的项目(例如,其相关 性更难确定的低分值项目)来修改或修剪训练集。结果,排序组件可关注于对 更相关的高分值项目的排序。在750,可使用修改后的训练集来训练新的或修 改后的排序组件。在760,其余项目(例如,未被排除的那些)可由修改后的 排序组件再次排序。在740到760发生的过程可按需重复,借此由其相应的修 改后的训练集对高排序项目的递减子集重新排序。
在图8中,这是示出便于通过使用多嵌套排序方法来对高排序项目的递减 子集重新排序以改善针对给定査询返回的项目的排序的示例性方法800的流程 图。方法800涉及在810从针对给定査询检索出的排序项目列表中提取高排序 项目。例如,想象取得检索出的二百万个文档中的前1000个文档。在820,可 基于(提取出的)高排序项目训练排序组件(例如,机器学习的神经网络)。 因此,可将前IOOO个项目用作训练集。在830,这些项目可由最近训练的排序 组件重新排序。这意味着,在该重新排序过程中不考虑来自经由搜索组件检索 到的二百万个文档的任何信息。在840,可提取重新排序的高排序项目的子集 以再次修改排序组件的训练。因此现在想象从重新排序的IOOO个项目的列表 中取得前IOO个项目,并使用该前IOO个项目作为新的或修改后的训练集以重 新训练排序组件。然后在850,可由修改后的排序组件对这100个项目重新排 序。这可通过现在从这100个项目列表中取得前10个项目并按类似的方式对 其重新排序来再次重复。如可见地,列表上的前10个项目可在每一级中重复 地重新定序。
现在转向图9,图示小规模地示出了对搜索结果的重新排序,更具体地是 对高排序项目的重新排序。想象用户输入了 Web查询"stroller (手推车)", 且返回了众多项目并对其排序。框卯0提供了从这种排序中得到的前5个项目 的列表。为了获取对前5个项目(例如,URL)的改善的定序,可采用多嵌套 方法来在各级中(例如, 一个或多个级)对项目重新定序。在更实际的规模上, 系统可处理针对该査询检索到的二百五十万个项目,并因此对前5000个项目 进行重新定序以最终改善前10个项目的定序和/或顶部项目可对用户相当有 利。因此,在对项目重新排序之后,获得5个项目的新次序(910)。最终结果列表可如图10所示向用户呈现。多嵌套排序组件所消耗的处理时间是可忽 略不计的,且基本上不会引起用户注意;且在结果列表的顶部提供最相关项目 时改善的准确性极大地增加了用户对搜索组件的满意程度。
为了提供有关本发明的各个方面的附加上下文,图11以及下列论述旨在 对可在其中实现本申请的各个方面的合适的操作环境iiio提供简要、 一般描
述。当在由一个或多个计算机或其它设备执行的诸如程序模块等的计算机可执 行指令的一般上下文对本系统和/或方法进行描述时,本领域技术人员将认识 到,本发明还能够结合其它程序模块和/或作为硬件和软件的组合来实施。
然而,通常,程序模块包括执行特定任务或实现特定数据类型的例程、程 序、对象、组件、数据结构等。操作环境1110只是合适操作环境的一个示例, 并不旨在对本系统和/或方法的使用范围或功能提出限制。其它适于与本发明一 起使用的公知的计算机系统、环境、和/或配置,包括但不限于个人计算机、 手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程的消费者 电子产品、网络PC、小型计算机、大型计算机、包括上述系统或设备的分布 式计算环境等等。
参考图11,用于实现本系统和/或方法各方面的示例性环境1110包括计算 机1112。计算机1112包括处理单元1114、系统存储器1116和系统总线1118。 系统总线1118将包括但不限于系统存储器1116的系统组件耦合至处理单元 1114。处理单元1114可以是任何各种可用的处理器。也可以使用双微处理器 和其它多处理器体系结构作为处理单元1114。
系统总线1118可以是若干类型的总线结构中的任一种,包括存储器总线 或存储器控制器、外围总线和/或使用各种可用的总线体系结构中的任一种的局 部总线,可用的总线体系结构包括,但不限于,ll位总线、工业标准体系结构 (ISA)、微通道体系结构(MCA)、扩展的ISA (EISA)、智能驱动器电子 接口 (IDE) 、 VESA局部总线(VLB)、外围部件互连(PCI)、通用串行总 线(USB)、高级图形接口 (AGP)、个人计算机存储卡国际协会总线(PCMCIA) 以及小型计算机系统接口 (SCSI)。
系统存储器1116包括易失性存储器1120和非易失性存储器1122。基本 输入/输出系统(BIOS)包含有助于诸如启动时在计算机1112中元件之间传递信息的基本例程,它通常存储在非易失性存储器1122中。作为说明,而非限 制,非易失性存储器1122可以包括只读存储器(ROM)、可编程ROM(PROM)、 电可编程ROM (EPROM)、电可擦除ROM (EEPROM)或闪存。易失性存 储器1120可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明, 而非限制,RAM以多种形式可用,诸如同步RAM (SRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双倍数据速率SDRAM (DDR SDRAM)、 增强型SDRAM (ESDRAM)、同步链路DRAM (SLDRAM)以及直接Rambus RAM (DRRAM)。
计算机1112也包括可移动/不可以移动、易失性/非易失性计算机存储介 质。例如,图11示出盘片存储1124。盘片存储1124包括,但不限于,如磁盘 驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、 闪存卡或记忆棒的设备。另外,盘片存储1124可以包括独立或与其它存储介 质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM) 、 CD 可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字 多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将盘片存储 设备1124连接至系统总线1118, 一般使用诸如接口 1126等可移动或不可移动 接口。
可以理解,图11描述了作为用户和在合适的操作环境1110中描述的基本 计算机资源之间的中介的软件。这样的软件包括操作系统1128。可被存储在盘 片存储1124上的操作系统1128用来控制和分配计算机系统1112的资源。系 统应用程序1130通过存储在系统存储器1116或者盘片存储1124上的程序模 块1132和程序数据1134利用了操作系统1128执行的资源管理。可以理解, 本系统和/或方法可以使用各种操作系统或操作系统的组合来实现。
用户通过输入设备1136向计算机1112输入命令或信息。输入设备1136 包括,但不限于,诸如鼠标、跟踪球、指示笔等定点设备、触摸垫、键盘、麦 克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相 机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口 1138通 过系统总线1118连接至处理单元1114。接口端口1138包括,例如串行端口、 并行端口、游戏端口和通用串行总线(USB)。输出设备1140使用某些与输入设备1136相同类型的端口。从而,例如,USB端口可以用于向计算机1112 提供输入,并向输出设备1140提供来自计算机1112的输出信息。提供输出适 配器1142来示出,存在类似监视器、扬声器和打印机以及其它需要专用适配 器的输出设备1140的某些输出设备1140。作为说明而非限制,输出适配器1142 包括提供输出设备1140和系统总线1118之间的连接手段的显卡和声卡。应该 注意,诸如远程计算机1144等其它设备和/或设备系统同时提供输入和输出能 力两者。
计算机1112可使用至一台或多台远程计算机,诸如远程计算机1144的逻 辑连接在网络化环境中操作。远程计算机1144可以是个人计算机、服务器、 路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络 节点等,且通常包括上文相对于计算机1112描述的许多或所有元件。为简明 起见,对于远程计算机1144仅示出存储器存储设备1146。远程计算机1144 通过网络接口 1148被逻辑连接至计算机1112,并且然后通过通信连接1150 被物理地连接。网络接口 1148包括诸如局域网(LAN)和广域网(WAN)的 通信网络。LAN技术包括光纤分布式数据接口 (FDDI)、铜线分布式数据接 口 (CDDI)、以太网/IEEE 1102.3、令牌环/IEEE 1102.5等。WAN技术包括, 但不限于,点对点链路、类似综合业务数字网(ISDN)及其变体的电路交换 网络、分组交换网络和数字用户线(DSL)。
通信连接1150指的是用来将网络接口 1148连接至总线1118的硬件/软件。 尽管为说明清楚,将通信连接1150示为位于计算机1112内,然而通信连接1150 也可以在计算机1112外部。仅为示例的目的,连接至网络接口 1148所必需的 硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解 调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。
以上描述的包括本发明的示例。当然,不可能为描述本系统和/或方法而 描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识 到,本系统和/或方法的众多其它组合和排列是可能的。从而,本系统和/或旨 在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。而 且,就在详细描述和权利要求书中都使用的术语"包括"而言,当被用作权利 要求书中的过渡词时,这样的术语旨在类似于解释术语"包含"的方式是包含性的。
权利要求
1.一种向针对给定查询返回的项目提供改善排序的排序系统,包括项目的初始集,所述项目的初始集的定序是所期望的;以及多嵌套排序组件(120),它对高排序项目的一个或多个递减子集重新排序以便于获取项目的最相关定序。
2. 如权利要求1所述的系统,其特征在于,所述多嵌套排序组件包括经 由机器学习或统计方法训练的多个排序算法。
3. 如权利要求2所述的系统,其特征在于,所述多个排序算法包括训练成对项目的初始集排序的至少一种初始排序算法(NETQ);以及 后续对从之前重新排序的项目子集中取得的经排序项目训练的一个或多 个后续排序算法。
4. 如权利要求3所述的系统,其特征在于,第一项目子集包括位于列表 上最高次序位置的项目。
5. 如权利要求2所述的系统,其特征在于,还包括训练集修改组件,它 部分通过从每一训练集中排除一个或多个项目来连续修剪每一个之前的训练 集以形成新的训练集,每一新训练集包括来自之前训练集的项目的子集。
6. 如权利要求5所述的系统,其特征在于,所述多个排序算法使用相应 的训练集以连续方式训练。
7. 如权利要求1所述的系统,其特征在于,所述多嵌套排序组件在一个 或多个分开的级中对由所述搜索组件检索到的所述项目的初始集的子集重新 定序,以将最相关高分值项目置于所述列表的顶部。
8. 如权利要求1所述的系统,其特征在于,还包括显示组件,它向所述 用户呈现搜索结果列表,所述搜索结果列表至少包括使用多个分开训练的神经 网络重新定序的项目的子集。
9. 一种向针对给定査询返回的项目提供改善排序的方法,包括 检索项目的初始有序集;以及对排序项目的一个或多个递减的子集重新排序以便于获得所述项目的最 相关定序。
10. 如权利要求9所述的方法,其特征在于,还包括对项目的初始集排序 以及从中选择顶部项目子集以重新排序。
11. 如权利要求IO所述的方法,其特征在于,所述对顶部项目子集的重 新排序是在一个或多个分开的级中进行的。
12. 如权利要求9所述的方法,其特征在于,所述重新排序包括-选择高排序项目的递减顶部子集; 修改用于训练经修改排序算法的训练集;以及对高排序项目的顶部子集重新定序。
13. 如权利要求12所述的方法,其特征在于,修改训练集包括 通过排除多个低排序项目并在其中至少保留高排序项目的顶部子集来修剪至少第一训练集以形成至少一个经修改训练集;以及对所述至少一个经修改训练集训练至少一个经修改排序算法。
14. 如权利要求9所述的方法,其特征在于,所述重新排序是经由至少一 个经训练的排序算法进行的。
15. 如权利要求9所述的方法,其特征在于,还包括向所述用户呈现列表, 所述列表包括已经重新排序的项目的子集。
16. 如权利要求9所述的方法,其特征在于,还包括对来自所述项目初始 集的项目的子集重新定序。
17. 如权利要求9所述的方法,其特征在于,所述重新排序采用对数据集 训练的一个或多个排序算法,其中对较小数据集训练的所述排序算法与对较大 数据集训练的那些排序算法相比是更复杂的学习算法。
18. —种向针对给定查询返回的项目提供改善排序的排序系统,包括 用于针对所述给定查询检索项目的初始有序集的装置;以及 用于对高排序项目的一个或多个递减子集重新排序以便于获得所述项目的最相关定序的装置。
19. 如权利要求18所述的系统,其特征在于,还包括用于修改训练集以 便于分开训练多个排序算法的装置。
20. 如权利要求18所述的系统,其特征在于,还包括用于呈现有序项目 的列表的装置,所述列表至少包括一个已经重新排序的项目的子集。
全文摘要
提供了一种便于改善项目的排序的独特的系统和方法。该系统和方法涉及在分开的级中对高排序项目的递减子集重新排序。具体地,基本排序组件可对项目集排序。可取得顶部或高排序项目的子集,并用作新训练集以训练用于改善这些高排序文档之间的排序的组件。该过程可对任意数目的连续的高排序子集重复。因此,可通过关注于较高排序项目在分开的级中对高排序项目重新定序以便于将最相关项目置于搜索结果列表的顶部。
文档编号G06Q90/00GK101322125SQ200680045523
公开日2008年12月10日 申请日期2006年11月17日 优先权日2005年12月5日
发明者A·S·拉鲁夏斯, C·J·博格斯, I·玛特维娃, L·W·翁, T·伯卡德 申请人:微软公司