利用批次处理和按需处理的组合以提供建议的系统和方法与流程

文档序号:12906723阅读:254来源:国知局
利用批次处理和按需处理的组合以提供建议的系统和方法与流程

本发明涉及一种用于提供建议的系统和方法,且更确切地说涉及执行可用于提供建议的算法的系统和方法。



背景技术:

建议系统在在线销售和数字媒体网站中变得越来越常见。这些系统常常使用建议算法和关于用户偏好及购买行为的信息来建议用户可能感兴趣的内容和/或商品(其可共同地被称作项目)。这些建议算法可例如由数据科学家开发,且接着移交给软件工程师用于最终译码,然后这些算法准备好向实际客户提供实际建议。此方案的潜在问题是,软件工程师不能完全理解算法背后的逻辑,且因此可能无意中改变其函数。建议系统的另一潜在问题是,其可能提供陈旧建议,这意味着其可能建议不再可用的项目(例如,所述项目可能不再有库存)和/或其不能考虑新库存(例如,如果建议算法在项目或库存数据库更新之前运行)。此外,建议系统依据其设计可能采取过度时间量提供建议,这可能使客户失望,从而潜在地致使公司失去潜在销售。



技术实现要素:

本发明的某些实施例是针对利用批次处理和按需处理的组合以便有效地且高效地提供建议的建议系统。此系统可包含一或多个数据库,其存储多个客户的客户数据、可用于向客户建议的多个项目的项目数据,以及利用客户数据和/或项目数据以提供建议的多个可组合算法中的每一者的可执行代码。所述系统还可包含批次处理结果数据存储库,其存储使用批次处理执行的可组合算法中的一或多者的结果。此外,所述系统可包含具有对应算法引擎接口的算法引擎。所述算法引擎接口可接受对可组合算法中的一或多者的调用并输出被调用的可组合算法的结果,其中由算法引擎接口接受的调用在正调用的可组合算法是指定为可使用批次处理执行还是指定为可使用按需处理执行之间不进行区分。算法引擎可确定被调用的可组合算法中的哪些指定为可使用批次处理执行,以及被调用的可组合算法中的哪些指定为可使用按需处理执行。算法引擎可通过执行指定为可使用按需处理执行的被调用的可组合算法的可执行代码来传回指定为可使用按需处理执行的被调用的可组合算法的结果。此外,算法引擎可通过从批次处理结果数据存储库获得指定为可使用批次处理执行的被调用的可组合算法的结果来传回指定为可使用批次-按需处理执行的被调用的可组合算法的结果。

根据某些实施例,算法引擎提供所述算法引擎传回到算法引擎接口的结果,使得算法引擎接口可输出所述结果。

根据某些实施例,在算法引擎执行用于指定为可使用按需处理执行的被调用的可组合算法中的一或多者的可执行代码的一或多个例项期间,算法引擎将指定为可使用按需处理执行的所述一或多个可组合算法的结果与从批次处理结果数据存储库获得的指定为可使用批次处理执行的被调用的可组合算法中的一或多者的结果组合。

根据某些实施例,在算法引擎执行用于指定为可使用按需处理执行的被调用的可组合算法中的一或多者的可执行代码的一或多个例项期间,算法引擎利用从批次处理结果数据存储库获得的一或多个结果作为到指定为可使用按需处理执行的被调用的可组合算法中的所述一或多者中的至少一者的一或多个输入。

根据某些实施例,指定为可使用批次处理执行的可组合算法中的所述一或多者中的每一者的可执行代码由除所述算法引擎以外的服务执行,且根据预定时间表执行。相比之下,指定为可使用按需处理执行的可组合算法中的所述一或多者中的每一者的可执行代码由算法引擎响应于被调用而执行。

根据某些实施例,可执行代码存储于算法数据库中的可组合算法中的至少一者唤起其它可组合算法中的两者或两者以上的组合,且包含用于组合或以其它方式使用被唤起的所述两个或两个以上其它可组合算法的结果的逻辑。

根据某些实施例,可组合算法中的每一者包含对应元数据和对应计算函数。可组合算法中的每一者的元数据可包含至少可组合算法的名称、可组合算法的作者和指针。可组合算法中的每一者的元数据还可包含关于可组合算法可使用按需处理还是使用批次处理来执行的指示。根据某些实施例,包含在指定为可使用按需处理执行的可组合算法的元数据中的指针指向对应计算函数;且包含在指定为可使用批次处理执行的可组合算法的元数据中的指针指向作为数据存储在批次处理结果数据存储库中的可组合算法的对应结果。

根据某些实施例,所述系统还包含高速缓冲存储器,其中算法引擎存储使用按需处理执行的可组合算法中的一或多者的结果,使得如果结果存储于高速缓冲存储器中的可组合算法中的所述一或多者中的至少一者在高速缓冲存储器间隔期间再次被调用,那么所述结果在由所述高速缓冲存储器间隔指定的时间周期内可用。

根据某些实施例,所述系统还包含图形用户接口(gui),其直接向客户或向负责为客户选择项目的中间人显示如使用算法引擎确定的关于针对客户建议的一或多个项目的信息。此外或作为替代,系统可包含gui,其使新的可组合算法的作者能够测试新的可组合算法并视觉化所述新的可组合算法的结果。

根据某些实施例,使用按需处理执行的可组合算法中的一或多者利用使用批次处理执行的且存储于结果数据存储库中的可组合算法中的一或多者的结果。在此类实施例中,使用按需处理执行的可组合算法中的一或多者的结果可用于(例如)向一或多个客户建议一或多个项目。

根据特定实施例,针对多个客户中的每一者存储的客户数据包含唯一客户识别符(客户id)和与客户相关联的一或多个属性。类似地,针对多个项目中的每一者存储的项目可包含唯一项目识别符(项目id)和与项目相关联的一或多个属性。

根据某些实施例,使用批次处理执行的且存储于结果批次处理数据存储库中的可组合算法中的每一者的结果包括元组的阵列。在此类实施例中,元组阵列中的元组中的每一者可包含(例如)客户id或项目id和对应得分。

根据某些实施例,可组合算法中的两者或两者以上包括类似性算法,其中的每一者用于将项目中的不同者的属性彼此比较,将客户中的不同者的属性彼此比较,或将客户中的一或多者的属性与项目中的一或多者的属性进行比较。

本发明的某些实施例还针对利用批次处理和按需处理的组合以便有效地且高效地提供建议的方法。

提供此“发明内容”是为了以简化形式引入下文在具体实施方式中进一步描述的概念的选择。本“发明内容”并不意图指示所主张的标的物的关键或基本特征,并且也不意图被用作确定所主张的标的物的范围的辅助手段。

附图说明

图1说明根据本发明的一实施例利用批次处理和按需处理的组合以便有效地且高效地提供建议的建议系统。

图2为用于概述根据本发明的各种实施例的方法的高级流程图,所述方法利用批次处理和按需处理的组合以便有效地且高效地提供建议。

图3为根据本发明的某些实施例用于说明算法引擎的示范性功能性的图。

图4说明可向负责为客户从项目库存选择项目的工作人员显示的信息的实例,其中具有经选择用于显示的信息的项目由算法引擎使用一或多个可组合算法识别。

具体实施方式

本发明的某些实施例涉及建议系统和与之一起使用的方法,其利用批次处理和按需处理的组合以便有效地且高效地提供建议。本发明的各种实施例的益处、特征和优点将参照以下描述和附图较好地理解。呈现以下描述是为了使所属领域的一般技术人员能够制造和使用如特定应用及其目标的上下文内提供的本发明的实施例。然而,所属领域的技术人员将了解对本文中所描述的实施例的各种修改,且本文所定义的一般原理可应用于其它实施例。因此,本发明的实施例并不希望限于本文中展示和描述的特定实施例,而是应被赋予与本文所揭示的原理和新颖特征一致的最广范围。

在以下描述中,类似数字或参考指定符将始终用以指代类似部分或元件。此外,三个数位参考数字的第一数位通常指示其中首次出现所述参考数字的图式。

图1说明根据本发明的一实施例利用批次处理和按需处理的组合以便有效地且高效地提供建议的建议系统102。系统102可执行算法以直接向客户提供建议。此外或作为替代,系统102可执行算法以向为客户选择项目的工作人员(也称为实体)提供建议。系统102还可执行不立即用于提供建议的算法,但其结果可在稍后时间点用于向客户或为客户选择项目的实体提供建议。如下文将以额外细节描述,系统102还可用于在新算法用于向实际客户或为客户选择项目的实体提供实际建议之前测试该算法。系统102还可用于执行不一定用于提供建议的其它类型的算法。系统102还可具有额外能力,如从下文的描述将理解。

参看图1,系统102展示为包含算法引擎112,其以通信方式耦合到算法数据库122-1、客户数据库122-2、项目数据库122-3(其还可被称作库存数据库122-3)、工作人员数据库122-4和关系数据库122-5。数据库122-1、122-2以及122-3、122-4和122-5可个别地参考为数据库122,或共同地参考为数据库122。图1中还展示块132,其表示可为客户选择一或多个项目的工作人员(也称为实体);以及块142,其表示建议项目和潜在地选择项目所针对的客户。工作人员142可例如为具有关于信息存储于项目数据库122-3中的项目库存中包含的项目的专门知识的人。

根据一实施例,算法数据库122-1存储多个不同算法,其中至少一些可为建议算法。更确切地说,算法数据库122-1可存储用于算法的可执行代码,所述代码可由算法引擎112执行,或潜在地由算法引擎112外部的另一服务(例如,图1中152)执行。在算法引擎112用于执行存储于算法数据库122-1中的建议算法的可执行代码的情况下,算法引擎112可更确切地说被称作建议引擎112。存储于算法数据库122-1中的可组合建议算法可例如以与其它算法不同的方式利用客户信息和/或项目信息以针对客户中的任何特定一者识别针对客户中的所述特定一者建议的项目库存中的项目的子集。此类可组合建议算法还可以被称作建议规则,且算法数据库122-1还可以类似地被称作建议规则数据库。对于另一实例,存储于算法数据库122-1中的可组合建议算法可用于使工作人员132与客户142匹配。

根据本发明的实施例,存储于算法数据库122-1中的算法(且更确切地说,其可执行代码存储于算法数据库122-1中的算法)为可组合算法,其可以各种不同组合选择和拼接(即,组合)以满足各种不同目标。存储于算法数据库122-1中的算法的可组合性促进算法的再使用。在本文使用所述术语时,可组合算法为模块化并且无状态的算法。模块化意味着算法可与其它算法协作(通过使用另一算法的输出作为其输入和/或将其输出作为输入提供到另一算法),且所述算法可调换并用另一算法替代。无状态意味着算法将每一调用或唤起视为独立交互,与先前调用或唤起不相关。利用可组合算法,算法的结果(即,输出)可作为下一算法的自变量(即,到下一算法的输入)传递,且最后一个算法的结果可为整个算法的结果(即,输出)。

根据本发明的某些实施例,存储于算法数据库122-1中的可组合算法中的每一者指定为(例如,标记为)可使用按需处理执行,或可使用批次处理执行中的任一者。根据本发明的某些实施例,可组合算法中的每一者包含对应元数据和对应计算函数。指定为可使用按需处理执行的可组合算法中的每一者的元数据可包含至少可组合算法的名称、可组合算法的作者和到对应计算函数的指针。指定为可使用批次处理执行的可组合算法中的每一者的元数据可包含至少可组合算法的名称、可组合算法的作者和到可组合算法的结果的指针(所述结果作为数据存储在批次处理结果数据存储库124中)。每一计算函数可为一类别,且指定为可使用按需处理执行的可组合算法的所有计算函数可继承顶部层级基本类别。在某些实施例中,可组合算法中的每一者可被认为是有向图或树,其可包含根以及一些叶。

根据本发明的优选实施例,可组合算法中的每一者的输出的格式与所述可组合算法现在、以前或将来使用按需处理还是批次处理来处理无关。换句话说,所有可组合算法的输出,不论其指定为可使用按需处理还是批次处理来执行,都应具有相同格式。有益的是,对于此类实施例,当正(例如)由数据科学家开发可组合算法时,数据科学家(其也可被称作算法开发者)不必考虑正开发的可组合算法可唤起和/或与之组合或合成的一或多个其它可组合算法是被指定用于按需处理还是批次处理,因为可组合算法中的每一者的输出的结构与其现在、以前或将来使用按需处理还是批次处理来处理无关。

根据某些实施例,指定为可使用按需处理执行的所有可组合算法以相同编程语言编写。举例来说,指定为可使用按需处理执行的所有可组合算法的编程语言可为python、c++、java、perl、r或ruby,但不限于此。当指定为可使用按需处理执行的所有可组合算法以相同编程语言(例如python)编写时,算法引擎112可经优化以采用编程语言的特征(例如算法内部的函数调用的去除重复、使用产生器通过管线化函数调用的组合)来优化组合和执行。在某些实施例中,内省法和/或抽象语法树解析可用于进一步优化函数组合。

相比之下,指定为可使用批次处理执行的可组合算法不必以与指定为可使用按需处理执行的可组合算法或与彼此相同的编程语言编写。尽管如此,可指定为可使用批次处理执行的可组合算法以与指定为可使用按需处理执行的可组合算法相同的编程语言(例如,python)编写,可能存在某些益处。此些益处包含将可组合算法的执行指定从可使用批次处理执行改变为可使用按需处理执行的选择。因此,在此些情况下,当可组合算法准备好部署时,例如在测试和调试和/或类似操作之后,数据科学家或某一其它个体或团体可确定和指定所述算法将可使用按需处理还是批次处理来执行。还将可能使用另一算法来分析算法和提供关于最好使用按需处理还是批次处理来执行特定可组合算法的建议。此外,应注意,例如可雇用人来执行指定为可使用批次处理执行的算法,其中将采用人类专家判断。

如下文将以额外细节描述,各种可组合算法的结果可组合。举例来说,第一可组合算法可唤起一个、两个或两个以上其它可组合算法,且包含组合其它可组合算法的结果以产生第一可组合算法的结果(也称为“输出”)的逻辑。根据本发明的某些实施例,存储于算法数据库122-1中的可组合算法中的一或多者可利用客户数据(存储于客户数据库122-2中)和/或项目数据(存储于项目数据库122-3中)来提供建议。在一个特定实例中,第一可组合算法可接受某一样式作为其输入,且传回类似样式的列表作为其输出(即,作为其结果)。第二可组合算法可接受客户id作为其输入,确定客户(对应于客户id)先前购买和/或极高评分了哪些样式,且针对客户先前购买和/或极高评分的样式中的每一者唤起第一可组合算法,以借此传回样式的多个列表作为其输出(即,作为其结果)。第三可组合算法可合并或以其它方式将多个列表组合为单一列表,且过滤所述单一列表以输出表示针对所述客户推荐的样式的输出的阵列。

如上所述,根据本发明的某些实施例,存储于算法数据库122-1中的可组合算法中的每一者指定为(例如,标记为)可使用按需处理执行,或可使用批次处理执行。举例来说,在可组合算法向算法引擎112注册的情况下,指定可使用按需处理还是使用批次处理来执行特定可组合算法的信息可由算法引擎112在可组合算法向算法引擎112注册时存储。在某些实施例中,存储于算法数据库122-1中的每一可组合算法包含指示所述算法是指定为可使用按需处理执行还是指定为可使用批次处理执行的元数据。此些元数据可由算法引擎112暴露或以其它方式存取。可组合算法指定为可使用按需处理执行,换一种等效方式来说是:可组合算法是为按需执行而设。可组合算法指定为可使用批次处理执行,换一种等效方式来说是:可组合算法是为批次执行而设。

在以将用以对按需算法编程的编程语言编写可组合算法的情况下,与可组合算法相关联的前述指定符(关于可组合算法可使用按需处理还是批次处理来执行)和指针可视需要例如由算法的作者或者监督系统优化的个体或团体改变。此指定符和指针可改变来以减小效力为代价潜在地改进效率,或以减小效率为代价潜在地改进效力。举例来说,虽然与使用按需处理执行特定可组合算法相比(每当算法被调用),使用批次处理执行所述特定可组合算法可能更高效(例如,每天一次),但使用批次处理执行的可组合算法的结果(到使用结果的时候)将较陈旧,且因此,将很可能与按需执行可组合算法的情况相比具有较低效力。另一方面,虽然每当算法被调用使用按需处理执行特定可组合算法可实现较好结果(和因此,较好效力),但执行算法可能花费太长时间(例如,好几个小时)以致于采取行动唤起了对算法的调用的客户142或工作人员132用完全部时间或丢失对结果的兴趣。随着时间的过去,可分析结果数据和/或其它数据以确定哪些可组合算法较恰当地指定为可使用批次处理执行,以及哪些可组合算法较恰当地指定为可使用按需处理执行。换句话说,可能不必是可组合算法的逻辑规定将如何执行算法(使用按需处理或批次处理),而实际上其可为所述指定符。如上所述,此些指定符可由算法引擎112例如在可组合算法向算法引擎112注册时存储,和/或所述指定符可包含在可组合算法中的每一者的元数据中。其它变化也是可能的并且在本文中描述的实施例的范围内。

一个策略可为将计算密集型(且因此花费较长时间执行)的可组合算法指定为可使用批次处理执行,且将非计算密集型(且因此可快速执行)的可组合算法指定为可使用按需处理执行。一个特定策略可为,将接受唯一客户id作为输入的可组合算法指定为可使用按需处理执行。

指定为可使用按需处理执行的每一可组合算法的可执行代码由算法引擎112响应于被调用而实时或近实时执行。相比之下,指定为可使用批次处理执行的可组合算法中的每一者的可执行代码由除算法引擎112以外的服务执行,且根据对应预定时间表执行。图1中展示的块152表示此外部服务,其可(例如)使用apachehadoop或apachespark实施,apachehadoop或apachespark是用于极大数据集在可由商用硬件建造的计算机群集上的分布式存储和分布式处理的开放源软件构架。或者可使用以编程语言编写的定制代码实施外部服务,所述编程语言例如(但不限于)python、java或r。在特定实施方案中,使用以在docker软件容器中运行的r编程语言编写的定制代码实施外部服务。此外,应注意,可例如雇用人来执行指定为可使用批次处理执行的特定算法,其中将采用人类专家判断。

指定为可使用批次处理执行的所有可组合算法可根据相同时间表执行。然而,更可能和优选的是,指定为可使用批次处理执行的可组合算法中的每一者可根据其自身的相应时间表执行。举例来说,与第一可组合算法相关联的第一时间表可指定待使用项目数据库122-3中的项目的所有属性作为输入执行第一可组合算法,每周一次;以及与第二可组合算法相关联的第二时间表可指定待使用项目数据库122-3中的项目的属性的特定子集作为输入执行第二可组合算法,每天一次。或者,时间表可指定将每隔x小时一次或每隔y天一次或每隔z周一次地或响应于指定触发事件而执行可组合算法。示范性触发事件可为,自从最近执行特定可组合算法已流逝指定时间长度。另一示范性触发事件可为,自从最近执行特定可组合算法库存改变了超过特定%。这些仅是并不希望为包含全部的几个示范性触发事件。与可组合算法相关联的时间表可提供到算法引擎112且每当可组合算法向算法引擎112注册时由算法引擎112存储。或者,与可组合算法相关联的时间表可包含在可组合算法的元数据内。其它变化也是可能的且在本文中所描述的实施例内。

根据一实施例,所有可组合算法存储在算法数据库内,无关于可组合算法是指定为可使用按需处理还是可使用批次处理来执行。在可组合算法指定为可使用按需处理执行的情况下,算法引擎112将执行可组合算法的可执行代码,如上所述。在可组合算法指定为可使用批次处理执行的情况下,算法引擎112可将可组合算法的可执行代码传递到外部服务152,且指示外部服务执行可执行代码。在一个实施例中,算法引擎112维持与指定为可使用批次处理执行的可组合算法相关联的时间表,且算法引擎112基于时间表指示外部服务152何时执行可组合算法的代码。在另一实施例中,算法引擎112将时间表(与指定为可使用批次处理执行的可组合算法相关联)和(在适当时)对时间表的更新提供到外部服务152,且外部服务152随后根据时间表自主地唤起可组合算法的代码的执行。根据某些实施例,外部服务152自主地唤起指定为可使用批次处理执行的可组合算法,且用新鲜数据更新批次处理结果数据存储库124。

根据本发明的实施例,使用批次处理执行的可组合算法的结果存储于批次处理结果数据存储库124中。算法引擎112以通信方式耦合到批次处理结果数据存储库124,使得算法引擎112可存取存储在其中的批次处理结果。算法引擎112可响应于对其已指定应使用批次处理执行所针对的算法的调用存取批次处理结果数据存储库124。更确切地说,响应于接收对可组合算法的调用,算法引擎112将确定被调用的可组合算法已指定为可使用批次处理还是按需处理来执行。在算法引擎112确定被调用的可组合算法已指定为可使用批次处理执行的情况下,算法引擎将不实时或近实时执行所述可组合算法,而是实际上将从批次处理结果数据存储库124获得被调用的可组合算法的已经确定的结果。

批次处理结果数据存储库124可为(例如)关系型数据库,例如(但不限于)mysql、postgresql、microsoftsql服务器或oracle数据库。或者,批次处理结果数据存储库124可为面向对象的数据库,比如caché或conceptbase,但不限于此。批次处理结果数据存储库124或者可为分布式数据存储库,例如(但不限于)apachecassandra、hadoop分布式文件系统(hdfs)、druid或dynamodb。

均一算法引擎接口114接受对可组合算法中的一或多者的调用且输出被调用的可组合算法的结果。可(例如)从与想要建议的客户142相关联的计算装置或从与负责为客户142选择或建议项目的工作人员132相关联的计算装置接收调用,但不限于此。举例来说,所述调用还可由其它可组合算法唤起。根据本发明的某些实施例,由算法引擎接口114接受的调用在被调用的可组合算法是指定为可使用批次处理执行还是可使用按需处理执行之间不进行区分。换句话说,对指定为可使用批次处理执行的可组合算法的调用与对指定为可使用按需处理执行的可组合算法的调用进行相同地格式化,且不可区分。实际上,算法引擎112确定或以其它方式识别被调用的可组合算法中的哪一(或多)者指定为可使用批次处理执行,以及被调用的可组合算法中的哪一(或多)者指定为可使用按需处理执行。算法引擎112可通过参看指定特定可组合算法是可使用按需处理还是可使用批次处理执行的信息来进行此操作,所述信息由算法引擎112每当可组合算法向算法引擎112注册时存储。或者,算法引擎112可通过参看存储在算法数据库122-1内的元数据来进行此操作,所述元数据指示特定可组合算法指定为是可使用按需处理还是可使用批次处理执行。其它变化也是可能的,且在本文中所描述的实施例内。

算法引擎112可包含(尤其)一或多个可编程处理器,其用于执行存储于算法数据库122-1中的可组合算法的可执行代码。此外,算法引擎112可包含可由可编程处理器执行且用于实施算法引擎112的能力的一或多个计算机程序。这些计算机程序(也被称作程序、软件、软件应用、应用、组件或代码)可包含用于可编程处理器的机器指令,且可以高级程序和/或面向对象的编程语言和/或以汇编/机器语言实施。如本文所使用,术语“机器可读媒体”指代用于将机器指令和/或数据提供到可编程处理器的任何计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld),但不限于此),包含接收机器指令作为机器可读信号的机器可读媒体。术语“机器可读信号”指代用于将机器指令和/或数据提供到可编程处理器的任何信号。计算机程序可包含(尤其)应用程序接口(api),其陈述用于建立可与算法引擎112介接的软件和应用的例程、协议和工具。

如图1中所示以及上文所述,算法引擎112还可包含均一算法接口114,其使算法引擎112能够以相同方式存取存储于算法数据库122-1中的可组合算法,而无关于待使用按需处理还是批次处理来执行可组合算法。均一算法接口114还可使得能够将待测试的可组合算法上载到算法引擎112。举例来说,新的可组合算法的作者(例如,数据科学家)可想要测试所述新的可组合算法,以便确定其是否提供所要或预期的结果。为进一步辅助此测试,系统102可包含图形用户接口(gui)126,其使新的可组合算法的作者(例如,数据科学家)能够视觉化新的可组合算法的结果。

有益的是,本文中所描述的实施例可将批次处理的益处(例如,计算能力和效率)与实时或近实时执行的按需处理的益处(例如,及时性)组合。批次处理较好地适合于(例如)针对极大数据集的分布式处理。按需处理较好地适合于(例如)将处理推迟到调用时间,和考虑最新近的数据。通过组合按需处理和批次处理,本文中所描述的实施例可实现两个类型的处理的优点。作为一实例,假定目标是向包含在客户数据库122-2中的客户中的每一者提供四个项目的个人化建议,其中存在数据存储于客户数据库122-2中的数百万客户;以及存在数据存储于项目数据库122-3中的数万项目。示范性最终结果或输出可为客户将购买项目的概率。客户中的每一者和项目中的每一者可具有数十或数百乃至数千个特征或属性。一些特征或属性可需要数据提取和处理;而其它特征或属性可需要对多个客户和多个项目的了解。某些计算实时或近实时执行起来将较昂贵,且因此最好使用批次处理执行。举例来说,大量迭代的计算最好使用批次处理执行。使用批次处理执行起来将较昂贵(就计算资源、时间和结果的存储而言)的其它计算最好尽在必需时使用按需处理执行。使用本发明的实施例,使用批次处理计算特定计算,且其结果存储于批次处理结果数据存储库124中,且其它计算存取批次处理结果数据存储库124以便(例如)通过计算一或多个交叉乘积而按需产生最终客户建议。

系统102可包含一或多个进一步gui。举例来说,系统102可包含gui,其直接向客户142或向负责为客户142选择项目的中间人(例如,工作人员132)显示关于如使用算法引擎112确定的向客户建议的一或多个项目的信息。可针对工作人员132与针对客户142提供不同gui。

根据本发明的某些实施例,系统102可利用侵略性高速缓存来增加效率。更确切地说,系统102可包含高速缓冲存储器128,算法引擎112在其内存储使用按需处理执行的可组合算法中的一或多者的结果,使得所述结果在高速缓冲存储器间隔所指定的时间周期内可用。因此,如果结果存储于高速缓冲存储器128中的可组合算法在高速缓冲存储器间隔期间被再次调用,那么存储于高速缓冲存储器128中的结果可被存取和使用,而非再次执行可组合算法的可执行代码。高速缓冲存储器间隔可为(例如)m分钟或n小时,但不限于此。高速缓冲存储器间隔可对于指定为可使用按需处理执行的所有算法相同。或者,指定为可使用按需处理执行的算法中的每一者可具有(例如)存储于与算法相关联的元数据中的其自身的对应高速缓冲存储器间隔。其它变化是可能的且在本文中所描述的实施例的范围内。

优选地,系统102为提供可缩放性和并行性以及侵略性高速缓存的分布式系统,如上文所提及。系统102为可缩放的,(例如)因为外部服务152可基于指定为可使用批次处理执行的可组合算法的量值和频率向上或向下缩放。此外,在适当时,可并行执行多个可组合算法以缩短总体处理时间。

根据优选实施例,算法引擎112允许算法的作者任意组合算法,而不必担心算法的数理逻辑,且算法引擎112自身透明地编排所组合的可组合算法的执行。

根据本发明的某些实施例,使用批次处理执行且存储于批次处理结果数据存储库124中的可组合算法中的每一者的结果包括元组的阵列。元组阵列中的元组中的每一者可包含客户id和/或项目id、对应得分和对应元数据。得分可为(例如)类似性得分、差异性得分、成功得分的概率、收益性得分等,但不限于此。包含在元组中的元数据可为用于提供支持结果的上下文或证明的非结构化字段(例如,json映射)。两个3元组的示范性阵列为[(1,2.4,{‘related_purchases’:[4,5]}),(11,1.8,{‘related_purchases’:[6]})]。

下文描述可存储于各种数据库122中的数据的示范性类型。仍参看图1,客户数据库122-2可适于存储多个客户142中的每一者的客户数据,其也可被称作客户信息。存储于客户数据库122-2中的多个客户142中的每一者的客户数据可包含唯一客户识别符(客户id)和与客户相关联的一或多个属性。项目数据库122-3适于存储包含在项目库存中的多个项目中的每一者的项目数据,其也可被称作项目信息。存储于项目数据库122-3中的多个项目中的每一者的项目数据可包含唯一项目识别符(项目id)和与项目相关联的一或多个属性。根据一实施例,客户为已请求为其选择且向其提供(例如,邮寄、运送、发送、上载或以其它方式提供)项目的人。可分别存储在客户数据库122-2和项目数据库122-3中的示范性客户属性和项目属性在下文描述。

项目库存中的项目可以是例如女式服装,其中项目库存中的每个项目与不同件的女式服装相对应。对于更加具体的实例,项目库存中的项目可以包含裤子、衬裙、连衣裙、衬衫、毛衣、夹克、手镯、项链、围巾、帽子和/或类似者。存储在库存数据库122-3中的项目信息可以包含针对项目库存中的项目中的每一个项目的多个项目属性。项目属性中的一些属性可以是客观属性,而其它属性可以是主观属性。示范性客观项目属性包含:项目库存单位(sku)号、项目类型(例如,裤子、衬裙、连衣裙等)、项目设计者和/或品牌、项目尺寸、项目颜色、项目图案(例如,纯色、方格花纹、细条纹等)、项目材料(例如,棉、羊毛、合成等)和/或类似者。还可能项目sku号用作唯一客户id。示范性主观项目属性包含:适合于高个女性,适合于矮个女性,适合于胸部丰满的女性,适合德克萨斯州的女性,适合于学院风的女性,适合于20岁的女性,适合于50岁的女性,适合于身体修长的的女性,休闲风,适合于正式场合,适合于热带旅行,适合于春天,适合于冬天,大小合适,偏小,偏大和/或类似者。主观项目属性还可指定项目对于哪一或多种体型(例如,直筒型、梨型、匙型、沙漏型、顶部沙漏型、倒三角型、椭圆型、菱型等)是适当的。客观项目属性中的至少一些属性可以自动地输入到项目数据库122-3中,而其它客观项目属性可以手动地输入到项目数据库122-3中。根据实施例,主观项目属性由对包含于库存中的项目的类型具有专门知识的实体(例如,人)指定,且手动地输入到项目数据库122-3中。项目库存还可以指定当前在项目库存中的每个项目的单位数。另外,项目库存可以指定已经订购的每个项目的单位数,以及预期何时接收经订购的项目以补充项目库存。项目属性还可以指定项目提供给客户的频率、项目被客户接受(例如,购买)的频率和/或项目在被提供给客户后被客户接受(例如,购买)的频率。这些仅是可以存储在项目数据库122-3中的项目属性的类型的一些实例,所述实例并不意图为涵盖全部。针对项目库存中的项目中的每一个项目,项目属性中的至少一些属性,或更一般地说所存储的项目信息中的至少一部分,初始地至少部分基于从负责指定项目属性的实体接受的输入。举例来说,可以将基于网络的用户接口呈现给实体,使得所述实体能够例如响应于问题或类似者而输入关于项目的客观和主观信息。

如上所述,存储在客户数据库122-2中的客户信息可以包含与多个客户中的每一个客户相关联的客户属性。客户属性中的一些属性可以是客观属性,而其它属性可以是主观属性。示范性客观客户属性包含:出生日期和/或年龄、身高、体重、腰围、胸围、罩杯尺寸、内缝长、躯干长、衬衫尺寸、连衣裙尺寸、裤子尺寸、住宅地址、客户是否是妈妈、职业和/或类似者。示范性主观客户属性包含:偏好的款式(例如,经典款、学院风、休闲风、波西米亚风等)、偏好的合身性(例如,宽松、合身、紧身等)、偏好的颜色方案(例如,亮色系、柔和色系)、偏好的图案(例如,纯色、条纹、花朵)和/或类似者。

主观客户属性还可以指定客户对具体样式的喜欢程度,所述样式例如但不限于,休闲风、前卫风、波西米亚风、经典款、迷人款、学院风、浪漫风和/或类似者。主观客户属性可以是二进制的(例如,否或是,或者0或1),或可以具有较大的粒度级(例如,在0和5之间的数,其中5指示最大偏好程度)。主观客户属性还可以指定客户对具体的设计者和/或品牌的喜欢程度。主观客户属性还可以指定客户指示他们愿意花费多少钱在具体类型的项目上。另一示范性客户属性是体型(例如,直筒型、梨型、匙型、沙漏型、顶部沙漏型、倒三角型、椭圆型、菱型等)。另外,与特定客户相关联的客户信息还可以指定特定客户已经成为由系统102提供建议服务的会员多长时间、将项目装运给客户的频率、哪些项目被客户购买或以其它方式接受、哪些项目被客户返回或以其它方式不接受和/或类似者,这些指定内容中的每一个内容都是客观客户属性的另外实例。客观客户属性还可以指定客户实际上已在具体类型的项目上花费多少钱。这些仅是可以存储在客户数据库122-2中的客户属性的类型的一些实例,所述实例并不意图涵盖全部。在实施例中,针对客户中的每一个客户,客户属性中的至少一些属性,或更一般地说,所存储的客户信息中的至少一部分,初始地至少部分基于从客户接受的输入。举例来说,可以将基于网络的用户接口呈现给客户,使得所述客户能够例如响应于问题或类似者而输入关于自身的客观和主观信息。

工作人员数据库122-4可存储关于可经雇用或签约以为客户142选择项目的工作人员132(其也可被称作实体)的信息。存储于工作人员数据库122-4中的多个工作人员132中的每一者的工作人员数据可包含唯一工作人员识别符(工作人员id)和与工作人员相关联的一或多个属性。存储于工作人员数据库122-4中的工作人员属性可包含关于所述多个工作人员132中的每一者的可用性信息,和关于所述多个工作人员132中的每一者的一或多个能力的能力信息,但不限于此。每一工作人员的可用性信息可包含(例如)工作时间表和是否工作人员(当被调度执行工作时)当前正为客户执行任务的指示,但不限于此。在一实施例中,工作人员132中的每一者的能力信息可包含工作人员资源属性,例如(但不限于)专门知识、偏好、年龄、装备、地理位置和/或类似物。

关系数据库122-5适于存储关于工作人员132和客户142的特定组合之间的先前所建立的关系信息。在一实施例中,关系信息指示是否特定工作人员132先前已为客户132中的特定一者执行任务,且如果是,那么是否(和/或,到什么程度)特定工作人员132成功地为客户142执行了所述任务。此关系信息可替换地存储于工作人员数据库122-4和/或客户数据库122-2中,或某一其它数据库中。

现将使用图2的高级流程图概述根据本发明的各种实施例的方法,所述方法利用批次处理和按需处理的组合以便有效地且高效地提供建议。

参看图2,步骤202涉及在一或多个数据库中存储多个客户的客户数据、可用于向客户建议的多个项目的项目数据,以及利用客户数据和/或项目数据提供建议的多个可组合算法中的每一者的可执行代码。简短地回到图1,多个可组合算法中的每一者的可执行代码可存储于算法数据库122-1中;多个客户中的每一者的客户数据可存储于客户数据库122-2中;以及多个项目中的每一者的项目数据可存储于项目数据库122-3中。

再次参看图2,步骤204涉及在批次处理结果数据存储库中存储使用批次处理执行的可组合算法中的一或多者的结果(例如,图1中的124)。

仍参看图2,步骤206涉及接受对可组合算法中的一或多者的调用。根据本文中所描述的某些实施例,所接受的调用在被调用的可组合算法是可使用批次处理执行还是可使用按需处理执行之间不进行区分。简短地参看图1,均一算法接口114,以及更一般地说算法引擎112,可接受这些调用。

再次参看图2,步骤208涉及确定被调用的可组合算法中的哪一者(些)指定为可使用批次处理执行,以及被调用的可组合算法中的哪一者(些)指定为可使用按需处理执行。简短地回到图1,步骤208可由算法引擎112使用当可组合算法向算法引擎注册时指定的指定符或使用存储于算法数据库122-1中的可组合算法的元数据执行。

再次参看图2,步骤210涉及通过执行指定为可使用按需处理执行的被调用的可组合算法的可执行代码而传回指定为可使用按需处理执行的被调用的可组合算法的结果。简短地回到图1,步骤210可由算法引擎112执行。再次参看图2,步骤212涉及通过从批次处理结果数据存储库获得指定为可使用批次处理执行的被调用的可组合算法的结果而传回指定为可使用批次处理执行的被调用的可组合算法的结果。简短地回到图1,步骤212可由算法引擎112执行,算法引擎112可从批次处理结果数据存储库124获得指定为可使用批次处理执行的被调用的可组合算法的结果。步骤210和212的例项可取决于可组合算法而串行和/或并行执行。

参看图2,步骤214包含使用使用按需处理执行的一或多个可组合算法的结果和/或从批次处理结果数据存储库(例如,图1中的124)获得的(指定为可使用批次处理执行的一或多个可组合算法的)结果向一或多个客户或向为客户选择项目的一或多个工作人员建议一或多个项目。

根据上文以额外细节描述的某些实施例,指定为可使用按需处理执行的所述一或多个可组合算法的结果与从批次处理结果数据存储库(例如,图1中的124)获得的指定为可使用批次处理执行的被调用的可组合算法中的一或多者的结果组合。根据某些实施例,从批次处理结果数据存储库(例如,图1中的124)获得的一或多个结果用作到指定为可使用按需处理执行的被调用的可组合算法中的一或多者中的至少一者的一或多个输入。

根据一实施例,所述方法还可包含响应于可组合算法被调用而执行指定为可使用按需处理执行的可组合算法的可执行代码,以及根据与另一可组合算法相关联的批次处理时间表实行指定为可使用批次处理执行的另一可组合算法的可执行代码的执行。

根据一实施例,图2中的步骤206可涉及接受对唤起其它可组合算法中的两者或两者以上的组合的可组合算法的调用,且进一步步骤(图2中未明确展示)可涉及组合或以其它方式使用被唤起的所述两个或两个以上其它可组合算法的结果。

根据某些实施例,一种方法还可包含高速缓存使用按需处理执行的可组合算法中的一或多者的结果,使得如果结果存储于高速缓冲存储器中的可组合算法中的所述一或多者中的至少一者在高速缓冲存储器间隔期间被再次调用,那么所述结果在高速缓冲存储器间隔所指定的时间周期内可用。图1中的高速缓冲存储器128可用于执行此额外步骤。

根据某些实施例,一种方法还可包含直接向客户或向负责为客户(例如,图1中的142)选择项目的中间人(例如,图1中的工作人员132)显示关于向客户建议的一或多个项目的信息。根据某些实施例,一种方法还包含使新的可组合算法的作者能够测试所述新的可组合算法且视觉化所述新的可组合算法的结果。图1中的gui126可用于执行这些步骤中的一或多者。

现将使用图3说明算法引擎112的示范性功能性。在图的顶部处展示可组合算法描述f(g(.,.),h(.),i(.)),具有输入:[w,x,y,z],这可理解为算法“f”为函数算法“g”、“h”和“i”,其中到这些算法的输入为“w”、“x”、“y”和“z”,其可为(例如)客户或项目的属性。在此实例中,可组合算法“f”唤起可组合算法“g”、“h”和“i”,其中可组合算法“g”、“h”和“i”彼此独立,且可组合算法“f”组合可组合算法“g”、“h”和“i”的结果以产生输出,其展示为f(g(w,x),h(y),i(z))。如图3中所示,算法引擎包含执行编排器逻辑312,其确定哪些可组合算法能够并行执行,以及哪些可组合算法必须串行执行,例如因为一个可组合算法的输出提供为到另一可组合算法的输入。此外,算法引擎包含执行逻辑314,其致使指定为可使用按需处理执行的可组合算法的可执行代码的执行以借此提供其结果,且致使从批次处理结果数据存储库124获得指定为可使用批次处理执行的算法的结果,并潜在地组合多个可组合算法的结果以产生输出。优选的且有益的是,可组合算法的数据科学家(即,作者)不必担心可组合算法的执行的数理逻辑。

使用本文中所描述的实施例,算法引擎112可用于通过使用所述多个不同可组合建议算法(存储于算法数据库122-1中)中的一或多者以产生向客户中的任何特定一者建议的库存中的项目的不同子集,来识别向客户142中的所述特定一者建议的项目库存122-3中的项目的多个不同子集。库存中的项目的这些经识别的子集可显示给负责为客户中的所述特定一者从项目库存选择项目的特定实体132(例如,工作人员)或直接显示给客户中的一者。因此,算法引擎112可以用于分析关于包含于项目库存中的相对较大群组的项目的数据,且将所述相对较大群组缩小至相对较小群组,并且其后,工作人员132可以使用其人类专家判断来从相对较小群组选择项目以提供(例如,邮寄、装运、发送或以其它方式提供)给客户。

例如,假设特定实体132负责选择五个项目以发送到特定客户142。当包含于库存中的项目的数目相对较大,且存在相对较大数目的不同可组合建议算法(存储在算法数据库122-1中)时,负责为客户中的一个客户从项目库存选择项目的实体可能不堪重负。举例来说,假定项目库存中存在一万个不同项目,且存在存储于算法数据库122-1中的一百个不同可组合建议算法。此外,假定项目的不同子集中的每一者(由算法引擎112使用可组合建议算法中的一者识别)包含六个项目。项目的子集中的每一个子集不必互斥,例如,有可能的是,使用两个不同可组合建议算法识别的项目的两个不同子集可能相同,但这基本不太可能。然而,存在个别的项目可能包含于项目的不同子集中的超过一个子集中的较大可能性。继续此实例,且假定一百个不同可组合建议算法中的每一者由算法引擎112利用,这将导致一百个包含六个项目的不同子集由算法引擎112识别。换句话说,在此实例中,关于六百个项目的信息可显示给负责为客户142中的一者从项目库存选择项目的实体132,或直接显示给客户142中的一者。虽然将一万个项目缩减到六百个项目可能是有帮助的,但仍有可能负责为客户中的一者从项目库存选择项目的实体将不堪重负,或将至少忽略许多所建议项目。本文中描述的本发明的实施例可以用于更好地帮助实体(负责为客户中的一个客户从项目库存选择项目)为客户做出其选择。

根据一实施例,包含在算法数据库122-1中的不同可组合建议算法可具有对应的不同主题。与可组合建议算法相关联的主题可能或可能不与特定的客户属性相关。与特定客户属性相关的示范性主题包含:适合于高个女性、适合于矮个女性、适合于胸部丰满的女性、适合于德克萨斯州的女性、适合于学院风的女性、适合于20岁的女性、适合于50岁的女性、适合于身体修长的的女性、休闲风选择、适合于正式场合的选择、适合于热带旅行、适合于春天、适合于冬天、适合于喜欢经典样式的女性、适合于喜欢波西米亚风样式的女性和/或类似者。如可以从主题的此示范性列表了解,一些主题(与可组合建议算法相对应)可以是与同项目库存中的项目相关联的属性的描述词相同或类似的描述词。根据一实施例,对于至少一些主题,每一主题(对应于可组合建议算法)指示与使用可组合建议算法选择的项目相关联的共同属性。举例来说,与使用主题“适合于高个女性”选择的项目相关联的共同属性为,使用可组合建议算法选择的具有所述主题的所有项目被认为适合于至少5英尺8英寸的女性。对于另一实例,与使用主题“适合于德克萨斯州的女性”选择的项目相关联的共同属性为,使用具有所述主题的可组合建议算法选择的所有项目被认为适合于生活在德克萨斯州的女性。可组合建议算法可比上文所论述的那些示范性算法更为具体,或两个或两个以上可组合建议算法可混合(例如)以识别“适合于德克萨斯州的高个女性”或“适合于冬天的学院风女性”的项目。随着可组合算法或可组合算法的组合变得更具体,其覆盖度和置信度水平将很可能减小,在此情况下可使用启发法来控制最小覆盖度和/或置信度阈值。

其它主题可以更加一般地而非具体地与其它主题可以更加一般地而非具体地与客户属性相关。例如,可组合建议算法的进一步示范性主题包含:最畅销品;最可能被购买;最高利润率;与先前购买的项目最类似;与先前购买的项目最不类似;最适合于休闲场合;最适合于商务场合;适合于融入;适合于突出;和/或类似者。这些仅是几个实例,所述实例并不意图涵盖全部。取决于项目库存中的项目的类型和为其选定项目的客户,可组合建议算法的类型以及与其相关联的主题可以发生较大变化。根据某些实施例,新的可组合建议算法可添加到算法数据库122-1,而不影响系统102的剩余部分和/或需要与系统102的剩余部分的任何特定协调。此允许按需要测试和训练新的可组合算法,且移除不良地执行的可组合算法。

根据一实施例,算法引擎112用于针对具有指示与使用可组合建议算法选择的项目相关联的共同属性的主题的可组合建议算法中的每一者确定是否客户中的任何特定一者满足所述共同属性。随后,基于这些确定,算法引擎112可不向负责为客户中的所述特定一者从项目库存选择项目的实体或直接向客户中的所述特定一者显示关于使用具有指示未由客户中的所述特定一者满足的共同属性的主题的任何可组合建议算法识别的子集中的一或多者的信息。例如,当特定客户是5英尺1英寸高且生活在俄勒冈州的女性时,算法引擎112可以确定所述特定客户不满足属性“高”且“生活在德克萨斯州”。因此,算法引擎112可不向负责为所述特定客户从项目库存选择项目的实体或直接向所述特定客户显示关于被认为适合于高个女性的项目的子集的信息,和关于被认为适合于生活在德克萨斯州的女性的项目的子集的信息。算法引擎112可进行此操作的一种方式为,不执行(或不存取执行的结果)具有主题“适合于高个女性”的可组合建议算法,且不执行(或不存取执行的结果)具有主题“适合于生活在德克萨斯州的女性”的可组合建议算法。或者,算法引擎112可执行(或存取执行的结果)具有主题“适合于高个女性”和“适合于生活在德克萨斯州的女性”的可组合建议算法,但可忽略或隐藏使用那些算法识别的项目的子集,或以某一方式对使用那些算法识别的项目的子集分级或分类使得其将不被显示。其它变化也是可能的且在实施例的范围内。

一个或多个可组合建议算法可以计算在与客户相关联的特定属性和与项目库存中的项目相关联的特定属性之间的距离或相似性度量,其中每个距离或相似性度量指派有权重。不同的建议算法可能聚焦于不同的属性和/或可能以彼此不同的方式对距离或相似性度量加权。另外或替代地,不同的可组合建议算法可以使用不同方式来计算在与客户相关联的特定属性和与项目库存中的项目相关联的对应属性之间的距离或类似性度量。

根据一实施例,算法引擎112适于选择向负责为客户中的所述一者从项目库存选择项目的实体或直接向客户显示关于通过执行和/或实行包含在算法数据库122-1中的可组合算法中的一或多者的执行识别的库存中的项目的所述多个不同子集中的两者或两者以上的信息。为了实现此任务,算法引擎112可针对使用可组合建议算法识别的项目的至少一些子集中的每一者计算量化项目的子集的一或多个方面的一或多个度量。量化项目的子集的各方面的示范性度量包含但不限于:指示成功(售出)的可能性的度量;指示利润的度量;指示与由客户中的一个客户接受的先前项目的相似性的度量;指示与由客户中的一个客户接受的先前项目的差异性的度量;指示客户满意的可能性的度量;指示客户保留的可能性的度量;指示最优地利用公司的库存的度量;指示实现客户的装运的成本的度量和/或类似者。算法引擎112可随后执行另一可组合算法,其取决于所述一或多个计算出的度量中的至少一者对经识别的至少一些项目子集分类以产生经分类的项目子集。算法引擎112随后可以使用项目的经分类子集来选择关于库存中的项目的经识别子集中的两个或两个以上子集的信息以供显示。

根据一实施例,关于库存中的项目的经识别子集中的两者或两者以上的信息可经由通信接口(例如,网络浏览器)向负责为客户中的一者从项目库存选择项目的实体(由图1中的块132表示)或经由通信接口(例如,网络浏览器)直接向客户显示。此不需要实体(由图1中的块132表示)或客户(由图1中的块142表示)中的任一者获得定制软件来使其能够检视所建议的项目子集(由算法引擎112产生)且从项目库存选择待提供(例如,运送或上载)到客户的一或多个项目。换句话说,每一实体132或客户142可利用通信接口(例如,网络浏览器)和通信网络(例如,因特网、lan、wan、无线网络、内联网、私用网络、公用网络、交换网、这些的组合和/或类似物)来检视向特定客户建议的项目的子集。在替代实施例中,实体(由图1中的块132表示)或客户(由图1中的块142表示)可使用定制的软件来使其能够检视所建议的项目的子集(由算法引擎112产生)且从项目库存选择待提供(例如,运送或上载)到客户的一或多个项目。

现将使用图4说明可显示给负责为客户142中的一者从项目库存选择项目的工作人员132中的一者的信息的实例,其中具有经选择以供显示的信息的项目由算法引擎使用可组合算法和/或其组合识别。图3中展示的信息可(例如)经由可经由网络浏览器访问的网页呈现,但不限于此,且更一般地说可经由gui126呈现。参考图4,特定客户的属性在最左列412中展示,包含:姓名、年龄、城市以及居住州、罩杯尺寸、上衣尺寸、连衣裙尺寸以及裤子尺寸。包含于最左列412中的其它属性是指定客户对特定样式的喜欢程度的信息、指定客户愿意花费多少钱在各种类型的服装项目上的信息,以及指定客户对特定设计者或品牌的偏好程度的历史信息。在最左列412右边的是若干行422-1、422-2、422-3、422-4、422-5和422-6,其中的每一者可参考为行422,且其共同地可参考为行422。行422中的每一者包含关于由算法引擎112使用包含在算法数据库122-1中的可组合算法的不同一者或不同组合识别的项目的不同子集的信息。此所显示的信息可为文本和/或图片信息。举例来说,图4中,行422中的每一者包含经识别的项目子集中的六个项目的缩略图。在实施例中,关于项目的额外图片和/或其它细节可以通过点击或以其它方式选择与项目相对应的缩略图来访问。行422中的每一者还展示为包含用于选择包含在所述行中的项目的子集的可组合建议算法的主题的名称。举例来说,与行422-1相关联的主题是“适合于tx”;与行422-2相关联的主题是“适合于高个”;与行422-3相关联的主题是“适合于胸部丰满的人”;与行422-4相关联的主题是“适合于性感风”(其中“性感风(glam)”是性感风(glamourous)的简写);与行422-5相关联的主题指示购买(此特定客户喜爱的)特定品牌的客户还购买了…;且与行422-6相关联的主题是“尝试过的和合身的”。图4中还展示按钮432,其使工作人员132能够过滤所显示的项目(例如)使得如果选择“上衣”按钮,那么仅上衣将在行422中显示或突出显示。

根据一实施例,算法引擎112使用可组合行排序算法以确定图4中展示的行422的次序。此可组合行排序算法可使用度量(其实例在上文提及)来对行422排序。例如可组合相关性算法等的另一可组合算法可用于(例如)指定每一行中项目的次序,因此对于特定客户最相关的(经识别的项目子集的)项目展示在行中的最左位置处,且最不相关项目展示在行中最右位置处。

图4中,使用相同可组合算法或可组合算法的相同组合识别的项目显示在相同行内,即每一行对应于使用可组合算法的相同一者(或组合)产生的结果。或者,使用相同可组合算法(或可组合算法的相同组合)识别的项目可显示在相同列内,即每一列可对应于可组合算法中的相同一者(或组合)。更一般地说,可以将确定为适合于客户的库存划分成各方面,其中每个方面表示以算法方式与零个、一个或多个特定客户属性匹配的项目的子集。

尽管已经以特定针对结构特征和/或方法动作的语言来描述标的物,但应理解,所附权利要求书中所界定的标的物未必限于上文所描述的特定特征或动作。实际上,上文中所描述的特定特征和动作被揭示为实施权利要求书的实例形式。

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