具体实施方式
本发明的实施例认识到:(i)以电子方式存储的数据的集合(这里称作“数据集”)可以进行买卖;(ii)仅列举几个示例,数据集可能涉及气象数据、人口统计数据、调查结构、销售指数(sale figure)或顾客购买;(iii)数据集可能在范围、详细程度、质量、覆盖范围等方面有所不同;(iv)给定数据集可以被组织为许多不同变化之一,每种变化具有不同特性并且可能具有不同的市场价值;(v)基于内容的价格确定方法对产品的属性进行分析并且通过创建兴趣简档而对顾客的偏好进行建模;(vi)基于内容的方法可能无法应用于数据集的购买和销售;以及(vii)数据集变化(“变化”是指其中对数据集应用了至少一种“变换”的数据集版本)在与给定顾客已经拥有的数据集高度类似的情况下对于该顾客而言可能不太有价值。
本发明的一些实施例可以包括以下的一个或多个特征、特性和/或优势:(i)一种至少部分基于顾客购买历史推荐数据集的机制;(ii)一种用于至少部分基于顾客购买历史确定数据集的价格的机制;(iii)一种至少部分基于顾客购买历史确定数据集的“修改器(modifier)”的机制;(iv)一种至少部分基于顾客购买历史推荐数据集的现有“修改器”的机制;和/或(v)一种至少部分基于顾客购买历史对数据集的“修改器”进行定价的机制。
更宽泛地,本发明的一些实施例基于顾客反馈信息对机器学习算法进行训练,上述顾客反馈信息因此被定义为从数据集的顾客或潜在顾客所接收回的任意信息。顾客反馈信息的一些示例包括(并非局限于此):(i)顾客或潜在顾客针对数据集变化已经支付或被提供支付的价格;(ii)顾客或潜在顾客对数据集变化的评估;和/或顾客或潜在顾客有关数据集变化的推测评论。
如本领域技术人员将会意识到的,本发明的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者将软件和硬件方面相结合的实施例的形式,它们在这里全部都可以被称作“电路”、“模块”或“系统”。此外,本发明的各方面可以采用以具有记录于其上的计算机可读程序代码/指令的一个或多个计算机可读介质的计算机程序产品所体现的计算机程序产品的形式。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、或半导体的系统、装置或设备,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备,或者以上的任意适当组合。在本文档的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、装置或设备使用或者结合其使用的程序的任意有形介质。术语“计算机可读存储介质”并不包括计算机可读信号介质。
计算机可读信号介质可以包括例如在基带中或者作为载波一部分随其体现于其中的计算机可读程序代码进行传播的数据信号。这样的传播信号可以采用各种不同的形式,包括但并不局限于电磁、光学或者它们的任意适当组合。计算机可读信号介质可以是并非计算机可读存储介质并且能够传达、传播或传输程序以供指令执行系统、装置或设备使用或者结合其使用的任意计算机可读介质。
具体化于计算机可读介质上的程序代码可以使用任意适当介质进行传送,包括但并不局限于互联网、线路、光纤线缆、RF等,或者上述的任意适当组合。
可以以一种或多种编程语言的任意组合来编写用于执行本发明各方面的操作的计算机程序代码,所述编程语言包括面向对象的编程语言—诸如(Java是Oracle在美国、其它国家或二者中的注册商标)、Smalltalk、C++等,还包括常规的过程化编程语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者可以形成到外部计算机的连接(例如,使用互联网服务提供商而通过互联网)。
以下将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机/专用计算机/其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令还可以加载到计算机、其它可编程数据处理装置或者其它设备上而使得一系列操作步骤得以在计算机、其它可编程装置或其它设备上执行以产生计算机实施的处理而使得在计算机或其它可编程装置上执行的指令提供用于实施以流程图和/或框图中的一个或多个框中所指定的功能/动作的处理。
现在将参考附图对本发明进行详细描述。
图1是图示依据本发明实施例的数据处理环境——通常被标示为100——的功能框图。
数据处理环境100包括全部通过网络112进行互连的服务器计算机102以及客户端设备114和116。
服务器计算机102、客户端设备114和客户端设备116均分别可以是膝上计算机、平板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话,或者能够经由网络112互相进行通信的任意可编程电子设备。在其它实施例中,服务器计算机102可以表示诸如在云计算环境中采用多个计算机作为服务器系统的服务器计算系统。服务器计算机102包括供应商程序104、顾客数据库108和库存数据库110。服务器计算机102可以包括如关于图4更为详细描绘和描述的内部和外部硬件组件。
网络112例如可以是局域网(LAN)、诸如互联网的广域网(WAN)或者二者的组合,并且可以包括有线、无线或光纤连接。通常,网络112可以是将支持服务器计算机102与客户端设备114和116之间的通信的连接和协议的任意组合。
供应商程序104部分地进行操作以选择数据集、选择一个或多个修改器,并且执行营销行为。在各种实施例中,该营销行为可以是利用修改器对数据集进行修改,确定经修改的数据集(“变化”),推荐变化,对第一数据集的变化进行定价,或者它们的组合。数据集是数据的集合。修改器是能够对数据集执行以改变该数据集的特性的操作。应用修改器例如能够选择数据集的属性子集,选择数据集的记录子集,向数据集添加噪声数据,或者降低属性的精度。原始数据集是对其应用一个或多个修改器以便生成变化的数据集。修改器被应用于原始数据集以产生变化形式。在一个实施例中,修改器是可交换的(commutative),这意味着无论多个修改器中的每一个被应用于数据集的顺序如何,应用多个修改器都产生相同的变化。
供应商程序104进一步进行操作以基于顾客记录推荐变化并且确定该变化的价格。在一个实施例中,供应商程序104通过(例如,经由客户端设备114或116)向顾客呈现所推荐的变化而推荐变化。在一个实施例中,数据集驻留于库存数据库110中而顾客记录则驻留于顾客数据库108中。在一个实施例中,供应商程序104驻留于服务器计算机102上。在其它实施例中,假设供应商程序104与客户端设备114和116、顾客数据库108和库存数据库110进行通信,供应商程序104可以驻留于另一个服务器计算机或另一个计算设备上。结合图2和3对供应商程序104进行更为详细地讨论。
顾客数据库108进行操作以存储涉及诸如利用客户端设备114或116的顾客的至少一个顾客的顾客记录。在一个实施例中,顾客数据库108驻留于服务器计算机102上。在其它实施例中,假设顾客数据库108至少与供应商程序104进行通信,顾客数据库108可以驻留于另一个服务器计算机或另一个计算设备上。
顾客数据库108可以是诸如关系数据库之类的数据库,其存储对应于顾客的顾客记录。在一个实施例中,顾客记录包括购买历史,其标识出之前向该顾客所呈现的一个或多个数据集,其中每一个都与购买决定、价格和呈现时间相关联。购买决定指示顾客是否在其被呈现时购买了所呈现的数据集。价格指示所呈现数据集被呈现给顾客的价格。时间指示所呈现数据集被呈现给顾客的时间,并且例如可以是日期、日期和时间或者访问数量。顾客记录还可以标识出与每个数据集相关联的一个或多个修改器,其指示在向顾客进行呈现时对数据集所应用的修改器。在一个实施例中,数据集或变化例如可以在两个不同时间和/或以两个不同价格多于一次地向顾客进行呈现。
库存数据库110进行操作以存储一个或多个数据集。在一个实施例中,库存数据库110驻留于服务器计算机102上。在其它实施例中,假设库存数据库110至少与供应商程序104进行通信,库存数据库110可以驻留于另一个服务器计算机或另一个计算设备上。
库存数据库110可以是诸如关系数据库的数据库,其存储一个或多个数据集。数据集是记录的集合,其中每个记录包含一组属性。在各个实施例中,每个数据集包含诸如气象数据、人口统计数据、调查结果数据、销售数据、顾客数据等之类的数据。在一个实施例中,库存数据库110将所存储的数据集划分为多个类别。例如,库存数据库110的第一数据集和第二数据集可以分别包含第一地区和第二地区的气象数据,其中库存数据库110将第一数据集和第二数据集划分为气象数据类别。
图2是描绘依据本发明实施例的用于对数据集的变化进行推荐和定价的供应商程序104的操作步骤的流程图。
在步骤202,供应商程序104接收顾客记录。在一个实施例中,该顾客记录包括标示出至少一个数据集以及相对应的购买决定、价格、呈现时间以及一个或多个修改器的购买历史。
在一些实施例中,诸如在首次光顾的顾客的情况下,顾客记录的购买历史并不标示数据集。在一些实施例中,供应商程序104从顾客数据库108接收顾客记录。例如,供应商程序104可以从顾客数据库108取回顾客记录,或者供应商程序104可以查询顾客数据库108并且作为响应而接收该顾客记录。
在步骤204,供应商程序104接收标示(即,选择)数据集的数据集选择。在一个实施例中,所选择的数据集是库存数据库110的数据集。在一个实施例中,供应商程序104从客户端设备(例如,客户端设备114或116)接收作为用户输入的数据集选择。例如,供应商程序104可以向客户端设备(例如,客户端设备114或116)呈现一个或多个数据集并且接收作为用户输入的标示出一个或多个数据集中所选择的数据集的数据集选择。在一个这样的实施例中,供应商程序104基于顾客记录的购买历史而呈现一个或多个数据库。在另一个实施例中,供应商程序104基于对应于一个或多个其它顾客的顾客记录中的总计购买历史而呈现一个或多个数据库。
在一些实施例中,供应商程序104通过确定与顾客记录的至少一个数据集相类似的数据集而接收数据集选择。例如,所选择的数据集可以对应于与顾客记录的至少一个数据集相对应的类别。在又另一个实施例中,供应商程序104通过随机选择库存数据库110的数据集而接收数据集选择。
在步骤206,供应商程序104对顾客记录进行分析以针对每个可用修改器而确定购买的可能性。在一个实施例中,供应商程序104对顾客记录进行分析以针对可用修改器的组合而确定购买的可能性。在一个实施例中,供应商程序104将顾客记录的购买历史所标识的每个数据库的修改器与对应于该数据库的购买决定进行比较而针对每个修改器确定购买的可能性。
在一个实施例中,供应商程序104利用概率采样来选择最可能被顾客所购买的修改器组合。在简单示例中,购买历史可以标识出具有第一和第二修改器的所购买的数据集和没有第一及第二修改器中的任一个或者仅具有其中之一的未购买的数据集。在这种情况下,供应商程序104可以针对具有第一和第二修改器二者的数据集确定一个高的购买概率而针对没有第一和第二修改器中的任一个或者仅具有其中之一的数据集确定一个低的购买概率。
在一些实施例中,供应商程序104例如可以通过利用其中每个数据集被标记为指示该数据集是否被购买过的属性-价值系统而将修改器和数据集进行关联,以分析顾客记录。属性-价值系统是表示包括表的信息的系统,该表具有指示属性(例如,变换操作)的列、指示对象(例如,数据集)的行以及指示值(例如,数据集是否与变换操作相关联)的单元。
在步骤210,供应商程序104从所选择的数据集生成至少一种变化。供应商程序104通过向所选择的数据集应用至少一个修改器而生成每种变化。在一个实施例中,供应商程序104应用如步骤206中所确定的具有最高购买概率的修改器。
在一些实施例中,供应商程序104生成某些数量的变化,这可以是预先确定的数量或者是作为用户输入(例如,从客户端设备114或116)所接收的数量。在一些实施例中,供应商程序104生成所选择数据集的所有可能的变化,其中每一个是利用不同的修改器组合所生成的。在一些实施例中,供应商程序104使用所有被归类为高价值的变换操作生成所选择数据集的变化。在一些实施例中,供应商程序104使用用户标准所指定的至少一种变换操作而生成变化。在一些实施例中,供应商程序104随机选择修改器并将其应用于数据集以生成变化。在一些实施例中,供应商程序104应用多个修改器。
在步骤212,供应商程序104针对步骤210中所生成的每种变化确定价格。步骤212的一个实施例结合图3进行更为详细地讨论。
在步骤214,供应商程序104推荐该变化。在一个实施例中,供应商程序104通过经由客户端设备(例如,客户端设备114或116)向用户(例如,顾客)呈现该变化而推荐变化。
在一些实施例中,供应商程序104接收价格值作为用户输入。在一些实施例中,该价格值指示最高价格,在这样的情况下,供应商程序104仅推荐其所确定价格处于或低于价格值(即,最高价格)的那些变化。在另一实施例中,该价格值指示最低价格,在这种情况下,供应商程序104仅推荐其所确定价格处于或高于价格值(即,最低价格)的那些变化。
在步骤216,供应商程序104接收针对所推荐的变化的购买决定。在一个实施例中,供应商程序104从客户端设备(例如,客户端设备114或116)接收购买决定作为用户输入。每个购买决定对应于所呈现的变化形式,并且指示顾客是否已经选择了相对应的变化进行购买。如果是,则购买决定是肯定的;如果否,则购买决定是否定的。供应商程序104针对所呈现的变化可能接收到零个或更多的肯定购买决定和/或零个或更多的否定购买决定。在一个实施例中,如果供应商程序104没有接收到针对所呈现变化的购买决定,则供应商程序104确定针对所呈现的变化的购买决定是否定的购买决定。
在步骤218,供应商程序104更新顾客记录。在一个实施例中,供应商程序104为顾客记录附加所呈现的数据集和相对应的修改器、价格、呈现时间和购买决定。
图3是描绘依据本发明实施例的供应商程序104的一个方面的操作步骤的流程图。
在步骤302,供应商程序104确定顾客记录的每种变化相对于该顾客记录之前所购买的数据集所增获的信息量。所增获的信息量例如可以在记录数量、属性数量、属性精度或所推导出的信息量的方面进行度量。所推导出的信息包括能够从所讨论的一个或多个数据集所推导出的信息,例如通过对频繁项集合的数据挖掘所推导出的购买模式。供应商程序104能够将第一变化与第二变化进行比较。供应商程序104能够将第一变化与多个变化进行比较。例如,供应商程序104可以将在时间t=3所推荐的第一变化与在时间t<3所推荐的所有变化进行比较以确定包含于第一变化中但是并未包含于任何一种之前所推荐的变化中的记录的数量。在一个实施例中,供应商程序104存储针对顾客记录的变化的信息增益以将该信息增益与该变化相关联。
在步骤304,供应商程序104确定信息增益的价值。在一个实施例中,供应商程序104通过针对对应于顾客的顾客记录的变化分析信息增益的数量、价格和购买决定而针对该顾客确定信息增益的价值。在一个实施例中,供应商程序104利用机器学习算法来确定信息增益的价值。例如,供应商程序104可以利用该机器学习算法,其中每种变化的所确定的信息增益、价格和购买决定作为输入,其中非购买变化是否定示例而被购买变化是肯定示例。
在步骤306,供应商程序104确定针对步骤210中所生成的变化而增获的信息。在一个实施例中,供应商程序104将每种所生成的变化与顾客记录的该变化进行比较以确定所生成的变化相比之前所呈现的变化所增获的信息量。在另一个实施例中,供应商程序104将每种所生成的变化与具有肯定购买决定的顾客记录的变化进行比较以确定所生成的变化相比之前所购买的变化所增获的信息量。在一个实施例中,针对变化所增获的信息量是该变化中并未包括在其与之相比较的变化中的信息量。
在步骤308,供应商程序104确定所生成的变化的值。在一个实施例中,供应商程序104基于所生成变化的信息增益以以及信息增益的值来计算所生成变化的值。在简单示例中,供应商程序104可以通过将数据集所增获的信息量乘以增益信息的值来确定所生成的变化的值。
图4描绘了依据本发明说明性实施例的服务器计算机102的组件的框图。应当意识到的是,图4仅提供了一种实现的图示而并非关于可以在其中实施不同实施例的环境隐含任何限制。可以针对所描绘的环境进行许多修改。
服务器计算机102包括通信结构402,其在(多个)计算机处理器404、存储器406、持久性存储408、通信单元410和(多个)输入/输出(I/O)接口412之间提供通信。通信结构402可以利用被设计用于处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任意其它硬件组件来传输数据和/或控制信息的任意架构来实施。例如,通信结构402可以利用一个或多个总线来实施。
存储器406和持久性存储408是计算机可读的存储介质。在该实施例中,存储器406包括随机访问存储器(RAM)414和高速缓存存储器416。一般而言,存储器406可以包括任意适当的易失性或非易失性计算机可读存储介质。
供应商程序104、顾客数据库108和库存数据库110存储在持久性存储408中以便由一个或多个相应计算机处理器404经由存储器406中的一个或多个存储器进行访问和/或执行。在该实施例中,持久性存储408包括磁性硬盘。可替换地或者除了磁性硬盘之外,持久性存储408可以包括固态硬盘、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存,或者能够存储程序指令或数字信息的任意其它计算机可读存储介质。
持久性存储408所使用的介质也可以是可移除的。例如,可移除的硬盘驱动器可以被用于持久性存储408。其它示例包括光盘和磁盘、指状驱动器以及插入驱动器以便向同样作为持久性存储408的一部分的另一个计算机可读存储介质上进行传输的智能卡。
在这些示例中,通信单元410提供与包括客户端设备114和116的资源在内的其它数据处理系统或设备的通信。在这些示例中,通信单元410包括一个或多个网络接口卡。在这些示例中,通信单元410可以通过使用物理和无线通信链路之一或二者来提供通信。供应商程序104、顾客数据库108和库存数据库110可以通过通信单元410而被下载到持久性存储408。
(多个)I/O接口412允许利用可以连接至服务器计算机102的其它设备进行数据的输入和输出。例如,I/O接口412可以提供到诸如键盘、小键盘、触摸屏和/或一些其它适当输入设备之类的外部设备418的连接。外部设备418还可以包括便携式计算机可读存储介质,例如指状驱动器、便携式光盘或磁盘以及存储卡。用于对本发明的实施例加以实践的软件和数据,例如供应商程序104、顾客数据库108和库存数据库110,可以被存储在这样的便携式计算机可读存储介质上并且能够经由(多个)I/O接口412而被加载到持久性存储408上。(多个)I/O接口412还能够连接至显示器420。
显示器420提供了向用户(例如,顾客)显示数据的机制并且例如可以是计算机监视器。
这里所描述的程序基于它们在本发明的具体实施例中针对其实施的应用而被标识。然而,应当意识到的是,这里的任何特定程序的术语命名都仅是为了方便而使用,因此本发明并不应当被局限于仅在由这样的术语命名所标示和/或隐含的任何具体应用中使用。
附图中的流程图和框图图示了根据本发明各个实施例的系统、方法和计算机程序产品的架构、功能以及可能实施方式的操作。就此而言,流程图或框图中的每个框可以表示包括用于实施所指定的(多种)逻辑功能的一个或多个可执行指令模块、分段或代码部分。还应当注意的是,在一些可替换实施方式中,框中所提到的功能可以以与图中所示有所不同的顺序出现。例如,根据所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者该框有时可以以逆序执行。还将要注意的是,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合能够由执行所指定功能或动作的特殊用途的基于硬件的系统或者特殊用途的硬件和计算机指令的组合来实施。