基于机器学习的搜索改进的制作方法

文档序号:13618034阅读:236来源:国知局
基于机器学习的搜索改进的制作方法

相关申请

本美国专利申请根据35u.s.c.§119(e)要求以下美国专利申请的优先权,以下美国专利申请在与本公开相符的程度上通过引用并入本文中:

(1)提交于2014年5月30日的标题为“multi-domainsearchonacomputingdevice”的专利申请62/005,985(代理人案卷号4860p23595z);

本美国专利申请涉及以下专利申请,以下专利申请中每一者在与本公开相符的程度上通过引用并入本文:

(1)提交于2014年5月30日的标题为“multi-domainquerycompletion”的专利申请62/005,996(代理人案卷号4860p22924z);

(2)提交于2014年9月30日的标题为“multi-domainquerycompletion”的专利申请62/005,996(代理人案卷号2486p22924);

(3)提交于2014年5月30日的标题为“useofuserfeedbackinacitationsearchindex”的专利申请62/006,000(代理人案卷号4860p23537z);

(4)提交于2014年9月30日的标题为“useofuserfeedbackinacitationsearchindex”的专利申请62/006,000(代理人案卷号4860p23537);

(5)提交于2014年5月30日的标题为“federatedsearch”的专利申请62/006,001(代理人案卷号4860p23848z);

(6)提交于2014年9月30日的标题为“federatedsearch”的专利申请62/006,001(代理人案卷号4860p23848);

(7)提交于2014年8月29日的标题为“reducedresolutionlocationdeterminationforimprovedanonymityofuserlocation”的专利申请62/044,176(代理人案卷号4860p24081z);

(8)提交于2014年9月30日的标题为“reducedresolutionlocationdeterminationforimprovedanonymityofuserlocation”的专利申请14/502,869(代理人案卷号4860p24081);和

(9)提交于2014年9月30日的标题为“multi-domainsearchonacomputingdevice”的专利申请14/502,881(代理人案卷号4860p23595)。

本公开涉及改善响应于搜索查询而返回给用户的搜索结果的相关性的领域。



背景技术:

将查询输入到搜索引擎中的计算系统用户希望接收与用户相关的搜索结果。搜索引擎所返回的结果是否与输入查询的特定用户相关是输入查询的特定用户的主观看法。因此,搜索引擎能够采集越多关于特定用户的信息,就越有可能搜索引擎将返回与特定用户相关的结果。然而,采集关于特定用户的信息引起隐私顾虑。



技术实现要素:

描述了用于通过利用客户端设备上的本地学习结合远程搜索引擎的学习来改善从本地私人信息数据库返回给用户的搜索结果和/或远程搜索引擎从一个或多个搜索域返回的结果的实施方案。本地私人数据在确定与这个特定用户相关的搜索结果的类型中非常有用。远程搜索引擎收集和存储包括许多用户的查询和与查询结果的交互的大量“众包”数据。众包数据生成旨在与大多数用户相关、但对于特定用户可能不是最相关的结果。本文公开的系统和方法能通过以基于众包数据的远程搜索引擎的学习增强客户端设备上的本地学习、并类似地以特定用户的偏好的本地学习增强远程搜索引擎学习来改善响应于查询而返回给用户的本地和远程搜索结果二者的相关性。

在一个实施方案中,可通过使用传感器数据(例如客户端设备上的本地传感器,诸如gps或wifi接收器或环境光传感器或加速度计等等)分选或过滤搜索结果来改善本地搜索结果或远程搜索结果或这二个搜索结果的相关性。此外,在一个实施方案中,可利用客户端设备状态数据(例如哪些应用程序正在使用或者在最前面、日历事件数据、通讯录中的联系人等等)分选或过滤一个或两个搜索结果来改善这一个或两个此类搜索结果的相关性。此外,在一个实施方案中,客户端侧机器学习和服务器侧(远程)机器学习二者可利用这个两部分模型结合传感器数据(例如从所接收wifi信号推导的位置)和客户端设备状态数据二者来改善,在所述两部分模型的两个部分处进行的这个经改善的机器学习可用于基于传感器数据和客户端设备状态数据改善结果的情境相关性。

在一个实施方案中,客户端设备包括初始的一组能从用户的查询以及用户与本地和远程搜索查询结果二者的交互进行学习的一个或多个预测器。在一个实施方案中,所述初始的一组一个或多个预测器可被修改以为所述一个或多个预测器中的预测器添加特征、减少特征、或替换特征。搜索引擎还可指示客户端设备为所述初始的一组预测器添加预测器以及指示客户端设备对预测器进行学习。搜索引擎还可指示客户端用搜索引擎发送给客户端设备的另一预测器替换本地预测器。搜索引擎还可指示客户端设备修改现有预测器以为预测器训练新特征。在一个实施方案中,搜索引擎可指示客户端向搜索引擎报告回所添加、所替换、或所修改的预测器是否生成用户与之交互的搜索结果。如果对于具有多个特征的预测器,可用的数据太少,则机器学习算法可将预测器过拟合到可用数据,从而生成预测器对数据的“有噪声”(精确度较低)拟合。在一个实施方案中,客户端设备可能检测到对于特定预测器,在客户端设备上存在的数据不足够,诸如在客户端设备对于用户是新设备的时候。在此类情况下,客户端设备可减少预测器中特征的数量,使得预测器不会尝试将可用数据过拟合到预测器。本地预测器中特征的数量可被减少,诸如通过特征缩减来减少,或者本地预测器可由从远程搜索引擎接收的预测器替换,从远程搜索引擎接收的预测器与其所替换的本地预测器相比具有更少或不同的特征。

客户端设备可生成大量对于用户而言私人的信息。在一个实施方案中,私人信息可被用于生成可用于确定客户端设备的用户的偏好的一个或多个本地预测器。私人信息也可用于为现有本地预测器添加一个或多个特征。在一个实施方案中,客户端设备的用户的私人信息中的至少一些可被匿名化并与远程搜索引擎共享。例如,客户端设备可生成学习到这个特定用户在冬天周末晚上在家时常常从搜索结果中选择电影的预测器。特定用户具体选择什么电影观看以及特定用户的家庭地址是私人信息,不会被发送给远程搜索引擎。然而,(通过一个或多个位置传感器确定)用户现在在家以及用户喜欢特定类型的电影诸如爱情喜剧这样的事实可被充分地匿名化,使得类型和“在家”状态可被发送给远程搜索引擎以改善搜索结果。例如,客户端设备可检测来自用户家中用户的wifi基站的rf信号,并且那些信号的检测可用于确定用户在家,但用户的家庭地址不被提供给远程搜索引擎。经匿名化的私人信息保护了客户端设备的用户的隐私,同时改善了响应于对远程搜索引擎的查询而返回给用户的搜索结果的用户相关性。

在另一个实施方案中,搜索引擎可基于从许多用户与搜索引擎交互生成的众包数据学习到的差异来生成预测器。搜索引擎也可基于从为搜索引擎提供结果的另一搜索域学习到的差异来生成预测器。例如,如果wikipedia为wikipedia域所存储和索引的文章添加星级评级系统,则从wikipedia域接收搜索结果的搜索引擎可生成预测器来针对搜索域的用户是否与具有更高星级评级的文章交互来进行训练。在一个实施方案中,可用wikipedia搜索域的星级评级为从搜索引擎返回给客户端设备的结果加标签。在一个实施方案中,搜索引擎工程师可生成预测器供搜索引擎使用,和/或用于指示客户端对其进行训练。搜索引擎工程师也可修改现有搜索引擎预测器。在一个实施方案中,搜索引擎工程师可生成第一预测器和第二预测器。搜索引擎于是可指示第一多个客户端设备对第一预测器进行训练,以及指示第二多个客户端设备对第二预测器进行训练。搜索引擎还可指示第一和第二多个客户端设备将其对第一和第二预测器的相应学习进度报告回搜索引擎。特别地,搜索引擎可评估更多的用户认为是第一预测器还是第二预测器生成的搜索结果是相关的,这是因为更多的用户与来自该预测器的结果交互。

在另一个实施方案中,客户端设备的用户可正处于与远程搜索引擎的会话中。远程搜索引擎可对于该会话为用户生成独特id。在会话活动期间,客户端设备可生成并在客户端设备上存储表征在会话活动期间用户与搜索引擎之间的交互的会话上下文(或用户“意图”)。会话可在预定时间段诸如15分钟之后自动到期。另选地,用户可选择终止或临时暂停会话。当会话到期或被终止或暂停时,会话的会话id不再有效。在客户端设备与远程搜索引擎之间前一会话到期、暂停或终止之后,搜索引擎可自动地为客户端设备与搜索引擎之间的新会话生成新会话id。搜索引擎可响应于客户端设备发送查询或以其它方式发起与搜索引擎的会话而自动地生成新会话id。客户端设备可接收新会话id,并且响应于接收到新会话id,客户端设备可将现在到期的前一会话的会话上下文与新会话id一起传输给搜索引擎,使得搜索引擎可将会话上下文与新会话id关联。例如,用户可能已经搜索sunnyvale,california在murphy’sstation附近在12:00pm和2:00pm之间营业的价格评级为“$$”且服务评级4星或以上的咖啡馆。当新会话被发起并且搜索引擎接收到前一会话的上下文时,后续搜索的搜索上下文将是“sunnyvale,california在murphy’sstation附近在12:00pm和2:00pm之间营业的价格评级为“$$”且服务评级4星或以上的咖啡馆”。在一个实施方案中,在将会话上下文发送给搜索引擎之前,会话上下文中的信息被匿名化。

在另一个实施方案中,用户可具有彼此相关联的多个客户端设备。通过以用户的帐户对用户的每个客户端设备进行登记,用户的帐户可提供设备之间的关联。在一个实施方案中,每个客户端设备可将该客户端设备上的本地预测器与用户的其他客户端设备上的本地预测器同步。客户端设备上预测器的同步可由同步服务来促进。此外,在一个实施方案中,一个或多个先前搜索会话的上下文可在多个客户端设备上同步。例如,用户可能已经利用其家庭计算机搜索hayward,california的汽车配件商店。在搜索上下文同步之后,用户可在其移动电话上恢复对汽车配件商店的搜索。

在以下描述中,术语“本地结果”(或本地查询结果)是指响应于查询而从客户端设备上的本地数据库返回的结果。“本地数据库”是指通常被认为对于客户端设备的用户而言私人的信息的数据库。本地数据库可物理地驻留在特定用户使用的、拥有的或登记到特定用户的客户端设备上。本地数据库也可驻留在客户端设备的用户经由客户端设备的用户拥有的或登记到客户端设备的用户的帐户能访问的网络或云存储上。对于用户而言“私人”的信息是公众的理性成员会认为是个人的且不会想要例如与远程搜索引擎共享的信息。一些私人信息的经匿名化版本可与远程搜索引擎共享。例如,用户的详细家庭地址可以是私人的,将不被发送给远程搜索引擎。但是,用户当前并没有正从家中发出查询这一事实可足够匿名而可被发送给搜索引擎。

术语“搜索引擎结果”(或远程查询结果)是指从公众在登陆或不登陆或在有或没有对于使用搜索引擎的鉴权的情况下一般能访问的搜索引擎返回的结果。搜索引擎可包括例如搜索、或多个此类搜索引擎。搜索引擎结果可包括由搜索域诸如wikipedia、地图域、媒体域、等返回给搜索引擎的结果。虽然客户端设备可发送某些信息给搜索引擎,但是信息通常以经匿名化形式来发送,使得发送给搜索引擎的信息不标识具体个人。另外,私人信息一般不被发送给搜索引擎,除非信息被充分地匿名化而可保护客户端设备的用户的隐私。

无限制的术语“结果”(或搜索结果)将谨慎使用,是指本地搜索结果或搜索引擎结果或以上二者。无限制的术语“结果”(或搜索结果)应在使用其的上下文中理解,而不是孤立地理解。

术语“众包数据”是指由于多个用户向远程搜索引擎发出查询而生成的数据以及从客户端接收的指示用户与对于用户查询的搜索引擎结果的交互的反馈。众包数据包括发给远程搜索引擎的查询,并且包括与搜索引擎结果的交互数据(反馈数据),包括与特定结果接洽、停留时间、点击通过、页面呈现、和结果放弃。

术语“预测器”是指将查询和一个或多个特征与关于与从查询返回的结果的交互的用户反馈相关的机器学习模型。对于每个结果类别可以有预测器,例如本地电子邮件结果、本地文本结果、本地联系人结果、来自的远程结果、来自的远程结果、媒体远程结果、地图远程结果等等。

预测器或机器学习模型可在具有值的数据结构中表示。数据结果可从客户端设备传递给搜索引擎,或者由客户端设备从搜索引擎接收。一个示例如下:

在客户端设备上,用户反馈一般将是客户端设备的单个用户。在搜索引擎上,用户反馈将一般为众包数据。用户反馈是指用户如何与来自查询结果的一个或多个结果交互。用户反馈包括结果是否被呈现给用户、用户是否与结果接洽(诸如通过点击结果)、用户是否在结果上“悬停”(也被称为“停留时间”)(诸如通过将鼠标图标保持在结果上方,就好像考虑是否与结果接洽)、用户是否放弃结果、或者用户是否未与结果交互。这些用户反馈元素中每一者可实时地相对于参考点(诸如查询结果被展示给用户时)来测量。通过实时地测量用户反馈,还可确定与每个查询结果交互(如果有的话)的顺序。

预测器的“特征”(在机器学习中也被称为传感器)是指将用于训练预测器来预测用户将可能与之交互的结果的对预测器的输入。特征可以是物理传感器,诸如光传感器、运动检测器、振动检测器、水平/竖直开关或取向传感器、声检测器(例如麦克风)、网络连接诸如wifi或蜂窝网络的信号强度、或位置传感器诸如用于提供gps坐标的蜂窝塔或gps接收器的三角测量的rf接收器。特征可从物理传感器的组合(诸如gps接收器和加速度计)获取,取向传感器可结合检测用户正在步行、跑步、开车还是静止。特征也可从客户端设备可用的信息源获取,诸如当前日期、时间、时区、天气或温度。特征还可以是客户端设备的状态或状态组合,诸如哪些应用程序打开、应用程序已打开多久、用户是否已经发出了与打开的应用程序有关的查询(诸如在打开时,关于音乐的用户查询)、用户日历中的日历事件、或者用户是否正在打电话、写文本或回复电子邮件。特征也可从结果中的标签获取。例如,可用具有特定数量“$”标记的价格评级对餐馆结果加标签,或者用以特定数量的星进行测量的服务质量评级对结果加标签。“$”标签可为整数值形式,而不是文本标签。例如,可返回加标签有字段:integer:yelp_dollars=3的结果。可用分级(诸如g、pg-13或r)、价格、电影时长、或电影类型对结果加标签。这些标签可用作预测器的特征。例如,bob常常在周末晚上选择时长短于2小时的定价低于$9.99的pg-13动作电影。特征也可为键路径的形式。例如,结果可具有标签:键路径:genre="movie.horror.japanese",其中键路径的每个字段可为结果的子类型。特征还可在布尔字段中标识,诸如“boolean:top-hit=真”。特征另选地可被表述为实数,例如“real:average_stars=3.5”。在一个实施方案中,预测器将这些可能特征中的每一者作为对预测器的单独特征(输入)来对待。在一些实施方案中,客户端设备可保持多个预测器可将其作为单个特征来使用的特征组合的聚合当前状态。例如,用户的位置、今天星期几、目前几点、和设备上打开的应用程序的列表是在预测器中可能常常一起出现的特征。客户端设备可将这些特征保持在当前状态中,作为对使用这些特征的任何预测器的聚合特征(输入)。特征还可以是通过分析结果数据而学习的差异。例如,“football”是指美式橄榄球还是英式足球是预测器可对其进行训练以确定这个特定用户是与英式足球结果还是美式橄榄球结果交互的特征。远程搜索引擎150可请求客户端设备100在搜索会话开始时计算一个或多个特征。

特征可在本地结果上或在远程搜索结果上学习。当生成预测器来对新特征进行学习时,可基于特征是在本地结果还是远程搜索结果上学习的而被加标签以“本地”或“远程”。“学习新特征”是指生成新预测器或者扩展或修改现有预测器以对该新特征进行训练。例如,现有预测器可以已经对于在工作日在客户端设备当前位置附近午餐时间的餐馆选择进行了训练。新特征可以是,从返回的结果现在在餐馆结果中包括指示菜单项目的价格范围的标签。现有预测器可被扩展以对具有特征“午餐时间”、“工作日”、和“客户端设备的用户附近”的预测器中作为新特征的价格范围标签进行训练。

特征元数据可在从搜索引擎传递给客户端设备或从客户端设备传递给搜索引擎的数据结构中表示。特征可使用在字段中具有值的这个格式。例如,特征集可表示如下:

“搜索会话”是客户端设备100与搜索引擎150之间交互的时间有限的会话。搜索引擎150通过用户在搜索会话期间进行的查询和选择(用户交互数据)收集关于客户端设备100的用户的大量信息。即使搜索引擎150不应具体地知道特定用户的准确身份,但是用户交互数据的无限积聚可高度特定地标识用户。为了在与搜索引擎交互时保护隐私,搜索引擎150将数据收集限制到时间有限的会话。会话具有独特会话标识符(会话id)。计时器可被设置用于例如15分钟。在会话计时器到期时,为用户发布新会话id。虽然搜索引擎150可保持和分析15分钟的信息块,但是搜索引擎150不应将新会话id与旧会话id关联,否则仍然会积聚用户交互数据并且会话限制会没有隐私保护效果。

在一个实施方案中,客户端设备上的预测器可利用以下之一的统计分析法来学习特征:线性回归、贝叶斯分类、或朴素贝叶斯分类。“机器学习”可包括有监督学习、非监督学习、和强化学习。

本文所述的一些实施方案包括环境中的一个或多个应用编程接口(apl),其中进行调用的程序代码通过所述一个或多个接口与被调用的其他程序代码交互。本发明的各种函数调用、消息或其他类型的调用(还可包括各种类型的参数)可经由apl在调用程序和被调用代码之间传送。此外,api可为调用程序代码提供使用api中限定和在被调用程序代码中实现的数据类型或类的能力。

至少某些实施方案包括进行调用的软件部件通过api与被调用软件部件交互的环境。该环境中通过api进行操作的一种方法包括经由api传送一个或多个函数调用、消息、其他类型的调用或参数。

通过附图以及通过具体实施方式,其他特征和优点将显而易见。

附图说明

在附图的图示中通过举例而非限制的方式示出了本发明的实施方案,在附图中类似的附图标记指示类似的元件。

图1以框图形式示出了现有技术中已知的计算设备上的本地搜索子系统和远程搜索子系统。

图2以框图形式示出了可用于改善从计算设备上的远程搜索应用程序返回的结果的具有本地学习能力的本地搜索子系统。

图3以框图形式示出了可聚合响应于来自客户端设备的查询而从多个域返回的搜索结果的搜索引擎。

图4以框图形式示出了利用本地搜索查询、本地结果和基于本地结果的本地反馈来本地学习查询特征的方法。

图5以框图形式示出了客户端对特征进行学习的更详细方法。

图6以框图形式示出了本地学习远程搜索引擎响应于发送给远程搜索引擎的查询而传递给本地设备的查询特征的方法。

图7以框图形式示出了接收或确定新特征、对该特征进行本地训练、以及利用该特征的方法。

图8以框图形式示出了聚合来自多个搜索域的搜索结果以及对新特征进行检测和学习的方法。

图9以框图形式示出了执行不同的两组客户端上两组预测器的比较测试的方法。

图10以框图形式示出了在客户端设备和搜索引擎之间的多个会话上保持客户端设备和搜索引擎之间会话的意图或上下文的方法。

图11以框图形式示出了用于在用户的多个设备上同步预测器的系统。

图12示出了在本发明的一些实施方案中可使用的软件堆栈的示例性实施方案。

图13为计算系统的一个实施方案的框图。

具体实施方式

在以下对实施方案的详细描述中将引用附图,在附图中,类似的附图标记指示类似的元素,并且以举例方式示出了具体实施方案可被实施的方式。足够详细地描述了这些实施方案以使得本领域的技术人员能够实践本发明,并且应当理解,可使用其他实施方案,并且可在不脱离本公开的范围的情况下作出逻辑、机械、电气、功能以及其他改变。因此,下面的详细描述不应该被理解为限制性的意义,并且本发明的范围仅由所附权利要求书来限定。

描述了用于使用客户端设备上本地可用的信息和从远程搜索引擎获取的信息来学习为客户端设备的用户改善本地和远程搜索结果二者而不向远程搜索引擎公开关于用户的私人信息的实施方案。

图1示出了现有技术中已知的客户端计算设备100上本地搜索子系统130和远程搜索子系统135的框图。本地搜索子系统130可包括与可搜索信息的本地数据库111通信1的本地搜索接口110。

本地数据库111索引计算设备100上的本地信息,用于利用本地搜索接口110进行搜索。本地信息对于计算设备100而言是私人的,并且不与远程搜索子系统135共享。本地信息可包括关于客户端设备100上应用程序112和数据113的数据、元数据和其他信息。

本地数据库111、应用程序112和数据113不能被远程搜索子系统135访问。被输入到本地搜索接口110中的查询、从本地查询返回的本地结果、和用户与从本地查询返回的本地结果的交互不与远程搜索子系统135共享或者不能被远程子系统135访问。

本地搜索接口110可经由通信接口1与本地数据库111通信。本地数据库可经由通信接口3与应用程序112和数据113通信。

远程搜索子系统135可包括远程搜索接口120和远程查询服务121。远程查询服务121可经由网络服务122和网络140发送查询给远程搜索引擎150以及返回来自远程搜索引擎150的结果。不使远程结果可供本地搜索子系统130使用。

远程搜索接口120可经由接口2与远程查询服务121通信。远程查询服务121可经由接口4与网络服务122通信。

图2以框图形式示出了可用于改善从本地搜索和远程搜索引擎150的搜索二者返回的搜索结果而不暴露私人信息的具有本地学习系统116的本地搜索子系统130。在一个实施方案中,在经由远程查询服务121将私人信息发送给远程搜索引擎150之前,私人信息被匿名化和位置模糊服务117匿名化。在一个实施方案中,本地学习系统116可被重置,使得学习被刷新。

本地搜索子系统130可包括本地搜索接口110和关于计算设备100上应用程序112和数据113的数据和元数据的本地数据库111。本地数据库111可包括关于数据源的本地信息,诸如存储在客户端上的联系人数据库、存储在计算设备上的文档的标题或文档中的字词、计算设备上应用程序的标题和与应用程序相关联的数据和元数据、诸如电子邮件、即时消息、电子表格、展示、数据库、音乐文件、图片、电影、和计算设备本地的其他数据。在一个实施方案中,本地数据库111可包括关于存储在用户的云存储中的数据源的信息。应用程序112可包括计算器程序、词典、消息收发程序、电子邮件应用程序、日历、电话、相机、文字处理器、电子表格应用程序、展示应用程序、联系人管理应用程序、地图应用程序、音乐、视频或媒体播放器、本地和远程搜索应用程序、和其他软件应用程序。

查询可利用本地搜索接口110来生成,查询结果可从本地数据库111经由通信接口1返回并显示在本地搜索接口110中。本地搜索子系统130还可具有本地查询服务114、本地搜索和反馈历史115、和本地学习系统116。本地查询服务114可接收来自本地搜索接口110的查询。在一个实施方案中,本地搜索接口110也可经由通信接口7将查询传递给远程查询服务121,使得本地搜索接口110接收来自本地数据库111和远程搜索引擎150二者的搜索结果。本地查询服务114可移除冗余空格,移除高频率低相关性的查询词诸如“所述”和“一”,以及将查询封装到本地数据库111能使用的形式中。远程查询服务121可为远程搜索引擎150执行类似功能。在一个实施方案中,本地搜索接口110可经由通信接口7将查询传递给远程查询服务121,以从远程搜索引擎150获取查询结果。在一个实施方案中,远程查询服务121可经由通信接口8接收本地学习系统116所学习的查询特征。特征可被用于扩展查询和/或偏置查询特征给远程搜索引擎150。在一个实施方案中,远程查询服务121可经由通信接口8将从远程搜索引擎150返回的查询特征传递给本地学习系统116用于对该特征进行训练。

本地搜索和反馈历史115可存储利用本地查询接口110发出的所有搜索查询的历史,包括经由通信接口7发送给远程查询服务121的查询。本地搜索和反馈历史115也可存储与从查询返回的本地和远程结果二者相关联的用户反馈。反馈可包括关于用户是否例如通过点击通过结果来与结果接洽的指示、用户花了多少时间查看结果、结果是否是用户交互的第一个结果、或者其它序数值、结果是否是用户交互的唯一结果、以及用户是否没有与结果交互,即放弃结果。用户反馈可被编码并与生成了获取该反馈所针对的结果的查询相关联地存储。在一个实施方案中,本地搜索和反馈历史115可存储对查询所返回的结果中一者或多者的标引。存储在本地搜索和反馈历史115中的信息被认为是私人用户信息,并且不可供远程搜索子系统135使用或访问。在一个实施方案中,本地搜索和反馈历史115可被刷新。在一个实施方案中,本地搜索和反馈历史115可被老旧移除。老旧移除定时可被分析,使得稳定长期趋势被保持得比显示不稳定趋势的搜索和反馈历史更长。

本地学习系统116可分析本地搜索和反馈历史115以标识本地学习系统116可对其进行训练的特征。一旦特征被标识,本地学习系统116就可生成本地预测器用于对特征进行训练。在一个实施方案中,计算设备100可具有在用户开始第一次使用该设备之前被安装在计算设备100上的初始的一组一个或多个本地预测器。在另一个实施方案中,本地学习系统116可通过为预测器添加特征、利用特征缩减从预测器中删除特征来修改预测器,或者用从远程搜索引擎150接收的预测器替换预测器。

在一个实施方案中,预测器是在一个或多个数据片上操作的软件部件的实例。在一个实施方案中,本地预测器可利用统计分类法诸如回归、贝叶斯或朴素贝叶斯来训练。在一个实施方案中,预测器可特定于结果的具体类别。类别可包括:联系人、电子邮件、计算器结果、媒体结果、地图结果、结果、wiki结果、网站搜索结果等等。

匿名化和位置模糊服务117(“匿名化服务”)确保存储在本地服务器111、本地服务和反馈历史115和本地学习116中的用户的私人信息保持隐秘并且在没有首先将要发送给远程搜索引擎150的数据匿名化的情况下不被发送给远程搜索引擎150。例如,匿名化和位置模糊服务117可将“在家”替换成用户状态,而不是发送用户的家庭地址、附近蜂窝塔标识符、蜂窝网络ip地址、wifiip地址或其它可高度特定地标识用户位置的信息。类似地,匿名化服务117可将“爱情喜剧”替换成用户偏好的类型,来代替标识用户先前已经选择观看的具体电影的准确信息诸如“somethingaboutmary”。

匿名化服务117还可包括位置“模糊”服务。位置模糊服务确保用户的准确位置被保持隐秘。位置模糊服务可考虑用户当前位置的人口密度并充分地混淆(或“模糊”)用户位置以确保隐私。例如,用户当前可能位于高密度的城市中,寻找sanfranciscocalifornia的columbusave.上价格评级为“$$$$”且晚餐服务评级为4.5星的意大利餐馆。由于用户的当前位置相当稠密,所以匿名器服务117可对远程搜索引擎150替换精确到几个街区的用户的“经模糊化”位置来代替用户的准确gps坐标(精确到几英尺)以获取在用户步行距离内的搜索结果。相反,如果用户当前位于爱尔兰的远郊农场,并且可能是该区域内的唯一用户,则匿名器服务117可对于用户的准确位置替换精确到几平方英里的“经模糊化”位置。

计算设备100还可包括远程搜索子系统135,远程搜索子系统包括远程搜索接口120和远程查询服务121。远程搜索接口120可包括web浏览器诸如查询服务121可在将查询传递给网络服务122,进而经由网络140传递给远程搜索引擎150之前对查询执行中间处理。网络服务122可从远程搜索引擎150接收回结果,用于在远程查询接口120上或在本地搜索接口110上显示。远程查询服务121可经由通信接口4通信地耦接到网络服务122。

网络140可包括互联网、802.11有线或无线网络、蜂窝网络、局域网、或这些的任意组合。

接口1-8可利用进程间通信、共享存储器、套接字、或应用编程接口(api)来实现。下文参考图12详细地描述api。

图3以框图形式示出了搜索系统300,其中多个客户端设备100耦接到搜索引擎150和聚合器152。膝上型计算机101、平板电脑102、和移动电话103代表客户端设备100。当客户端设备100发起与搜索引擎150的查询会话时,搜索引擎150可为客户端设备100生成独特的会话标识符(会话id),并且还可为会话启动会话计时器。在会话期间,搜索引擎150可存储用户发出的查询的历史,并且可存储关于用户与哪些查询结果交互的指示以及其它用户反馈数据。搜索引擎150可将查询结果和反馈数据与会话id相关联地进行存储。所存储的查询和用户交互数据表示指示客户端设备100的用户在会话期间已经查询了什么的“用户意图”或“查询上下文”。由于所存储的查询和交互数据对于客户端设备100的用户而言是私人的,所以即使在会话计时器到期,由此结束会话之后,信息也可保持在客户端设备100上。当会话结束,并且客户端设备的用户继续与搜索引擎150或在会话期间返回的查询结果交互时,搜索引擎150可生成新会话id并且可将新会话id传输给用户。为了保护用户隐私,新会话id和已到期会话id在搜索引擎150内不彼此关联。响应于接收到新会话id,客户端设备100可传输“用户意图”或“查询上下文”信息给搜索引擎150,使得搜索引擎150具有用户与搜索引擎150的继续交互的上下文。例如,用户可能正在搜索特定日期从sanfranciscobayarea到portlandinternationalairport的航班。当会话到期,并且新会话id被生成并传输给客户端设备100时,用户意图数据可与新会话id一起被传输给搜索引擎150,使得搜索引擎150可继续返回与特定日期从sanfranciscobayarea到portlandoregon的航班有关的查询结果。在一个实施方案中,用户意图数据可在传输给搜索引擎150之前被匿名化和位置模糊服务117匿名化。

搜索引擎150可经由网络140耦接到多个搜索域160a-g(统称为搜索域160)。搜索域可例如为地图域160a、媒体搜索域160b、wiki域160c、网站搜索域160d、“其它”搜索域160e、反馈补全域160f、或域160g。其它域可包括域、域、域、或其它搜索域。搜索引擎150可接收来自客户端设备100的查询。搜索引擎150可在网络140上将搜索查询传递给搜索域160。搜索域160可返回与搜索引擎150所接收的查询匹配的查询结果。搜索引擎150可包括聚合器152,聚合器聚合查询结果用于传输给进行查询的客户端设备100。聚合查询结果可包括通过提供查询结果的子集的搜索域160对查询结果分组。聚合查询结果另选地或除此之外可包括基于预先确定的阈值相关性值对结果过滤。来自特定查询结果的相关性值可由提供该查询结果的搜索域160来确定。在一个实施方案中,相关性值可由搜索引擎150或聚合器152来确定。

搜索引擎150可确定特定查询是用户发出的经常性的或常见的查询。在此类情形下,搜索引擎150可将查询和至少一些搜索结果存储在搜索引擎150的缓存中。在一个实施方案中,搜索引擎150可分析从客户端设备100接收的查询、返回给用户的查询结果、以及所收集的用户反馈。搜索引擎150还可由此类分析确定新特征,并且还可生成通过从一个或多个客户端设备100接收的用户反馈对查询和特征进行训练的搜索引擎150的预测器。在一个实施方案中,搜索引擎150可指示一个或多个客户端设备100对预测器进行训练。搜索引擎150还可指示一个或多个客户端设备100向搜索引擎150报告其各自对预测器的训练进度。

搜索引擎150包括聚合器152和多个搜索域160a-g。在一个实施方案中,聚合器152接收对于至少基于部分输入查询(“输入查询前缀”)的查询补全的请求。响应于接收到输入查询前缀,聚合器152发送输入查询前缀给搜索域160a-g中每一者。搜索域160a-g中每一者使用输入查询前缀来确定该域中的可能查询补全。例如,在一个实施方案中,地图搜索域160a接收输入查询前缀,并针对可能查询补全来搜索这个域。在一个实施方案中,聚合器152接收来自搜索域160a-g中每一者的查询补全,并基于相应搜索域所确定的补全中每一者的相关性得分和基于查询前缀上下文的权重对所接收的查询补全进行排名。

在一个实施方案中,地图搜索域160a是包括与地理地图有关的信息的搜索域。在该实施方案中,地图信息可包括关于地点、地址、地点、商业、兴趣点的信息、或者其它类型的与地图有关的信息。在另一实施方案中,地图信息也可包括与感兴趣地点有关的信息,诸如营业时间、评论和评级、联系信息、路线、和/或与该地点有关的照片。在一个实施方案中,媒体搜索域160b是与媒体有关的搜索域。在一个实施方案中,媒体搜索域160b包括与音乐、书籍、视频、课程、话语、播客、无线电广播和/或其它类型的媒体有关的信息。在另一个实施方案中,媒体搜索域160b可包括与可在设备诸如上述计算设备101、平板电脑102或智能电话103上运行的应用程序有关的信息。在一个实施方案中,媒体搜索域160b是包括不同类型的可供购买的媒体(例如音乐、书籍、视频、课程、话语、播客、无线电广播、应用程序和/或其它类型的媒体)的媒体商店。在一个实施方案中,wiki搜索域160c是在线百科全书搜索域。例如,并且在一个实施方案中,wiki搜索域106c可以是wikipedia。在一个实施方案中,网站搜索域160d是网站的搜索域。例如,并且在一个实施方案中,网站搜索域160d包括商业、政府、公共、和/或私有网站,诸如“apple.com”、“whitehouse.gov”、“yahoo.com”等等。在一个实施方案中,所述其它搜索域160e是聚合器152能访问的一组其它搜索域(例如新闻搜索域)。在一个实施方案中,反馈补全域160f是基于在各种设备上运行的浏览器所收集的查询反馈的搜索索引。在一个实施方案中,反馈补全域160f包括基于所收集的查询反馈将查询映射到结果的反馈索引。在一个实施方案中,搜索域160g返回来自通过个体人们对其已光顾过的商业发表意见而生成的评论的查询结果。查询结果可包括价格评级的标签例如“$$”、以及以星级进行度量的服务质量评级,例如1至5星表示服务差到优。

如上所述,每个搜索域160a-g包括允许搜索域160中每一者基于输入查询前缀给出一组查询补全的信息。在一个实施方案中,搜索域中每一者包括用于确定查询补全以及确定那些查询补全中每一者的得分的查询补全树。基于每个域160a-g的查询补全,查询结果被搜索域160a-g中每一者返回给搜索引擎150和域聚合器152。160a-g中的特定搜索域对于特定查询可以不返回任何结果。如果特定搜索域没有任何结果与查询匹配,或者如果特定搜索域具有的结果的相关性得分低于阈值,则搜索域可以不返回任何结果。用于返回结果的阈值可以是从客户端设备100接收的查询的一部分,或者由搜索引擎150、域聚合器152、或由特定搜索域160来设置。

图4以框图形式示出了利用对从本地搜索查询和远程搜索查询二者返回的本地和/或远程搜索结果二者的本地用户反馈来本地学习查询特征的方法400。

在操作405中,用户利用本地搜索接口110发出查询。如上所述,本地搜索接口110可分别经由本地查询服务114或远程查询服务121将查询传递给本地数据库111和远程搜索引擎150中一者或二者。

在操作410中,客户端设备100可将查询存储在本地搜索历史和反馈历史115中。

如操作413和415中所示,来自本地数据库111的本地结果和来自远程搜索引擎150的远程结果分别可同时或异步地返回。在一个实施方案中,计时器417可被设置以确定直至计时器417到期,何时显示已接收的结果。如果计时器417还未到期,则方法可继续在操作413中接收本地搜索结果以及在操作415中接收远程搜索结果。在一个实施方案中,在计时器417到期之后可接收附加结果。时间值可在计算设备100上本地或在远程搜索引擎150上或在这二者上配置,使得本地和远程搜索结果在不同时间被显示。

在操作420中,本地搜索结果和远程搜索结果可被混合和排名,然后在本地搜索接口110上展示给用户。在一个实施方案中,如果本地学习系统116确定例如计算器应用程序结果高度相关,则将计算器应用程序结果朝顶部排名。如果用户从计算器应用程序内发出查询并且查询“看起来”像是计算或单位转换,则计算器结果可高度相关。在一个实施方案中,与查询匹配的本地结果413可排名高于远程搜索引擎结果415。在一个实施方案中,可利用先前学习的特征来对结果进行排名和/或过滤。在一个实施方案中,本地结果413可展示在类别诸如电子邮件、联系人、电影、推特、文本消息、文档、图像、电子表格等等中,并且在每个类别中排序。例如,本地结果413可展示在类别内,通过在每个类别中首先显示最新近创建、修改、访问或查看的本地结果413来进行排序。在另一个实施方案中,类别可通过上下文来排序。例如,如果用户从其音乐播放器应用程序112内发出本地查询,则从本地数据库111返回的与音乐播放器应用程序112有关的结果可被归类并在其他本地结果413之前被显示。在另一个实施方案中,类别可通过用户与类别中的结果交互的频率来排序。例如,如果用户很少与电子邮件结果交互,则电子邮件结果可被归类和显示低于其他本地结果413。在一个实施方案中,本地类别的显示次序是固定的。这可便于用户容易识别,因为本地结果类别很少改变。在另一个实施方案中,类别可根据相关性排名次序来显示,每个类别内的结果可通过相关性排名次序来显示。

在一个实施方案中,从远程搜索引擎150返回的结果415可包括基于以下中至少一者或者基于一个或多个查询词的词频-逆文档频率的相关性得分:查询词是否等于结果的标题、查询词是否在结果的标题内、查询词是否在结果的主体内。另外,远程搜索引擎搜索结果415可具有指示已发出这个查询的其他用户是否已经与该结果接洽的取决于查询的接洽得分,这意味着用户认为该结果与查询相关。结果也可具有指示其他用户是否已与该结果接洽的独立于查询的接洽得分,这意味着无论用于检索该结果的查询是什么,其他用户都认为该结果是相关的。结果也可具有“热门点击”得分,指示有如此多的用户认为该结果是相关的,以至于该结果应朝着展示给用户的结果集的顶部排名。在一个实施方案中,本地学习系统116可为每个结果生成该计算设备100的该用户将可能也认为该结果是相关的概率。

在操作420中,客户端设备100混合、排名并在客户端设备100上展示本地搜索结果和远程搜索结果二者。在操作425中,本地搜索接口110可接收来自用户的反馈,指示用户是否已与结果接洽,并且如果是,则还指示用户已与该结果接洽多久,或者用户是否已放弃该结果。不管结果是本地数据库结果还是远程搜索引擎结果,用户反馈可被收集并存储在本地搜索和反馈历史115中。查询也可被存储在本地搜索和反馈历史115中。在一个实施方案中,查询和反馈历史可与计算设备100的特定用户相关联。在一个实施方案中,查询、反馈历史115、以及与特定用户的关联可被本地学习116用于生成特定用户的社交图。

例如,假设特定用户bob在操作405中针对“bill”和“steven”发出一个或多个查询给本地搜索子系统130和远程搜索子系统135。本地结果413可从例如联系人应用程序112被接收,远程结果415可例如针对名为bill和steven的人的简介以及其他远程结果415被返回。在操作420中结果被混合、排名以及展示给用户bob之后,在操作425中,bob与本地结果413、远程结果415、或以上二者的交互的搜索查询和反馈历史115可被存储在本地搜索和反馈历史115中。由这个所存储的搜索历史和反馈115,本地学习系统116可由bob与本地结果413、远程结果415或以上二者的交互生成社交图。

在一个实施方案中,对远程结果的本地学习也可用于滤除已经为用户反复展示、但用户还未与之交互的结果。例如,在操作405中,用户可针对当前政治话题发出查询给本地搜索子系统130和远程搜索子系统135。响应于查询而返回的远程结果415可包括来自huffington和fox的结果。在操作425中,本地学习系统116可从关于任何/所有结果的本地存储的反馈学习到这个用户很少或从未与fox结果交互。本地学习系统116可确定要对其进行训练的新特征,“新闻来源”。学习系统116可学习以在操作420中在本地设备上混合、排名和展示结果时从未来远程结果415中将fox结果排除或降低排名。

在操作430中,远程搜索引擎结果的反馈历史可被返回给远程搜索引擎150。反馈历史可被匿名化,使得在发送给远程搜索引擎150的信息中不标识特定用户和/或机器。在一个实施方案中,与经匿名化的反馈相关联的查询不被发送给远程搜索引擎,以保护用户隐私。

在操作435中,确定客户端设备100是否已标识要对其进行训练的新特征。新特征可通过客户端设备100从远程搜索引擎150接收要对其进行训练的新特征来标识。在一个实施方案中,接收要对其进行训练的新特征还可包括要求客户端对该特征进行训练、并且任选地将此类训练的结果报告回远程搜索引擎150的指令。新特征还可通过客户端设备100分析本地搜索和反馈历史115确定特征是否可从本地和远程查询结果以及关于那些结果的反馈标识来进行标识。本地学习系统116可在确定特征是否可被标识中使用关于所有查询结果(本地和远程二者)的反馈。

如果特征在操作435中被标识,则在操作500中,客户端对该特征执行学习。下文中参照图5来描述操作500。

在操作450中,本地学习系统116可任选地基于本地学习系统116所标识的特征发送特征矢量给远程搜索引擎150。再次使用新闻来源示例,在操作405中,用户可针对当前政治话题查询本地搜索子系统130和远程搜索子系统135。响应于查询而返回的远程结果415可包括来自huffington和fox的结果。远程搜索引擎150可能已经基于远程搜索引擎150的许多用户的交互而将fox的结果作为最受欢迎的结果返回。然而,这个特定用户的本地反馈历史115可能指示这个特定用户不与fox结果交互,这与远程搜索引擎150对fox结果的最受欢迎排名相违背。在操作435中,本地学习系统116可将这个用户不与fox结果交互标识为特征,即使远程搜索引擎150将fox结果排名为最受欢迎的。本地学习系统116可在操作440中对这个特征进行学习,并任选地在操作450中将该特征发送回远程搜索引擎150。

图5以框图形式示出了客户端设备100对特征进行学习的方法500的更详细视图。在操作505中,确定在图4的操作435中所标识的特征是否是现有预测器的特征。

如果所标识的特征是现有预测器的特征,则在操作510中,可确定在本地搜索和反馈历史115中是否存储有足够的数据来将预测器拟合到该数据。例如,当客户端设备100对于用户而言是新设备,则将有很少或者没有本地搜索和反馈历史115数据可用于将预测器拟合到数据。在数据不充足时对预测器进行拟合可导致将预测器过拟合到可用数据,从而进行将预测器“有噪声地”(可能精度较低地)拟合到数据。如果在操作510中确定有充足的数据来将具有所标识特征的现有预测器拟合到本地搜索和反馈历史数据,则在操作535中,本地学习系统116对具有所标识特征的预测器执行本地学习。

如果所标识特征是现有预测器的特征,但在操作510中确定没有足够的数据来将预测器拟合到本地搜索和反馈历史数据,则在操作520中,预测器中特征的数量可被减少,即,可从预测器中移除特征。在一个实施方案中,在图4的操作435中所标识的特征可以是可从预测器中移除的特征。在一个实施方案中,可从预测器中移除不止一个特征。在一个实施方案中,关于从预测器中移除哪个或哪些特征的确定可在客户端设备100上的软件中预先确定。在一个实施方案中,如果预测器是搜索引擎150指示客户端设备100对其进行训练的预测器,则客户端设备100可执行以下操作中的一者或多者:不从预测器中移除特征、向搜索引擎通知正从预测器中移除特征、或者另选地移除搜索引擎150已将其标识为在特征缩减必需时可从预测器中移除的特征的特征。在一个实施方案中,可以有不止一个此类特征被搜索引擎150标识为是可在操作520中从预测器中移除的特征。在操作520中的特征缩减之后,在操作535中,本地学习系统116对具有所标识特征的预测器执行本地学习。

如果在操作505中确定在图4的操作435中所标识的特征不是现有预测器的特征(即,其是新特征),则在操作515中,确定所标识特征是否应被用于扩展现有预测器。如果是,则在操作525中,现有预测器可被修改以包括所标识特征,然后在操作535中,本地学习系统116可对具有所标识特征的经修改的预测器执行本地学习。如果在操作515中确定所标识的特征不应被用于扩展现有预测器,则在操作530中,可用所标识特征生成新预测器。然后在操作535中,本地学习系统116可对具有所标识特征的新预测器执行本地学习。方法500结束于返回到图4的操作450。

图6以框图形式示出了本地学习远程搜索引擎150传递给客户端设备100的查询特征的方法600。在一个实施方案中,远程搜索引擎150响应于客户端设备100发送查询给远程搜索引擎150而将特征发送给客户端设备100。

方法600中的一些操作已经在上文中参考以上图4和图5进行了讨论。这些操作的简要描述将在这里重复。

在操作405中,客户端设备100发出查询给本地搜索子系统130和远程搜索子系统135。远程搜索子系统135经由网络140将查询转发给远程搜索引擎150。在操作410中,客户端设备100将查询存储在本地搜索和反馈历史115中。在操作413中,客户端设备100上的本地搜索接口110接收来自本地数据库111的本地结果。在操作615中,客户端设备100接收来自远程搜索引擎150的远程查询结果、与查询有关的特征、以及对与查询有关的特征进行训练的指令。远程查询结果被传递给本地搜索接口110。在一个实施方案中,客户端设备100还从搜索引擎150接收向搜索引擎150报告对与查询有关的特征进行训练的进度的指令。

在操作420中,客户端设备100可混合、排名并在客户端设备100的本地搜索接口110中展示本地搜索结果和远程搜索结果二者。在操作425中,客户端设备100可接收并在本地搜索和反馈历史115中存储关于本地搜索结果、远程搜索结果、或以上二者的反馈。

在操作630中,客户端设备100可发送关于用户与远程搜索引擎150查询结果的交互的反馈。在一个实施方案中,匿名化和位置模糊服务117可用于在将用户交互数据传输给远程搜索引擎150之前对与远程搜索引擎查询结果、本地数据库查询结果或以上二者的用户交互数据匿名化。

在操作500中,客户端设备本地学习系统116可对从搜索引擎150接收的特征进行训练。在操作635中,客户端设备100可将关于对特征的训练的进度报告给搜索引擎150。在一个实施方案中,客户端设备100可响应于来自搜索引擎150的针对关于特征训练进度的更新的请求而向搜索引擎150报告进度。在另一个实施方案中,客户端设备100可以预先确定的时间间隔或在预先确定的事件(诸如预定数量的与上面的操作405中发出给本地数据库111和搜索引擎150的查询基本上类似的查询)来将训练进度报告给搜索引擎150。在一个实施方案中,训练进度可通过在本地学习系统116已对搜索引擎150在操作615中发送给客户端设备100的特征进行了训练之后对于基本上相同的查询用户进行交互的查询结果的数量的增加来测量。进度也可通过在本地学习系统116对特征进行了训练之后具有该特征的预测器更好地拟合到本地搜索和反馈历史115来进行指示。

图7以框图形式示出了接收或确定新特征、对该特征进行本地训练、以及利用该特征来改善从后续查询返回的搜索结果的方法700。

在操作705中,远程搜索引擎150可向计算设备100返回要对其进行训练的新特征。远程搜索引擎150可将该特征连同从计算设备100对搜索引擎150的查询所返回的结果返回给计算设备100。在一个实施方案中,特征可独立于查询是从本地搜索接口110还是远程搜索接口120生成而被返回给计算设备100。

客户端设备100可从搜索引擎接收要对其进行训练的新特征,例如如果搜索引擎150检测到现有搜索域160,已为从搜索域160返回给搜索引擎150的餐馆结果添加新标签的话。新标签可帮准改善对于来自客户端设备的查询的搜索结果。例如,可为搜索结果添加新标签来指示餐馆菜单项目的价格范围。标签例如可以是从1到5的美元标记数量。一个美元标记可以指示非常廉价的菜单项目,而五个美元标记可代表价格更高的精致餐饮餐馆。搜索服务器150可将该特征发送给客户端设备100对其进行训练。

在操作710中,方法700另选地可开始于本地学习系统116通过分析本地搜索和反馈历史115而确定特征。以下给出一些示例:

用户可发出针对“football得分”的查询。远程搜索引擎150可返回针对美式橄榄球得分和英式足球得分二者的结果。远程搜索引擎150可能已经确定发送该查询的计算设备100位于美国国内的ip地址。因此,远程搜索引擎150将美式橄榄球得分诸如dallascowboys优先化为最相关结果。在很多欧洲和南美国家,football是指英式足球。假设发出该查询的用户对英式足球结果感兴趣且与之交互。本地学习系统116可分析本地搜索历史和反馈历史115以确定用户不与排名较高的美式橄榄球得分交互。本地学习系统116于是可分析这些结果并确定以下特征,即football具有至少两个含义且该计算设备100的用户偏好英式足球高于美式橄榄球。

再次使用football得分的示例,在接收到美式橄榄球得分的结果时,用户可能已经困惑其为什么接收美式橄榄球得分。在从本地数据库111返回的本地结果中,可以有对于字词“football”的词典条目。用户点击“football”的词典条目。作为响应,本地学习系统116可确定新特征,即对于football有其他定义且该用户偏好英式足球高于美式橄榄球。

又如,假设用户输入查询“montana”并且接收到来自其通讯录的本地结果“marymontana”、来自其词典的本地结果、远程结果joemontana(美式橄榄球传奇人物)、以及美国montana州。用户几乎每次查询montana时都点击来自其本地通讯录的marymontana。本地学习系统116可确定montana的特征,且该用户偏好联系人记录“marymontana”。

再如,用户针对“mg”发出查询。用户在其本地计算机上具有许多英国mg汽车的图片,并且它们在本地数据库111中被索引。远程搜索引擎150可返回元素“镁”(符号mg)的结果。用户还可能在其计算机上具有乐队“bookert.andthemgs”的许多歌曲,且相应地接收本地结果。本地学习系统116可确定这些结果中的差异,并且可确定“mg”的特征。

一旦特征在操作705中被接收或者在操作710中被确定,则在操作720中,本地学习系统116可生成该特征的本地预测器。本地学习系统116另选地可为现有预测器添加特征,或者通过用新特征替换现有预测器的现有特征来修改现有预测器。例如,客户端设备100可检测或接收关于餐馆结果的新特征。搜索域160例如可在搜索域接收到针对餐馆的查询时用美元标记标签的特征为从返回的结果加标签。本地学习系统116可生成预测器来对用户最常选择的餐馆结果的美元标记数量进行训练。

在另一个实施方案中,客户端设备100上的本地学习系统116可具有对工作日11a.m.和2p.m.之间的餐馆进行训练的本地预测器。搜索引擎150可从搜索域160学习到餐馆结果具有新标签指示餐馆菜单项目的大致价格范围。在操作710中,搜索引擎150可指示客户端设备100扩展现有预测器以包括价格范围美元标记特征。本地学习系统116可为现有预测器添加特征。当本地学习系统116对经扩展的预测器进行训练时,经扩展的预测器将尝试确定客户端设备100的特定用户在工作日午餐时间所选餐馆的美元评级。本地学习系统116可学习到特定用户为工作日午餐选择价格评级为“$$”的餐馆。在后续查询中,如果价格评级为“$$”,则本地学习系统116可将餐馆查询结果排名更高,因为这是用户为工作日午餐最常选择的。

在操作725中,本地学习系统116可使用本地预测器来利用本地搜索历史和反馈历史115对特征“mg”进行训练。本地学习系统116也可使用计算设备100的上下文来对特征进行训练。

利用上面的mg示例,如果用户从计算器程序内发出查询mg,则本地学习系统116可利用上下文而学习到用户最可能对镁的分子量或者镁的其他属性感兴趣,并相应地对mg进行训练。如果用户在查看mg汽车图片时从图片查看应用程序内发出查询,则本地学习系统116可利用上下文而学习到用户最可能对英国mg汽车感兴趣。

在操作730中,本地学习系统116所学习的特征或者从远程搜索引擎150接收的特征可以多种不同方式来使用,包括偏置后续查询、扩展后续查询、过滤从查询返回的结果、和将学习进度报告给搜索引擎150。

在发出例如针对mg的新查询时,可利用所学习的对于mg(例如镁)的偏好来扩展查询。在一个实施方案中,在发出例如针对mg的新查询时,可有利于镁结果地对查询进行偏置。本地学习系统116可计算与每个查询特征相关联的偏置概率(所学习的偏好),并将偏置作为特征矢量提供给远程搜索引擎150。在一个实施方案中,下一次用户利用与该特征相关联的查询词查询远程搜索引擎150时,特征矢量可被发送给远程搜索引擎150。在一个实施方案中,特征可被用于对从本地数据库111或远程搜索引擎150中任一者或二者返回的结果过滤以将返回给查询mg的结果限制到例如镁结果。

图8以框图形式示出了聚合来自多个搜索域的搜索结果以及对新特征进行确定和学习的方法800。

在操作805中,搜索引擎150可接收来自客户端设备100的查询。

在操作810中,搜索引擎150可在操作815中经由网络140将所接收的查询传递给一个或多个搜索域160之前或与其一起检查其自己的本地缓存和索引以获取查询结果。

在操作820中,搜索引擎150接收来自一个或多个搜索域160的查询结果。搜索域160可以并不都同时返回其搜索域查询结果。因此,搜索引擎150可异步地接收来自各个搜索域160的搜索域查询结果。

在操作825中,搜索引擎150可以查询的众包用户反馈数据分析从搜索域160返回的结果,以检测一个或多个新特征供搜索引擎150对其进行训练。

在操作830中,确定在操作825中是否检测到新特征。如果新特征被检测到,则在操作835中,搜索引擎150可生成新特征的预测器,或者以新特征对现有预测器进行扩展,并利用新的或经扩展的预测器对新特征进行训练。否则,操作830分支到操作845。

在操作840中,搜索引擎150可任选地将新的或经扩展的预测器以指令传输给一个或多个客户端设备100,该指令要求每个客户端设备100对新的或经扩展的预测器进行训练。在一个实施方案中,搜索引擎150可任选地指示所述一个或多个客户端设备报告对新的或经扩展的预测器进行训练的进度。

在操作845中,搜索引擎150可响应于在操作805中接收的查询将所聚合的搜索结果传输给客户端设备100。

图9以框图形式示出了执行不同的两组客户端设备100上两组预测器的比较测试的方法900。

在操作905中,搜索引擎150可生成预测器集“a”和预测器集“b”。预测器集a和b各自在该集中具有至少一个预测器。预测器集a和b可具有不同数量的预测器。

在操作910中,搜索引擎150可将预测器集a以指令传输给第一组客户端设备100,所述指令要求第一组中的客户端设备100各自对集a中的预测器进行训练。搜索引擎150可将预测器集b以指令传输给第二组客户端设备100,所述指令要求第二组中的客户端设备100各自对集b中的预测器进行训练。在一个实施方案中,第一组和第二组客户端设备100可交叠。在一个实施方案中,第一组和第二组客户端设备100各自包含一个客户端设备100。

在操作915中,第一组客户端对预测器集a进行训练。在操作920中,第二组客户端对预测器集b进行训练。操作915和920可在不同时间开始。操作915和920可运行不同的持续时间。在一个实施方案中,训练持续时间可通过每个客户端设备100处理预定数量的基本上类似的查询来确定。在一个实施方案中,训练持续时间可由预先确定的时间段来确定。在一个实施方案中,训练持续时间可继续直到预先确定的事件或标准被满足。预先确定的事件可以是搜索引擎150请求来自一组客户端设备100中一个或多个客户端设备100的训练进度报告。预先确定的标准可以是训练直到预测器实现特定值(例如归一化值0.65)的对反馈历史数据的拟合,这指示用户常与利用预测器展示给用户的查询结果交互。预先确定的标准可以是训练持续预先确定的最小时间量或者预先确定的最小数量的基本上类似的查询,并且未能实现比特定值(例如归一化值0.15)高的对反馈历史数据的拟合,这指示用户不常与利用预测器展示给用户的查询结果交互。

在操作925中,搜索引擎150可指示第一组和第二组客户端设备100响应于预先确定的报告指令分别报告对预测器集a和b的训练进度。在一个实施方案中,第一组和第二组客户端设备100可响应于搜索引擎150请求关于训练进度的报告的一个或多个指令而向搜索引擎150报告训练进度。在一个实施方案中,客户端设备100可在相应预测器集a和b的训练持续时间结束时向搜索引擎150报告训练进度。第一组和第二组客户端设备100可在不同时间报告训练进度。

在操作930中,第一组客户端设备100可将关于预测器集a的训练进度报告给搜索引擎150。在操作935中,第二组客户端设备100可将关于预测器集b的训练进度报告给搜索引擎150。报告预测器集的训练进度可包括:对于每个预测器,对集(a或b)进行标识、特定预测器的标识符、训练统计信息诸如所处理查询的数量、所展示结果和用户接洽、放弃的结果的数量等等、或者代表预测器对客户端的相关性反馈历史的拟合的值。拟合值可被归一化。

在操作940中,搜索引擎150可评估第一组和第二组客户端分别为预测器集a和b报告的训练进程。搜索引擎150可确定集a或b或这二者中执行至预先确定的标准的一个或多个预测器。在一个实施方案中,预先确定的标准可包括在预先确定的数量的客户端设备100上实现预测器对用户反馈历史的预先确定的平均拟合值。在一个实施方案中,预先确定的标准可以是在预先确定的数量的客户端设备100上实现比客户端设备100为另一预测器实现的先前拟合值更好的预测器对用户反馈历史的平均拟合值。

在操作945中,搜索引擎150可任选地修改集a和集b中产生更好进度的集中的一个或多个预测器。修改预测器可包括为预测器添加特征(扩展预测器)、从预测器删除特征、或修改预测器的一个或多个值。值可以是文本、数、或以上二者。

在操作950中,搜索引擎150可指示第一组和第二组客户端设备100对在操作945中任选地修改的预测器集a和b进行训练。

方法900中的操作可按与上文所述不同的次序来执行。方法900中的操作可反复地执行,使得搜索引擎150不断地改善其返回用户接洽的查询结果的能力。方法900中的一个或多个操作诸如评估预测器训练的进度和修改预测器可由搜索引擎系统工程师来执行。

图10以框图形式示出了在客户端设备100和搜索引擎150之间的多个会话上保持客户端设备100和远程搜索引擎150之间搜索查询会话的意图或上下文的方法1000。远程搜索引擎150是搜索引擎,如本领域已知,不位于客户端设备100上,并且一般在网络140上访问,因此名为“远程”搜索引擎150。在本方法的描述中,远程搜索引擎和搜索引擎互换使用。

上下文是指关于客户端设备100的用户与搜索引擎150的先前交互的信息。上下文信息用于客户端设备100与搜索引擎150的会话之间的连续性。会话可以是指客户端设备100和搜索引擎150之间的第一和第二会话,其中很少的时间或者没有时间在第一和第二会话之间经过。会话也可以是指结束于第一时间的第一会话和开始于第二时间的第二会话,其中一定的或相当的时间在会话之间经过。上下文信息基本上提供用户在第一会话期间在做什么和用户可在第二会话中恢复做什么之间的连续性或桥接。例如,在第一会话中,用户可能已经搜索sanrafael,california的本周五晚上8p.m.营业的卡拉ok酒吧。搜索引擎会话时间可能到期,从而结束第一会话,或者用户可能离开客户端设备100并且后来返回到客户端设备100并在不同的第二会话中恢复搜索卡拉ok酒吧。将来自第一会话的上下文信息提供给搜索引擎150以用于第二会话就允许用户恢复搜索sanrafael,california的本周五晚上8p.m.营业的卡拉ok酒吧,就好像只有一个会话一样。

在操作1005中,客户端设备100开始与搜索引擎150交互。客户端设备100与搜索引擎150交互可包括登录允许访问搜索引擎150的帐户、导航到访问搜索引擎150的网页的统一资源定位符(url)、发出查询给搜索引擎150、与搜索引擎150的网页上的链接或url交互、或与从查询返回给搜索引擎150的结果交互。搜索引擎150可响应于客户端设备100与搜索引擎150交互而发起客户端设备100与搜索引擎150之间的会话。

在操作1010中,搜索引擎150可为客户端设备100与搜索引擎150之间的会话分配独特的会话标识符(会话id)。在一个实施方案中,搜索引擎150可启动与客户端设备100、会话、和会话id相关联的会话计时器。会话计时器可被设置为例如15分钟。当会话时间到期时,会话结束。

在操作1015中,客户端设备100继续与搜索引擎150交互,如操作1005中所述。

在操作1020中,客户端设备100存储客户端设备所发出的查询。客户端设备100还存储客户端设备100的用户与从客户端设备100所发出的查询返回的查询结果的交互数据。查询结果可包括从客户端设备100上本地数据库115返回的结果,并且还可包括从搜索引擎150返回的结果。查询和交互数据可被客户端设备100存储在本地搜索和反馈历史数据库115中。

在操作1025中,客户端设备100可生成和存储与搜索引擎150的客户端设备会话的上下文。存储会话的上下文可包括用会话id对存储在本地搜索和反馈历史115中的查询和用户反馈数据加标签。存储上下文还可包括存储标识会话的信息,诸如会话id、当前日期、会话开始时间、或搜索引擎150的ip地址或主页或者标识搜索引擎150的其他信息。

在操作1030中,确定客户端设备100与搜索引擎150之间的当前会话是否已经到期或者以其他方式结束。会话可在当前会话的会话计时器到期时到期。使会话到期可帮助使搜索引擎150不收集太多关于特定用户的信息(即使用户并未被具体地标识),以保护特定用户的隐私。会话可以在用户从搜索引擎150登出、关闭用于访问搜索引擎150的互联网浏览器、从搜索引擎150网页导航离开、关闭客户端设备100、或以其他方式从搜索引擎150脱离时结束。

如果会话计时器已经到期并且用户仍然接洽搜索引擎150,则在操作1035中,搜索引擎150可生成新会话id,搜索引擎150不将新会话id与先前会话id关联。搜索引擎150可开始新的不同的会话,并且不将新会话与第一会话关联。客户端设备100可接收新会话id。

在操作1040中,客户端设备100可对存储在本地搜索和反馈历史数据库115中的上下文信息匿名化。匿名化可由匿名化和位置模糊服务117来执行。

在操作1045中,客户端设备100可将经匿名化的来自一个或多个先前会话的上下文信息传输给搜索引擎150。在一个实施方案中,客户端设备100响应于接收到新会话id而将经匿名化的上下文信息传输给搜索引擎150。在一个实施方案中,客户端设备100将来自一个或多个先前会话的上下文信息传输给与所述一个或多个先前会话的搜索引擎150不同的搜索引擎150。这就允许用户在另一搜索引擎150上搜索相同信息而无需重新输入所述一个或多个先前会话的所有先前查询。该方法继续进行操作1015,其中用户与远程搜索引擎150交互。

图11以框图形式示出了用于在用户的多个客户端设备100上同步预测器的系统1100。在一个实施方案中,预测器可在每个客户端设备100上被存储在本地学习系统116内。因此,同步预测器可包括为每个客户端设备100同步本地学习系统116。在一个实施方案中,在多个设备上同步预测器也可包括在多个客户端设备100上同步本地搜索和反馈历史115。上文参考图10所述的搜索会话之间的上下文可通过在多个客户端设备上同步本地搜索和反馈历史115来执行。同步多个客户端设备100还可包括为多个客户端设备100同步本地数据库111。如上所述,本地数据库111可包括关于客户端设备100上应用程序112和数据113的数据、元数据和其他信息。在一个实施方案中,本地数据库111只有所选部分在多个客户端设备之间同步。所选部分对应于用户可以已经选择用于在多个客户端设备100之间同步的应用程序112和113。

同步系统1100可包括元数据服务器1110和一个或多个内容服务器1170。在一个实施方案中,内容服务器1170可存储一种或多种类型的用户数据集,诸如预测器、查询、用户反馈历史、数据、元数据和索引。另一内容服务器1170可存储例如联系人用户数据集,而另外一个内容服务器1170可存储用户的一个或多个电子邮件帐户的电子邮件。在一个实施方案中,内容服务器1170可以是能够存储多种不同用户数据集类型的云存储服务。在一个实施方案中,同步系统1100还可包括同步管理系统1160。客户端设备100初始可在同步系统1100上存储来自客户端设备100的文件系统的一个或多个用户数据集。用户数据集诸如客户端设备100上本地学习系统116中的预测器可被存储在同步系统1100上。在一个实施方案中,用户数据集可被分块成分块数据部分并被存储在所述一个或多个内容服务器1170上。描述用户数据集的元数据和关于用户数据集的分块部分的元数据可在元数据服务器1110上被存储在同步元数据数据库中。在一个实施方案中,可利用同步管理系统1160来管理元数据服务器1110和内容服务器1170。

管理元数据服务器1110可包括提供软件给元数据服务器1110来解决用户数据集的各个版本之间的冲突,包括源于生成数据集的软件的不同版本的冲突。例如,如果用户的一个客户端设备例如101具有版本2.0的文字处理器软件,并且该用户利用该客户端设备和软件生成文字处理文档,并且该文档后来利用同步系统1100被下载到用户的具有版本1.0的文字处理器软件的另一客户端设备例如102,则版本1.0软件可能不能打开和/或编辑软件版本2.0生成的文档。同步系统管理器1160可提供软件更新和补丁给元数据服务器1110来调整该文档以用于以版本1.0和版本2.0的文字处理软件二者来使用。类似地,第一客户端设备101上的预测器可利用第二客户端设备102不支持的特征,或者具有与第二客户端设备102上不同的规范。例如,客户端设备101可具有利用基于gps信号的“位置”特征的预测器。客户端设备102可以只能通过蜂窝塔逼近、地区代码、或ip地址来检测位置。同步系统管理器1160可在将客户端设备101的预测器与客户端设备102同步之前修改该预测器中的“位置”特征。另选地,同步系统管理器1160可在同步预测器之前从预测器中移除目标客户端设备不支持的特征。在一个实施方案中,经修改的预测器可在同步之前对于对预测器进行的改变被标示或以其它方式标记。

同步系统1100可经由网络140接口到客户端设备100。网络140可以是互联网、无线网络、蜂窝网络、局域网、或这些的任意组合。虽然同步系统管理器1160、元数据服务器1110、和内容服务器1170已经被图示为是经由网络140连接的单独元件,但这不是必须是这样的。同步系统管理器系统1160、元数据服务器1110、或内容服务器1710中的一者或多者可被实施在同一主机计算机系统上或多个物理地分布的计算机系统上。此外,如上所述,内容服务器1170可包括一个或多个内容服务器1170,其中任何或全部内容服务器可存储一种或多种类型的用户数据集。同步系统管理器1160、元数据服务器1110、和内容服务器1170中一者或多者之间的通信可通过套接字、消息、共享存储器、应用编程接口(api)、进程间通信、或其它处理通信服务来进行。下文参考图12详细地描述应用编程接口。

客户端设备100可包括台式计算机系统、膝上型计算机系统诸如客户端设备101、平板计算机系统诸如客户端设备102、蜂窝电话诸如客户端设备103、个人数字助理(pda)(包括支持蜂窝的pda)、机顶盒、娱乐系统、游戏设备、或其它消费电子设备。下文参考图13详细地描述客户端设备100的部件。

用户数据集可包括以下中的一者或多者:预测器、本地搜索和反馈历史数据库115、本地数据库111、数据文件、文件夹或目录、文字处理文档、电子表格、展示、电子邮件、文本、用户联系人、书签、资产诸如音乐、电影和购买的其它内容、设备设置、和应用程序设置。这些中每一者可以是用户数据集。客户端设备100的用户可按设备确定特定数据集是否将利用同步系统1100与用户的客户端设备100中的其它客户端设备同步。

关于用户数据集的元数据可包括文件系统元数据和同步元数据。文件系统元数据可包括文件id诸如posix文件id、文档id、文件创建日期、文件最后修改日期、最后修改文件的设备的标识符、修改文件的应用程序的标识符和应用程序的版本、以及文件的世代计数。对于资产诸如所购买的已远程地存储在服务诸如或amazon处的内容,关于内容的元数据可包括指向内容所位于位置的通用资源定位符(url)。文件系统元数据可由每个客户端设备100的文件系统来生成。同步元数据可包括在用户的客户端设备100上独特的用于文件或目录的通用唯一标识符(uuid),并且还可包括etags。etags可指定文档或目录的元数据的特定版本。etags可由同步系统100生成,以管理用户数据集和解决特定用户数据集的用户数据的不同世代之间的冲突。例如,etag可用于区分用户简历的文字处理文档的不同世代。

在图12(“软件栈”)中,一个示例性实施方案,应用程序可使用若干服务api调用服务a或b,以及使用若干osapi调用操作系统(os),a和b可利用若干osapi调用os。

需注意,服务2具有两个api,其中一个(服务2api1)接收来自应用程序1的调用并将值返回给应用程序1,另一个(服务器2api2)接收来自应用程序2的调用并将值返回给应用程序2。服务1(其可为例如软件库)调用osapi1并接收从osapi1返回的值,服务2(其可为例如软件库)调用osapi1和osapi2二者并且接收从这二者返回的值。应用程序2调用osapi2并接收从osapi2返回的值。

图13为计算系统1300的一个实施方案的框图。图13所示的计算系统旨在代表一系列计算系统(有线的或无线的),包括例如台式计算机系统、膝上型计算机系统、蜂窝电话、个人数字助理(pda)(包括支持蜂窝的pda)、机顶盒、娱乐系统或其它消费电子设备。另选的计算系统可包括更多、更少和/或不同的部件。图13的计算系统可用于提供计算设备和/或服务器设备。

计算系统1300包括总线1305或用于传递信息的其他通信设备、以及耦接到总线1305的可处理信息的处理器1310。

虽然计算系统1300被图示为具有单个处理器,但计算系统1300可包括多个处理器和/或协处理器1310。计算系统1300还可包括耦接到总线1305的随机存取存储器(ram)或其它动态存储设备1320(被称为主存储器),并且可存储信息和可由处理器1310执行的指令。在处理器1310执行指令期间,主存储器1320还可用于存储临时变量或其他中间信息。

计算系统1300也可包括耦接到总线1305的可存储静态信息和处理器1310的指令的只读存储器(rom)和/或其他静态存储设备1340。数据存储设备1340可耦接到总线1305以存储信息和指令。数据存储设备1340诸如闪存存储器或磁盘或光盘及相应驱动器可耦接到计算设备1300。

计算系统1300也可经由总线1305耦接到显示设备1350,诸如阴极射线管(crt)或液晶显示器(lcd),以将信息显示给用户。计算系统1300也可包括数字字母混合输入设备1360,包括数字字母混合和其它按键,其可耦接到总线1305以将信息和命令选择传递给处理器1310。另一种类型的用户输入设备是光标控件1370,诸如触摸板、鼠标、轨迹球或光标方向键,用于向处理器1310传递方向信息和命令选择以及在显示器1350上控制光标移动。

计算系统1300还可包括一个或多个网络接口1380以提供对网络诸如局域网的接入。网络接口1380可包括例如具有天线1385的无线网络接口,天线1385可代表一个或多个天线。计算系统1200可包括多个无线网络接口,诸如wifi、和蜂窝电话接口的组合。网络接口1380也可包括例如有线网络接口,以经由网络缆线1387与远程设备通信,网络缆线可以是例如以太网缆线、同轴缆线、光纤缆线、串行缆线或并行缆线。

在一个实施方案中,网络接口1380可例如通过符合ieee802.11b和/或ieee802.11g标准来提供对局域网的接入,以及/或者无线网络接口可例如通过符合bluetooth标准来提供对个域网的接入。也可支持其它无线网络接口和/或协议。除了经由无线lan标准的通信之外或者代替其,网络接口1380可利用例如时分多址(tdma)协议、全球移动通信系统(gsm)协议、码分多址(cdma)协议、和/或任何其它类型的无线通信协议来提供无线通信。

在以上说明书中,结合本发明的特定实施例已描述了本发明。但显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对这些实施例进行各种修改和变更。因此,说明书和附图应被视为是例示性的而非限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1