CN107004026B - 管理预先计算的搜索结果 - Google Patents
管理预先计算的搜索结果 Download PDFInfo
- Publication number
- CN107004026B CN107004026B CN201580068072.2A CN201580068072A CN107004026B CN 107004026 B CN107004026 B CN 107004026B CN 201580068072 A CN201580068072 A CN 201580068072A CN 107004026 B CN107004026 B CN 107004026B
- Authority
- CN
- China
- Prior art keywords
- search results
- validity
- computed
- recalculation
- computed search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
存储在搜索平台中的预先计算的搜索结果被细分成包括第一份额D的相关预先计算的搜索结果的多个份额。重新计算控制器基于有效性概率控制预先计算的搜索结果的重新计算。重新计算控制器确定指示预先计算的搜索结果i随时间推移的有效性概率的变化率的有效性趋势λi和预先计算的搜索结果i的瞬时有效率响应于确定瞬时有效率和有效性趋势λi之间的差异超过给定程度,重新计算控制器调整与包括在第二份额D'的其它预先计算的搜索结果相关联的有效性概率,第二份额D'与第一份额D相关。重新计算控制器向计算平台发出重新计算命令,以重新计算预先计算的搜索结果的一部分,该部分是由重新计算控制器基于与预先计算的搜索结果相关联的有效性概率选择的。
Description
技术领域
本发明一般而言涉及信息技术。更具体而言,本发明涉及用于重新计算预先计算的搜索结果的数据库技术和机制。
背景技术
众所周知,预先计算搜索结果并且响应于搜索查询而返回预先计算的搜索结果,而不是仅在查询时才计算搜索结果。以这种方式,可以缩短响应时间。必须使预先计算的搜索结果保持最新,以便确保返回有效的响应。如果底层数据(作为预先计算搜索结果的基础)改变,那么预先计算的搜索结果会变得过时,并且将返回不正确的结果。因此,采用了更新策略使预先计算的搜索结果保持最新。
现有技术中已知各种相对简单的更新策略。例如,WO 01/33472涉及在旅行计划系统中使用的可用性系统。该系统包括具有关于航班座位的可用性信息的条目的高速缓存。高速缓存管理器管理高速缓存中的条目信息,以便使高速缓存中的信息正确、即时、完整或以其它方式尽可能有用。响应于针对高速缓存的查询,高速缓存管理器确定存储的答案是否陈旧,并且如果是这种情况,那么向可用性信息源发送可用性查询。要修改的高速缓存条目通过来自外部系统的异步通知获得,并由确定性的、预测性的或统计的模型确定。
类似地,WO 02/25557涉及信息检索系统,其中从信息源接收到的信息被高速缓存用于将来使用,诸如用于将来的客户端请求。可以生成主动查询以填充高速缓存和/或更新当前高速缓存的信息。在航空公司信息系统中,主动查询基于统计信息或预测指标(诸如出发时间的接近程度、高速缓存数据的年龄、飞机中的剩余座位、假日或特殊事件或者设备类型)进行排序。此外,通过来自航空公司的外部通知(诸如AVS消息)接收更新。
此外,WO 99/22315描述了通过使用基于统计的概率模型来自动刷新高速缓存中的文档的机制。对于每个文档,高速缓存确定高速缓存对象i在特定时间t时陈旧(即,服务器已经改变该对象)的概率Psi(t),以及对象i由用户在请求时间h前被请求的概率Pri(h)。高速缓存用最高乘积Pi=Psi(t)x Pri(h),即,过时对象被返回给下一个请求的用户的概率,来刷新那些对象。为了维护这些概率值,高速缓存维护和跟踪高速缓存对象的历史统计信息,诸如服务器更新之间的估计均值间隔EUI。对象的EUI例如在对象本身由服务器更新时更新,或者对象在其估计均值刷新时间已过去之后不更新。
此外,WO 2014/026753 A1概述了概率模型的可能实现以近似预先计算的搜索结果的有效性概率。此外,提出了识别在概率模型中没有表示的异步实时事件的机制,以及考虑这种实时事件对预先计算的搜索结果的有效性的潜在影响的机制。
类似的概率模型还由WO 2013/160721 A1描述,其另外提到了取决于价格比较的结果来适配预先计算的标价旅行建议的波动率模型的学习引擎。当两个完全相同的预先计算的标价旅行建议具有不同的价格时,差异作为统计信息被存储。当差异太频繁发生时,波动率模型被更新,即,跨度日期范围被标记为较易变。因此,由于定期发生的事件(比如假日季节)而导致的价格变动影响得到缓解。如果两个完全相同的预先计算的标价旅行建议在比基于模型所预期的更长时间段内具有相同的价格,那么模型也被更新,即,跨度日期范围被标记为较不易变。
发明内容
本发明由独立权利要求来限定。
根据第一方面,提供了管理预先计算的搜索结果的方法。该方法在数据库环境中执行。数据库环境包括至少一个搜索平台、重新计算控制器和计算平台。搜索平台维护预先计算的搜索结果。预先计算的搜索结果被细分成多个相关的预先计算的搜索结果的份额,包括第一份额D。重新计算控制器基于与预先计算的搜索结果相关联的有效性概率来控制预先计算的搜索结果的重新计算。计算平台重新计算预先计算的搜索结果。重新计算控制器确定指示预先计算的搜索结果i随着时间推移的有效性概率的变化率的有效性趋势λi。预先计算的搜索结果i是第一份额D的成员。有效性趋势λi是从i的至少三次过去的重新计算导出的。重新计算控制器进一步确定预先计算的搜索结果i的瞬时有效率瞬时有效率是从在第一份额D中包含的相关的预先计算的搜索结果的两次最近重新计算导出的。响应于确定瞬时有效率与有效性趋势λi之间的差异超过给定程度,重新计算控制器调整与包含在与第一份额D相关的第二份额D'中的其它预先计算的搜索结果相关联的有效性概率。最后,重新计算控制器向计算平台发出重新计算命令以重新计算预先计算的搜索结果的一部分,该部分是由重新计算控制器基于与预先计算的搜索结果相关联的有效性概率选择的。
根据另一方面,提供了配备有相应功能的重新计算控制器。
根据还有的另一方面,提供了计算机程序,该计算机程序当在计算机系统上运行时执行如上所述的方法。该计算机程序可以作为可执行指令存储在非瞬态计算机可读存储介质上。
还有的方面在从属权利要求中阐述。
附图说明
将参考附图描述本发明。相似的标记通常指示完全相同或功能相似的元素。
图1示意性地示出了数据库环境的基本体系架构。
图2图示随着时间的推移降低预先计算的搜索结果的有效性概率的效果。
图3呈现了由搜索平台维护的预先计算的搜索结果的结构的更详细的视图。
图4a和4b可视化预先计算的搜索结果的若干连续重新计算之间的非等距时间间隔。
图5a和5b可视化在多个相关的预先计算的搜索结果的两次重新计算之间的非等距时间间隔。
图6是在高级别描绘检测对预先计算的搜索结果的有效性有害的事件的过程的流程图。
图7是描绘通过建立经验分布函数来确定有效性趋势和/或瞬时有效率的方法的流程图。
图8a和8b可视化通过使用跨越预先计算的搜索结果的重新计算的稳定时段和在稳定时段上滑动的窗口来建立经验分布函数。
图9a和9b示出了结果得到的离散有效性概率值,并且通过回归获得有效性趋势/瞬时有效率。
图10示出了具有相关联的有效性概率的预先计算的搜索结果的示例。
图11可视化在检测到有效性趋势和另一个相关的预先计算的搜索结果的瞬时有效率之间的实质差异之后,改变已建模的预先计算的搜索结果的有效性概率。
图12绘出了重新计算控制器的示例性内部结构。
图13是实现本文所述的配置的计算机/服务器的内部体系架构的示意性示意图。
具体实施方式
在转到参考图7至图13的详细描述之前,将首先参考图1至图6阐述一些更一般的方面。
如在开始处已经概述的,本文所述的方法涉及向客户端提供预先计算的搜索结果的数据库系统。预先计算的技术目的通常是减少响应搜索查询的响应时间。在下文中,术语“预先计算”和“预先计算的”用于涵盖任何类型的预先计算和预先收集,诸如收集或复制互联网web服务器的内容的互联网爬虫,而且还涵盖基于底层数据的搜索结果的复杂和时间密集计算,如例如由PCT/EP2013/002390和EP 2541473 A1针对标价旅行建议所描述的。术语“数据库”意味着包含任何类型的结构化信息存储系统,诸如像SQL服务器或Oracle数据库的标准独立的数据库,以及复杂的、分布式和/或专有存储系统,包括数据库管理系统的关系数据库或面向对象的数据库系统等。
示例性数据库系统1的体系架构由图1示出。数据库系统1包括至少一个但通常多个客户端5以及至少一个搜索平台4。为了增加故障安全性和/或性能,可以存在多个搜索平台4。至少一个搜索平台4维护预先计算的搜索结果,以便减少应答从客户端5接收到的搜索查询的响应时间。客户端5将搜索查询引导到搜索平台4,每个搜索查询包括一个或多个约束搜索的搜索标准。例如,如果搜索查询是互联网搜索,那么搜索查询可能携带搜索串、搜索文本或搜索短语作为搜索标准。还有的搜索标准可以是要搜索的网站的语言或者所请求的搜索串、搜索文本或搜索短语的第一可用性的时间点的指示。根据另一个示例,搜索查询是对由诸如互联网书店或旅行提供者的服务提供者平台提供的产品或服务的数据库请求。在这种情况下,搜索查询可能包括例如服务或产品的上限价格或价格范围以及产品/服务的期望特征,诸如书名、旅行起始地和目的地等。
搜索平台4处理从客户端5接收到的搜索查询,并在预先计算的搜索结果内执行数据库搜索。依次,搜索平台4用满足包括在搜索查询中的搜索标准的一个或多个预先计算的搜索结果作为响应。由搜索平台4执行的处理的方式与本文的方法无关,例如,无论搜索平台4是否仅检索严格符合包含在搜索查询中的搜索标准的预先计算的搜索结果,或者例如,无论搜索平台4是否实现模糊搜索并因此在一定程度上也返回超出搜索标准的约束的模糊结果。客户端5接收该响应并处理响应,例如,向用户显示搜索结果。
预先计算的搜索结果在其预先计算后的某个时间之后可能变得过时(下文也称为失效的)。一般而言,失效的原因是底层或原始数据中的变化。例如,web服务器的内容在某个时间点可能改变,或者预先计算的标价旅行建议底层的费用(例如,形成旅行的标价航班集合)可能不时地更新。从这些时间点往后,存储在搜索平台4中、受到底层数据的改变影响的对应的预先计算的搜索结果是无效的。因此,被提供这些无效的预先计算的搜索结果的客户端5将会接收到对其搜索查询的不正确的答案。这种失效问题的一般解决方案是以规则、不规则或连续的方式重新计算预先计算的搜索结果。
搜索结果的预先计算由重新计算控制器2管理。重新计算控制器2可以被提供作为单独的实体(如图1所示),或者可以替代地被集成到一个或(如果存在)多个搜索平台4中。由于用于重新计算的计算资源一般受到限制,因此预先计算的搜索结果需要被优先级化,即只有搜索平台4维护的所有预先计算的搜索结果的一部分可以在某个时间段内被重新计算。因此,重新计算控制器2为重新计算执行对预先计算的搜索结果的某些部分的选择。为此,重新计算控制器2根据例如由WO 2014/026753描述的重新计算策略来管理预先计算的搜索结果的重新计算。根据所采用的重新计算策略,重新计算控制器2生成重新计算命令并将其传送到计算平台3,重新计算命令向计算平台3指示哪些预先计算的搜索结果要被重新计算。响应于从重新计算控制器2接收到重新计算命令,计算平台3例如通过从主数据源请求与预先计算的搜索结果对应的原始数据和/或基于底层数据执行相应搜索结果的重新计算来执行重新计算。
诸如WO 99/22315和WO 2014/026753的某些现有技术文献提出了基于概率模型的重新计算策略。通常,这种概率模型可以包括例如参数,诸如年龄、流行度(通过查询客户端5对预先计算的搜索结果的访问率)、有效性概率的降低率、任何预先计算的搜索结果的初始准确度(预先计算的结果在它被预先计算时为有效的的概率)等,这些参数由重新计算控制器2或耦合到重新计算控制器2的另一个实体永久地存储和更新。概率模型可以基于预先计算的搜索结果的行为的统计经验,或者可以基于主题经验以概念的方式形成。通常,概率模型允许近似预先计算的搜索结果随时间推移的有效性。这个近似的有效性在下文中被称为有效性概率。通常,在搜索结果的预先计算之后,预先计算的搜索结果的有效性概率随着时间的流逝而减小。
有效性概率随着时间的推移而减小的两个示例性函数如图2所示。函数10表示随着时间的推移比与函数11相关联的另一个预先计算的搜索结果潜在地保持在较高的有效概率的预先计算的搜索结果。例如,由函数10表示的预先计算的搜索结果在其最后一次重新计算之后的35小时具有70%的概率仍然有效,而由函数11特征化的其它预先计算的搜索结果在其最后一次重新计算之后的35小时仅达到大约50%有效。函数10和11还可以表示预先计算的搜索结果的整个集合(诸如下面进一步描述的份额),并且然后指示预先计算的搜索结果集合在自从该集合最后一次重新计算以来经过的时间处处于有效的比例。
但是,概率模型不反映可以显著降低预先计算的搜索结果的有效性的意外或不可预测事件,即,预先计算的搜索结果的大部分在事件发生时可能失效。由于其意外或不可预测的特性,这些事件通常不包括在概率模型中。假设预先计算的搜索结果的示例是诸如标价旅行建议的旅行相关的数据,那么对预先计算的搜索结果的有效性产生影响的这些事件的示例是现实生活中的情况,诸如展销会或运动比赛(这例如增加某些日期和某些地点的航班价格)或诸如罢工或自然灾害的随机事件(这可能导致航班取消),所有这些都改变概率模型的因果关系底层的假设。假设预先计算的搜索结果的另一个示例是预先收集的互联网网站,导致预先计算的搜索结果的部分失效的事件的示例是导致某些(类型的)网站拥塞的政治活动或导致位于某个地理区域的互联网服务器在更长的时间段内离线的技术封锁。如果预先计算的搜索结果是例如地理和天气相关的数据,诸如河流和海水水位或空气污染信息,那么预计计算的搜索结果的一部分会由于诸如海啸或火山爆发等自然灾害而失效。
考虑了这种异步实时事件潜在地使预先计算的搜索结果的某些部分失效的已知解决方案依赖于这些事件的外部信号作用,如例如由WO 2014/026753所描述的。但是,这种外部信号作用可能不总是可能的或期望的,例如,由于没有互连的系统、足够的技术接口或事件对预先计算的搜索结果的有效性的未知影响。除了外部信号作用之外,WO 2014/026753还通过采用采样机制考虑了异步实时事件的隐式识别。为此,预先计算的搜索结果(样本)的某些代表性部分被不时地有意重新计算,以便确定由样本表示的预先计算的搜索结果的较大部分是否具有比概率模型所指示的显著更低的实际有效性。但是,通过这种采样过程来确定实际有效性需要附加的重新计算资源,该附加的重新计算资源以重新计算由重新计算策略所规定的最关键的预先计算的搜索结果(例如,具有最低有效性概率的预先计算的搜索结果)为代价被消耗。
针对预先计算的搜索结果随时间推移变得无效的这些技术问题的背景,基于概率模型的重新计算策略以及对影响预先计算的搜索结果的有效性的实时事件的考虑和识别超出了由概率模型所反映的,本文提出了高效(就计算资源而言)的方式来隐含地识别潜在地由异步实时事件引起的、预先计算的搜索结果中的有效性降低。外部发信号指示以及计算资源密集型采样都不是必需的。
简而言之,在一般层面上,本解决方案是基于
-确定以有效性趋势的形式的概率模型参数,指示预先计算的搜索结果随时间推移有效性概率的降低率或保留率(例如,如图2的示例函数所示),
-分别确定指示预先计算的搜索结果的第一份额的即时有效性的瞬时有效率和在该第一份额内的预先计算的搜索结果,
-比较瞬时有效率和有效性趋势,以及确定瞬时有效率与有效性趋势之间的差异是否大于给定程度,
-如果瞬时有效率和有效性之间的差异超过给定程度,那么调整与第一份额不同但是相关的第二份额的预先计算的搜索结果的有效性概率,以及
-根据取决于与预先计算的搜索结果相关联的有效性概率的给定的重新计算策略,重新计算预先计算的搜索结果。因此,当决定要重新计算哪些预先计算的搜索结果时,将考虑在第二份额中的预先计算的搜索结果的潜在调整的有效性概率。
因此,该机制的主要思想是使用预先计算的搜索结果之间的有效性概率相关性,并且将在由概率模型提供的有效性指示和预先计算的搜索结果的第一份额的即时有效性指示之间检测到的实质差别传送到与预先计算的搜索结果的第一份额相关的预先计算的搜索结果的第二份额。以这种方式,例如,用于预先计算的搜索结果的第二份额的采样过程被废弃。特别地,有可能响应于第一份额中的预先计算的搜索结果的“正常”重新计算而导出第一份额的即时有效性指示,这里的“正常”意味着该重新计算与作为附加人为采样重新计算等的对照被采用的重新计算策略是一致的。因此,可以减少或根本避免重新计算开销。
在转到实现示例的详细描述之前,这些特征将接下来首先在函数级别上进行一些更详细的描述。
如以上已经描述的,搜索平台4存储预先计算的搜索结果。预先计算的搜索结果的表示也由重新计算控制器2维护,用于重新计算控制目的。特别地,重新计算控制器2维护用于采用重新计算策略的控制数据。控制数据使得重新计算控制器2能够确定预先计算的搜索结果的有效性概率并且能够根据重新计算策略,例如,定期地启动预先计算的搜索结果的一部分的重新计算,例如,具有最低有效性概率的预先计算的搜索结果。用于确定预先计算的搜索结果的有效性概率的参数是例如最后一次重新计算的时间和如图2示例性示出的用于有效性概率的下降函数,例如λi表示由概率模型建模的特定预先计算的搜索结果i的有效性趋势,并且ti表示自从最后一次重新计算预先计算的搜索结果i以来经过的时间(时间单位的数量)。通过为任何预先计算的搜索结果(或预先计算的搜索结果集合)存储这两个参数λi和ti,重新计算控制器2能够计算在任何给定时间点的预先计算的搜索结果i的有效性概率。如本文所使用的术语“有效性趋势”涉及有效性概率随时间推移的降低率(在也涵盖在本文中的示例中,它也可以表示有效性概率随时间推移的维护率)。此外,注意的是,重新计算控制器2可以永久地存储和维护参数λi以及每个预先计算的搜索结果的重新计算时间戳,而不是参数ti和由上述示例性函数产生的有效性概率。相反,后两个值可以按需动态计算,因为ti=当前时间-重新计算,并且有效性概率值取决于如例如由上述函数给予的λi和ti。
通常,预先计算的搜索结果被细分成份额,如图3所示,指示示例性份额D、D'、E、F、G和H。份额内的预先计算的搜索结果具有类似的失效特性,即,它们具有完全相同或类似的有效性趋势λi,并且因此具有完全相同或类似的有效性概率的变化函数。例如,如果预先计算的搜索结果是标价旅行建议,那么预先计算的搜索结果的份额可以由具有特定起始地和目的地位置的所有标价旅行建议形成,并且具有例如在给定时间框架,例如一个月内的出发日期(诸如于2014年8月出发的、城市对尼斯-纽约之间的旅行建议)。如果例如预先计算的搜索结果是指示诸如水位和空气污染的环境参数的数据记录,那么份额可以由特定地理区域的预先计算的搜索结果形成。一个份额内的预先计算的搜索结果的数量以及份额的数量取决于数据库系统1的特定实施例。份额可以包括任何数量的预先计算的搜索结果。
将预先计算的搜索结果分解为份额可以通过搜索平台4的数据库模型和结构来反映。例如,形成份额的每组预先计算的搜索结果可以保持在专用表(或其它合适的数据库结构)中。作为替代方案,预先计算的搜索结果可以包括指示它们所属的份额的参数。在这种情况下,每条数据库记录都包含份额字段。作为还有的替代方案,份额可以由单独的数据结构定义,诸如定义哪个预先计算的搜索结果与哪个份额相关联的份额表。定义份额的其它方式(诸如通过规则而不是在数据库模型和结构中反映的逻辑定义)也涵盖在本文中,并且不被这些示例排除。
此外,相关也可以存在于份额级别。第一份额的预先计算的搜索结果(例如图3的份额D)可以具有有效性趋势λi,并且因此有效性概率的下降函数与在另一个份额(例如图3的份额D')中的预先计算的搜索结果类似(在图3中由份额D和份额D'之间的实心箭头指示)。例如,在第一份额D中的所有预先计算的搜索结果的平均有效性趋势接近于在第二份额D'中的所有预先计算的搜索结果的平均有效性趋势(λD=0.1并且λD'=0.11),例如,并且,此外,在第一份额D中的预先计算的搜索结果和在第二份额D'中的预先计算的搜索结果就有效性行为而言是相互联系的,即,如果第一份额D中预先计算的搜索结果的很大一部分是无效的,那么有可能在第二份额D'中的预先计算的搜索结果的很大一部分也是无效的。例如,如果预先计算的搜索结果是标价旅行建议,那么份额D可以包括具有在2014年8月的出发日期的城市对尼斯-纽约的所有预先计算的标价旅行建议,并且份额D'可以包括具有在2014年9月的旅行日期的同一城市对尼斯-纽约的预先计算的标价旅行建议。例如,如果预先计算的搜索结果是指示诸如水位和空气污染的环境参数的数据记录,那么份额D和D'可以由与地理上相邻区域(诸如两个相邻国家)有关的数据记录形成。
此外,份额之间可能存在不同级别的相关性。例如,图3和下面给出的示例的份额D和D'是强相关的,并且因此,第一份额D中的预先计算的搜索结果和第二份额D'中的预先计算的搜索结果可能具有几乎完全相同的有效性特性。另一个份额,例如图3的份额F,可以仍然与份额D相关,但是份额D与份额F之间的相关性可能没有份额D与份额D'之间的相关性强。例如,如果预先计算的搜索结果是标价旅行建议,那么份额D可以包括具有在2014年8月的旅行日期的城市对尼斯-纽约的所有预先计算的标价旅行建议,并且份额F可以包括具有在2014年10月的旅行日期的同一城市对尼斯-纽约的预先计算的标价旅行建议。例如,如果预先计算的搜索结果是指示诸如水位和空气污染的环境参数的数据记录,那么份额D和份额F可以通过与仍然地理上彼此接近但不直接相邻的区域相关的数据记录形成。下面进一步给出用于确定预先计算的搜索结果的两个份额之间的相关性的具体示例。
出于说明的原因,以下描述涉及包含在如图3所示的份额D中的个别示例性预先计算的搜索结果i。但是,以下陈述同样适用于包含在任何份额中的任何预先计算的搜索结果。
确定有效性趋势
在一个方面,重新计算控制器2维护用于预先计算的搜索结果的概率模型。对于任何预先计算的搜索结果i,重新计算控制器2确定指示预先计算的搜索结果i的有效性概率的降低率的有效性趋势λi。例如,预先计算的搜索结果i可以具有每小时10%的有效性降低率,这意味着i有效的概率每个小时减少10%(λi=0.1)。在其第一次计算或重新计算时,i通常为100%有效(假设初始准确度为1)。在一个小时之后,i仍然有效的概率为90%。在两个小时之后,i的有效性为81%(=90%减少了另一个10%)。在三个小时之后,i的可能有效性为72.9%,等等。因此,有效性趋势λi是对预先计算的搜索结果i多长时间保持有效或者预先计算的搜索结果i由于底层原始数据的变化多快变得无效的度量。
有效性趋势λi基于预先计算的搜索结果i的有效性发展的长期经验来对有效性建模。因此,对于特定预先计算的搜索结果i的有效性趋势λi的值由i的至少三个过去的重新计算来确定。为确定λi所考虑的过去重新计算的次数越多,λi的值越可靠。重新计算控制器存储有效性趋势λi作为用于预先计算的搜索结果i的控制数据参数。
确定有效性趋势λi的一个难点是预先计算的搜索结果i的重新计算通常不会以等间隔的时间间隔发生。特别地,取决于所采用的重新计算策略,在i的两次随后的重新计算之间可以经过不同的时间段。
图4a给出的示例示出了预先计算的搜索结果i的一系列连续重新计算。在这个示例中,第一次重新计算是在i的先前计算之后的五个小时发生。重新计算表明预先计算的搜索结果i已经改变。但是,重新计算并不指示在先前计算和第一次重新计算之间的五个小时的时间间隔期间的哪个特定时间点处预先计算的搜索结果i实际上失效。然后,i的下一次(第二次)重新计算在两个小时后发生。重新计算表明i仍然有效(即i的重新计算实际上是不必要的)。随后,在经过另外七个小时的时间段之后,预先计算的搜索结果i没有被重新计算。该第三次重新计算再次表明i已经改变,即,i在七小时窗口中的某个(未知)时间点失效。然后,i的最后(第四次)重新计算在四小时后发生。再次,在此期间,预先计算的搜索结果i在四小时的时间间隔中的某个时间点处已经改变。
如这个示例所示,因此,如果在某段时间之后i的重新计算指示i不再有效,那么通常不确定在哪个确切的时间点预先计算的搜索结果i失效。
处理确定有效性趋势λi的这个问题存在几种可能性。一个选项是对于某个有限时间段在相对短的等距时间间隔内定期重新计算预先计算的搜索结果i(例如,对于四个星期的时间段每个小时一次)。以这种方式,可以以系统的方式确定λi。但是,这些重新计算是人为的,并且因此消耗大量附加的重新计算资源。
因此,替代地或附加地,可以采用统计措施来从所采用的重新计算策略内的i的通常非等距重新计算中导出λi。在一些实施例中,为此执行对λi的期望值的最大似然估计。最大似然估计是基于i的一系列重新计算对。每个重新计算对包括自从i的最后一次重新计算以来的时间以及指示自从i的最后一次重新计算以来i是否已经改变的标志。图4b介绍了这种一系列重新计算对的形式表示,根据该形式表示,自从i的最后第n次重新计算以来的时间被表示为Tn,并且改变标志被表示为bn。返回参考图4a的示例,图4a的重新计算系列可以被指定为元组{T1=300,b1=0;T2=120,b2=1;T3=420,b3=0;T4=240,b4=0}集合,Tn以分钟为单位给出,并且bn=0指示预先计算的搜索结果i在重新计算之前无效,并且bn=1指示预先计算的搜索结果仍然有效。在一些实施例中,重新计算控制器2将反映过去重新计算的这些数据保持为用于存储在搜索平台4中的任何预先计算的搜索结果的控制数据,并且在任何重新计算的过程中更新/扩展该数据。
最大似然估计通过建立要估计的与观察到的历史数据一致的有效性趋势值λi的似然函数以及通过确定该函数的最大值来估计预先计算的搜索结果i的有效性趋势λi的值。结果是有效性趋势λi的真实值的“受过训练的最佳猜测”。在这些实施例中的一些实施例中,计算通过最大似然法估计的有效性趋势λi的置信度值。该置信度值使得能够评估由最大似然法根据λi的真实值估计的λi值的潜在偏差。例如,这通过利用观察到的Fisher信息来实现,以评估λi的真实值位于置信区间内的概率。下面进一步描述应用最大似然估计来估计有效性趋势λi并获得置信因子的详细示例。
在其它实施例中,通过建立预先计算的搜索结果i随时间推移保持有效的概率的经验分布函数,并且然后通过回归经验分布函数来确定有效性趋势λi。这种方法在经验上估计在预先计算的搜索结果i的重新计算之后的特定时间点处的有效性概率的离散值。为此,可以跨重新计算时间点定义时间间隔。然后,沿着时间间隔移位不同大小的滑动窗口,并且针对每个不同的窗口大小评估预先计算的搜索结果i在时间间隔内没有失效的概率。这产生在特定时间点处的各个有效性概率值的序列,从中通过使用回归导出连续函数。通过建立经验分布函数来确定有效性趋势λi的选项在下面参考图7至图9更详细地进行说明。
为了实现有效性趋势λi确定的高效(就处理时间和计算资源的利用率而言)实现,一些实施例使用MapReduce过程。MapReduce是用于例如由数据库系统利用并行、分布式算法来处理和生成大数据集的编程模型和对应实现。MapReduce程序包括Map过程和Reduce过程。首先,Map()过程执行过滤和排序(诸如按照起始地-目的地对排序标价旅行建议,每个起始地-目的地对一个队列)。其次,执行实现汇总操作(诸如计数每个队列中的标价旅行建议的数量)的Reduce()过程。MapReduce(还包括并行运行各种任务、管理实现数据库系统的各个部分之间的通信和数据传输、以及有利地促进并行执行、可扩展性、冗余和容错)。因此,如果要确定大量预先计算的搜索结果(例如,涉及对应的重新计算历史数据的数十万或数百万个标价旅行建议,例如以每个标价旅行建议的最后100次重新计算的次序)的有效性趋势λi(和/或瞬时有效率),那么可以有利地使用本示例。可以使用任何可用的MapReduce库(诸如例如由Apache Hadoop运送的库)来实现本示例。采用MapReduce范例来通过建立和回归经验分布函数确定有效性趋势λi的特定示例在下面进一步给出。
注意的是,有效性趋势λi不一定是特定于个体预先计算的搜索结果i的数值。相反,有效性趋势λi可以描述(在自从最后一次重新计算以来经过的某个时间之后)预先计算的搜索结果的整个集合(诸如预先计算的搜索结果的份额、预先计算的搜索结果的份额的子部分或预先计算的搜索结果的几个份额)的有效性概率。例如,有效性趋势值λ可以是一组预先计算的搜索结果的聚合值,诸如用于第一份额D的预先计算的搜索结果的公共有效性趋势λDavg。为此,几个相关的预先计算的搜索结果被一起考虑,以便获得其公共有效性趋势值。返回参考以上讨论的图4b的示例,不仅考虑了预先计算的搜索结果i的重新计算历史{T1,b1;T2,b2;T3,b3;T4,b4}(参见图4a),而且还考虑了与i相关的预先计算的搜索结果i'的重新计算历史:{T1',b1';T2',b2';T3',b3'}。对于预先计算的搜索结果i和i'两者共同的有效性趋势值基于{T1,b1;T2,b2;T3,b3;T4,b4;T1',b1';T2',b2';T3',b3'}来估计。这可以一般推广到多于两个预先计算的搜索结果(只要它们如以上参考图3所述的相关),诸如份额D内的所有预先计算的搜索结果。为了获得统计上相关的数值,在特定于需要将估计基于更长的重新计算历史(以便具有相当多的元组)的一个(或少数)预先计算的搜索结果的有效性趋势值和估计对仅需要考虑较最近的重新计算历史(以有效趋势值的显著性/特异性为代价)的更多数量的相关预先计算的搜索结果公共的有效性趋势值之间通常存在权衡。
因此,在一些实施例中,包含在第一份额D中的特定预先计算的搜索结果i的有效性趋势λi从用于第一份额D的预先计算的搜索结果的公共有效性趋势λDavg导出,例如,λi=λDavg。在这些实施例中,有效性趋势因此仅在份额的级别确定,而不是针对各个搜索结果。
确定瞬时有效率
虽然有效性趋势λi指示预先计算的搜索结果i的长期变化率,但是瞬时有效率指示最近的有效率。与基于更广泛的历史数据(包括至少三次过去的预先计算的搜索结果i的重新计算,但通常显著更高数量的重新计算,诸如100、200、500或1000或更多的重新计算)确定的有效性趋势λi对照,瞬时有效率仅通过考虑恰好两个重新计算来计算。
如以上参考图4所解释的,个别预先计算的搜索结果i的重新计算就在重新计算时预先计算的搜索结果是否有效而言产生二进制结果:预先计算的搜索结果i或者是有效的(标志bi例如被设置为1),或者发现预先计算的搜索结果是无效的并且i的重新计算的值与重新计算之前的i的先前值不同(并且标志bi例如被设置为0)。
因此,为了确定预先计算的搜索结果i的瞬时有效率的有意义的值,考虑与预先计算的搜索结果i相关的另外数量的预先计算的搜索结果的重新计算。术语“相关”这里再次指的是就其有效性概率特性而言在预先计算的搜索结果之间的相关性,如以上在引入份额概念的过程中所描述的(图3)。因此,预先计算的搜索结果i的瞬时有效率通常在其中包含预先计算的搜索结果i的份额的级别上确定。例如,在特定份额D中的所有预先计算的搜索结果被认为是彼此相关的。例如,如果特定份额D中的所有预先计算的搜索结果在一起被重新计算,那么所有这些预先计算的搜索结果的最后两次重新计算(被称为“当前”重新计算和“先前”重新计算)被考虑,并且份额D中的所有这些预先计算的搜索结果的瞬时有效率的公共值被确定。在另一个示例中,即使份额D中的所有预先计算的搜索结果在当前重新计算期间被重新计算,也只有份额D中的预先计算的搜索结果的(代表性,例如均匀分布的)子部分被考虑用于确定瞬时有效率在另一个示例中,只有份额D中的预先计算的搜索结果的一部分通过当前重新计算来重新计算,并且预先计算的搜索结果的该部分的或者全部或者子部分被考虑用于确定瞬时有效率在还有的示例中,只有份额D中的预先计算的搜索结果的一部分通过当前重新计算来重新计算,但是还没有通过当前重新计算但只通过较早重新计算来重新计算的其它预先计算的搜索结果同样被考虑用于确定瞬时有效率通常,与预先计算的搜索结果i相关的任何预先计算的搜索结果的最后两次重新计算可以被考虑用于确定瞬时有效率而不管相关预先计算的搜索结果的最后两次重新计算在哪个时间点发生。
考虑用于确定瞬时有效率的预先计算的搜索结果的数量取决于包含预先计算的搜索结果i的份额D中的预先计算的搜索结果的数量。考虑用于确定瞬时有效率的相关预先计算的搜索结果的数量可以例如在10、50、100、1000、10000、50000或100000或更多个预先计算的搜索结果的范围内。考虑用于确定瞬时有效率的预先计算的搜索结果的数量越高,瞬时有效率的统计意义越高。因此,重新计算控制器2可以采用用于被考虑用于确定瞬时有效率的预先计算的搜索结果的数量的最小阈值。
类似地,如以上参考图4所示,各个预先计算的搜索结果的连续重新计算间隔通常不等距。对于被认为用于确定瞬时有效率的多个相关预先计算的搜索结果的最后一个重新计算间隔(即两次最后重新计算之间的时间段)通常也是这样。这通过图5a和图5b的示例示出。
图5a示出了具有四个预先计算的搜索结果的示例,其编号为1至4(出于说明的原因,示出的预先计算的搜索结果的数量小)。这些预先计算的搜索结果中的每一个根据在不同时间点采用的重新计算策略被重新计算。这也导致图5a所示的第一重新计算和第二重新计算之间的重新计算间隔的长度不同。例如,预先计算的搜索结果1和2的重新计算间隔是3小时(虽然预先计算的搜索结果1和2的重新计算点彼此不同),因为重新计算策略规定在三个小时之后就已经需要进一步的重新计算。预先计算的搜索结果3的重新计算间隔为5小时,预先计算的搜索结果4的重新计算间隔为7小时。图5b再次描绘了重新计算的形式指示,其中Ti表示预先计算的搜索结果i的最近重新计算间隔的持续时间,并且bi是指示是否已经发现相应的预先计算的搜索结果i在第二次重新计算时有效的标志。
由于一般不同的、非等距的最后一次重新计算间隔,瞬时有效率的确定面临与如上所述的有效性趋势的确定相似的问题,因为通常不确定在最后一个重新计算间隔内的哪个确切时间点处相应预先计算的搜索结果变得无效。由于这些原因,以上相对于确定有效性趋势描述的相同机制也可以被采用用于确定瞬时有效率(诸如最大似然估计和建立经验分布函数)。类似于以上对于确定所描述的,瞬时有效率的确定也可以利用MapReduce过程。为了避免重复,参考以上相应的解释和下面给出的更具体的示例。
可选地,响应于预先计算的搜索结果i的重新计算,执行针对预先计算的搜索结果i的瞬时有效率的确定。更具体而言,针对预先计算的搜索结果i的瞬时有效率的确定响应于由所采用的通常重新计算策略启动的预先计算的搜索结果i的重新计算而执行,即,鉴于与i相关联的有效性概率,重新计算控制器2确定预先计算的搜索结果i的重新计算是必要的。以这种方式,诸如上述采样过程的人为重新计算是不必要的,并且重新计算资源以高效的方式加以利用。
但是,如前所述,对于预先计算的搜索结果i,确定瞬时有效率也可以考虑与i相关的其它预先计算的搜索结果的最后两次重新计算,虽然这些其它预先计算的搜索结果在当前的重新计算期间不被重新计算,而是其最近的重新计算在较早的时间点发生。再次参见图5a和5b,预先计算的搜索结果3由当前重新计算重新计算,并且预先计算的搜索结果3的瞬时有效率相应地基于b3的值来确定。为此,也考虑预先计算的搜索结果1、2和4的最后两次重新计算以及bi、b2和b4的对应值用于的确定,这里假定预先计算的搜索结果1、2和4与预先计算的搜索结果3相关。如图5a所示,预先计算的搜索结果1、2和4的最近重新计算在比预先计算的搜索结果3的当前重新计算更早的时间点发生。另一方面,瞬时有效率的目的是指示最近的、更新的类似快照的有效率,可能期望仅将相关的预先计算的搜索结果包括在在某个过去时间框架内经历其最近重新计算的瞬时有效率的确定中。为此,重新计算控制器2可选地维护规定自从最近重新计算以来经过的最大时间量的重新计算时间阈值。在这些实施例中,仅考虑与预先计算的搜索结果i相关的预先计算的搜索结果以用于确定在重新计算时间阈值内具有最近重新计算的瞬时有效率
可选地,可以组合地采用最小数量阈值和重新计算时间阈值。
比较有效性趋势和瞬时有效率并且调整在第二份额中的预先计算的搜索结果的
有效性概率
在确定有效性趋势λi和瞬时有效率的值之后,重新计算控制器2执行两个参数之间的比较。比较可以例如是两个值的实际比较,但也可以包括预先计算的搜索结果的某个(假设的)年龄。换句话说,比较还可以被执行为在重新计算之后的某个时间的有效性概率(诸如在重新计算之后的10小时的有效性概率),基于所确定的有效性趋势λi的值的有效性概率和基于所确定的瞬时有效率的值的有效性概率的比较。从数学的角度来看,这两种方法是相当的。
该比较分别产生在有效性趋势λi和瞬时有效率之间或在基于所确定的有效性趋势λi的值的有效性概率和基于所确定的瞬时有效率的值的有效性概率之间的差异。所确定的差异然后与给定的差异阈值(诸如10%有效性概率差异)进行比较。如果差异超过阈值,那么假定已发生在概率模型中没有反映出的、对预先计算的搜索结果i的有效性有害的事件。在这种情况下,重新计算控制器继续调整与和预先计算的搜索结果i相关的其它预先计算的搜索结果相关联的有效性概率,因为这些其它预先计算的搜索结果的有效性也可能受到检测到的事件的负面影响。
通常,为调整其它预先计算的搜索结果的有效性概率所考虑的相关性位于份额级别。如以上参考图3所述,份额之间存在不同级别的相关性。例如,作为预先计算的搜索结果i的份额的份额D可以与份额D'强相关。份额D与份额F之间的相关性可以处于中等级别。并且在D与图3所示的其它份额之间可以只存在小的相关性。可以采用相关性阈值来决定两个份额是否彼此相关。如果份额之间的相关性超过阈值,那么这两个份额被认为是相互相关的。由于检测到的有效性趋势λi和瞬时有效率之间的差异意味着预先计算的搜索结果i的最近有效性低于由概率模型给出的长期有效性概率,进而,这意味着在相关的第二份额D'中的其它预先计算的搜索结果的当前有效性可能低于长期有效性概率,因此第二份额D'中的其它预先计算的搜索结果的有效性概率要被减少。在一些实施例中,第二份额D'中的其它预先计算的搜索结果的有效性概率的减少量取决于在有效性趋势λi和瞬时有效率之间检测到的差异的量,即,有效性趋势λi和瞬时有效率之间的差异越大,第二份额D'中的其它预先计算的搜索结果的有效性概率的减少越多。
在一些实施例中,两个份额D和D'之间的相关性程度通过使用线性回归在以下之间建立关系模型来确定:
-份额级别有效性趋势λD和份额级别瞬时有效率之间的差异,λD指示在第一份额D中的预先计算的搜索结果的概率变化率(例如,D中的所有预先计算的搜索结果的平均有效性趋势),是与第一份额D中的预先计算的搜索结果相关的瞬时有效率(例如,基于D中的所有预先计算的搜索结果的最后两次重新计算确定的瞬时有效率),以及
-份额级别有效性趋势λD′和份额级别瞬时有效率之间的差异,λD′指示第二份额D'中的预先计算的搜索结果的有效性概率的变化率(例如,D中的所有预先计算的搜索结果的平均有效性趋势),是与第二份额D'中的预先计算的搜索结果相关的瞬时有效率(例如,基于D'中的所有预先计算的搜索结果的最后两次重新计算确定的瞬时有效率)。
如果两个份额级别瞬时有效率和之间的协方差σDD′超过给定阈值(诸如),那么份额级别有效性趋势λD和份额级别瞬时有效率之间的差异可能意味着对于D'在份额级别有效性趋势λD′和份额级别瞬时有效率之间存在类似的差异。
在一些实施例中,根据第一份额D和第二份额D'之间的相关程度来调整与包括在第二份额D'中的其它预先计算的搜索结果相关联的有效性趋势。为此,例如基于如上所述的瞬时有效率和瞬时有效率之间的协方差来确定由搜索平台4维护的每两个份额D和D'之间的相关程度。
在一些实施例中,第二份额D'中的预先计算的搜索结果的有效性概率的减少量与第一份额D和第二份额D'之间的相关程度成比例。
在其它实施例中,第二份额D'中的预先计算的搜索结果的有效性概率的减少量取决于在第一份额D中的有效性趋势λD和瞬时有效率之间检测到的差异量以及在第一份额D和第二份额D'之间的相关程度两者。通过使用线性回归,两个份额D和D'之间关于它们的预先计算的搜索结果的有效性趋势值和瞬时有效率之间的差异的相关性可以通过以下关系来建模:
通过引入残差值ε,这个关系可以被重新写成以下公式:
由该回归引起的残差参数εDD′可以被建模,例如,通过建立εDD′在99%的时间在给定值ε99%以下。如果份额级别有效性趋势λD′和份额级别瞬时有效率之间的模型化差异(等式左侧的项)低于相对频繁的残差值(比如ε99%),那么差值的量和两个份额D和D'之间的相关性被认为是微不足道的,并且不执行第二份额D'中的预先计算的搜索结果的有效性概率的调整。否则,根据所确定的差值和两个份额D和D'之间的相关性来调整第二份额D'中的预先计算的搜索结果的有效性概率。重新计算控制器2可以将后一公式应用到由搜索平台4维护的任何第二份额D'。
有效性概率的调整(即,减少)可以以各种方式执行。在一些实施例中,第二份额D'中的预先计算的搜索结果的有效性趋势值λi(以及有效性趋势λD′,分别)被减少。在其它实施例中,第二份额D'中的预先计算的搜索结果的年龄(即,自从最后一次重新计算以来的时间)被人为增加,即,D'的年龄tD′被改变到使得由瞬时有效率给出的D'的有效性概率函数反映在基于有效性趋势的调整后的有效性概率函数中,即,然后,改变的年龄值由给出。
在其它实施例中,有效性概率值(从至少有效性趋势值和年龄导出)被减少绝对值或相对值。
触发重新计算
最后,重新计算控制器2生成重新计算命令并向计算平台3发出重新计算命令以基于与预先计算的搜索结果相关联的有效性概率来重新计算预先计算的搜索结果的一部分。
现在已经在更一般的功能层面上描述了识别潜在无效的预先计算的搜索并且在重新计算策略中考虑这种识别的本方法。由重新计算控制器2执行的结果产生的过程通过图6进行可视化。在12处,重新计算控制器2确定针对预先计算的搜索结果i的有效性趋势λi。接下来,在13处,重新计算控制器确定指示预先计算的搜索结果i的最近有效率的瞬时有效率随后,在14处,重新计算控制器2将有效性趋势λi与瞬时有效率进行比较。如果瞬时有效率显著大于有效性趋势λi,即,两者之间的差异超过给定阈值(由图6中的“>>”指示),那么过程进行到活动15处,在该处,重新计算控制器2改变与预先计算的搜索结果i相关的预先计算的搜索结果的有效性概率。更具体而言,改变与预先计算的搜索结果i的份额D相关的份额D'中包含的预先计算的搜索结果的有效性概率。该改变考虑了在14处确定的有效性趋势λi与瞬时有效率之间的差异的程度。此外,15处的改变可以考虑预先计算的搜索结果i(或其中包含i的份额D)和其有效性概率要被改变的其它预先计算的搜索结果(或其中包括这些其它预先计算的搜索结果的(一个或多个)份额D')之间的相关程度。
接下来,在16处,重新计算控制器基于取决于所采用的重新计算策略与预先计算的搜索结果相关联的有效性概率来启动预先计算的搜索结果的重新计算。例如,相对于具有较低有效性概率的预先计算的搜索结果而不是具有较高有效性概率的其它预先计算的搜索结果,来生成重新计算顺序。这可以例如通过使用有效性概率的阈值来实现:具有低于这种阈值的有效性概率的预先计算的搜索结果需要被重新计算。因此,相应重新计算顺序由重新计算控制器生成并发出。具有高于这种阈值的有效性概率的预先计算的搜索结果被认为可能仍然有效,并且因此不需要被重新计算。因此,相对于这些预先计算的搜索结果不会发出重新计算命令。还可以采用更复杂的重新计算策略,例如,如欧洲申请14290040.6所描述的。
回到参考图6,如果活动14已经表明瞬时有效率不显著低于有效性趋势λi,即不超过给定的差值阈值,那么活动15不执行。在这种情况下,重新计算控制器2在16处用原始的、没有改变的有效性概率的值启动重新计算。如果执行活动15,那么重新计算控制器2基于已经在活动15处被改变的这些有效性概率启动重新计算。在15处执行的有效性概率的改变会导致其有效性概率被改变的这些预先计算的搜索结果(具有改变的有效性概率的这些预先计算的搜索结果的一部分)的重新计算,因为重新计算策略可以规定具有最低有效性概率的预先计算的搜索结果要被优先重新计算(当然,重新计算策略也可以考虑其它因素,诸如预先计算的搜索结果的流行性)。以这种方式,由活动12至15实现的潜在无效的预先计算的搜索结果的确定导致由搜索平台4存储的预先计算的搜索结果的一般更高的有效性。
响应于接收到由计算平台3响应于活动16而计算的重新计算的搜索结果,重新计算控制器2可以进入下一个循环(如图6中箭头8和箭头9所示),从确定重新计算的结果i的有效性趋势值λi开始,或者如果对于重新计算的搜索结果i,跳过活动12(因为有效性趋势值λi已经在较早的时间点被确定并且更新被认为是不必要的),那么从确定重新计算的搜索结果i的瞬时有效率值开始。
虽然已经将图6的过程描述为活动12至16的顺序过程,但是这些活动在实践中不必以严格顺序的方式执行。相反,例如,活动12和13可以由不同的控制模块来执行,这些控制模块定期地和并行地估计和更新所有预先计算的搜索结果的有效性趋势和瞬时有效率值(还参见下面进一步描述的图12的示例)。因此,例如,活动13、14和15可以由控制模块以图6所示的顺序执行,但是活动12和16可以由其它控制模块并行地并且独立于活动13至15执行。
估计经验分布函数
现在转向实现上述更一般功能的特定示例的更具体的描述,图7至图9涉及用于确定有效性趋势λi和/或瞬时有效率的特定实现示例,即,预先计算的搜索结果i的经验累积分布函数的推导,表示为指定预先计算的搜索结果i在时间t内不会变得无效的概率的Fi(t)。注意的是,以下描述再次适用于任何预先计算的搜索结果i,或者替代地也适用于预先计算的搜索结果集合(例如,适用于预先计算的搜索结果的完整份额或份额的部分)。
介绍,图7首先给出了一般过程流程概述。通常,经验分布函数是从预先计算的搜索结果i的先前重新计算的统计导出的。因此,作为第一活动,预先计算的搜索结果i的过去变化在17处被编译。这种过去变化的编译的基础是例如由如以上参考图4所描述的重新计算控制器维护的控制数据(即指定预先计算的搜索结果i的一系列过去重新计算的元组集合)。附加地或作为替代方案,搜索平台4和/或重新计算控制器2(或诸如历史数据库的另一个实体)可以维护预先计算的搜索结果i的历史版本,例如,预先计算的搜索结果i的过去值以及相关联的、指示在哪个时间或时间间隔i的相应历史值被存储在搜索平台4中的时间戳。活动17的目标是获得预先计算的搜索i的历史发展的数据结构。
第二活动18是在预先计算的搜索结果i的重新计算之后的特定时间点经验地估计有效性概率的离散值。例如,这是通过定义跨越其中假定预先计算的搜索结果是有效的重新计算时间点的时间间隔来实现的。这些时间间隔在下文中被称为“稳定时段”。由于在两次重新计算之间的预先计算的搜索结果失效的确切时间点是未知的,因此假定–作为假设–失效发生在导致预先计算的搜索结果的不同值的两次后续重新计算之间的中间。因此,跨越第n次重新计算的稳定时段被定义为在第n-1次重新计算和第n次重新计算之间的时间间隔的中间处开始并且在第n次重新计算和第n+1次重新计算之间的时间间隔的中间处结束的时间段。这通过图8a进行可视化,其中示出了预先计算的搜索结果i在时间T0、T1、T2、T3和T4的四次重新计算。在T0处的重新计算导致预先计算的搜索结果i的值P0。在T1和T2处的重新计算分别导致预先计算的搜索结果i的值P1和P2。预先计算的搜索结果i的值P3是在时间T3处的重新计算的结果(图8a所示的增加步骤函数指示预先计算的搜索结果i的值已经增加直到T2,即P0<P1<P2,但是P3=P2)。最后,在时间T4的重新计算导致低于P3的值P4。在这些重新计算时间Tn之前、产生与Pn-1不同的Pn的半个时间点通过(Tn+Tn-1)/2给出,并且被表示为Cq。因此,在这个示例中,跨越时间T1处的重新计算(产生P1≠P0)的稳定时段被定义为C1-C0,其中C1由(T1+T2)/2给出,并且C0由(T0+T1)/2给出。因此,作为推导Fi(t)的假设,假定预先计算的搜索结果i在稳定时段C1-C0内有效,具有值P1,即,值P0在C0失效并且值P1在C1失效。类似地,跨越重新计算时间T2(产生P2≠P1)的稳定时段被定义为C2-C1,其中C2由(T4+T3)/2给出,因为只有在T4处的重新计算(但不是在时间T3处的重新计算)产生不同的结果(P2=P3≠P4),因此,作为推导Fi(t)的假设,假定预先计算的搜索结果i在稳定时段C2-C1内有效,具有值P2=P3,即,值P1在C1失效,并且值P2=P3仅在C2失效。
对于在感兴趣的历史重新计算上定义的一组稳定时段,预先计算的搜索结果i在k个时间单位内没有失效的概率然后被定义为:
其中dt表示时基(例如,分钟或小时、10分钟、0.5小时或2小时等),并且k表示根据时基的时间单位的数量(例如,k=3并且时基为10分钟,3dt=3×10=30分钟)。
该公式的效果通过图8b进行可视化。在该示例中,单个稳定时段C1-C0被定义为C0=20分钟并且C1=70分钟,即,假定预先计算的搜索结果i的失效发生在C0=20分钟时和C1=70分钟时的时间(不在此间隔之间)。时基被选择为10分钟并且k=2(即2×10分钟=20分钟)。因此,kdt形成20分钟的时间窗口。为了确定(在第一次重新计算之后)的kdt处的重新计算是否产生预先计算的搜索结果i的不同值,该时间窗口然后滑过稳定时段(由图8b中正在进行的2dt窗口指示)。在前三个位置期间,预先计算的搜索结果i保持有效,因为在C0处更新的预先计算的搜索结果被假定仅在C1处(不是更早)改变。但是,在滑动窗口的两个最后两个位置期间,检测到预先计算的搜索结果i的失效,因为2dt窗口到达或与预先计算的搜索结果i在C1处的下一个假定的变化重叠。因此,在稳定时段C1-C0中的任何20分钟内预先计算的搜索结果i没有失效的概率是3/5,因为在五个滑动窗口位置中的三个中没有检测到i的失效。返回参考以上等式,这由P(no change|k=2)=(70-20-2*10)/(70-20)=3/5给出。注意的是,出于说明的原因,这是简化的示例。在实践中,通常将存在多个稳定时段(对于为预先计算的搜索结果产生不同值的每对重新计算)。因此,如以上阐述的滑动窗口机制将对于每个现有的稳定时段执行并通过以上等式进行处理。
离散有效性概率值的估计(活动17)包括改变时基单位的数量k并且计算任何给定k的有效性概率值(例如,如果时基为10分钟,那么滑动窗口大小可以从10分钟,即k=1改变为最多48小时,即k=288)。
换句话说,该算法的目标是:在假定预先计算的搜索结果i的失效时间点(C0、C1、...)是已知的并且如果预先计算的搜索结果i的第一次重新计算在C0和C1之间的任何时间t0处执行并且预先计算的搜索结果i的第二次重新计算发生在一段时间之后(即kdt之后,在t1处)的情况下,确定预先计算的搜索结果i的两个后续重新计算完全相同的概率。对于该估计,采用C0和CQ之间可能的各种不同的t0,并且对于这些第一次重新计算时间中的每一个,检查在t1处(即,t0+kdt)的第二次重新计算是否产生不同的预先计算的搜索结果i,即,在t0和t0+kdt之间的Ci处是否存在失效。如果,例如,对于80%的t0的测试(滑动)时间,预先计算的搜索结果i在t1=t0+kdt处的第二次重新计算产生相同的预先计算的搜索结果i,那么认为预先计算的搜索结果i在其计算之后的kdt仍然有效的概率为80%,即,P(在kdt之后有效)=0.8。然后,用不同的k值执行相同的处理。这产生离散的有效性概率值,诸如P(在1小时之后有效)=0.990,P(在2小时之后有效)=0.981,P(在3小时之后有效)=...,等等。
因此,以这种方式,活动17的结果是在特定时间点处的一系列个体有效性概率值,如图9a所示。
现在回到参考图7,经验分布函数估计的高级过程的最后一个活动18由个体有效性概率值的指数回归形成,以便确定对应于从活动17产生的离散有效性概率值的最佳拟合函数。这通过众所周知的回归方法来实现。如图9b所示,回归分别得出λi和的值。
在下文中,描述了通过建立Fi(t)来确定有效性趋势λi的更具体的示例。在这个示例中,预先计算的搜索结果是旅行相关的数据,更具体地,是标价旅行建议。搜索平台4预先计算和存储每个提供的旅行的最低价格。但是,以下示例不特定于这种旅行相关的数据,而是也可以被转变为其它类型的预先计算的搜索结果。
该示例的一个特性是活动17和18由两个连续的MapReduce作业执行。本示例的第一MapReduce作业涉及活动17,并且执行由搜索平台4存储并由重新计算控制器2管理的标价旅行建议的价格历史重建。由搜索平台4存储的每个标价旅行建议具有若干数据字段,诸如起始地、目的地、出发日期、返回日期、提供建议的旅行社的ID以及价格。重新计算控制器2保持与标价旅行建议相关联的附加控制数据,诸如最后一次重新计算的时间戳。此外,重新计算控制器2或可替代地,可由重新计算控制器2访问的另一个实体(诸如历史数据库)维护标价旅行建议的历史版本,包括较早的重新计算的前期价格和时间戳。用于历史标价旅行建议的价格历史重建的数据库关键字是例如数据字段旅行社ID、起始地、目的地、出发日期和返回日期的组合。价格历史重建的目标是:对于每个旅行建议的每个历史版本,获得与每次重新计算相关联的最便宜的价格和时间戳。这是通过以下Map/Reduce过程完成的:
-Map过程将重新计算时间戳和价格的元组与每个关键字相关联。
-Reduce过程将重新计算时间戳和价格的排序元组列表与关键字相关联。
示例性标价旅行建议的示例性结果如下:
关键字是PARAF08AA,NCE,LON,15/02/2012,20/02/2012,其中PARAF08AA是旅行社ID,NCE是起始地(尼斯的机场代码),LON是目的地(伦敦大都市区的机场代码),15/02/2012是出发日期并且20/02/2012是返回日期。由该关键字定义的旅行建议与重新计算时间戳和由重新计算产生并通过重新计算时间戳排序的价格的元组列表相关联,诸如(15/01/2012,150),(16/01/2012,160),(17/01/2012,160)等,第一个串(诸如15/01/2012)指示重新计算时间戳,第二个数字(诸如150)指定以欧元为单位的价格(注意的是,在这个示例中的时间戳出于简单化的原因是以天为粒度的,但实际上,时间戳的分辨率更高,诸如分钟或秒)。因此,在这个示例中,示出了在连续三天上的三次计算。最初示例性旅行建议可用的最便宜价格是150欧元,并且在头两次计算之间的某个时间点处增加了10欧元。
例如,通过采用以上详细描述的滑动窗口技术,执行第二MapReduce作业以实现经验有效性估计(活动18)。为此,对于所有可行的k值(例如10分钟和48小时之间的时间单位),计算包含价格变化的、位于所有可能的时间窗口位置之外的滑动时间窗口的数量。这是在关键字级别完成的,关键字为旅行社ID、起始地和目的地,以及附加地,重新计算和出发日期之间的时间范围(下文称为提前范围)。例如,关键字PARAF08AA,NCE,LON,15,30用于确定在15到30天之间的提前范围(即,在旅行建议的出发日期之前15到30天的时间窗口)中的价格变化的数量。
考虑提前范围的动机是为了避免关键字数量的爆炸增长,并且提高在关键字级别聚合的价格变化信息的统计意义。此外,可以定义提前范围组,并且针对每个提前范围组聚合所确定的价格变化。提前范围的示例性分组是{[0-3],[4-6],[7-13],[14-20],[21-30],[31-60],[61-90],[91-120],[121-180],[181,270],[271-361]},即,第一组由出发日期至出发日期前三天的时间窗口给出,第二组由出发日期前四到六天的时间窗口给出,等等。
第二MapReduce作业的简化示例性结果(确定变化的k值的离散有效性概率值)如下:
-稳定时段的总持续时间(即,来自满足关键字PARAF08AA,NCE,LON,15,30的所有标价旅行建议的所有元组的所有稳定时段的总和为120天)
-通过改变k=1,2,3,4,采用四个不同的滑动时间窗口,
-对于每个k值,计算:∑0≤i<nmax{Ci+1-Ci-kdt,0}
-对于k=l,这产生以下有效性概率:110/120(即,在可能的滑动窗口位置中的110个中已经产生标价旅行建议的价格在第二次重新计算时没有改变,即,对于k时间单位,价格在120个情况中的110个中是稳定的),对于k=2:95/120,对于k=3:72/120并且对于k=4:60/120。
最大似然估计
作为通过建立经验分布函数来确定有效性趋势λi和/或瞬时有效率的实现示例的替代方案,可以采用最大似然估计的机制来确定有效性趋势和/或瞬时有效率。再次,以下描述适用于任何预先计算的搜索结果i,并且,可替代地,也适用于预先计算的搜索结果集合(例如,适用于预先计算的搜索结果的完整份额或份额的部分)。这里也使用如以上介绍的用于指示预先计算的搜索结果i在重新计算的时间处是否无效的重新计算时间Tn和标志bn的符号。
最大似然估计是估计概率模型的参数的方法。当应用于数据集并给定概率模型时,最大似然估计提供对模型参数的估计。通常,最大似然估计选择使似然函数最大化的模型参数的值集合。因此,这种方法用观察到的数据使所选择的概率模型的对应关系最大化。
对于确定有效性趋势λi和/或瞬时有效率的当前问题,可以如下应用最大似然估计:估计是基于作为观察到的数据的、预先计算的搜索结果i的历史重新计算的样本(或预先计算的搜索结果集合,诸如份额D)。底层的概率模型被定义为对于具有有效性趋势λi的预先计算的搜索结果i,在时间Tn之后bn=1(即,i仍然有效)的概率为并且bn=0(即,i无效)的概率为因此,bn遵循经典的伯努利法则(Bernoulli law):
预先计算的搜索结果i的重新计算的历史样本可以被定义为b=(b1,b2,b3,...,bn)。该样本的似然函数L是该样本对于给定参数λi实际发生的概率:
如果要估计若干预先计算的搜索结果(例如,份额D内的所有预先计算的搜索结果)的公共有效性趋势λi和/或瞬时有效率那么这些多个预先计算的搜索结果的所有重新计算历史数据(Tn,bn)被合并并且输入到该公式中。
然后通过确定该似然函数L的最大值,即,确定导致最高似然性的λi的值来估计参数λi。似然函数的最大值根据以下等式来确定(在本示例中,先前等式的对数的一阶导数被设置为零):
该等式在数值上被解析为λi。
此外,可选地,使用置信因子来评估由最大似然法估计的λi与λi的真实值的潜在偏差(为了清楚起见,在下文中将λi的估计值表示为)。这例如通过评估λi的真实值位于置信区间中的概率来实现。为此,例如,利用了观察到的Fisher信息其被应用到当前情况,被定义为:
其中Φ是累积高斯分布函数。
因此,这产生最大似然估计的置信因子,其为:
这个置信因子可以用于评估λi在由δ给出的间隔之外的概率:
图10示出了由搜索平台4存储的预先计算的搜索结果和根据概率模型(在图10中表示为“模型”)基于长期有效性趋势λ的有效性概率的相应示例性值以及由瞬时有效率给出的有效性概率(在图10中称为“时刻”)的示例。在没有限制的情况下,图10的示例再次涉及作为旅行相关数据的预先计算的搜索结果,即,指示开始和起始地、出发和返回日期、预先计算的价格和其它相关旅行信息(诸如预订类别等)的标价旅行建议。在图10的示例中,标价旅行建议被分组为关键字起始地-目的地-出发日期的月份的份额,份额以矩阵形式显示(列用大写字母指示,行用数字指示,即,例如,具有起始地=巴黎,目的地=纽约,出发月份=八月的标价旅行建议被分组到份额B1中)。为简单起见,只显示了有限数量的份额。实际上,一般而言,可能存在显著更多数量的份额。
图10图示了其中根据以上阐述的方法已经为份额的一部分(即,份额B1、E1、D2、B3和C3)确定了有效性趋势λ和瞬时有效率的情况。基于图10所示的有效性趋势λ的有效性概率的值是相应份额中的所有预先计算的标价旅行建议的平均值。因此,例如,已基于份额B1的有效性趋势λB1确定0.87的值,意味着基于份额B1中的所有预先计算的标价旅行建议的有效性趋势λi的有效性概率的平均值为0.87,而基于与份额B1中的每个预先计算的标价旅行建议相关联的λi的各个值的有效性概率的各个值可能更低或更大。类似地,基于图10所示的瞬时有效率的有效性概率的值是平均值。瞬时有效率的有效性概率的值由份额的所有预先计算的标价旅行建议或者至少来自份额的预先计算的标价旅行建议的给定最小(代表性)子集的最近两次重新计算产生。例如,响应于由计算平台3执行的、包括份额B1的所有预先计算的标价旅行建议的最后一次重新计算,最近已确定基于B1的瞬时有效率的有效性概率的值(0.85)。例如,如果份额B1包括1000个标价旅行建议,那么份额B1的所有这1000个预先计算的标价旅行建议的最后一次重新计算将指示该1000个标价旅行建议中的约850个在重新计算的时间处是有效的(即重新计算这些850个价格的旅行建议没有改变价格的价值),而1000个标价旅行建议中的约150个是无效的(即,这150个标价旅行建议的重新计算产生与这150个标价旅行建议在重新计算之前所具有的不同的价格)。当然,可以对的实际确定应用考虑如上所述的预先计算的搜索结果的一般非等距的重新计算间隔的、更复杂的确定瞬时有效率的方法(最大似然估计或经验分布函数建立)。因此,在份额B1中的每个预先计算的标价旅行建议的个别级别,由给出的有效性概率也具有0.85的值(注意的是,这不一定意味着的这些值实际上由重新计算平台2作为控制数据维护,相反,在图10的示例中,的平均份额级别值由重新计算控制器2存储就足够了)。可替代地,包括份额B1的预先计算的标价旅行建议的最后一次重新计算循环只影响了份额B1的1000个预先计算的标价旅行建议中的500个,并且指示这500个预先计算的标价旅行建议中的425个仍然有效并且这500个预先计算的标价旅行建议中的75个是无效的。
此外,图10的各种份额之间存在不同级别的相关性。例如,在份额X1(A1至F1)、X2和X3之间分别(即在涉及特定起始地-目的地组合的图10的矩阵的一行内的份额之间)存在强相关性。在特定起始地-目的地组合的这些份额内,在连续月份的相邻份额之间存在特别强的相关性。另一方面,份额X1(第1行中的所有份额)仍然与份额X2(第2行中的所有份额)在中等程度上相关,例如,因为它们两者都涉及起始地在法国的旅行建议(第1行:巴黎,第2行:尼斯)。份额X1和X2之间的相关性对于涉及同一个月的份额(例如B1和B2之间)是较强的,在连续月份的份额之间(例如B1和C2之间)较不强,并且在涉及更远月份的份额之间(诸如1B和2F)更不强。另一方面,份额X3(第3行中的所有份额)与其它份额X1和X2几乎不相关,例如,份额X3涉及美国国内旅行,其中起始地=波士顿并且目的地=迈阿密,而份额X1和X2是指源自欧洲的旅行。
在图10的示例中,份额B1、E1、B3和C3的有效性趋势λ的值已经在较早的时间点确定。份额B1、E1、B3和C3的瞬时有效率的值也较早被确定,例如,在份额B1、E1、B3和C3中包含的预先计算的标价旅行建议的相应最后一次重新计算时(更具体而言,在重新计算相应份额中的所有预先计算的标价旅行建议或者重新计算相应份额中的预先计算的标价旅行建议的至少给定子集的相应最后一次重新计算时)。由重新计算控制器2触发并由计算平台3执行的恰恰最后一次重新计算循环现在与份额D2的预先计算的标价旅行建议相关(或者份额D2的所有预先计算的标价旅行建议或者给定的最小(代表性)子集-当然,最近的重新计算循环也可能重新计算其它份额的其它预先计算的标价旅行建议)。响应于份额D2的预先计算的标价旅行建议的重新计算,有效性趋势λD2的更新值被确定(图6的活动12-注意的是,有效性趋势λD2的确定也可以在这里跳过并且可能已在较早的时间点被执行,例如,在初始化或训练概率模型的过程中-由于有效性趋势是长期趋势,因此通常以比预先计算的搜索结果的各个重新计算显著更长的间隔确定有效性趋势是足够的),其在这里产生了0.85的有效性概率。此外,瞬时有效率的值从只产生0.62的有效性概率的最后一次重新计算(图6的活动13)导出。因此,例如,份额D2的1000个预先计算的标价旅行建议的最近的重新计算指示只有大约620个预先计算的标价旅行建议自从先前的重新计算以来仍然有效,但是大约380个预先计算的标价旅行建议被发现自从先前的重新计算以来已失效。
在已确定瞬时有效率的当前值之后,重新计算控制器2执行瞬时有效率和有效性趋势λD2的值之间的比较(图6的活动14)。如图10所示,这种比较还可以在由和λD2的不同值产生的有效性概率值的级别上执行。重新计算控制器2确定超过了瞬时有效率与有效性趋势λD2之间的差(例如,0.1、0.15或0.2的有效性概率差)的给定阈值。因此,重新计算控制器2启动与份额D2相关的份额的预先计算的标价旅行建议的有效性概率的改变(图6的活动15)。例如,由于份额E1与份额D2在中等级别相关联,因此重新计算控制器2通过将有效性概率的值从0.95减小12%到例如0.83来改变份额E1的有效性概率。此外,份额B1与份额D2相关,虽然这种相关性可能较不强。因此,重新计算控制器2还将有效性概率例如从0.87改变约9%到0.79。降低有效性概率可以例如通过修改相应预先计算的标价旅行建议的最后一个重新计算的时间戳或者通过存储绝对或相对的减少值作为附加的控制数据(例如,在份额E1的示例中,固定和绝对有效性概率减少值0.12)改变有效性趋势的值(λE1,λB1)来实现。
之后,重新计算控制器2做出下一个重新计算决定,以便根据所采用的重新计算策略来选择下一个要重新计算的预先计算的标价旅行建议(图6的活动16)。该决定是基于降低的有效性概率,即,例如,基于λE1和λB1的降低值,降低的有效性概率会导致比在没有重新计算控制器2完成的改变的情况下较早地重新计算份额E1和B1的预先计算的标价旅行建议。在份额E1和份额B1中的预先计算的标价旅行建议已经分别被重新计算之后,λE1和λB1的值可选地被新确定(例如,通过采用如以上详细描述的–图6的活动12–确定经验分布函数或最大似然估计的机制),或者,可替代地,重置为其先前值(因为可以预期,在重新计算之后,份额E1和份额B1中的预先计算的标价旅行建议的有效性像正常那样降低)。此外,和的值被再次确定(图6的活动13),这再次触发和分别与λE1 λB1的比较(图6的活动14),以及潜在地,相关份额的有效性概率的改变(图6的活动15)。
图11可视化与预先计算的搜索结果i相关联的有效性概率的改变(术语预先计算的搜索结果i在下文中涵盖以下两者:个别预先计算的搜索结果以及预先计算的搜索结果集合,诸如份额),如以上结合图6的活动15所描述的。在图11的示例中,粗直线20表示有效性概率以每小时0.01的速率降低(即,由线20表示的预先计算的搜索结果在一个小时内保持有效的概率为99%或者由线20表示的预先计算的搜索结果集合的99%在一小时内保持有效)。因此,线20可视化通过函数(λi=0.01为每小时1%的有效性降低率)近似/建模的预先计算的搜索结果i的有效性概率。因此,在预先计算的搜索结果i的最后一次重新计算之后18小时,预先计算的搜索结果的有效性概率被建模为e-0.01·18≈0.835。在该时间点,重新计算控制器2确定与预先计算的搜索结果i相关的预先计算的搜索结果j的瞬时有效率和有效性趋势λj之间的差异显著超过给定的差异阈值。因此,预先计算的搜索结果i的有效性概率取决于所确定的瞬时有效率和有效性趋势λj之间的差异的量,以及可选地,取决于i和j之间的相关性级别而减少,在图的示例中,从约0.835减少30%(≈0.25.)到大约0.585。结果产生的函数21然后用函数近似预先计算的搜索结果i的新减少的有效性概率。
图12图示实现上述方法的示例性重新计算控制器2的内部体系架构。根据图12的示例,重新计算控制器2包括以下部件:
-预先计算的搜索结果存储装置26是分布式数据储存库,其包含在给定时间段(诸如过去几个月)内由计算平台3计算的历史预先计算的搜索结果。预先计算的搜索结果由储存库管理器25插入到存储装置26中,储存库管理器25从计算平台3接收重新计算的搜索结果。
-有效性趋势评估器27:该部件分析预先计算的搜索结果的连续重新计算之间的差异,并且生成有效性趋势值λi。有效性趋势值λi(以及与预先计算的搜索结果相关联的其它控制数据)经由输入管理器31存储在内部数据表示30中。
-瞬时有效率评估器28:该部件由储存库管理器25在每次储存库管理器25从计算平台3接收到重新计算的搜索结果集合并且将该重新计算的搜索结果集合插入到内部数据表示中时触发。瞬时有效率评估器28通过比较每个预先计算的搜索结果的两个最后版本来确定瞬时有效率值瞬时有效率评估器28经由输入管理器31将与预先计算的搜索结果相关联的瞬时有效率值存储在内部数据表示30中。
-相关性评估器29:该部件确定预先计算的搜索结果的份额之间的相关性。它也可以负责管理预先计算的搜索结果的份额,即,首先将预先计算的搜索结果细分成份额,并将新创建/计算出的预先计算的搜索结果分配给相应的份额(如果细分成份额由数据库结构反映,但不一定必须是这种情况-如上所述,细分可以是根据给定规则的纯逻辑分割,诸如-在预先计算的搜索结果是标价旅行建议的示例中–特定起始地和目的地的标价旅行建议,并且分组成出发日期时间间隔,诸如对于在今天和今天+30天之间出发的特定起始地-目的地对的所有标价旅行建议(份额D1)、对于在今天+31天至今天+60天之间出发的同一起始地-目的地对的所有标价旅行建议(份额D2),等等)。与预先计算的搜索结果份额相关联的结果产生的相关因子经由输入管理器31存储在内部数据表示30中。
-内部数据表示部件30:该部件提供构建、存储、更新和访问表示存储在搜索平台4中的预先计算的搜索结果的控制数据的矩阵的工具。内部数据表示部件30的主要功能是提供存储在搜索平台4中的预先计算的搜索结果的“控制数据镜像”,其用作分析预先计算的搜索结果的基础,以便决定预先计算的搜索结果中的哪一个要在下一个重新计算循环期间重新计算。更精确地,内部数据表示部件30不保持如存储在搜索平台4中的预先计算的搜索结果的一对一拷贝,而是保持不必包括如存储在搜索平台4中的预先计算的搜索结果自身的适当的控制数据表示,但是另一方面,包括与预先计算的搜索结果相关联的控制数据,诸如其最后一次重新计算的时间,以及特别地,有效性趋势值λi和瞬时有效率值
-输入管理器31:该部件输入来自包括有效性趋势评估器27、瞬时有效率评估器28和相关性评估器29的各种源的控制数据。此外,输入管理器31接收用于维护概率模型的其它控制数据,诸如来自流行度数据库或数据源的流行度报告、来自重新计算成本数据库或数据源的重新计算成本测量、来自初始准确度数据库或数据源的初始准确度测量、和/或来自指示潜在地影响预先计算的搜索结果的有效性的实时事件的来源的实时事件信号。这种其它控制数据经由接口32输入,接口32示意性地表示输入管理器31到上述数据库或数据源中的任何一个的(一个或多个)连接。输入管理器31将传入的控制数据转换成适当的数据格式并更新表示如由内部数据表示部件30存储的预先计算的搜索结果的对应的控制数据矩阵。
-分析器33:该部件基于由内部数据表示部件30存储的矩阵计算由概率模型暗示的中间数据矩阵(即,从概率模型的控制数据导出的预先计算的搜索结果的有效性概率,诸如年龄、有效性趋势、流行度、初始准确度)。
-事件管理器34:该部件聚合关于实时事件信息的信息,并且相应地修正由概率模型给出的有效性预测。此外,该部件被增强以基于瞬时有效率值来识别未经由接口32从外部发信号通知的异步事件。为此,事件管理器34执行瞬时有效率值与和最近重新计算的搜索结果相关的份额的有效性趋势值λi之间的比较,并且如果比较指示瞬时有效率值离有效性趋势值λi太远,那么修正概率模型参数(有效性概率)。
-优化器35:该部件执行重新计算策略,例如重新计算频率定向的重新计算,以及考虑到内相关的预先计算的搜索结果的变化计算成本的预先计算的搜索结果的迭代选择,如在欧洲申请14290040.6中详细描述的。在已确定要重新计算预先计算的搜索结果之后,优化器35生成重新计算命令并经由接口36将这些重新计算命令发出到计算平台3。此外,优化器35更新存储在内部数据表示部件30中的这些预先计算的搜索结果的重新计算时间。
-有效性评估模块37是基于包括有效性趋势值λi的概率模型的参数生成预先计算的搜索结果随时间推移的有效性的统计信息的插件。统计信息被输出到外部评估显示器和/或用于呈现给用户。
最后,图13是计算机或服务器120的内部结构的示意图,该计算机或服务器120实现如本文所述的重新计算预先计算的搜索结果的机制。计算机或服务器120被布置为执行一组指令,以使其执行上述任何方法。计算机或服务器120包括处理器121、主存储器122和可选的无线网络接口123(诸如Wi-Fi和/或蓝牙接口)和/或2G/3G/4G移动网络接口设备,所有这些经由总线124彼此通信。它还包括静态存储器125(例如,不可去除的闪存和/或固态驱动器和/或可去除的Micro或Mini SD卡),其永久地存储软件,该软件使得计算机/服务器120能够执行重新计算控制器2的功能(诸如确定有效性趋势值、瞬时有效率值、比较两者、改变相关的预先计算的搜索结果的有效性概率、选择用于重新计算的预先计算的搜索结果等)并且可选地经由其有线和/或无线网络接口设备123在局域网或广域网内与客户端计算机/设备通信。此外,计算机/服务器120包括显示器127、用户界面控制模块129以及字母数字和光标输入设备128。可选地,可以存在附加的I/O接口126,诸如读卡器和USB接口。体现上述方法中的任何一个或全部的可执行指令集(即软件)130完全地或至少部分地永久驻留在非易失性存储器125中。当被执行时,相应的过程数据驻留在主存储器122和/或处理器121中。软件130还可以作为传播信号132通过有线或无线网络接口设备123从/向局域网或互联网内的软件服务器接收或发送。
虽然本文已经描述了根据本发明的教导构造的某些产品和方法,但是本专利的覆盖范围不限于此。相反,本专利涵盖了本发明教导的、在字面上或者根据等同原则完全落入所附权利要求范围内的所有实施例。
Claims (15)
1.一种用于管理预先计算的搜索结果的方法,所述方法在数据库环境中执行,所述数据库环境包括:
-至少一个搜索平台,用于维护预先计算的搜索结果,所述预先计算的搜索结果被细分成包括第一份额D的相关预先计算的搜索结果的多个份额;
-重新计算控制器,用于基于与所述预先计算的搜索结果相关联的有效性概率来控制所述预先计算的搜索结果的重新计算;以及
-计算平台,用于重新计算所述预先计算的搜索结果;
所述方法包括:
-由重新计算控制器确定指示预先计算的搜索结果i随时间推移的有效性概率的变化率的有效性趋势λi,所述预先计算的搜索结果i是第一份额D的成员,有效性趋势λi是从i的至少三次过去的重新计算导出的;
-响应于确定瞬时有效率和有效性趋势λi之间的差异超过给定程度,由重新计算控制器减少与包括在第二份额D'中的其它预先计算的搜索结果相关联的有效性概率,第二份额D'与第一份额D相关,其中,减少的量取决于瞬时有效率和有效性趋势λi之间的所述差异的量;
-由重新计算控制器向计算平台发出重新计算命令,以重新计算所述预先计算的搜索结果的一部分,所述一部分具有比具有高有效性概率的其他预先计算的搜索结果更低的有效性概率。
2.如权利要求1所述的方法,其中,与包含在第二份额D'中的其它预先计算的搜索结果相关联的有效性概率取决于第一份额D和第二份额D'之间的相关性程度来进行调整。
5.如权利要求1至4中任一项所述的方法,其中所述有效性趋势λi从针对第一份额D的预先计算的搜索结果的公共有效性趋势λDavg导出。
12.一种用于管理由搜索平台维护的预先计算的搜索结果的重新计算控制器,所述预先计算的搜索结果被细分成包括第一份额D的相关预先计算的搜索结果的多个份额,所述重新计算控制器包括一个或多个处理器以及包括指令的存储器,当所述指令被所述一个或多个处理器执行时,使得所述重新计算控制器通过如下操作基于与所述预先计算的搜索结果相关联的有效性概率来控制所述预先计算的搜索结果的重新计算:
-确定指示所述预先计算的搜索结果i随时间推移的有效性概率的变化率的有效性趋势λi,所述预先计算的搜索结果i是第一份额D的成员,有效性趋势λi是从i的至少三次过去的重新计算导出的;
-响应于确定瞬时有效率和有效性趋势λi之间的差异超过给定程度,减少与包括在第二份额D'中的其它预先计算的搜索结果相关联的有效性概率,第二份额D'与第一份额D相关,其中,减少的量取决于瞬时有效率和有效性趋势λi之间的所述差异的量;
-向计算平台发出重新计算命令,以重新计算所述预先计算的搜索结果的一部分,所述一部分具有比具有高有效性概率的其他预先计算的搜索结果更低的有效性概率。
13.如权利要求12所述的重新计算控制器,其中,所述指令当被所述一个或多个处理器执行时,使所述重新计算控制器执行如权利要求2至11中任一项所述的方法。
14.一种其上存储有计算机程序的非瞬态计算机可读存储介质,所述计算机程序包括指令,所述指令当被处理器执行时,使得所述处理器通过如下操作基于与预先计算的搜索结果相关联的有效性概率来控制预先计算的搜索结果的重新计算:
-确定指示预先计算的搜索结果i随时间推移的有效性概率的变化率的有效性趋势λi,所述预先计算的搜索结果i是第一份额D的成员,有效性趋势λi是从i的至少三次过去的重新计算导出的;
-响应于确定瞬时有效率和有效性趋势λi之间的差异超过给定程度,减少与包括在第二份额D'中的其它预先计算的搜索结果相关联的有效性概率,第二份额D'与第一份额D相关,其中,减少的量取决于瞬时有效率和有效性趋势λi之间的差异的量;
-向计算平台发出重新计算命令,以重新计算所述预先计算的搜索结果的一部分,所述一部分具有比具有较高有效性概率的其他预先计算的搜索结果更低的有效性概率。
15.如权利要求14所述的非瞬态计算机可读存储介质,其中所述指令当被所述处理器执行时,使得所述处理器执行如权利要求2至11中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/531,363 | 2014-11-03 | ||
EP14003698.9 | 2014-11-03 | ||
US14/531,363 US10395294B2 (en) | 2014-11-03 | 2014-11-03 | Managing pre-computed search results |
EP14003698.9A EP3016000B1 (en) | 2014-11-03 | 2014-11-03 | Managing pre-computed search results |
PCT/EP2015/002110 WO2016070964A1 (en) | 2014-11-03 | 2015-10-23 | Managing pre-computed search results |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107004026A CN107004026A (zh) | 2017-08-01 |
CN107004026B true CN107004026B (zh) | 2020-09-22 |
Family
ID=54347478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580068072.2A Active CN107004026B (zh) | 2014-11-03 | 2015-10-23 | 管理预先计算的搜索结果 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107004026B (zh) |
WO (1) | WO2016070964A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521526B2 (en) * | 2017-11-20 | 2019-12-31 | Nfl Players, Inc. | Hybrid method of assessing and predicting athletic performance |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128701A (en) | 1997-10-28 | 2000-10-03 | Cache Flow, Inc. | Adaptive and predictive cache refresh policy |
AU3638401A (en) | 1999-11-01 | 2001-05-14 | Ita Software, Inc. | Method and apparatus for providing availability of airline seats |
US7668740B1 (en) | 2000-09-22 | 2010-02-23 | Ita Software, Inc. | Method, system, and computer program product for interfacing with information sources |
DE10161822A1 (de) * | 2001-12-15 | 2003-07-10 | Joerg-Peter Schultheis | Umwandlung von Strichcode-Informationen in akustische Signale zur Übertragung via Telefonverbindung |
GB0414415D0 (en) * | 2004-06-28 | 2004-07-28 | Jeftel Ltd | Improvements relating to secure telecommunications |
US20060149713A1 (en) * | 2005-01-06 | 2006-07-06 | Sabre Inc. | System, method, and computer program product for improving accuracy of cache-based searches |
CN101030951B (zh) * | 2007-02-08 | 2010-11-24 | 华为技术有限公司 | 一种丢包补偿方法及装置 |
CN101741397A (zh) * | 2008-11-11 | 2010-06-16 | 中兴通讯股份有限公司 | Rs译码装置及其使用的关键多项式求解装置 |
US8478704B2 (en) * | 2010-11-22 | 2013-07-02 | Microsoft Corporation | Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components |
EP2541473A1 (en) | 2011-06-27 | 2013-01-02 | Amadeus S.A.S. | Method and system for a pre-shopping reservation system with increased search efficiency |
CN102193996B (zh) * | 2011-05-04 | 2012-10-10 | 浙江大学 | 基于移动设备的可视Web对象搜索引擎方法 |
ES2723794T3 (es) * | 2012-04-26 | 2019-09-02 | Amadeus Sas | Sistema de base de datos que usa informática orientada a lotes |
JP6162240B2 (ja) * | 2012-08-14 | 2017-07-12 | アマデウス エス.アー.エス.Amadeus S.A.S. | キャッシュ化データベース・クエリ結果の更新 |
-
2015
- 2015-10-23 CN CN201580068072.2A patent/CN107004026B/zh active Active
- 2015-10-23 WO PCT/EP2015/002110 patent/WO2016070964A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2016070964A1 (en) | 2016-05-12 |
CN107004026A (zh) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956955B2 (en) | Managing pre-computed search results | |
JP6162240B2 (ja) | キャッシュ化データベース・クエリ結果の更新 | |
ES2608392T3 (es) | Validez a largo plazo de resultados de solicitud pre-calculados | |
EP2842085B1 (en) | Database system using batch-oriented computation | |
US9235620B2 (en) | Updating cached database query results | |
US20130346396A1 (en) | Automatically updating a query | |
US20130073586A1 (en) | Database system using batch-oriented computation | |
US20160171008A1 (en) | Updating cached database query results | |
EP3128441B1 (en) | Handling data requests | |
WO2006074246A2 (en) | System, method, and computer program product for improving accuracy of cache-based searches | |
US9582536B2 (en) | Long-term validity of pre-computed request results | |
CN107004026B (zh) | 管理预先计算的搜索结果 | |
EP3016000B1 (en) | Managing pre-computed search results | |
WO2015124275A1 (en) | Long-term validity of pre-computed request results | |
EP2698729B1 (en) | Updating cached database query results | |
CN110377617B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
JP2024523377A (ja) | 人工知能ベースのホテル需要モデル | |
CN115700654A (zh) | 智能排班方法、装置、电子设备、介质和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |