CN102708130B - 计算用户微细分以用于要约匹配的可扩展引擎 - Google Patents

计算用户微细分以用于要约匹配的可扩展引擎 Download PDF

Info

Publication number
CN102708130B
CN102708130B CN201210056126.1A CN201210056126A CN102708130B CN 102708130 B CN102708130 B CN 102708130B CN 201210056126 A CN201210056126 A CN 201210056126A CN 102708130 B CN102708130 B CN 102708130B
Authority
CN
China
Prior art keywords
fine point
definition
group
subset
point
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
Application number
CN201210056126.1A
Other languages
English (en)
Other versions
CN102708130A (zh
Inventor
W·常
G·鲍姆
T·马洛利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN102708130A publication Critical patent/CN102708130A/zh
Application granted granted Critical
Publication of CN102708130B publication Critical patent/CN102708130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0204Market segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及计算用户微细分以用于要约匹配的可扩展引擎。特别地,接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于一个或多个要约提供者活动。进一步,分派器将用户数据的第一子集和多个微细分定义的第一子集分派到网络中的第一节点。此外,分派器将用户数据的第二子集和多个微细分定义的第二子集分派到网络中的第二节点。在每个节点处执行解析和编译。进一步,在每个节点的可扩展引擎处执行并行处理,以便将微细分条件规则应用于用户数据以确定对微细分的匹配。并行计算微细分,所得微细分指派被收集、被过滤以去重,继而被排序以产生可用于发现要约的最终微细分集合。

Description

计算用户微细分以用于要约匹配的可扩展引擎
技术领域
本公开总体上涉及消费者的分类。更具体地,本公开涉及确定消费者属于哪些微细分(micro-segment)。
背景技术
内容提供者、商家和市场营销者为了有效地提供最相关的在线内容,必须精确地定义和指向非常具体的市场细分。最相关的在线内容的示例如广告、信息、娱乐、新闻等。
微细分通常是指由市场营销者通过先进的技术和方法确定的关于市场或群体的精确划分。例如,可以使用数据挖掘、人工智能以及各种算法。这些技术和方法通过识别和预测消费者花费的时间和行为模式来将消费者分组到细粒度的细分中,即,微细分。换句话说,微细分是指有相似的属性、购买行为和/或对一组特定特征集合感兴趣的程度的一组(购买)决定者。然而在目前的环境下,出于某些原因,可能难以将一个新的用户社区分类和细分为微细分。特别是,消费者越来越倾向于过滤内容和营销信息,从而降低了市场营销的效率。此外,即使收集到更多的消费者数据和行为,其中大部分也会因为专业知识的缺乏和现有技术的局限性而不能被充分利用,另外,很难对新创建的用户社区和群体进行有意义的细分。
此外,细分的困难还影响了利用记录下来的大量的网站用户的行为来决定对不同的用户细分的建议内容、产品和服务的众多网站。建议***采用的算法可能会不同,从K-近邻方法到例如使用Pearson相关分析发现喜好/兴趣/品味相似性的方法,到例如发现买X的人也买了Y这样的协作过滤算法。所有这些方法面临的挑战在于在***可以提出有效的建议之前具有一个基于已经记录的喜好和行为对一个非常大的用户人群的准确分类。
发明内容
在本发明的一个方面中,提供一种计算机程序产品。该计算机程序产品包括具有计算机可读的程序的计算机可用介质。当该计算机可读程序在计算机上执行时,使计算机接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。此外,当该计算机可读程序在计算机上执行时,使计算机接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。此外,当该计算机可读程序在计算机上执行时,使计算机接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。当该计算机可读程序在计算机上执行时,还使计算机接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。进一步地,当该计算机可读程序在计算机上执行时,使计算机利用分派器将用户数据的第一子集和多个微细分定义的第一子集分派给网络中的第一节点。此外,当该计算机可读程序在计算机上执行时,使计算机利用分派器将用户数据的第一子集和多个微细分定义的第一子集分派给网络中的第一节点。当该计算机可读程序在计算机上执行时,还使计算机利用分派器将用户数据的第二子集和多个微细分定义的第二子集分派给网络中的第二节点。进一步地,当该计算机可读程序在计算机上执行时,使计算机利用第一节点处的第一微细分解析器将来自多个微细分定义的第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分。此外,当该计算机可读程序在计算机上执行时,使计算机利用第二节点处的第二微细分解析器将来自多个微细分定义的第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分。当该计算机可读程序在计算机上执行时,使计算机利用第一节点处的第一编译器将第一组多个解析表达式细分编译为第一可执行对象,其表示用于确定用户数据的第一子集是否匹配第一组多个微细分定义的第一组多个指令。进一步地,当该计算机可读程序在计算机上执行时,使计算机利用第二节点处的第二编译器将第二组多个解析表达式细分编译为第二可执行对象,其表示用于确定用户数据的第二子集是否匹配第二组多个微细分定义的第二组多个指令。此外,当该计算机可读程序在计算机上执行时,使计算机并行地利用第一可扩展评价引擎处理第一可执行对象以便将第一组多个微细分条件规则应用于用户数据的第一子集以确定属于微细分的第一用户的匹配,并且利用第二扩展评价引擎处理第二可执行对象,以便将第二组多个微细分条件规则应用于用户数据的第二子集以确定属于微细分的第二用户的匹配。当该计算机可读程序在计算机上执行时,还使计算机并行地利用第一可扩展评价引擎指派第一得分并且利用第二可扩展评价引擎指派第二得分,用于表示每个微细分的匹配的强度。可以使用单个计算机程序或者多个计算机程序。进一步地,可以使用单机单线程计算机程序或者分布式***。
在本发明的另一个方面中,提供一种方法。该方法接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。进一步地,该方法利用分派器将用户数据的第一子集和多个微细分定义的第一子集分派到网络中的第一节点。此外,该方法利用分派器将用户数据的第二子集和多个微细分定义的第二子集分派到网络中的第二节点。该方法还利用第一节点处的第一微细分解析器将来自多个微细分定义的第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分。进一步地,该方法利用第二节点处的第二微细分解析器对来自多个微细分定义的第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分。此外,该方法利用第一节点处的第一编译器将第一组多个解析表达式细分编译为第一可执行对象,其表示用于确定用户数据的第一子集是否匹配第一组多个微细分定义的第一组多个指令。该方法还利用第二节点处的第二编译器将第二组多个解析表达式细分编译为第二可执行对象,其表示用于确定用户数据的第二子集是否匹配第二组多个微细分定义的第二组多个指令。进一步地,该方法并行地利用第一可扩展评价引擎处理第一可执行对象以便将第一组多个微细分条件规则应用于用户数据的第一子集以确定属于微细分的第一用户的匹配,并且利用第二可扩展评价引擎处理第二可执行对象以便将第二组多个微细分条件规则应用于用户数据的第二子集以确定属于微细分的第二用户的匹配。此外,该过程并行的由第一可扩展评价引擎赋值第一分数,和由第二可扩展评价引擎赋值第二分数,来表示每个微细分的匹配的强度。
在本发明的另一个方面中,提供一种***。该***包括接收模块,其接收用户数据和多个微细分定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。进一步地,该***还包括分派器模块,用于(i)将用户数据的第一子集和多个微细分定义的第一子集分派到网络中的第一节点,以及(ii)将用户数据的第二子集和多个微细分定义的第二子集分派到网络中的第二节点。该***还包括第一节点处的第一微细分解析器,用于将来自多个微细分定义的第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分。进一步地,该***包括第二节点处的第二微细分解析器,用于将来自多个微细分定义的第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分。此外,该***包括第一节点处的第一编译器,用于将第一组多个解析表达式细分编译为第一可执行对象,其表示用于确定用户数据的第一子集是否匹配第一组多个微细分定义的第一组多个指令。该***还包括第二节点处的第二编译器,用于将第二组多个解析表达式细分编译为第二可执行对象,其表示用于确定用户数据的第二子集是否匹配第二组多个微细分定义的第二组多个指令。进一步地,该***包括第一可扩展评价引擎,用于(i)并行地处理第一可执行对象以便将第一组多个微细分条件规则应用于用户数据的第一子集以确定属于微细分的第一用户的匹配,以及(ii)并行地指派第一得分以表示第一用户与微细分的匹配的强度。此外,该***包括第二可扩展评价引擎,用于(i)并行处理第二可执行对象,以便将第二组多个微细分条件规则应用于用户数据的第二子集以确定属于微细分的第二用户的匹配,以及(ii)并行地指派第二分数以表示第二用户与微细分的匹配的强度。
附图说明
在参考了下述附图说明后,本发明的上述特征将变得更加明显,在附图中相似的参考标号表示相似的元素,并且其中:
图1示出了一个微细分***配置。
图2示出了微细分定义和结构。
图3示出了微细分定义编码的示例。
图4示出了可被用于一个或多个细分的图形用户界面(“GUI”)的示例。
图5A示出了用于书面形式表达式的代码500的示例。
图5B示出了细分的GUI的示例,可在其中做出选择以使得编码生成细分定义。
图6示出了一个表达式树。
图7示出了可用于图6示出的表达式树的编码的示例。
图8示出了被用于定义微细分对象的过程。
图9示出了计算与微细分匹配的用户和要约的并行处理***。
图10示出了计算与微细分匹配的用户和要约的过程。
图11示出了一个并行引擎匹配***。
图12示出了可扩展评价引擎架构的基于云的映射缩减配置。
图13示出了可用于可扩展引擎架构的***。
图14示出了一个评价引擎配置。
图15示出了可用于计算用户和要约以匹配微细分的***配置。
具体实施方式
可扩展引擎确定用户属于哪些微细分。例如,用户可以是一个消费者。在一个实施例中,此可扩展引擎具有多个核心或者多个过程。可扩展引擎的计算结构和操作不同于单机顺序引擎。例如,可扩展引擎具有单机顺序引擎中所不使用的分派、映射和缩减组件。顺序引擎不具有针对可扩展引擎而提供的通信协议或协调逻辑。此外,可扩展引擎可以跨网络中的不同的节点(同构或异构)而被复制。例如,基于网络的可扩展引擎可以跨整个因特网的不同节点而被复制。此外,可扩展引擎可以提供对标准查询语言(SQL)数据库或非SQL(NoSQL)数据库的持久性。
可扩展引擎使用微细分的定义和用户数据来计算一个“真”或“假”的布尔表达式,以确定是否满足微细分的谓词。此外,还可使用非布尔谓词,这将导致三值逻辑或实值结果。细分描述被解析成细分定义解析树。然后,细分定义解析树被编译成字节码(bytecode)。字节码继而被执行以返回细分的指派和得分。
在一个实施例中,概括用户的人口属性和行为兴趣。细分具有属性比较谓词的集合,例如,性别==男,这些谓词由布尔AND/OR(与/非)操作符连接,例如,(性别==男)AND(年龄范围在(20,30))。因此,如果共有总数为n的数据属性,则微细分的数量等于2n-1,即,n个属性的总排列组合数。微细分对象允许营销人员从这个巨大的属性空间中定义微细分。那些概括的人口属性和行为兴趣继而被封装到对象中。行为兴趣可包括正反两方面的兴趣,它允许创建一个全面的亲密度(affinity)模型。正面或反面的兴趣的示例是喜欢或不喜欢一个品牌。此外,对象支持由语法表达式树表示的任何复杂属性或兴趣规则结构。继而可以针对该语法表达式树而开发用于匹配和建议的属性和谓词表达式。谓词可以通过连结操作符和/或解连结操作符而被连接,以创建任意复杂的微细分表达式。
微细分的对象是可移植的。换句话说,微细分不是硬连接到特定的活动。微细分是可重用的。因此,微细分对象提供可移植分析,而不需要特定的细节。在一个实施例中,微细分是一组消费者人员的公共属性的不透明编码。例如,包括男性、年龄为二十五岁、收入在八万美元到十万美元之间并且对跑车感兴趣的微细分被编码为SEG-XYZ。根据定义,被指派到SEG-XYZ的新消费者具有相同的列出的属性。给定具有其他微细分的较大组的消费者,共享微细分定义和数据的市场营销者可以使用SEG-XYZ编码来执行分析而无需向其他人显露微细分的实际定义。微细分定义是可移植的,对于一个营销人员有效的微细分可以被另一个营销人员共享和利用。分析本身可以按照专有方式执行,属性不会透露给其他各方。在营销人员之前做出过共享细分的定义和微细分的消费者数据的协定的情况下,这些配置是有用的。
可以标识和创建多个新创建用户社区中的高价值微细分。广告和营销人员可以使创建定制的微细分自动化,他们可以通过一系列多媒体设备向这些定制微细分递送具有高度针对性和相关性的内容。在微细分被标识之后,可以利用它们自动进行内容递送、个性化直接微营销和微推广活动,针对和迎合个人成员的特定口味、需求、愿望和欲望。微营销是一个这样的过程,由***模拟每个消费者对于公司的产品、服务、价格和促销活动的不同想法和感受,并且以一种适当的方式迎合他们。消费者是指作为消费者并利用此处提供的配置的用户。微细分相比细分提供了更细的粒度级别。因此,微细分可协助营销人员标识和预测消费者花费的时间和行为模式。例如,微细分可以利用诸如核心人口统计、随时间变化的消费类别、细粒度的购买历史和购买意向等数据源。一些诸如购买历史和消费类别的数据源是可以验证的,因为它们来自于例如***公司的第三方。因此,营销人员能够提供更加准确、精确并有针对性的服务。
此外,微细分内的成员可以增量式地和不断地更新。而且,可以利用附加分析来自动地检测和推断有意义的语义。例如,如果一个消费者同时属于高档汽车的兴趣细分、高档相机的兴趣细分和高档手表的细分,***可以推断如果消费者表示了对衬衫的一般性兴趣,那么可以将消费者加入高档衬衫的兴趣细分。
此外,可以针对每个微细分中的用户而快速、准确地生成关于内容、产品和服务的建议。可以使用建议***来执行建议。建议***是这样的***,其采用信息聚类和过滤技术,其尝试基于特定用户(消费者)所在的群组或细分来建议可能符合他或她兴趣的信息内容或产品项目。在一个实施例中,建议***将用户的行为和/或显式的简档(profile)以及一些参考特性进行比较,然后试图预测用户会给予他们可能还尚未考虑的项目的兴趣‘评级’。这些特征从信息或产品项目(使用基于内容和/或属性的方法)或用户的社会环境(使用协同过滤方法)中获得。
在一个实施例中,每个微细分具有关键判别特征(“KDF”)的特定集合,其中KDF定义了由决策者使用的属性组以及表示微细分大小的数量或数字的值。图1示出了微细分***配置100。微细分***配置100包括微细分***102,它是处于商家104和多个用户106中每一个之间的第三方受信***。要约提供者104可以是销售产品的公司、销售服务的公司、营销公司、广告公司或类似的向微细分***提供活动的公司。活动指示要约提供者在对特定用户群营销产品或服务时寻找的目标属性集。活动可包括一个或多个要约。因此,目标属性集是指活动针对的属性集。举例来说,活动可以是在美国出售男式运动鞋的要约。微细分***102接收到这个活动,并且还接收到来自多个用户106的用户属性。属性是性质或特性。属性的示例是性别。由此,性别属性的值可以是男性或者女性。微细分***102继而确定多个用户106中的哪些用户具有和本次活动的目标属性值相匹配的用户属性。换句话说,微细分***102评价已创建的微细分定义、属性值和值分布,以确定特定微细分的选择性。微细分***102确定包括与该活动的目标属性相匹配的用户的微细分108。在一个实施例中,只有所有的目标属性和用户属性相同,用户才被放置到微细分108中。在另一个实施例中,用户需要达到最低匹配得分才被放置到微细分108中。作为一个示例,用户可能不需要匹配所有属性,但需要匹配足够的属性以生成一个超过要约提供者的最低阈值得分,使得该消费者被放置到微细分108中。在另一个实施例中,一种加权机制被用来在评分方法中使某些属性相对于其他属性具有更大权重。例如,年龄属性可能在计算得分时比地理位置属性具有较高的权重。在一个实施例中,对属性偏差的补偿***防止属性增持。类似地,可以允许营销人员在确定与候选用户相关的微细分的选择时定制属性的权重。
在一个实施例中,在微细分***102自动将用户划分到微细分108后,102微细分***向要约提供者104发送微细分数据定义。在一个实施例中,微细分***102捕获缺省定义和/或训练数据以用于对现有的用户和/或新用户进行分类。根据对用户属性进行组合和利用的方式的数目,细分定义的数目可以从几个到几十亿个。在另一个实施例中,微细分数据定义不包括微细分中用户的个人标识信息。换句话说,多个用户在受信基础上向微细分***102提供属性信息,使得微细分***不会将用户个人信息发送给要约提供者104。***可以不向要约提供者发送除了他们定义的关于微细分的代表性统计和一般性统计数据以外的任何数据。例如,一个微细分可包含二万七千三百三十二个消费者。在要约被递送之后,一万七千三百四十四个消费者看到要约,三千四百四十四个消费者点击了要约来了解更多信息,六百三十四个消费者购买了要约。此外,在一个实施例中,多个用户106向微细分***102提供许可以发送他们的要约。要约提供者104所接收到的微细分数据定义提供了诸如微细分中的用户数目,其属性值等信息。要约提供者104可以快速确定目标受众中对活动的潜在兴趣,而无需将广告和资源浪费在没有兴趣接受某特定活动的广告的人群上。因此,要约提供者104可以如实地确定活动在经济上是否是可行的,以及应投入到该活动中的资源数量等。要约提供者继而可以基于微细分数据向微细分***102发送要约。换句话说,要约提供者104不是直接向微细分108发送要约。在接收要约后,微细分***继而可以将要约发送给微细分。在该微细分中的用户如果想更多地了解要约或接受要约,可以通过跟随要约中提供的链接或其其他响应机制来单独联系要约提供者。在另一个实施例中,还可以向要约提供者104发送除微细分数据定义之外的其他微细分数据。例如,在活动被递送后,除了微细分数据定义之外,活动效果统计数据也可被发送给要约供应商。
在一个实施例中,微细分***102也执行建议功能。微细分***102可给用户提供建议。在一个实施例中,给定任意用户,微细分***102快速定位所有已指派的微细分,继而使用所指派的微细分来根据微细分匹配定位产品、服务和/或内容要约,从而生成特定的建议。此外,微细分***102可以存储用户关于建议而做出的动作的数据。
在一个实施例中,在每个用户被分类之前,该用户相对于所有相关微细分被打分,以确定最有可能属于的分类。此外,微细分分类可被有效地指派配给用户,并且是实时可搜索的。
图2示出了微细分定义和结构200。微细分定义和结构200具有微细分对象206,其可以接收活动要约,诸如第一活动要约202和/或第二活动要约204。出于说明目的,微细分对象206接收第一活动要约202。例如,微细分对象200可以接收party_segment(方_细分)标识符,其标识的第一活动要约202的目标人员。例如,party_segment标识符可以是“Teenybopper(青少年)”。微细分对象还可具有细分元数据,其包含关于细分的元数据。例如,细分元数据208可具有所有者名称、观众类别、细分描述等。微细分对象206还可以具有一个或多个细分定义。例如,微细分对象206可以具有性别细分属性定义212和年龄细分属性定义216。微细分对象206还可以具有针对相应细分属性定义的细分属性值定义。例如,性别细分属性值定义210可以等于女性,年龄细分属性值定义可以等于九到十四岁之间的年龄。可以使用各种分布,如离散分布、范围分布或者如累积分布函数(“CDF”)的值分布。
图3示出了微细分定义代码300的示例。party_segment名称部分可以提供party_segment名称。例如,party_segment名称可以是“TeenyBopper”。此外,细分属性数据源定义可以定义细分属性数据源,例如性别。营销人员可读的细分描述可进一步提供市场营销的描述,例如,“所有收入、妇女、年龄9至14岁”。此外,还可以提供细分属性值定义。
图4示出了可以被用来定义一个或多个细分的GUI 400的示例。例如,营销人员可以从GUI 400选择一个或多个细分以指派给活动中的要约。GUI 400具有可由输入选择的多个细分。每个细分可以具有细分名字、编码、性别、年龄、收入和/或其他属性。此外,GUI 400可以允许用户根据细分的性别、年龄、收入和/或其他属性的组合进行排序。此外,可以使用最小值、最大值和/或平均值。
本文描述中的所有条件继而被表示为由布尔AND和OR操作连接的条件或谓词的集合。图5A示出了书面形式的表达式的编码500的示例。在一个实施例中,该细分表达式可以直接提供给评价和执行引擎以供评价。此外,图5B示出了可在其中进行选择使编码575生成细分定义的细分GUI 550的示例。
在另一个实施例中,根据表达式语法规则的表达式解析树被创建,并被提供给评价和执行引擎。通过利用表达式解析树表示,消除了针对每个表达式匹配的解析步骤,这得到了细分匹配表达式的明显更快的执行。
图6示出了表达式树600。表达式树600是由GUI工具创建的节点的树。例如,正在创建细分定义的营销人员可以使用GUI工具。简单的条件或谓词指定消费者属性,例如,邮政编码,值或值的列表(例如,94301、94302、…)以及比较或集合操作符,例如“in”。这些个体条件被评价,每个条件的结果继而被用以满足使用AND(与)或OR(或)操作的组合而形成的一个或多个布尔表达式。
表达式树600具有第一AND根节点602、第一OR叶节点604和第二OR叶节点606。如果满足了第一邮编条件608、第二邮编条件610、第三个邮编条件612或第四个邮编条件614中任意一个条件,则第一OR叶节点604的计算结果为“真”。此外,如果满足购买类别条件616、满足品牌购买条件618或者AND节点626的结果为“真”,则第二OR叶节点606评价为“真”。如果满足性别条件620、满足收入条件622并且满足每月电费的条件,则AND节点626评价为“真”。第一OR叶节点604和第二OR叶节点606的结果被用来评价AND节点602。只有这两个结果都为“真”的情况下,AND节点602的结果才为“真”。换句话说,在所有简单条件节点被评价为“真”或“假”并且所有中间布尔节点被评价之后,以递归方式评价父布尔节点,直到达到表达式树的根节点。在这个阶段,最终的“真”或“假”值被返回***,以确定是否将消费者分配到市场营销人员定义的细分中。微细分对象采用描述了所有可以形成和代表细分的正式表达语法。下面是一个提供给对居住在某些城市、属于特定性别、符合特定的收入范围、以前购买过某些特定产品类别的目标消费者感兴趣的制造商的细分定义的示例:
消费者住在Palo Alto,Sunnyvale,Santa Clara,或San Jose(基于邮编)AND
(要么)消费者是个男性 and
消费者的收入在$50K和$100K之间 and 消费
者的 数据提供者月电费账单>=$200 and
OR
消费者对″绿色电子产品″or″节电″类别的产品感兴趣or
消费者从品牌″品牌ABC″or″品牌XYZ″买过产品。
当缺少消费者属性值时,条件无法被评价为“真”或“假”值,并且使用第三值“空”。“空”值随后可以通过三值逻辑***而参与布尔运算。
表达式树600被提供以作为表达式图的示例。可以使用各种其他类型的无环图。无环图是用来对表达式谓词分组的结构。无环图中的节点可以包括形成谓词的不同语法元素。语法无环图确保表达式是可执行的的有效表达式并且不会有任何语法错误。
图7示出了可以用来生成如图6所示的表达式树600的编码700的示例。所有出现的特定值、条件、节点、编码等只是作为示例。在解析和编译编码700的同时,产生了表达式树600。
图8示出了用来定义微细分对象的过程800。在过程块802中,过程800从图形用户界面接收对来自要约供应商活动的一个或多个细分属性的选择。一个或多个细分属性定义了与要约供应商活动中提供的一个或多个要约相对应的一个或多个细分。此外,在过程块804中,过程800基于该一个或多个细分属性而生成被解析为语法表达式图的微细分表达式(图7)。在优化的配置中,微细分表达式可被绕过,并且可以直接生成语法表达式图。此外,在过程块806中,过程800基于语法表达式树而生成可移植微细分对象,使得可移植微细分对象不依赖于要约提供者活动。
图9示出了一个并行处理***900,其计算与微细分匹配的用户和要约。***900具有多个并行操作的子***。虽然***900可具有大量子***,但是为便于说明,图9只示出了两个子***作为示例。***900具有子***902和子***910。***900接收用户数据和多个微细分定义。在一个实施例中,***900将用户数据的子集和多个微细分定义的子集映射到子***以便进行并行处理。例如,***900可以利用协调逻辑将用户数据的第一子集和多个微细分定义的第一子集分派到第一子***902。此外,***900可以利用协调逻辑将用户数据的第二子集和多个微细分定义的第二子集分派到第二子***910。利用不同的配置,可并行处理不同类型的数据。例如,不同用户的数据可以在不同的节点上并行处理。另外,同一用户的数据也可以在不同的节点上并行处理。此外,不同的微细分数据可以在不同的节点上并行处理。另外,同一个微细分的数据也可以在不同的节点上并行处理。多个微细分定义中的每个微细分定义对应要约提供者活动中的一个或多个要约。例如,一个或多个营销人员可以使用***GUI输入活动的定义和一个或多个细分匹配表达式以及活动的要约。营销人员还可以选择更新或删除活动和细分。此外,子***902包括微细分解析器904,其将来自多个微细分定义的第一子集的每个微细分定义解析为表示第一组微细分条件规则的第一组多个解析表达式细分。此外,子***910包括微细分解析器912,其将来自多个微细分定义的第二子集的每个微细分定义解析为表示第二组微细分条件规则的第二组多个解析表达式细分。在一个实施例中,将微细分定义接收到存储没有用户标识数据的分析的可移植微细分对象中。此外,***900包括第一子***编译器906,其将第一组解析表达式细分编译为第一可执行对象,例如,表示用于确定用户数据是否匹配多个微细分定义的多个指令的字节码对象。***900还包括第二子***编译器914,其将第二组解析表达式细分编译为第二可执行对象。在最有效的配置中,编译器906输出的字节码对象被存储在NoSQL数据库中以供后续检索,并且编译器914的字节码对象输出被存储在NoSQL数据库中以供后续检索。在一个实施例中,指令是高层的指令。第一子***还包括可扩展评价引擎908,用于(i)并行处理多个微细分定义的第一子集中的每个微细粉定义,以便将多个微细分条件规则应用于用户数据的第一子集,以确定用户属于微细分的匹配,(ii)指派得分用于表示每个匹配的强度,以及(iii)根据针对每个匹配的得分对每个匹配进行排序。此外,第二子***还包括可扩展评价引擎916,用于(i)并行处理多个微细分定义的第二子集中的每个微细粉定义,以便将多个微细分条件规则应用于用户数据的第二子集,以确定用户属于微细分的匹配,(ii)指派得分以表示每个匹配的强度,以及(iii)根据针对每个匹配的得分对每个匹配进行排序。
在一个实施例中,多个可扩展评价引擎可在多个服务器上的多个内核执行。例如,可以利用一个基于云的服务器集群网络架构。在另一个实施例中,并行评价引擎由服务器上的单个内核执行。在另一个实施例中,多个可扩展评价引擎由多个线程运行。匹配可以根据各种逻辑***来确定。例如,可以根据三值逻辑来确定匹配,使得一个或多个布尔谓词以及一个或多个非布尔谓词被使用。例如,布尔值“真”和“假”可与非布尔值“空”一起使用。此外,“空”值可以是0和1之间的值。例如,0.5可以是“空”值。得分可以等于布尔或者非布尔值乘以加权系数。例如,第一属性可比第二属性具有更高的权重系数,因为第一属性对于用户和/或活动提供者而言可能更重要。由此,年龄属性可具有加权系数0.5。因此,得分可等于“空”值乘以加权系数,例如,0.5×0.5=0.25。
在另一个实施例中,数据持久性操作被执行,使得每个可执行对象被命名并被存储在数据库中,以供一个或多个可扩展引擎随后检索和使用。例如,在逻辑上但潜在地在物理上的分布式关系数据库、基于对象的存储***或NOSQL键-值存储***被用来存储可执行“字节码”对象以供后用。
在另一个实施例中,加载/刷新操作被执行。当多个可扩展评价引擎被调用时,或者在创建新的细分定义时,或者在更新现有的细分定义时,匹配***的多个可扩展评价引擎发出加载或刷新所有需要的细分的请求。加载/刷新过程可以是完全的或者是增量式的(如果只改变少数细分定义,可以使用差分配置)。
在另一个实施例中,匹配和要约递送***使用用户所属的已生成细分的列表,并且基于细分标准来标识用户感兴趣的相关产品和服务要约。数据库被用来定位与特定细分相关联的所有要约;这些要约被发送给递送***以用于向用户呈现。
图10示出了计算与微细分匹配的用户和要约的过程1000。在过程块1002,过程1000接收用户数据和多个微细分的定义,使得多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约。此外,在过程块1004,过程1000通过分派器将用户数据的第一子集和多个微细分定义的第一子集分派到网络中的第一节点。此外,在过程块1006,过程1000通过分派器将用户数据的第二子集和多个微细分定义的第二子集分派到网络中的第二节点。此外,在过程块1008,过程1000利用第一节点处的第一微细分解析器将来自多个微细分定义的第一子集的每个微细分定义解析为表示第一组微细分条件规则的第一组多个解析表达式细分。此外,在过程块1010,过程1000利用第二节点处的第二微细分解析器将来自多个微细分定义的第二子集的每个微细分定义解析为表示第二组微细分条件规则的第二组多个解析表达式细分。此外,在过程块1012,过程1000利用第一节点处的第一编译器将第一组解析表达式细分编译为第一可执行对象,其表示用于确定用户数据的第一子集是否匹配第一组微细分定义的第一组多个指令。在过程块1014,过程1000还利用第二节点处的第二编译器将第二组解析表达式细分编译为第二可执行对象,其表示用于确定用户数据的第二子集是否匹配第二组微细分定义的第二组多个指令。在另一个配置中,1012的输出对象被存储在NoSQL数据库中以供后续检索(消除了重新解析和重新编译的需要),1014的输出对象被存储在NoSQL数据库中以供随后检索(消除了重新解析和重新编译的需要)。此外,在过程块1016,过程1000并行地利用第一可扩展评价引擎处理第一可执行对象以便将第一组微细分条件规则应用于用户数据的第一子集以确定属于微细分的第一用户的匹配,以及利用第二可扩展评价引擎处理第二可执行对象以便将第二组微细分条件规则应用于用户数据的第二子集以确定属于微细分的第二用户的匹配。此外,在过程块1018,过程1000并行地利用第一可扩展评价引擎指派第一得分并且利用第二可扩展评价引擎指派第二得分,以表示微细分的每个匹配的强度。
图11示出了一个并行引擎匹配***1100。可扩展引擎源定义1102参考来自细分1104的数据本体属性1106,以访问由微细分谓词定义的特定用户数据值。可扩展引擎匹配器映射功能执行从一个用户向一个或多个微细分的映射。可扩展引擎匹配器映射功能1108具有细分定义读取器1110,其接收细分包装对象1104并且提取细分谓词规则1116。此外,可扩展引擎匹配器映射功能具有属性参考绑定器1112,其访问用户属性数据并且将用户属性绑定和编码为字节码对象,该字节码对象与表达式评价器相结合充当可执行的有穷状态机(“FSM”)1118。此外,可扩展引擎匹配器映射功能具有接收用户数据1120的数据读取器1122。数据读取器1122将用户数据1120提供给细分表达式评价器1124,评价器1124还接收谓词规则1116和用户属性数据,并且将用户属性数据绑定和编码为字节码对象,该字节码对象与表达式评价器相结合充当可执行的有穷状态机FSM。缩减功能1124评价谓词表达式,并且基于1104所定义的微细分定义的匹配强度来确定每个微细分表达式的得分。微细分及其得分继而被提供给排序器1126,其根据得分对微细分进行排序。排序被提供给过滤器1128,其利用得分来过滤微细分,并且将过滤后的微细分提供给可扩展引擎匹配器缩减功能1124。可扩展引擎匹配器缩减功能1124还从来自多个其他可扩展引擎(例如,其他处理节点上的可扩展引擎)的可扩展引擎映射功能接收微细分以及关联得分。可扩展引擎匹配器缩减功能1124聚集来自多个可扩展引擎的过滤后的微细分表达式,并且生成针对每个唯一微细分的细分的用户列表1126。用户列表1126包括用户ID、细分ID、得分和时间戳(“TS”)。在一个实施例中,用户列表1126存储在细分索引1128中以供后续检索。
图12示出了一个可扩展评价引擎架构的基于云的映射缩减配置1200。细分定义被提供给分派器1204,其将细分定义分发给评价映射器。例如,分派器1204将第一细分发送到第一细分和属性表达式解析器1206,将第二细分发送到第二细分和属性表达式解析器1208,将第三细分发送到第三细分和属性表达式解析器1210,将第四细分发送到第四细分和属性表达式解析器1212,以便在不同节点处并行处理,即,细分和属性表达式解析器可以分布在不同节点上。第一细分和属性表达式解析器1206将第一细分解析为操作符和操作数的第一表达式堆栈1214,其被提供给细分属性表达式堆栈评价器1222。在一个实施例中,解析/编译阶段的输出对象被存储在提供给每个表达式堆栈操作符和操作数的NoSQL数据库中。这种配置避免了重新解析和重新编译微细分的定义。细分属性表达式堆栈评价器1222评价第一表达式操作符和操作数堆栈1214以生成元组,如包括用户ID、细分ID和得分的元组的第一集合1230。此外,第二细分和属性表达式解析器1208将第二细分解析为第二操作符和操作数的表达式堆栈1216,其被提供给细分属性表达式堆栈评价器1224。细分属性表达式堆栈评价器1224计算第二表达式操作符和操作数堆栈1216以生成元组,如包括用户ID、细分ID和得分的元组的第二集合1232。例如,第一元组去重和排序器1238汇聚元组的第一集合1230和元组的第二集合1232。在多核、映射/缩减或多重配置中,如果细分定义不是唯一地被分发到处理节点,则可能会得到重复的匹配。去重阶段过滤掉这些重复数据。
此外,第三细分和属性表达式解析器1210将第三细分解析为操作符和操作数的第三表达式堆栈1218,其被提供给细分属性表达式堆栈评价器1226。细分属性表达式堆栈评价器1226评价表达式操作符和操作数的第三堆栈1218以生成元组,例如包括用户ID、细分ID和得分的元组的第三集合1234。此外,第四细分和属性表达式解析器1212将第四细分解析为操作符和操作数的第四表达式堆栈1220,其被提供给细分属性表达式堆栈评价器1228。细分属性表达式堆栈评价器1228评价操作符和操作数的第四表达式堆栈1220以生成元组,如包括用户ID、细分ID和得分的元组的第四集合1236。例如,第二元组去重和排序器1240聚集元组的第三集合1234和元组的第四集合1236。第三元组去重和排序器1242继而从第一元组去重和排序器1238接收第一经聚集的集合并且从第二元组去重和排序器1240接收第二经聚集的集合。第三去重和排序器1242继而将第一经聚集的集合和第二经聚集的集合聚集为单个经聚集的集合。图11中所示的组件数量仅仅是作为示例,因为在匹配阶段和/或聚集阶段可以利用不同数量的组件。
图13示出了可用于可扩展引擎架构的***1300。多个营销人员创建、更新或删除自己的品牌宣传活动,其包括一个或多个细分以及相关联的产品或服务要约。此外,细分解析/编译服务可运行在云基础设施上,以独立地为每个活动生成细分表达式字节码对象。此外,细分表达式字节码对象可被发送到一个持久***。该持久***可以独立地将细分的字节码对象保存到基于云计算的可扩展存储***,使得字节码对象随后可以由活动和品牌宣传中的细分名称来检索。此外,可以使用分布式数据库最为用于所有已创建细分表达式字节码对象的存储。数据库可以是关系数据库或面向对象数据库。此外,数据库也可以是NOSQL键-值存储。此外,持久***和评价引擎服务可以使用加载/刷新功能来确保可扩展性评价引擎可以获得最新的和完整的细分字节码对象以便执行。此外,在云计算基础设施上运行的评价引擎服务接收用户的数据,并且执行由每个字节码对象规定的所有细分表达式规则以确定该用户所属的细分。而且,要约匹配和递送服务也运行在云计算基础设施上,接收三元组(用户、细分、得分)并且搜索要约清单数据库,以确定哪些要约应递送并且呈现给用户。分布式细分数据库中的最终一致性语义允许微细分字节码对象以异步方式被持久化到分布式细分数据库中。一旦字节码对象代表匹配请求而被持久化和访问,递送***就可以看到微细分匹配器。
图14示出了评价引擎配置1400。评价引擎配置1400具有第一节点1402,其控制将被分发到诸如第一映射缩减处理集群1408和第二映射缩减处理集群1410的映射缩减处理集群的字节码对象和包括n个字节码对象的细分字节码对象集合的递送。例如,第一过程控制节点1404协调针对第一映射缩减处理集群1408的处理,并且第二过程控制节点1406协调针对第二映射缩减处理集群1410的处理。每个映射缩减集群继而将个体细分字节码对象分发到一组处理节点,例如映射节点。例如,第一缩减/聚集节点1412可被用于来自第一映射缩减处理集群1408和第二缩减/聚集节点1414的个体微细分。每个过程控制节点指示服务从细分字节码评价期间被使用的用户属性数据库1416取回所有需要的用户数据属性条目。用户数据继而由数据分发节点1418分发到映射节点。当用户数据由每个细分字节码评价映射功能接收后,字节码对象由评价引擎逻辑(在映射功能中)执行以产生微细分得分。所有(用户ID、细分ID、分数)结果三元组从每个映射功能被收集,继而被发送到第一缩减阶段,该阶段通过得分来排列和排序细分ID以便进一步聚集。来自每个映射缩减集群的所有经排序的(用户ID、细分ID、分数)结果三元组集合由第三节点1420发送给第二缩减阶段,其对来自每个群组的细分ID和得分进行整理和排序以形成最终排序。所有最终排序继而被发送到要约匹配和递送服务,以使用要约的细分ID取回产品和服务要约。要约作为配对而被存储在要约清单数据库中(要约数据、要约细分ID)。这些要约结果继而由要约匹配和递送服务呈现给用户。
图15示出了用于计算用户和要约到微细分的匹配的***配置1500。在一个实施例中,微细分的计算模块1502与存储器1504进行交互。在一个实施例中,***配置1500适合用于存储和/或执行程序编码,并使用通用计算机或任何其他等价的硬件来实现。处理器1506通过***总线直接或间接地耦合到存储器1504。存储器1504包括在实际执行程序编码时需要的存储器、大容量存储和/或为了降低编码在执行时从大容量存储中提取的次数为至少一部分程序编码提供临时存储的高速缓冲存储器。
输入/输出(“I/O”)设备1508可直接或通过输入/输出控制器连接耦合到***配置900。此外,I/O设备1508包括键盘、键区、鼠标、捕获语音命令的麦克风、指点设备和可以被本领域一般技术人员识别的其他用户输入设备。此外,I/O设备1508包括诸如打印机、显示屏或其他类似的输出设备。此外,I/O设备1508包括接收器、发射器、扬声器、显示屏、图像采集传感器、生物传感器等。此外,I/O设备1508包括诸如磁带驱动器、软盘驱动器、硬盘驱动器、光盘驱动器(“CD”)等存储设备。这里描述的任何模块可能是单一的模块或利用并行和/或管道处理将功能分布在云计算基础设施的模块。
网络适配器也可以耦合到***配置1500,使***配置1500能够耦合到其他***、远程打印机或通过私人或公共网络连接的存储设备。目前可用的网络适配器类型只有调制解调器、电缆调制解调器和以太网卡等。
这里描述的过程由通用的、多用途或单一用途的处理器实现。处理器通过执行汇编、编译或机器级的指令,来执行过程。指令可以由本领域一般技术人员按照过程对应的特征描述编写并在计算机可读介质上存储或传输。指令也可以通过源编码或任何其他已知的计算机辅助设计工具来创建。计算机可读介质可能是能够携带这些指令的任何介质,包括CD-ROM、DVD、磁盘或其他光盘、磁带、硅存储器(例如,可拆卸的、不可拆卸的、稳定的或不稳定的)、在网络上向本地或远程通过有线或无线传输分组或非分组数据。这里,计算机包括具有如上所述的通用、多用途或专用处理器的任何设备。
应该理解这里所述的过程和***,可以完全以硬件形式体现、完全以软件形式体现或以包括硬件和软件元素的形式体现。如果利用软件方式实现方法或***,该软件可以包括但不限于固件、常驻软件、微指令等。
可以理解,这里所述的过程和***也可以在其他类型的过程和***中应用。本领域的技术人员应该领会,对这里描述的过程和***的实施例的各种适配和修改可以在目前的过程、***和计算机程序产品的范围和精神内配置。因此,可以理解,在附加的权利要求的范围内,目前的过程、***和计算机程序产品的应用不仅限于此处所特别描述。

Claims (20)

1.一种用于计算用户微细分以用于要约匹配的设备,所述设备包括:
用于接收用户数据和多个微细分定义,使得所述多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约的装置;
用于利用分派器将所述用户数据的第一子集和所述多个微细分定义的第一子集分派到网络中的第一节点的装置;
用于利用所述分派器将所述用户数据的第二子集和所述多个微细分定义的第二子集分派到所述网络中的第二节点的装置;
用于利用所述第一节点处的第一微细分解析器,将来自所述多个微细分定义的所述第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分的装置;
用于利用所述第二节点处的第二微细分解析器,将来自所述多个微细分定义的所述第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分的装置;
用于利用所述第一节点处的第一编译器,将所述第一组多个解析表达式细分编译为第一可执行对象的装置,所述第一可执行对象表示用于确定所述用户数据的所述第一子集是否匹配第一组多个微细分定义的第一组多个指令;
用于利用所述第二节点处的第二编译器,将所述第二组多个解析表达式细分编译为第二可执行对象的装置,所述第二可执行对象表示用于确定所述用户数据的所述第二子集是否匹配第二组多个微细分定义的第二组多个指令;
用于并行地利用第一可扩展评价引擎处理所述第一可执行对象,以便将所述第一组多个微细分条件规则应用于所述用户数据的所述第一子集以确定属于微细分的第一用户的匹配,并且利用第二可扩展评价引擎处理所述第二可执行对象,以便将所述第二组多个微细分条件规则应用于所述用户数据的所述第二子集以确定属于所述微细分的第二用户的匹配的装置;以及
用于并行地利用所述第一可扩展评价引擎指派第一得分并且利用所述第二可扩展评价引擎指派第二得分,以表示针对所述微细分的每个匹配的强度的装置。
2.根据权利要求1所述的设备,还包括:用于聚集来自不同节点的所述第一得分和所述第二得分以及执行排序的装置。
3.根据权利要求1所述的设备,其中所述第一节点是第一内核,并且所述第二节点是第二内核。
4.根据权利要求1所述的设备,其中所述第一可扩展评价引擎由第一线程操作,并且所述第二可扩展评价引擎由第二线程操作。
5.根据权利要求1所述的设备,其中所述多个微细分定义被接收到存储没有用户标识数据的分析的可移植微细分对象中。
6.根据权利要求1所述的设备,其中所述第一可执行对象是第一字节码对象,并且所述第二可执行对象是第二字节码对象。
7.根据权利要求6所述的设备,还包括:用于将所述第一字节码对象和所述第二字节码对象存储到NoSQL数据库中的装置。
8.根据权利要求1中所述的设备,其中每个所述匹配根据三值逻辑而被确定,使得一个或多个布尔谓词以及一个或多个非布尔谓词被使用。
9.一种用于计算用户微细分以用于要约匹配的方法,所述方法包括:
接收用户数据和多个微细分定义,使得所述多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约;
利用分派器将所述用户数据的第一子集和所述多个微细分定义的第一子集分派到网络中的第一节点;
利用所述分派器将所述用户数据的第二子集和所述多个微细分定义的第二子集分派到所述网络中的第二节点;
利用所述第一节点处的第一微细分解析器,将来自所述多个微细分定义的所述第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分;
利用所述第二节点处的第二微细分解析器,将来自所述多个微细分定义的所述第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分;
利用所述第一节点处的第一编译器,将所述第一组多个解析表达式细分编译为第一可执行对象,所述第一可执行对象表示用于确定所述用户数据的所述第一子集是否匹配第一组多个微细分定义的第一组多个指令;
利用所述第二节点处的第二编译器,将所述第二组多个解析表达式细分编译为第二可执行对象,所述第二可执行对象表示用于确定所述用户数据的所述第二子集是否匹配第二组多个微细分定义的第二组多个指令;
并行地利用第一可扩展评价引擎处理第一可执行对象,以便将所述第一组多个微细分条件规则应用于所述用户数据的所述第一子集以确定属于微细分的第一用户的匹配,并且利用第二扩展评价引擎处理所述第二可执行对象,以便将所述第二组多个微细分条件规则应用于所述用户数据的所述第二子集以确定属于所述微细分的第二用户的匹配;以及
并行地利用所述第一可扩展评价引擎指派第一得分并且利用所述第二可扩展评价引擎指派第二得分,以表示针对所述微细分的每个匹配的强度。
10.根据权利要求9所述的方法,进一步包括:聚集来自不同节点的所述第一得分和所述第二得分,以及执行排序。
11.根据权利要求9所述的方法,其中所述第一节点是第一内核,并且所述第二节点是第二内核。
12.根据权利要求9所述的方法,其中所述第一可扩展评价引擎由第一线程操作,并且所述第二可扩展评价引擎由第二线程操作。
13.根据权利要求9所述的方法,其中所述多个微细分定义被接收到存储不具有用户标识数据的分析的可移植微细分对象中。
14.根据权利要求9所述的方法,其中所述第一可执行对象是第一字节码对象,并且所述第二可执行对象是第二字节码对象。
15.根据权利要求9所述的方法,其中每个所述匹配根据三值逻辑而被确定,使得一个或多个布尔谓词以及一个或多个非布尔谓词被使用。
16.一种用于计算用户微细分以用于要约匹配的***,所述***包括:
接收模块,用于接收用户数据和多个微细分定义,使得所述多个微细分定义中的每个微细分定义对应于要约提供者活动中的一个或多个要约;
分派器模块,用于(i)将所述用户数据的第一子集和所述多个微细分定义的第一子集分派到网络中的第一节点,以及(ii)将所述用户数据的第二子集和所述多个微细分定义的第二子集分派到所述网络中的第二节点;
所述第一节点处的第一微细分解析器,用于将来自所述多个微细分定义的所述第一子集的每个微细分定义解析为表示第一组多个微细分条件规则的第一组多个解析表达式细分;
所述第二节点处的第二微细分解析器,用于将来自所述多个微细分定义的所述第二子集的每个微细分定义解析为表示第二组多个微细分条件规则的第二组多个解析表达式细分;
所述第一节点处的第一编译器,用于将所述第一组多个解析表达式细分编译为第一可执行对象,所述第一可执行对象表示用于确定所述用户数据的所述第一子集是否匹配第一组多个微细分定义的第一组多个指令;
所述第二节点处的第二编译器,用于将所述第二组多个解析表达式细分编译为第二可执行对象,所述第二可执行对象表示用于确定所述用户数据的所述第二子集是否匹配第二组多个微细分定义的第二组多个指令;
第一可扩展评价引擎,用于(i)并行地处理所述多个微细分定义的所述第一子集中的所述第一可执行对象,以便将所述第一组多个微细分条件规则应用于所述用户数据的所述第一子集,以确定属于微细分的第一用户的匹配,以及(ii)并行地指派第一得分以表示所述第一用户与所述微细分的匹配的强度;以及
第二可扩展评价引擎,用于(i)并行地处理所述多个微细分定义的所述第二子集中的所述第二可执行对象,以便将所述第二组多个微细分条件规则应用于所述用户数据的所述第二子集,以确定属于微细分的第二用户是否的匹配,以及(ii)并行地指派第二得分以表示所述第二用户与所述微细分的匹配的强度。
17.根据权利要求16所述的***,进一步包括聚集器模块,用于聚集来自不同节点的所述第一得分和所述第二得分以及执行排序。
18.根据权利要求16所述的***,其中所述第一节点是第一内核,并且所述第二节点是第二内核。
19.根据权利要求16所述的***,其中所述第一可扩展评价引擎由第一线程操作,并且所述第二可扩展评价引擎由第二线程操作。
20.根据权利要求16所述的***,其中所述多个微细分定义被接收到存储不具有用户标识数据的分析的可移植微细分对象中。
CN201210056126.1A 2011-03-02 2012-03-01 计算用户微细分以用于要约匹配的可扩展引擎 Active CN102708130B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/039,257 US8635226B2 (en) 2011-03-02 2011-03-02 Computing user micro-segments for offer matching
US13/039,257 2011-03-02

Publications (2)

Publication Number Publication Date
CN102708130A CN102708130A (zh) 2012-10-03
CN102708130B true CN102708130B (zh) 2015-09-23

Family

ID=46753948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210056126.1A Active CN102708130B (zh) 2011-03-02 2012-03-01 计算用户微细分以用于要约匹配的可扩展引擎

Country Status (2)

Country Link
US (1) US8635226B2 (zh)
CN (1) CN102708130B (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454763B2 (en) 2010-08-24 2016-09-27 Adobe Systems Incorporated Distribution of offer to a social group by sharing based on qualifications
US8630902B2 (en) 2011-03-02 2014-01-14 Adobe Systems Incorporated Automatic classification of consumers into micro-segments
US9177327B2 (en) 2011-03-02 2015-11-03 Adobe Systems Incorporated Sequential engine that computes user and offer matching into micro-segments
US8700468B2 (en) 2011-03-02 2014-04-15 Adobe Systems Incorporated Micro-segment definition system
US8635107B2 (en) 2011-06-03 2014-01-21 Adobe Systems Incorporated Automatic expansion of an advertisement offer inventory
CN102968339B (zh) * 2012-12-19 2015-06-17 普元信息技术股份有限公司 基于云计算架构实现复杂事件处理的***及其方法
US9892048B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Tuning global digests caching in a data deduplication system
US9244830B2 (en) 2013-07-15 2016-01-26 Globalfoundries Inc. Hierarchical content defined segmentation of data
US10229131B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Digest block segmentation based on reference segmentation in a data deduplication system
US9891857B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Utilizing global digests caching in similarity based data deduplication
US9594766B2 (en) 2013-07-15 2017-03-14 International Business Machines Corporation Reducing activation of similarity search in a data deduplication system
US9268786B2 (en) 2013-07-15 2016-02-23 International Business Machines Corporation Applying a minimum size bound on content defined segmentation of data
US10339109B2 (en) 2013-07-15 2019-07-02 International Business Machines Corporation Optimizing hash table structure for digest matching in a data deduplication system
US10296597B2 (en) 2013-07-15 2019-05-21 International Business Machines Corporation Read ahead of digests in similarity based data deduplicaton
US9892127B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Global digests caching in a data deduplication system
US9286314B2 (en) 2013-07-15 2016-03-15 International Business Machines Corporation Applying a maximum size bound on content defined segmentation of data
US10229132B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Optimizing digest based data matching in similarity based deduplication
US10296598B2 (en) 2013-07-15 2019-05-21 International Business Machines Corporation Digest based data matching in similarity based deduplication
US9922042B2 (en) 2013-07-15 2018-03-20 International Business Machines Corporation Producing alternative segmentations of data into blocks in a data deduplication system
US10789213B2 (en) 2013-07-15 2020-09-29 International Business Machines Corporation Calculation of digest segmentations for input data using similar data in a data deduplication system
US9836474B2 (en) 2013-07-15 2017-12-05 International Business Machines Corporation Data structures for digests matching in a data deduplication system
US10133502B2 (en) 2013-07-15 2018-11-20 International Business Machines Corporation Compatibility and inclusion of similarity element resolutions
US10073853B2 (en) 2013-07-17 2018-09-11 International Business Machines Corporation Adaptive similarity search resolution in a data deduplication system
US10235681B2 (en) 2013-10-15 2019-03-19 Adobe Inc. Text extraction module for contextual analysis engine
US10430806B2 (en) 2013-10-15 2019-10-01 Adobe Inc. Input/output interface for contextual analysis engine
US9990422B2 (en) 2013-10-15 2018-06-05 Adobe Systems Incorporated Contextual analysis engine
US20160125451A1 (en) * 2014-11-04 2016-05-05 Adobe Systems Incorporated Asset suggestions for electronic posts
US20170323378A1 (en) 2016-05-09 2017-11-09 Bank Of America Corporation System for triggering of living option resource allocation
US11706339B2 (en) 2019-07-05 2023-07-18 Talkdesk, Inc. System and method for communication analysis for use with agent assist within a cloud-based contact center
US11328205B2 (en) 2019-08-23 2022-05-10 Talkdesk, Inc. Generating featureless service provider matches
US20210117882A1 (en) 2019-10-16 2021-04-22 Talkdesk, Inc Systems and methods for workforce management system deployment
US20210136220A1 (en) 2019-10-31 2021-05-06 Talkdesk, Inc. Monitoring and listening tools across omni-channel inputs in a graphically interactive voice response system
US11736615B2 (en) 2020-01-16 2023-08-22 Talkdesk, Inc. Method, apparatus, and computer-readable medium for managing concurrent communications in a networked call center
US20220405784A1 (en) * 2021-06-22 2022-12-22 WizRocket Inc. Method and system for granular-level segmentation of users based on online activities in real-time
US20220414696A1 (en) * 2021-06-23 2022-12-29 WizRocket Inc. Method and system for running high performance marketing campaigns for granular-level segments of users in real-time
US11677875B2 (en) 2021-07-02 2023-06-13 Talkdesk Inc. Method and apparatus for automated quality management of communication records
US11856140B2 (en) 2022-03-07 2023-12-26 Talkdesk, Inc. Predictive communications system
US11736616B1 (en) 2022-05-27 2023-08-22 Talkdesk, Inc. Method and apparatus for automatically taking action based on the content of call center communications
US11971908B2 (en) 2022-06-17 2024-04-30 Talkdesk, Inc. Method and apparatus for detecting anomalies in communication data
US11943391B1 (en) 2022-12-13 2024-03-26 Talkdesk, Inc. Method and apparatus for routing communications within a contact center

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174381B2 (en) * 2001-12-04 2007-02-06 Aspeed Software Corporation Parallel computing system, method and architecture
CN101535944A (zh) * 2005-08-15 2009-09-16 谷歌公司 基于集的相似性的可扩展用户聚类

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636346A (en) 1994-05-09 1997-06-03 The Electronic Address, Inc. Method and system for selectively targeting advertisements and programming
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US20010013009A1 (en) 1997-05-20 2001-08-09 Daniel R. Greening System and method for computer-based marketing
US6317872B1 (en) 1997-07-11 2001-11-13 Rockwell Collins, Inc. Real time processor optimized for executing JAVA programs
US6847969B1 (en) 1999-05-03 2005-01-25 Streetspace, Inc. Method and system for providing personalized online services and advertisements in public spaces
US6519571B1 (en) 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
WO2001046892A1 (en) * 1999-12-23 2001-06-28 Concept Shopping, Inc. Techniques for optimizing promotion delivery
US7072858B1 (en) 2000-02-04 2006-07-04 Xpensewise.Com, Inc. System and method for dynamic price setting and facilitation of commercial transactions
US7599851B2 (en) 2000-09-05 2009-10-06 Renee Frengut Method for providing customized user interface and targeted marketing forum
US20030023482A1 (en) 2001-07-25 2003-01-30 Messner Amy E. Method and apparatus for redeeming of coupons via a wireless communication device
WO2004014065A2 (en) 2002-08-05 2004-02-12 John Campbell System of finite state machines
US20060212355A1 (en) 2005-01-27 2006-09-21 Brian Teague Social information and promotional offer management and distribution systems and methods
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US7706740B2 (en) 2006-01-06 2010-04-27 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content
US8064604B2 (en) 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
US7992171B2 (en) 2006-09-06 2011-08-02 Qurio Holdings, Inc. System and method for controlled viral distribution of digital content in a social network
CN101431524A (zh) 2007-11-07 2009-05-13 阿里巴巴集团控股有限公司 一种定向网络广告投放的实现方法及装置
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US20090271270A1 (en) 2008-04-24 2009-10-29 Igcsystems, Inc. Managing lists of promotional offers
US20100042471A1 (en) 2008-08-18 2010-02-18 Microsoft Corporation Determination of advertisement referrer incentives and disincentives
WO2010047854A2 (en) 2008-10-24 2010-04-29 Cardlytics, Inc. System and methods for delivering targeted marketing offers to consumers via an online portal
US8566855B2 (en) 2008-12-02 2013-10-22 Sony Corporation Audiovisual user interface based on learned user preferences
CA2796408A1 (en) 2009-04-16 2010-10-21 Evri Inc. Enhanced advertisement targeting
US9177327B2 (en) 2011-03-02 2015-11-03 Adobe Systems Incorporated Sequential engine that computes user and offer matching into micro-segments
US8630902B2 (en) 2011-03-02 2014-01-14 Adobe Systems Incorporated Automatic classification of consumers into micro-segments
US20120226562A1 (en) 2011-03-02 2012-09-06 Adobe Systems Incorporated Persistent metadata for a user-controlled policy of personal data disclosure and usage for online advertising

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174381B2 (en) * 2001-12-04 2007-02-06 Aspeed Software Corporation Parallel computing system, method and architecture
CN101535944A (zh) * 2005-08-15 2009-09-16 谷歌公司 基于集的相似性的可扩展用户聚类

Also Published As

Publication number Publication date
US20120226697A1 (en) 2012-09-06
US8635226B2 (en) 2014-01-21
CN102708130A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
CN102708130B (zh) 计算用户微细分以用于要约匹配的可扩展引擎
CN102737333B (zh) 用于计算用户和要约到微小细分的匹配的顺序引擎
CN102737334B (zh) 微细分定义***
Stadler et al. Linkedgeodata: A core for a web of spatial open data
JP2021108183A (ja) 意図推薦方法、装置、機器及び記憶媒体
CN103177068B (zh) 按照生存规则合并源记录的***和方法
US8108193B2 (en) Collaboration framework for modeling
CN109255586A (zh) 一种面向电子政务办事的在线个性化推荐方法
CN112380453B (zh) 物品推荐方法、装置、存储介质及设备
CN106095942A (zh) 强变量提取方法及装置
Li et al. A multi-dimensional context-aware recommendation approach based on improved random forest algorithm
US20210090105A1 (en) Technology opportunity mapping
WO2023231542A1 (zh) 表示信息的确定方法、装置、设备及存储介质
CN106649380A (zh) 一种基于标签的热点推荐方法及***
CN113988978A (zh) 基于知识图谱的服装搭配推荐方法、***以及设备
CN106844365A (zh) 一种应用分发平台的应用信息推送方法和装置
US20200160359A1 (en) User-experience development system
US10296928B1 (en) System and methods for measuring and influencing customer trajectory within a product space
Kwak A study on the evolution of post-smartphone technologies in the 5G technology environment
CN110062112A (zh) 数据处理方法、装置、设备及计算机可读存储介质
Ye et al. An interpretable mechanism for personalized recommendation based on cross feature
CN111460300A (zh) 网络内容推送方法、装置及存储介质
CN111414538A (zh) 基于人工智能的文本推荐方法、装置及电子设备
Li et al. Enterprise precision marketing effectiveness model based on data mining technology
US20080177562A1 (en) Graphically Representing Consumers' Profiles

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant