使用计算引擎来改进搜索相关性的制作方法

文档序号:6365756阅读:176来源:国知局
专利名称:使用计算引擎来改进搜索相关性的制作方法
技术领域
此处描述的“迭代查询重制定器(Iterative Query Reformulator) ”使用计算引擎来通过一个或多个迭代处理并重制定初始查询,以使得从使用最终的经重制定的查询的搜索引擎或推荐系统返回的结果相对于仅使用该初始查询返回的结果具有改进的相关性。
背景技术
典型搜索引擎依赖语言匹配来寻找与用户查询相关的文档。例如,如果用户输入简单搜索查询{Barak 0bama(巴拉克奥巴马)},则搜索引擎一般会返回对于该查询最普遍的一组经排序的链接或响应。进而,给定该初始查询的具体性和简单性,所返回的大多数链接可能与该查询高度相关。然而,如果用户输入稍微更复杂的查询,诸如例如{wife of Barak 0bama(巴拉克奥巴马的妻子)},则典型搜索引擎一般会返回可能不相关的多个链接或响应。特别是,由该搜索引擎返回的来自第二次查询的链接或响应中的许多一般仍会引用或包括与Barak Obama有关的信息,而可能不是第二次查询的预期目标MichelleObama(米歇尔奥巴马)的最相关链接。更具体而言,典型的搜索服务和问题回答系统一般依赖于用于分析自由文本(free-text)查询或问题的技术,而且还依赖于用于从信息的一个或多个数据集或数据库中组合或标识相关信息或明确答案的技术。对自由措辞查询(freely worded query)或问题提供相关信息或明确答案一般是具有挑战性的问题,这是因为所搜索的结构化的或非结构化的数据集可能不包含明确的匹配信息或答案。此外,数据集可能包含相关答案或答案组分的多个变型。各种信息检索和问题回答的方式依赖于来自信息检索、信息提取、机器学习、以及自然语言处理(NLP)的若干关键概念的应用。来自单一的、受约束的信息源的自动化问题回答是极具挑战性的。考虑一下从只包含文本“John Wilkes Booth altered history witha bullet. He will forever be known as the man who ended Abraham Lincoln' s life.(John Wilkes Booth用一颗子弹改变了历史。他将永远作为结束Abraham Lincoln的生命的那个人而为人所知。)”的源中收集对问题“Who killed Abraham Lincoln (谁杀死了 Abraham Lincoln ) ”的答案的难度。然而,在使用大量因特网资源时回答问题更容易,因为数以百计的网页包含文字串“杀死了 Abraham Lincoln”,从而提供了匹配和组合的多个机会。在问题回答中的许多努力集中在基于事实的、短答案的问题上,诸如“Who killedAbraham Lincoln (谁杀死了 Abraham Lincoln ),,、“What was the length of theWright brothers first flight (莱特兄弟首次飞行的长度是多少?)”、“When did CNNbegin broadcasting(CNN 什么时候开始广播 ) ”或“What two US biochemists won theNobel Prize in medicine in 1992 (哪两位美国生物化学家在1992年赢得了诺贝尔医学奖?)”。一些问题回答系统已经使用NLP分析来扩充标准信息检索技术。这些系统可以使用信息检索(IR)技术来标识候选章节,然后对问题和匹配章节执行更加详细的语言学分析来寻找具体答案。各种语言学资源(词性标记、解析、命名实体提取、语义关系、字典等)可被用来支持问题回答。其他方式可以使用一般信息检索技术,该一般信息检索技术采用用于重写问题或重制定查询来匹配问题的格式并接着组合多个结果来生成答案的方法。其他技术,诸如例如著名的“Wolfram I Alpha”搜索平台,提供用于搜索的计算引擎。一般而言,这些技术始于逐域地对域执行数据组织(data curation)过程,依赖于使用各种复杂工具来对大数据集执行针对性组织以及提供语言学或语法学支持的人类域专家。使用这些相同工具,域专家 还能够指定使用现有本体的该域内的各计算类型(预定义格式的)是可能的,以确保一致性并允许经由用户输入查询的计算。一旦域专家已组织了该数据,然后该数据被添加到专用计算槽,该专用计算槽对该数据和各个由专家定义的规则进行操作以便由语言解析器基于发送给它的查询返回一个或多个答案。不幸的是,典型的基于计算引擎的平台的一个潜在弱点是缺乏查询日志等等,限制这些平台确定用户意图、相关性、排序以及确定域和要组织的适当数据源的能力。

发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,虽然此处可以注意到或讨论现有技术的某些缺点,所要求保护的主题并非旨在限于可解决那些现有技术的任何或全部确定的实现。一般而言,此处描述的“迭代查询重制定器”提供用于使用计算引擎来通过一个或多个迭代重制定初始查询的各种技术。此迭代查询重制定过程确保从使用最终的经重制定的查询的搜索引擎或推荐系统返回的结果相对于仅单独使用该初始查询所返回的结果具有改进的相关性。更具体而言,该迭代查询重制定器提供一种端到端方案,该端到端方案使用自动化计算来从一个或多个知识数据库(在此处也被称为“结构化数据”或“知识源”)导出“子查询”(定义为使用语法学和统计学工具从初始查询提取的初始查询的一部分)的部分答案。然而,与尝试直接回答问题或查询的其他专家知识或计算引擎型系统不同,改为使用这些部分答案来重制定初始查询来帮助搜索引擎(或推荐系统)向用户提供高度相关的经排序的结果,而不是将这些部分答案返回给用户。在各个实施例中,查询重制定过程迭代,直到基于对用户响应度量相对于所返回的结果的评估实现了满意的搜索或推荐结果,或直到进一步的查询重制定不再可能这样的时刻,或直到进一步的重制定指示结果满意度的降低(通过评估历史查询日志中的条目来确定)。然而,应当理解,即便在进一步的重制定指示用户满意度水平的静态水平甚至下降的情况下,该迭代查询重制定器可以继续重制定该查询,直到进一步的重制定不可能,因为下一个迭代可能产生更高的用户满意度水平。事实上,在最一般的实施例中,迭代查询重制定器考虑所有可能的查询重制定改变(假定是有限数量的),然后选择具有最高用户满意度水平的一个或多个查询重制定来呈现给用户。换言之,迭代查询重制定器使用对特定查询或子查询从结构化数据导出的计算的结果来通过重制定查询并然后对该经重制定的查询进行搜索来改进搜索结果的相关性。更具体而言,本计算过程使用各种语法学工具和统计学工具来在初始查询中标识一个或多个[实体,属性]对来构造子查询。然后这些[实体,属性]对被提交到自动标识的知识源,然后该知识源返回对子查询的高置信度的部分答案。然后使用所得到的高置信度的部分答案来通过一个或多个迭代来重制定原始查询。例如,查询{Barack Obama’s wife’s brother (巴拉克奥巴马的妻子的兄弟)}具有子查询{Barack Obama’s wife (巴拉克奥巴马的妻子)},即,实体“Barack Obama (巴拉克奥巴马)”和属性“wife(妻子)”。对此子查询的高置信度的部分答案是{Michelle0bama(米歇尔奥巴马)}。当随后使用此部分答案来重制定该原始查询时,经重制定的查询变成{Michelle Obama’s brother (米歇尔奥巴马的兄弟)}。当随后将此查询提交给搜索引擎时,它在排名最高的查询结果中返回期望的搜索目标“Craig Malcolm Robinson”的多 个实例。相反,{Barack Obama’ s wife’ s brother}的初始查询明显较不可能返回期望的搜索目标的许多高排名实例。迭代查询重制定器所提供的解决方案进一步包括用于从基于与特定实体的相关性选择的结构化数据源构建计算引擎、标识将受益于计算引擎的重制定的目标查询集、以及将结果集成到一个或多个搜索引擎或推荐系统的主要或首要搜索索引的过程。然而,应当领会,可以改造现有计算引擎以在查询重制定中使用。鉴于上述发明内容,显然,此处描述的迭代查询重制定器提供使用计算引擎来在迭代过程中重制定查询的各种技术,其改进了特定查询的搜索相关性。除了刚才所描述的好处之外,从结合附图所考虑的以下详细描述中将清楚该迭代查询重制定器的其它优点。


参考以下描述、所附权利要求书以及附图,将更好地理解所要求保护的主题的具体特征、方面和优点,附图中图I提供示出用于实现如此处所述的“迭代查询重制定器”的各实施例的程序模块的示例性体系结构流程图。图2示出了总系统流程图,该总系统流程图示出用于实现如此处所述的迭代查询重制定器的各实施例的示例性方法。图3是描绘具有用于实现如此处所述的迭代查询重制定器的各实施例的简化计算和1/0能力的简化通用计算设备的总系统图。
具体实施例方式在对所要求保护的主题的各实施例的以下描述中,对附图进行了参考,附图构成了实施例的一部分且在其中作为说明示出了可在其中实践所要求保护的主题的各具体实施例。应当理解,可以利用其他实施例,并且可以作出结构上的改变而不背离所要求保护的主题的范围。1.0 介绍:一般而言,此处描述的“迭代查询重制定器”提供用于使用计算引擎来通过一个或多个迭代重制定初始查询的各种技术。此迭代查询重制定过程确保从使用最终的经重制定的查询的搜索引擎或推荐系统返回的结果相对于仅单独使用该初始查询所返回的结果具有改进的相关性。更具体而言,迭代查询重制定器提供一种端到端方案,该方案使用自动化计算从一个或多个知识数据库(在此处也称为“结构化数据”或“知识源”)中导出查询的“子查询”的部分答案。然而,与尝试直接回答问题或查询的其他专家知识或计算引擎型系统不同,改为使用这些部分答案来重制定初始查询来帮助搜索引擎(或推荐系统)向用户提供高度相关的经排序的结果,而不是将这些部分答案返回给用户。换言之,迭代查询重制定器使用对特定查询或子查询从结构化数据导出的计算的结果来通过重制定查询然后对该经重制定的查询进行搜索来改进搜索结果的相关性。更具体而言,本计算过程使用各种语法学工具和统计学工具来在初始查询中标识一个或多个[实体,属性]对来构造子查询。然后这些[实体,属性]对被提交到自动标识的知识源,然后该知识源返回对子查询的高置信度的部分答案。然后使用所得到的高置 信度的部分答案来通过一个或多个迭代来重制定原始查询。对是否继续重制定迭代的判断是基于对从具有匹配经重定制的查询的查询的历史搜索日志中导出的用户度量的评估的。I. I 系统概览如上所述,该“迭代查询重制定器”提供用于使用计算引擎来在迭代过程中重制定查询的各种技术,该迭代过程改进特定查询的搜索相关性。以上概述的过程由图I的总系统图示出。具体而言,图I的系统示出了用于实现如此处所述的迭代查询重制定器的各实施例的程序模块之间的相互关系。此外,尽管图I的系统示出迭代查询重制定器的各实施例的高层视图,但图I不旨在提供贯穿本文全文描述的迭代查询重制定器的每一可能实施例的穷尽或全面图示。另外,应当注意,图I中由断开的线或虚线所表示的任何框和各框之间的互连表示如此处所述的迭代查询重制定器的另选实施例,并且以下描述的这些另选实施例中的任一个或全部可以结合贯穿本文所描述的其他另选实施例来使用。—般而言,如图I所述,由迭代查询重制定器启用的过程通过从用户输入接收初始查询100开始操作。注意,使用公知的传统方法(诸如例如键盘或基于语音的输入)来提供或输入初始查询100,并且在此处不讨论这些公知的输入方法。然后将初始查询100提供给搜索引擎/推荐模块105。一般而言,搜索引擎/推荐模块105在接收到查询后按照与传统搜索引擎(例如,Bing 、Google 等)或推荐系统(例如,Amazon.com 等)相同的方式操作,不同在于在(响应于初始查询100)将查询结果返回给用户之前,首先由用户满意度测量模块110评估那些经排序的查询结果。更具体而言,用户满意度测量模块110接收由搜索引擎/推荐模块105响应于初始查询返回的经排序的查询结果。然后鉴于包括用户度量的一个或多个历史搜索日志115评估那些经排序的查询结果以确定用户满意度水平,用户度量诸如是,但不限于,点进率(CTR)、重查询(S卩,用户试图获得更好的结果而输入的另一查询)、搜索引擎切换(S卩,用户从一个搜索引擎切换到另一个搜索引擎)等。然而,为了解释的目的,下面的讨论将集中在用于解释的目的对CTR的使用,同时要理解可以使用多种用户度量中的任何一种或者用户度量的任何所需组合(包括但不限于CTR)来测量用户满意度。一般而言,具有高CTR的查询结果将对应于更高的满意度水平,而具有低CTR、高重查询和/或高切换率的结果对应于更低的满意度水平。因此,在向用户返回任何查询结果之前,做出关于当前查询结果是否指示足够高的满意度水平的判断120。注意,如果需要,可以向上或向下调节用于测量此满意度水平的阈值。然而,还应当理解,在各实施例中,基于以往表现(例如,用户满意度),迭代查询重制定器可以不示出查询结果。这允许该迭代查询重制定器响应于新的查询(即,先前没有被该迭代查询重制定器处理过的查询)。例如,不同于依赖针对特定查询的CTR,迭代查询重制定器可以针对特定技术或特定类型的变换使用聚集测量而不是单纯依赖针对特定查询实例的度量。例如,涉及一个置换的查询是与涉及两个置换的查询(例如,“Barak Obama’ s wife (巴拉克奥巴马的妻子)”对“BarakObama’ s wife’ s brother(巴拉克奥巴马的妻子的兄弟)”)不同的类型。在当前查询结果指示足够高的满意度水平的情况下,则使用公知的传统技术(例如,显示设备、打印输出等)来向用户输出最终的查询结果125。然而,在当前查询结果不指示足够高的满意度水平的情况下,则将初始查询100作为“当前查询”提供给计算引擎模块130,一般而言,计算引擎模块130评估当前查询的语法、确定从当前查询标识或提取的子查询的部分答案、然后重制定该当前查询以重新提交到搜索引擎/推荐模块105,然后是用户满意度测量模块110的另一评估。如果重制定的查询不带来满意率的可测量的增加, 则将按照原样使用原始查询。进一步,应当理解,即便在进一步的重制定指示用户满意度水平的静态水平甚至下降的情况下,该迭代查询重制定器可以继续重制定该查询,直到进一步的重制定不可能,因为下一个迭代可能产生更高的用户满意度水平。事实上,在最一般的实施例中,迭代查询重制定器考虑所有可能的查询重制定改变(假定是有限数量的),然后选择具有最高用户满意度水平(或其他度量)的一个或多个查询重制定来呈现给用户。
如此处更加详细地讨论的,能被改造以提供此处描述的计算引擎模块130的功能的“计算引擎”的各示例,在2010年6月30体提交到美国专利商标局并被分配了序列号 12/827,370 的题为 “INTEGRATING SPECIALIZED KNOWLEDGE SOURCES INTO A GENERALSEARCH SERVICE (将专用知识源集成到一般搜索服务中)”的共同待审专利申请中描述过,通过此引用将其主题结合于此。此共同待审专利申请大体描述了,结合使用查询重制定模块来重制定该查询以供专家知识引擎使用的各种技术,使用一般搜索引擎接口来从用户接收搜索查询的各种方法。然而,应当意识到,在该共同待审专利申请中描述的计算引擎技术不旨在限制能改造以与该迭代查询重制定器一起使用的计算引擎的类型的范围,而该共同待审专利申请仅是为解释和示例目的而引用的。更具体而言,计算引擎模块130大体包括语法/实体识别器模块135,该模块在当前查询结果不指示足够高的满意度水平的情况下接收当前查询。如同在第2. 2节中更详细地讨论的,语法/实体识别器模块135所使用的语法规则部分通过解析当前查询以标识一 个或多个“实体”和定义实体特征或答案的相关联“属性”来操作。一旦被标识,这些[实体,属性]对被当作“子查询”处理,然后被传递到查询路由器模块140。实体的类别的示例包括但不限于地点名称(例如,法国、黄石、南极洲等)、人(例如,Elvis Presley,GeorgeWashington等)、物理物品(例如,微波炉、汽车等)。如上所述,属性定义或引用实体特征或与该实体相关联的答案。例如,与“法国”这一实体相关联的属性包括但不限于“人口”、“首都”、“语言”等。然而,注意,能够从该查询提取更加复杂的语法学构造,而这些示例仅是为解释的目的提供的。
注意,在语法/实体识别器模块135在当前查询中检测到超过一个可能子查询的情况下,可以使用可任选的用户反馈模块145来直接从用户请求关于在初始查询100中一个或多个子查询中哪些是意图的的反馈。在此情况下,用户能将这些子查询中的一个或多个标识为有效的或无效的,然后有效子查询被传递到查询路由器模块140,如同上面指出的。如上所述,一旦语法/实体识别器模块135已从当前查询解析或提取了一个或多个子查询,则将那些子查询传递到查询路由器模块140。一般而言,查询路由器模块140确定或标识来自计算引擎模块130可用的一组一个或多个专家知识源中的哪个知识源(150、155、或160)最可能包含每个子查询的正确的部分答案。然后查询路由器模块140使用此确定来从所标识的知识源(150、155或160)检索答案。例如,假定此子查询是 {France capital (法国首都)},从包括组织化的国家首都信息的知识源检索的部分答案将是 “Paris (巴黎)”。然后将查询路由器模块140所检索到的部分答案发送到查询重制定模块165。一般而言,查询重制定模块165使用部分答案以通过用该部分答案取代该查询的子查询部分来重制定当前查询。例如,假定当前查询是{population France capital (人口法国首都)},并且子查询{France capital (法国首都)}返回部分答案“Paris (巴黎)”。那么,经重制定的查询变成{population Paris (人口巴黎)}。然后将经重制定的查询发送回搜索引擎/推荐模块105。然后搜索引擎/推荐模块105按照与上面针对初始查询100所描述的相同的方式处理该经重制定的查询。具体而言,经重制定的查询(现在被称为“当前查询”)被搜索引擎/推荐模块105用来检索一组经排序的结果,然后由用户满意度测量模块110对该组经排序的结果进行评估。如果当前查询(例如,{population Paris (人口巴黎)},以延续前面的示例)的经排序的结果具有足够高的满意度水平,则将那些经排序的结果作为最终的查询结果125呈现给用户,否则迭代查询重制定器将重复上面描述的步骤来执行另一重制定迭代。注意,可以重复这些迭代,直到当前查询不再包含用于为重制定目的而标识附加子查询的足够信息。在此情况下,搜索引擎/推荐模块105将返回与最当前的查询重制定相关联的查询结果。然而,应当注意,前面的示例中使用的示例初始查询,即,{population France capital (人口法国首都)},通常太短而不能通过查询重制定的多个迭代来处理。在第2. 2节中讨论了需要多个重制定迭代的更复杂的查询的示例。一般而言,上面概述的重制定技术可以被扩展到不仅与搜索引擎(例如,Bing )一起工作,还被扩展到能够访问专家知识源的任何搜索、推荐或答案系统。作为示例,像Amazon.com 等推荐/购物站点可以使用此处描述的技术来处理查询,诸如{latestcall of duty (最新的使命召唤)}。在Amazon.com 上进行此查询不会导致到视频游戏“Call of Duty =Black Ops (使命召唤黑色行动)”(其是在写作本文时该游戏的最新版本)的期望链接。然而,能够访问游戏信息并且具有足够语法的知识源能够将此查询重写或重制定为{call of duty black ops (使命召唤黑色行动)}。然后Amazon.com 能够在其主要搜索接口上进行此查询(而不是原始的不能回答的查询)以将用户导向购买该游戏的正确页面。当用户关于她在找什么只具有部分信息时这些实施例是非常有用的。上述基础结构上的一种变型是高速缓存和/或预处理各种计算(即,用于查询重制定的部分答案)。在这些实施例中,这意味着查询路由器模块140将使用重制定高速缓存170来存储它在过去看到过的或基于先前数据(S卩,用户行为)预期的计算。这些预期查询的示例可以是通常在十月底左右达到顶峰的{end of daylight savings (夏令时结束)}。还可以为所观察到的一些或全部最常见的查询重制定预高速缓存结果。在本实施例中,语法/实体识别器模块135将首先检查重制定高速缓存170以查看当前查询是否已在先前被重制定为高满意度的查询。如果如此,则将该高满意度的经重制定查询直接传递回搜索引擎/推荐模块105而无需由计算引擎模块130按照上面描述的用于标识子查询和使用部分答案来重制定当前查询的方式进行进一步处理。在又一实施例中,查询路由器模块140将从多个不同知识源(150、155和/或160)检索特定子查询的部分答案。检索多个答案的理由包括确定初始查询中具体的感兴趣的主题的困难,由此使得适当知识源(150、155和/或160)的标识更加困难。在此情况下,使用特定子查询的若干不同部分答案允许查询重制定模块创建经重制定的查询的若干版本或候选。然后用户满意度模块110能够执行产生具有最高用户满意度水平的查询结果的经重制定查询的版本。在各种另选实施例中,搜索引擎/推荐模块105将向用户提供其他重制 定候选中的一些或全部,作为可能查询的建议。在进一步实施例中,迭代查询重制定器基于低用户满意度水平来学习哪些类型的查询可能受益于重制定、但由于缺乏适当的知识源而不能被重制定。通过随时间跟踪这样的重制定失败,各种实体提取技术可被用于估计与这些失败的重制定相关联的该查询的适当主题和语法模式。使用该数据,迭代查询重制定器可以评估各种竞争性的知识源的可能值以及哪些可能值是数据组织的良好候选。进一步,该数据可以离线使用以确定会作为总计算引擎模块130的有用补充的新知识源的类型或内容。2.0迭代杳询重制定器的操作细节上述程序模块用于实现迭代查询重制定器的各实施例。如同上面概述的,该迭代查询重制定器提供用于使用计算引擎来在迭代过程中重制定查询的各种技术,该迭代过程改进特定查询的搜索相关性。以下各节提供了对该迭代查询重制定器的各实施例的操作以及用于实现在第I节中参考图I描述的程序模块的示例性方法的更详细讨论。具体而言,以下各章节提供迭代查询重制定器的各实施例的示例和操作细节,包括计算引擎构造和使用;语法学规则和子查询标识;查询重制定;以及结果呈现。2.1计算引擎构造和使用迭代查询重制定器所提供的解决方案之中包括用于从基于与特定查询(或子查询)的相关性选择的结构化数据源自动地构建计算引擎、标识将受益于计算引擎的重制定的目标查询集、以及将结果集成到一个或多个搜索引擎或推荐系统的主要或首要搜索索引的过程。—般而言,计算层或计算引擎是能跨域工作并能执行基本数据库操作(例如,join (结合))、以及对数据进行数学和统计操作(例如,ave (求平均值),max (求最大值)、min(求最小值)等)的逻辑。注意,存在可用于此目的的各种技术,而这些技术中的一些或全部可以被改造以构造或实现此处讨论的计算引擎。因此,应当理解,本文的意图不是规定用于实现迭代查询重制定器的计算引擎的技术。相反,下面的段落概括地描述了如何能够在大尺度上组织数据以生成专家知识源以在数据上的触发、指定计算、以及利用诸如历史用户搜索日志等信息中使用。一种用于构建计算引擎的方案涉及使用这些现有的结构化数据来——首先在域级,最终在全局级一推断本体(ontology)。可以使用能够通过使用诸如挖掘搜索日志和使用n元语法(n-gram)分析等技术来推断同义词和关系的现有算法来构建该本体。更具体而言,可以将本体认为是基于概念化(com^ptualization)的正式代表的知识的主体,以使得假定存在于某个感兴趣的领域的对象、概念和其他实体以及它们间保持的关系。如此,用于代表此处所述的专家知识源的本体的一个实施例包括诸如传统数据库或三元组库等结构化存储中的数据。可以使用结构化查询语言(诸如例如T-SQL)来访问这些记录。此外,这些知识源可以利用域数据,与现有计算引擎相结合,来标识搜索引擎用户已做出的可能具有计算意图的查询,例如,{Barack Obama’ s wife’ s brother (巴拉克奥巴马的妻子的兄弟)}。注意,在前面提到的2010年6月30日提交给美国专利商标局并被分配了序列号 12/827,370 的题为 “INTEGRATING SPECIALIZED KNOWLEDGE SOURCES INTO A GENERALSEARCH SERVICE (将专用知识源集成到一般搜索服务中)”的共同待审专利申请中,描述了 用于将专家知识源集成到一般搜索服务的系统的实施例的各示例,通过此引用将该申请的主题结合于此。此共同待审专利申请大体描述了用于使用一般搜索引擎接口来从用户接收搜索查询的各种方法。然后这些方法描述了用于使用查询重制定模块来重制定查询以供专家知识引擎(也被称为“计算引擎”)使用的各种技术。如此,该共同待审申请中描述的技术被改造为导出子查询的部分答案(如此处所述),然后部分答案被用来重制定初始查询以供该搜索引擎或推荐系统使用。然而,与该共同待审申请不同,在各实施例中,迭代查询重制定器所使用的查询重制定过程不将部分答案直接返回给用户,并且还继续(或迭代)直到基于对相对所返回的结果的用户响应度量的评估实现了令人满意的搜索或推荐结果,或直到如进一步的查询重制定不可能的时刻,或除非进一步的重制定提供满意度减少的结果。2. 2语法学规则和子杳询标识搜索引擎通常具有由不同“垂直(vertical) ”或专家知识源的拥有者维护的多个针对特定域的结构化内容。这些垂直的示例是城市、地理、WolframlAlpha、旅行、娱乐、天气、商业/购物等。如果数据具有附连于它的某种上下文信息,则所述数据被称为是“结构化”的。此信息可以表达数据项的含义的简单元标签的形式出现;或者数据本身被使用不仅表达含义还表达分层的已知模式格式化;或者将数据项与其他数据项的关系作为所述数据的一部分提供。迭代查询重制定器的各实施例使用后一种形式,然而这不应当被解读为阻止对前面的形式使用该技术,因为如果知识源的语料库足够大,此技术可以将简单形式变换为更结构化的形式。一般而言,一种由迭代查询重制定器用来标识计算意图的技术是标识用户的查询的不同部分,然后通过递归地标识子查询或已知模式并将已知实体或计算替换为该特定模式而使用各个规则来简化该查询。例如,查询{what is Barack Obama’s wife’s age (巴拉克奥巴马的妻子的年龄是多大)}可以被解析为〈what isXbarack obamaXwifeXage〉。然后,通过使用使用不同知识源构造的实体字典,<barack obama>被标识为个人知识源中的实体。看看该源的已知模式,可以看出〈personXwife〉是有效模式,即,在此情况下,具有〈michelle obama> 的值。现在该查询可被重制定为〈what isXmichelle obamaXage〉。如果然后通过查询日志确定此查询的搜索结果基于在第I. I节中概述的用户度量具有高满意度水平或比率,则该迭代查询重制定器可以在本步骤停止查询重制定。相反,如果该度量显示低用户满意度水平,则该迭代查询重制定器可以尝试做另一个迭代并简化子查询〈michelle obamaXage〉,这是个人知识源的另一个有效模式。然后这将提供最终简化,在本情况下该最终简化即实际答案Michelle Obama is currently 47years old(米歇尔奥巴马现在47岁了)。上述重制定过程的一种方式可以被概括为通过标识和递归简化具有如下形式的模式{〈entity-of-knowledge-type_A(知识-类型-A-的-实体)Xproperty-of-entity (实体-的-属性)>}。 存在如下可能存在超过一个能够声明同一实体的知识库或专家知识源。例如,<barack obama〉可能还属于“政治家”或“美国总统”的知识源。该迭代查询重制定器将简单地使用通过各知识源的每一个的递归来尝试简化该查询并挑选给出答案或最终子查询的具有最高满意度度量的那一个。在一些情况下,使用本方法的查询重制定可能由于性能问题而不可行。该迭代查询重制定器可以跟踪已做出的重制定决定并且对所涉及的知识源的所有实体遵循相同的步骤。然后可将该查询重制定作为实际答案(例如年龄)或作为对用户的查询更改建议(即,经重制定的查询)而显示。在各实施例中,在查询更改建议的情况下,用户要么接收要么拒绝该建议的动作被用作反馈机制,以帮助该迭代查询重制定器在可能的竞争性的查询重制定间做出选择。例如,考虑查询{Barack Obama wife’ s age (巴拉克奥巴马的年龄)}, “BarackObama (巴拉克奥巴马)”被标识为人域中的〈entity (实体)>,而“wife(妻子)”是该人域中的属性。因此,使用现有计算引擎,可以看出,被解读为<people(人)>〈property(属性)> 的“Barack Obama (巴拉克奥巴马)” “wife (妻子)”的结果是“Michelle Obama(米歇尔奥巴马)”,而这又是人域中的另一〈entity (实体)>。因此,“Michelle Obama(米歇尔奥巴马)”作为搜索引擎的查询更改候选被添加。2. 3 杳询和杳询重制定的示例:例如,查询{Barack Obama’s wife’s brother (巴拉克奥巴马的妻子的兄弟)}具有潜在子查询{Barack Obama’s wife (巴拉克奥巴马的妻子)}。对此子查询的高置信度的部分答案是{Michelle Obama(米歇尔奥巴马)}。当随后使用此部分答案来重制定该原始查询时,经重制定的查询变成{Michelle Obama’s brother (米歇尔奥巴马的兄弟)}。当随后将此查询提交给搜索引擎时,它在排名最高的查询结果中返回期望的搜索目标“CraigMalcolm Robinson” 的多个实例。相反,{Barack Obama,s wife’ s brother}的初始查询明显较不可能返回期望的搜索目标的许多高排名实例。如同此处更加详细地讨论的,用于选择子查询和检索那些子查询的部分答案的语法学和统计学过程涉及确定一个或多个结构化数据集中的哪个最可能返回该子查询的适当的部分答案。本过程进一步涉及将“实体”(地点、人、事等)标识为初始查询内的子查询的主题或目标。然后这些实体被用于标识适当的结构化数据集,以从所述结构化数据集检索部分答案以在重制定初始查询时使用。例如,初始查询{france capital population(法国首都人口)}被评估为包括“country (国家)”实体“France(法国)”,其首都(S卩,子查询{France capital (法国首都)}的部分答案)是“Paris (巴黎)”,“Paris (巴黎)”本身是“city (城市)”实体。然后此部分答案被用于将初始查询重制定为{paris population (巴黎人口)}。与响应于初始查询会返回的结果相比,搜索引擎远更可能返回此经重制定的查询的更相关结果。此过程的有趣变型是其中特定子查询具有若干同样可能的并且同样正确的部分答案。例如,考虑如下情况其中初始查询是{Europe capital population(欧洲首都人口)}。在此情况下,欧洲包括很多个国家(例如,法国、德国、西班牙、意大利等)。因此,在各实施例中,该迭代查询重制定器将首先标识{Europe capital (欧洲首都)}子查询的一组可能的部分答案(即,巴黎、柏林、马德里、罗马等),然后返回一组经重制定的查询以供用户在(例如{Paris population(巴黎人口)}, {Berlin population(柏林人口)},{Madrid population(马德里人口)}, {Rome population(罗马人口)}等)之间选择。可另选地,在一相关实施例中,通过使用查询引擎来返回每个欧洲国家的首都城市的人口,可以为用户单个地回答这些分开的子查询中的每一个。
此外,如上所述,该迭代查询重制定器提供用于使用计算引擎来通过一个或多个迭代重制定初始查询的各种技术。上述示例一般仅需要一个重制定迭代。然而,更复杂的初始查询,诸如,例如,{Barack Obama,s wife’ s brother’ s children(巴拉克奥巴马的妻子的兄弟的孩子)}具有第一子查询{Barack Obama’s wife (巴拉克奥巴马的妻子)}。此子查询的高置信度的答案是{Michelle Obama(米歇尔奥巴马)}。当随后使用此部分答案来重制定该原始查询时,经重制定的查询变成{Michelle Obama’s brother’children (米歇尔奥巴马的兄弟的孩子)}。此经重制定的查询具有第二子查询{Michelle Obama’sbrother(米歇尔奥巴马的兄弟)}。此子查询的高置信度的部分答案是{Craig MalcolmRobinson}。当随后使用此部分答案来重制定先前重制定的查询时,新重制定的查询变成{Craig Malcolm Robinson’ children (Craig Malcolm Robinson 的孩子)}。当随后将此查询作为当前查询提交给搜索引擎时,该搜索引擎返回包括“Craig Malcolm Robinson”具有儿子“Avery”和女儿“Leslie”的期望答案的高置信度的结果。相反,{Barack Obama’ swife’s brother’s children(巴拉克奥巴马的妻子的兄弟的孩子)}的初始查询明显较不可能返回这些同样的结果。然而,注意,在各实施例中,经重制定的查询在每个迭代之后被评估以基于历史用户度量(诸如,例如点进率)确定经重制定的查询是否返回令人满意的结果以确定经重制定的查询是否有可能提供高满意度的结果,而不是自动执行多个迭代以将初始查询简化或重制定到最大的可能程度。如果不是,则在可能的情况下通过另一个迭代重制定该查询。因此,这些实施例的一个优点在于一次一块地重制定查询,直到它们达到其中它们向用户提供基于数千或数百万先前用户的历史搜索日志预期为高度令人满意的结果的点。2. 4 使用经重制定的杳询的结果旱现:一般而言,该迭代查询重制定器的大多数实施例的操作对用户是透明的,以使得在将查询结果呈现给用户之前用户不会意识到他们的查询已经被重制定了。在这个意义上,利用该迭代查询重制定器的任何搜索引擎或推荐系统之类将简单地重制定用户查询并将与经重制定的查询相对应的查询结果呈现给用户。然而,如上所述,在各实施例中,将各个可选项呈现给用户以批准或选择一个或多个经重制定的查询或子查询。3.0迭代杳询重制定器的操作概述:以上参考图I描述以及进一步鉴于以上在第I节和第2节中提供的详细描述的各过程通过图2的概括操作流程图来示出。具体而言,图2提供了概述上面讨论的迭代查询重制定器的各实施例中的某些的操作的示例性操作流程图。注意,图2不旨在成为此处描述的迭代查询重制定器的各实施例的所有的穷尽表示,并且仅出于解释目的而提供图2中表不的各实施例。此外,应当注意,图2中的断开的线或虚线可表示的任何框和框之间的互连表示此处所述的迭代查询重制定器的可任选的或可另选的实施例,并且如下所述的这些可任选或可另选的实施例中的任何或全部可以结合贯穿本文所描述的其它可另选实施例来使用。一般而言,如图2所示,该迭代查询重制定器通过经由搜索引擎或推荐系统的用户界面(UI)从用户接收200初始查询而开始操作。使用传统技术接收此用户输入,所述传 统技术包括但不限于文本输入、语音输入、或使用定点设备输入等。一旦已接收了初始查询(现在被称为“当前查询”),查询引擎或推荐系统检索210与该当前查询相对应的一组经排序的结果,并且评估那些结果来确定或估计经排序的结果的用户满意度水平。更具体而言,如同上面讨论的,鉴于一个或多个历史搜索日志115来评估经排序的查询结果,所述历史搜索日志包括用户度量,诸如与当前查询的特定结果相对应的CTR。因此,此评估能够基于极大数量的用户的先前行为(使用那些用户的历史搜索日志115)来确定或估计经排序的结果中的每一个的用户满意度水平。一般而言,具有高CTR的查询结果将对应于更高的满意度水平,而具有低CTR的结果对应于更低的满意度水平。然而,应当意识到,存在可从历史搜索日志115中挖掘的各种度量,以用于确定或估计响应于当前查询而返回的任何特定组经排序的结果的用户满意度水平,而CTR仅仅是为解释的目的而讨论的一种这样的度量。如果此满意度水平评估指示令人满意的结果220,则该迭代查询重制定器简单地向用户返回230当前查询的经排序的结果。然而,在对与当前查询相关联的经排序的结果的评估不指示令人满意的结果220的情况下,该迭代查询重制定器改为将当前查询提供240给计算引擎以进行进一步处理。具体而言,当对当前查询的经排序的结果的评估不指示令人满意的结果220时,该计算引擎首先解析250当前查询以标识一个或多个子查询。然后该计算引擎评估260子查询以选择最可能包含适当的部分答案的一个或多个知识源(150、155和/或160)。然后从所选择的知识源(150、155和/或160)检索这些部分答案。然后所检索的部分答案被用于通过使用所检索的部分答案来取代相对应的查询子串来重制定270当前查询。然后经重制定的查询(现在是当前查询)被发送回搜索引擎或推荐系统以向用户返回230经高速缓存的经重制定的查询的经排序的结果,从而呈现经重制定的查询的令人满意的结果220。如果那些结果不令人满意,则使用另一个解析和重制定的迭代来进一步细化当前查询,直到相对应的查询结果令人满意的时刻,或直到进一步的重制定不可能。如上所述,在各实施例中,使用包含与先前重制定的查询相关联的令人满意的查询结果的可任选的重制定高速缓存170。在本示例中,在查询解析之前检查重制定高速缓存170以查看当前查询是否已在先前被重制定而产生令人满意的查询结果。如果如此,则简单地将所高速缓存的经重制定的查询直接传送回搜索引擎或推荐系统,然后搜索引擎或推荐系统检索查询结果,查询结果被返回230给用户。还要注意,在有关实施例中,此查询结果连同经重制定的查询一起被存储在重制定高速缓存170中。在本情况下,只要查询高速缓存包含具有对已令人满意地重制定的查询的匹配,就简单地将所高速缓存的查询结果直接呈现给用户。4. 0 示例件操作环塏:此处描述的迭代查询重制定器可在多种通用或专用计算系统环境或配置内操作。图3示出其上可实现此处所述的迭代查询重制定器的各实施例和元素的通用计算机系统的简化示例。应当注意,图3中由断开的线或虚线所表示的任何框表示简化计算设备的可另选实施例,并且以下描述的这些可另选实施例中的任一个或全部可以结合贯穿本文所描述的其他可另选实施例来使用。例如,图3示出了概括系统图,其示出简化计算设备300。这样的计算设备通常可以在具有至少一些最小计算能力的设备中找到,这些设备包括但不限于个人计算机、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和PDA等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、视频媒体播放器等。为允许设备实现迭代查询重制定器,该设备应当具有足够的计算能力和系统存储器以启用基本计算操作。具体而言,如图3所示,计算能力一般由一个或多个处理单元310示出,并且还可包括一个或多个GPU 315,这两者中的任一个或全部与系统存储器320通信。注意,通用计算设备的处理单元310可以是专用微处理器,如DSP、VLIW、或其他微控制器、或可以是具有一个或多个处理核的常规CPU,包括多核CPU中的基于GPU专用核。 另外,图3的简化计算设备还可包括其他组件,诸如例如通信接口 330。图3的简化计算设备还可包括一个或多个常规计算机输入设备340 (例如,定点设备、键盘、音频输入设备、视频输入设备、触觉输入设备、用于接收有线或无线数据传输的设备等)。图3的简化计算设备还可包括其他光学组件,诸如例如一个或多个常规计算机输出设备350 (例如,显示设备355、音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,通用计算机的典型的通信接口 330、输入设备340、输出设备350、以及存储设备360对本领域技术人员而言是公知的,并且在此不会详细描述。图3的简化计算设备还可包括各种计算机可读介质。计算机可读介质可以是可由简化计算设备300经由存储设备360访问的任何可用介质,并且包括是可移动370和/或不可移动380的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据等信息。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括但不限于计算机或机器可读介质或存储设备,诸如DVD、CD、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、RAM、ROM、EEPR0M、闪存或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并且可由一个或多个计算设备访问的任何其他设备。诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的存储还可通过使用各种上述通信介质中的任一种来编码一个或多个已调制数据信号或载波或其他传输机制或通信协议来实现,并且包括任何有线或无线信息传递机制。注意,术语“已调制数据信号”或“载波”一般指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。例如,通信介质包括诸如有线网络或直接线连接等携带一个或多个已调制数据信号的有线介质,以及诸如声学、RF、红外线、激光和其他无线介质等用于传送和/或接收一个或多个已调制数据信号或载波的无线介质。上述通信介质的任一组合也应包括在通信介质的范围之内。此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从计算机或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化此处所述的迭代查询重制定器的各实施例中的部分或全部的软件、程序和/或计算机程序产品或其各部分。最终,此处所述的迭代查询重制定器还可在由计算设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文描述的各实施例还可以在其中任 务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括媒体存储设备在内的本地和远程计算机存储介质中。此外,上述指令可以部分地或整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。以上对迭代查询重制定器的描述是出于说明和描述的目的而提出的。这并不旨在穷举所要求保护的主题或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。此外,应当注意,可以按所需的任何组合使用上述可另选实施例的任一个或全部以形成迭代查询重制定器的另外的混合实施例。本发明的范围并不旨在由该“具体实施方式
”来限定,而是由所附权利要求书来限定。
权利要求
1.ー种用于响应于用户查询而提供查询结果的方法,包括使用计算设备来执行以下步骤 接收(200)具有多个搜索项的当前用户查询; 评估(250)所述当前用户查询以标识ー个或多个子查询,每个子查询包括所述当前用户查询的所述搜索项中的ー个或多个; 评估(260)每个子查询以从多个结构化数据集(150、155、160)中选择从中检索与每个子查询相对应的部分答案的一个或多个结构化数据集; 对于从所选择的结构化数据集中检索的每个部分答案,通过用所述相对应的部分答案来取代所述当前用户查询的相对应的子查询来重制定(270)所述当前用户查询以构造经重制定的查询; 检索(210)与经重制定的查询相对应的一组经排序的捜索結果;以及 将所述组经排序的搜索结果呈现(230)在显示设备上。
2.如权利要求I所述的方法,其特征在于,还包括以下步骤在将所述组经排序的捜索结果呈现在显示设备上之前,评估与经重制定的查询相对应的所述经排序的捜索结果以相对预定阈值从ー个或多个历史用户度量确定用户满意度水平,并且如果所述用户满意度水平低于所述阈值,则执行以下步骤 评估所述经重制定的查询以标识ー个或多个子查询,每个子查询包括所述经重制定的查询的所述搜索项中的ー个或多个; 评估每个子查询以从多个结构化数据集中选择从中检索与每个子查询相对应的部分答案的一个或多个结构化数据集; 对于从所选择的结构化数据集中检索的每个部分答案,通过用所述相对应的部分答案来取代先前重制定的查询的相对应的子查询来重制定所述先前重制定的查询以构造新的经重制定的查询; 检索与所述新的经重制定的查询相对应的一组经排序的捜索結果。
3.如权利要求2所述的方法,其特征在于,评估与当前查询相对应的经排序的搜索结果以确定所述用户满意度水平还包括评估来自具有与所述经排序的结果相对应的项的历史搜索日志的用户点进率(CTR)以确定所述用户满意度水平。
4.如权利要求I所述的方法,其特征在于,还包括以下步骤提供包括从多个用户的先前用户查询构造的多个经重制定的查询的历史“重制定高速缓存”。
5.如权利要求I所述的方法,其特征在于,还包括以下步骤在评估所述用户查询以标识ー个或多个子查询之前,检查所述重制定高速缓存以确定所述当前用户查询是否已在先前被重制定过,并且如果被重制定过,则使用来自所述重制定高速缓存的相对应的经重制定的查询来检索并呈现所述组经排序的捜索结果而不标识子查询和检索子查询的部分答案。
6.如权利要求I所述的方法,其特征在于,还包括以下步骤在评估所述当前用户查询以标识ー个或多个子查询时,接收用户反馈以从两个或更多个可能的子查询中选择。
7.一种用于改进搜索结果的相关性的系统,包括 用于从用户接收当前查询的用户输入设备(100); 用于评估(110) —组历史捜索日志(115)中的一个或多个用户度量以确定与所述当前查询相对应的ー组查询结果(125)的用户满意度水平的用户满意度測量设备; 用于迭代地重制定所述当前查询以构造新的当前查询的计算引擎设备(130),所述迭代重复,直到所述用户满意度水平超过预定阈值,且其中迭代地重制定所述当前查询包括 评估所述当前查询以标识(135) —个或多个子查询,每个子查询包括所述当前查询的所述搜索项中的ー个或多个, 评估每个子查询以从多个结构化数据集中选择(140)从中检索与每个子查询相对应的部分答案的一个或多个结构化数据集(150、155、160), 对于从所选择的结构化数据集中检索的每个部分答案,通过用所述相对应的部分答案来取代相对应的子查询来重制定(165)所述当前查询以构造新的当前查询,以及检索(105)与所述新的当前查询相对应的一组经排序的捜索结果;以及当所述用户满意度水平超过(120)所述预定阈值时,将所述组经排序的查询结果呈现(125)在显示设备上。
8.如权利要求7所述的系统,其特征在干,确定所述用户满意度水平还包括评估来自所述历史捜索日志的用户点进率(CTR)以找到与所述经排序的捜索结果相对应的项以确定所述用户满意度水平。
9.如权利要求7所述的系统,其特征在于,还包括历史“重制定高速缓存”,所述重制定高速缓存包括从多个用户的先前查询构造的多个经重制定的查询,并且在迭代地重制定所述当前查询以构造所述新的当前查询之前 检查所述重制定高速缓存以确定所述当前查询是否已在先前被重制定过;以及如果所述当前查询已在先前被重制定过,则使用来自所述重制定高速缓存的相对应的经重制定的查询来检索并呈现所述经排序的捜索结果而不执行所述迭代重制定。
10.ー种其中存储有用于改进响应于用户查询的捜索结果的相关性的计算机可执行指令的计算机可读存储设备,所述指令包括 从用户接收(200)当前查询; 评估(210) —组历史捜索日志(115)以确定响应于所述当前查询而返回的ー组查询结果的用户满意度水平; 迭代地重制定(270)所述当前查询以构造新的当前查询,所述迭代重复,直到所述用户满意度水平超过(220)预定阈值,且其中迭代地重制定所述当前查询包括用于如下动作的指令 评估(250)所述当前查询以标识ー个或多个子查询,每个子查询包括所述当前查询的所述搜索项中的ー个或多个; 评估(260)每个子查询以从多个结构化数据集中选择从中检索与每个子查询相对应的部分答案的一个或多个结构化数据集(150、155、160), 对于从所选择的结构化数据集中检索的每个部分答案,通过用所述相对应的部分答案来取代相对应的子查询来重制定(270)所述当前查询以构造新的当前查询,以及检索(210)与所述新的当前查询相对应的一组经排序的捜索结果;以及当所述用户满意度水平超过(220)所述预定阈值时,将所述组经排序的查询结果呈现(230)在显示设备上。
全文摘要
本发明涉及使用计算引擎来改进搜索相关性。一种“迭代查询重制定器”提供用于使用计算引擎来通过一个或多个迭代重制定初始查询的各种技术。此查询重制定过程确保从使用经重制定的查询的搜索引擎或推荐系统返回的结果相对于仅使用该初始查询所返回的结果具有改进的相关性。更具体而言,该迭代查询重制定器提供端到端方案,所述端到端方案使用来自一个或多个知识数据库或知识源的计算来寻找从初始查询导出或提取的子查询的“部分答案”。然后使用这些部分答案来重制定该初始查询,其中经重制定的查询被搜索引擎或推荐系统用来提供与初始查询高度相关的结果。对是否继续重制定迭代的判断是基于评估来自具有匹配经重定制的查询的查询的历史搜索日志的用户度量的。
文档编号G06F17/30GK102708129SQ201210054950
公开日2012年10月3日 申请日期2012年3月5日 优先权日2011年3月4日
发明者J·T·埃佩西布尔, K·R·纳雷迪, M·J·恩卡纳西翁 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1