具体实施方式
为了简化和示范目的,实施方式的原理主要是通过参考其示例来描述的。在下面的描述中,记载了多个具体细节以便提供对实施方式全面的理解。然而,对本领域技术人员来说易见的是,这些实施方式可以在没有这些具体细节的情况下实现。在某些情况下,没有对公知的方法和结构进行描述,以避免不必要地模糊了实施方式。
概述
根据一种实施方式,一种用于实验的系统,包括通信管理系统和内容系统,其能够定义与一组内容元素的各种处理有关的实验,以及通过数据网络来管理所述实验。处理(treatment)是一组内容元素。内容元素(也称为基本组成部分)的示例包括:文本文件、图像文件、音频文件、视频文件等等。这些基本组成部分可以按照多种不同的方式或者结构来结合或/和格式化,以创建要递送给实验的控制群组的处理。内容元素的每个独立的结合和/或格式化可以构成处理。在一个示例中,处理可以是给定时刻的web页面的特定实现。更具体地,在给定时刻,所述网页处理可以包含:位于屏幕上特定位置的特定文本、图标、图像和/或视频,特定的视觉背景阴影或颜色,分割屏幕的特定边界、特定音频(音乐或语音),等等。
该实验系统被配置用于提供对处理的系统化实验。执行所述实验以确定显示内容元素的最优形式,以满足一个或多个目标。在一个示例中,所述内容元素是将要呈现在互联网的web页面上的广告,而目标是最大化点击该广告来获取做广告的产品或服务的更多有关信息的用户的数量。该实验系统创建代表不同广告形式的处理,每个形式具有至少一个不同属性或内容元素(例如网页上的横幅广告、文本广告、移动弹出窗口、颜色的变化,等等)。对于该实验,所述系统将所述处理递送至一个或多个控制群组。按照所递送的处理向控制群组进行呈现,并且捕获控制群组的行为。所捕获的行为可以包括所述控制群组与所递送处理的交互。例如,最优处理例如是基于所述控制群组的行为来标识的。所述最优处理是被估计为具有实现预期目标的最大能力的处理。
根据一个实施方式,在实验期间,对处理的测试进行优化,以最小化被确定为次优的所递送处理的比例。次优处理被估计为相对于其他处理而言具有实现预期目标的较低能力。所述系统允许向控制群组递送处理的频率根据预测模型而改变。递送的处理根据使用所述模型而决定的置信度而变化。根据所确定的所递送处理的置信度来应用权重因子,所述权重因子用于选择要递送的新处理,以及确定将处理递送给控制群组的新比例。
对处理的这种优化最终能缩短标识基于一个或多个目标而被确定为最优的内容元素组合所花费的时间,同时还将最小化整个实验过程中次优内容的递送,由此缩短实验时间。这种时间上的缩短可以转化为重要的成本节省以及缩短递送生产环境中内容的市场投放时间。
在此通过引用并入名称为“AutomatedOn-LineExperimentationtoMeasureUsersBehaviortoTreatmentforaSetofContentElements”的美国专利6,934,748号的全部内容,其被转让给本申请的受让人。根据此处描述的本发明的实施方式的实验的所述系统和方法可以在美国专利第6,934,748号所描述的系统中使用。
用于内容管理的环境
图1示出了根据本发明实施方式的内容系统10和通信管理系统12可以运行的环境。通常,如这里较为详细描述的,内容系统10和通信管理系统12进行协作,以管理内容15向一个或多个用户16的递送。内容系统10和通信管理系统12的每个都可以包括用于执行此处描述的功能的软件和/或硬件的适当组合。
可以想到,可以由为用户16提供内容15的提供商14对系统10和12进行维护、管理和/或操作。该内容提供商14可以是操作或维护入口或任何其他网站的实体,内容可以通过所述入口或任何其他网站来进行递送。例如,内容提供商14可以是在线商品零售商、在线新闻服务,等等。每个用户16可以“访问”由内容提供商14操作的网站,例如,查看信息,以及有可能完成商业交易。用户16能包括个人、组织或其他代理,其可以是人类或虚拟的。
内容系统10充当内容15的存储库。内容系统10可以至少部分地利用适于存储内容的任何系统来实现。例如,内容系统10可以包括来自Allaire公司的SPECTRA服务器系统或来自Vignette公司的STORY存储服务器系统。通常,内容15可以是可呈现(视觉上、听觉上或其它)给用户16的任何数据或信息。因此,内容15能包括书面文本、图像、图形、动画、视频、音乐、声音等或其任意组合。例如,如果内容提供商14是在线商品零售商,则内容15可以包括由所述零售商提供的不同货物的图像、文本描述以及每个货物的报价、关于在线订单的详细信息、吸引用户注意力的图形或动画,等等。类似地,如果内容提供商14是web入口,则内容15可以包括用于各种感兴趣区域的文本列表或目录、图标(交互式的或非交互式的)、产品图像、到其他网站的超链接、横幅广告等等。如果内容提供商14是在线新闻服务,则内容15可以包括用于各种新闻报道的文本信息、伴随至少某些报道的照片和/或说明、最新报道的视频和/或音频剪辑、不同地区的天气预报的列表、这些地区的地图,等等。可以出于各种目的或者应用而提供来自系统10的内容15,例如产品开发、公共关系、客户服务、广告、电子商务,等等。
可以将能够按照数字格式存储的内容15分解或还原为一组基本组成部分。例如,基本组成部分可以是文本文件、图像文件、音频文件、视频文件,等等。这些基本组成部分可以按照多种不同的方式或者结构来组合和/或格式化,以便将内容15呈现给用户16。
内容15的每个组合和/或格式构成内容结构或处理。例如,内容结构可以是在给定时刻web页面的特定实现。更具体地,在给定的时刻,web页面可以包含:位于屏幕上特定位置处的特定文本、图标、图像和/或视频,特定的可视背景阴影或颜色,分割屏幕的特定边界,特定音频(音乐或语音),等等。
对内容15进行结构化的方式可能影响用户对内容的行为或反应。例如,用户16可能对具有中性背景颜色(例如灰色)的网页作出积极反应,而对具有较重背景颜色(例如紫红色)的网页作出消极相应。用户的反应可以与特定的预期目标或结果相联系。通常,结果可能与内容提供商14想要影响或管理的、用户在网站上的任何行为有关。该行为可以包括用户对网站的“点通”(click-through)、用户请求信息耗费的时间、用户所查看网页的数量和属性、用户在网站上耗费的时间长度、重复会话、网站提供的商品/或服务的购买、信息提交、注册、登入、个性化、阅读或其他有关行为。例如,对在线商品零售商而言,一个期待的目标/结果可以是交易或销售的完成。对网页入口而言,期待的目标/结果可以是增加“吸引程度”(也即,用户16花费在网站上的时间量,以及重复访问该网站的数量)。这样,结构化的内容在其与预期目标/结果的关系这一上下文中可以是有意义的。
因为各种目标/结果可能对于内容提供商14而言是重要的,因此提供通信管理系统12以管理最终被递送或呈现给用户16的内容15(及其结构),从而以实现期待的目标/结果的方式来影响用户16的行为。通信管理系统12补充在此描述的现有内容系统10的功能。在一个实施方式中,通信管理系统12可以实现为基于软件或者软件驱动的产品,该产品能够与内容提供商14的现有内容系统捆绑或集成。通信管理系统12通过以下方式来增强结构化内容的任何应用:标识内容15和预期目标之间的联接或连接,以及提供将来应当把什么结构化内容递送给用户16的有关反馈。
为此,通信管理系统12可以与内容系统10协作,以便:将任何给定内容15分解为其基本组成部分;创建一个或多个内容结构或处理以便将所述内容呈现给用户;设计实验来测试用户对每个处理的行为或反应;通过适当的数据网络将所述处理递送至受控实验中的一个或多个用户;使用收集的信息来生成预测模型;以及使用所述预测模型来修改或定制内容15的结构。
为了优化结构化内容的效用,内容提供商14确定其针对与用户16的行为有关的关联入口或网站的目标,并且决定哪些通信元素是相关的或会潜在地影响该行为。例如,内容提供商14可能希望优化其通信,以实现相关内容15与用户偏好之间较好的匹配,从而提高用户16平时对所述入口或网站的回访。内容20系统10和通信管理系统12促进所述相关基本组成部分的标识和说明、用于内容的各种备选结构(例如,消息和通信手段)的说明,并且为这些结构分配控制变量和数值,以便实现。这样,内容系统10和通信管理系统12可以实现用于交互式通信的设计和开发的系统化方法,从而优化、增强或以其他方式改进例如产品开发、公共关系、客户服务、广告效用、电子商务或者能够得益于内容15的实时定制的其他任何应用。因此,内容系统10和通信管理系统12可以共同实现用于管理内容15向用户16的递送的系统。
内容系统10和通信管理系统12可以与适当的数据网络或数字系统(也即,由数字服务增强的系统)进行集成或连接。在此使用的术语“连接”、“耦合”或其任何变化表示两个或更多元件之间的直接或间接的任何连接或耦合;这种连接或耦合可以是物理的或逻辑的。通常,数据网络或数字系统能够提供或支持交互式信道,用户16通过该交互式信道与内容系统10和通信管理系统12交互。这种数据网络或数字系统的示例包括:电话呼叫中心、蜂窝网络、寻呼网络、自动柜员机(ATM)网络、短消息系统、局域网(LANs)、广域网MAW、内联网、外部网、交互式电视服务或如图描述的互联网18。
互联网18是位于全球范围内的、按照传输控制协议/互联网(TCP/IP)、网间分组交换/顺序分组交换(IPX/SPX)、AppleTalk或其他适当的协议交换信息的计算机“客户端”和“服务器”的互联。互联网18支持称为“万维网”分布式应用。Web服务器维护网站,每个网站包括一个或多个web页面,通过这些web页面可以浏览信息。每个网站或者web页面可以由相应的统一资源定位器(URL)来标识,并且可以由按照任何适当语言进行格式化的文件来支持,所示适当语言例如超文本标记语言(HTML)、可扩展标记语言(XML)或标准通用标记语言(SGML)。客户端可以本地执行“web浏览器”程序。Web浏览器是允许与万维网交换信息的计算机程序。可以获得多种web浏览器中的任何一种,例如,来自网景通信(NetscapeCommunications)公司的NETSCAPENAVIGATOR,来自微软公司的INTERNETEXPLORER,以及允许对互联网18进行方便的访问和导航的其他浏览器。可以使用适当的协议将信息从web服务器传送至客户端,这些协议例如超文本传输协议或文件传输协议。互联网18支持用户16与内容系统10和通信管理系统12之间的交互式通信。
在一个实施方式中,内容系统10和通信管理系统12允许内容提供商14通过诸如互联网18的数据网络来自动地定制递送给用户16的内容15。由于互联网18的广泛应用,内容系统10和通信管理系统12具有联系数量相对较大的用户16的能力,从而允许对用户的重要划分以及在大范围内进行的实验。本说明书的其余部分主要关注于互联网18这一上下文中的方法和系统,但是应当理解,本发明广泛地适用于具有联系或连接数量相对较多的用户16以提供广泛的用户范围的任何数据网络。例如,该数据网络可以是WebTV、交互式TV、WAP+移动服务,或其他任何交互式信道。
内容系统10和通信管理系统12能够以下方式来提供完全自动化的解决方案:动态地划分用户16、自动地生成30个性化规则、以及递送网页、产品/服务的订单或其他交互式通信来实现预期目标。换句话说,内容系统10和通信管理系统12能够确定用户16关注什么,并继而使用该信息来优化交互通信,以实现特定结果/目标,例如增加销售和收益、改进电子营销效力、以及激励特定的商业智能化应用。
内容系统和通信管理系统
图2是根据本发明实施方式的内容系统10和通信管理系统12的框图。内容系统10和通信管理系统12进行协作,以增强结构化内容的任何应用。如图所示,内容系统10包括分配器模块22、内容存储24以及用户接口26。通信管理系统12包括实验引擎30、模型引擎32、预测引擎34、观测模块36、内容提供商接口38以及脚本/调度引擎39。
在内容系统10中,内容存储24的作用是存储内容15,该内容15可以通过例如互联网18而递送和呈现给各个用户16。该内容15例如可以包括:供应销售的不同货品或服务的图像和/或描述、每个货品或服务的报价、关于在线订单的详细信息、不同感兴趣领域的列表、到一个或多个网站的链接、横幅广告等等。该内容15的全部或部分可以按照数字形式来加以维护。内容存储24可以通过任意一个或多个适当的存储介质来实现,例如随机存储器(RAM)、盘式存储设备或其他适当的易失性和/非易失性存储介质。在一个实施方式中,内容存储24可以包括关系型数据库。
用户接口26与内容存储24相连接。通常,用户接口26的作用是提供或支持在内容系统10与一个或多个用户16之间的接口,其中每个用户16使用适当的客户端计算机连接至互联网18。用户接口26可以从用户16接收针对内容15的请求。示例性请求可以是针对显示特定商品的web页面的请求,并且可以指定所述web页面的特定标识符,例如统一资源定位器(URL)。而且,所述web页面请求可以与点击web页面上的特定超链接的用户行为相关。响应于此类请求,用户接口26递送或呈现内容15。用户接口26的部件的互连性可以由适当的通信集线器、路由器或通过其他方式来支持,如可以在负责内容递送的数据网络(例如互联网18)的基础架构中使用的方式。
分配器模块22与内容存储24相连接,其可以包括一个或多个程序,当执行该程序时,执行此处描述的功能。通常,分配器模块22的作用是将内容15分配给(也即,导致其被递送给)各用户16。例如,分配可以基于以下内容来进行:关于用户16的可用信息;以及来自内容系统10或通信管理系统12内其他元件或模块的命令,其可以根据预测和模型将任何给定的用户16置于实验之中或者递送内容。
这样,分配器模块22可以对来自用户16的针对内容15的请求进行响应,对于每个请求,分配器模块22可以出于实验目标或是基于对将会实现的预期结果/目标的预测,来分配内容结构或者处理。为此,分配器模块22可以应用特定于情况的规则,例如实验规则和预测规则(在此描述)。而且,分配器模块22可以在网站或入口处对所有业务流量进行采样,例如以确定将指派哪些用户16接收受控通信(也即,特定内容)。因此,分配器模块22以逐个用户为基础向内容系统19提供了显示什么内容15的指导。分配器模块22耦合至通信管理系统12中的观测模块36,并且可以代表内容系统10将观测数据存储于其中。
分配器模块22还支持或提供通信管理系统12和内容系统10之间的接口。这样,分配器模块22可以包括适当的应用编程接口(API),其能够与Web服务器软件(例如,可从NETSCAPE、APACHE、或JAVASERVLET获得的)以及管理应用软件(VIGNETTE,SPECTRA,或BROADVISION)进行交互和集成。
分配器模块22的功能可以由诸如主机、文件服务器、工作站的任何适当的处理器或者运行适当软件并在任何适当的操作系统(诸如MS-DOS,MacINTOSHOS,WINDOWSNT,WINDOWS2000,OS/2,UNIX,XENIX,GEOS等)控制下进行操作的任何其他适当的数据处理工具来执行。
通信管理系统12与内容系统10通信。参考通信管理系统12,实验引擎30耦合至内容存储24和分配器模块22(两者都在内容系统10内)。实验引擎30可以接收各种实验和内容15的定义。实验引擎30可以包括一个或多个程序,当执行该程序时,其执行此处描述的功能。通常,实验引擎30的作用是支持一个或多个实验的创建和执行,以测试用户16对特定内容15和/或对内容进行格式化(例如,处理)的特定方式的行为或反应。对于每个实验,实验引擎30可以生成一组规则,其在所述实验期间指示如何分配处理。由实验引擎30创建和执行的实验例如可以包括全面析因实验和全面析因实验的经过设计片断(也简称为“经过设计的实验”)。
在全面析因实验中,对于给定的一组内容元素,将会考虑内容元素的每个可能组合。每个内容元素均可以构成要考虑和分析的因素。全面析因实验允许独立地估计每个因素的影响。也就是说,来自全面析因实验的结果包括关于每个内容元素独立于每个其他内容元素而具有的对观测结果的主要影响的全部信息。全面析因实验还估计因素的所有可能组合之间的每个以及全部相互作用的影响。
例如,考虑以下情况,存在两类内容元素:横幅广告和可以显示在所述横幅广告下面的文本广告。每个内容元素可以具有两种变化。对于横幅广告来说,变化可以是静态的和移动的。对于消息来说,变化可以是“现在点击这里”和“节省20%”。因此,存在四个能够查看的可能组合:(1)静态横幅广告与“点击”消息,(2)静态横幅广告与“节省”消息,(3)移动的横幅广告与“点击”消息,以及(4)移动的横幅广告与“节省”消息。可以观测每个元素(即,静态、移动、“点击”以及“节省”)的主要影响及其所有可能组合的相互作用影响。因此,可以估计所有可能影响的整个空间。因为全面析因实验考虑内容结构的所有可能备选,因此其支持对观测结果的非常彻底的分析。
实验中的变量数量线性地增加,然而,内容元素组合的数量指数地增加。也就是说,在将另一个内容元素或变化填加到给定实验时,所述实验的组合数量可能显著增加。例如,对4个内容元素而言,如果每个内容元素具有3种变化,则81种组合是可能的。对于5个内容元素而言,如果每个内容元素具有4种变化,则可能的组合数量是1024。鉴于此,全面析因实验产生的组合可能多于出于合理实验目标组合,也即,以对网站的“命中”率为例,满足采样要求的时间可能长到无法接受。
经过设计的实验降低了实验所需的组合数量(相对于全面析因实验而言),同时仍然允许对感兴趣影响的测量和估计。经过设计的实验通常在控制所有其他影响的同时,关注于特别感兴趣的相对较小群组的影响。经过设计的实验使用实验设计来控制特定事件以及发生这些事件的条件,由此允许显式地测量和估计这些事件关于某些观测结果的影响。换句话说,经过设计的实验是一种系统化的方法,其改变可以控制的一个或多个变量(例如,广告的广告屏幕放置的背景颜色,广告的大小),并调查这些改变对一个或多个感兴趣结果的影响。经过设计的实验可以仅仅考虑变量的主要影响。因此,经过设计的实验减少了实验中涉及到的信息(如组合的数量),因此潜在地极大地降低了采样要求(例如,被要求参与实验的用户16的最小数量)。
例如,对于有5个元素、每个元素具有4种变化的情况而言,如果假定不存在重要的相互作用影响,则实验引擎30可以创建将允许对所有主要影响(即,未包括相互作用影响的那些影响)进行测量和估计的经过设计的实验,其仅具有16种组合,而不是全面析因实验所需的1024种组合。
实验引擎30可以按照多种方式来生成经过设计的实验。实验引擎30可以包括或合并不同的查找表,例如,由美国国家标准局公布的表格。除了表之外,可以使用如下算法来生成经过设计的实验,该算法在运行时将创建满足设计该算法的标准的适当的表。这些表和算法可以用来标识对行为模型(此处描述的)的适当约束。而且,可以通过对变量值进行随机选择或是经由全面因子空间中的编程搜索算法来创建经过设计的实验。
可以使用多种重要的标准来描述经过设计的实验。例如,设计可以通过以下方面来描述:其允许的特定影响、所包括的因素数量和因素级别以及每个因素中是否存在相同数量的级别、关于目标结果而产生的信息量。实验引擎30可以使用任何或所有这些方法来找到或者产生用于特定应用的最佳设计。
经过设计的实验允许通信管理系统12对驱动用户16选择的某些变量进行推理。这些经过设计的实验可以实现或者支持随机效用理论(RUT)的理解。随机效用理论假定:某些项(例如,横幅广告或者web页面)对于用户的真正价值无法被观测到,原因在于它是用户头脑中的精神质量。也就是说,并非总是能捕获或者观测到用户做出特定决策的思维过程。鉴于此,经过设计的实验允许通信管理系统12基于用户的实际行为而非其想法或表达来进行关于驱动用户16选择的某些变量的推理。
在一个实施方式中,实验引擎30提供用于以下项的功能:a)考虑所有可能组合的全面析因实验,b)考虑最小的可能组合(“仅主要影响”)的经过设计的实验,以及c)估计所有的两变量相互作用或选定的两变量相互作用的经过设计的实验。
模型引擎32与实验引擎30通信,并且可以从其获得各种实验的定义。模型引擎32可以包括一个或多个程序,当执行时,所述程序执行此处描述的功能。由每个实验产生的数据指明相对于内容提供商14所设定目标的结果。一旦完成所述实验,则可以将该数据传送至模型引擎32,以标识内容元素对用户16行为的影响程度。也就是说,模型引擎32使用在各种实验期间收集的结果或数据来创建人类决策和选择的一个或多个行为模型。
通常,模型基于对具有类似特征的用户的过去行为进行的观测,来尝试预测用户16在未来可能做些什么。行为模型可以包括复杂、连续和离散的多元统计模型,其可以用来确定内容结构或处理的哪些方面影响实现特定结果的概率。潜在地,可以使用基于随机效用理论的选择模型的形式,来观测和建模用户16在交互式环境中进行的所有动作。也就是说,所观测到的用户16的行为特征可能嵌入在经过设计的实验所得到的选择模型中。所述模型可以在用户如何响应不同的刺激(stimuli)(例如处理)方面对用户16的行为进行建模。模型引擎32执行该分析,并且建议在未来把哪些处理呈现给用户16以满足预期目标。
行为模型例如可以是用户用来进行特定决策的、未知的决策过程(例如,是否点击特定的横幅广告、是否购买提供的特定产品等等)的统计抽象。因此,虽然无法观测用户的决策过程,但是行为模型试图使用由计量经济学家和心理测量学家开发和细化的随机实用理论3Q从统计上逼近这些过程。用户选择不可解释的部分可以认为该用户与行为模型所进行预测的背离。这就是“随机”的,也即,存在无法解释的用户行为的元素。
因此,模型引擎32所生成的模型可以对从一些样本或片断中随机地选择的用户16在面对多种可能动作时将会执行特定动作或动作组合的概率进行建模和预测。这样,行为模型可以考虑用户选择。这些选择模型并不预测用户将要做出的准确选择,而是预测任何给定用户将选择特定动作的概率。特别地,选择模型描述用户的选择或决定(即,他们的行为)的概率如何根据在相应实验中操纵的一个或多个元素或根据用户的简档而改变。因此,选择模型考虑了描述选择选项的变量(例如,价格,折扣水平,网站上提供的产品颜色)以及描述用户16的变量(例如,时间,日期,互联网服务提供商(ISP),应用的操作系统)。包括描述用户16的变量允许使用选择模型针对特定的用户简档来优化内容、提供等等。例如,一旦模型生成器32生成了预测用户16的选择概率如何随背景颜色和页面放置以及时间、日期和ISP而变化的模型,则预测引擎34和模型引擎32可以预测应当向给定的用户提供或者显示哪种颜色和放置位置,以优化目标(例如,最大化点击率)。因此,模型可以用来确定什么样的内容15的集合最适于实现预期结果。
在选择模型的一个实例中,用户决策过程中不可解释的部分按照Gumbel分布来分布。每个选择与该分布的背离共和为零,并且每个背离是独立的并且具有同样的方差。这产生称为多项罗吉斯(MNL)模型的模型。对于具有多个选择的情形,MNL模型可以表示为:
P(i|C)×exp(Vi)/∑jexp(Vj),对于C中提供的所有j。
在上面的公式中,Vi和Vj是第i和第j个选择选项(动作,选择)的值,exp是指数运算符(即,eV),而C是一组可能的动作或选择。在MNL模型的应用中,V’s被作为感兴趣变量的线性参数函数来估计。也就是说,V’s表示为某些预测器变量(例如广告的颜色,广告的放置,所观测行为的时间,用户的ISP,广告颜色和ISP的相互作用)的类多元回归函数。针对来自作为实验结果而获得的数据的每个变量估计参数。继而在MNL模型中使用该参数,以预测特定的用户简档选择特定的选择选项(动作)的概率。备选地,模型的结果用来确定向具有特定简档的用户显示什么样的特定变量组合(例如处理),例如,应当向以AOL作为ISP并且在周二早晨2:00am和3:00am之间与网站交互的用户显示广告颜色和放置的什么组合。
模型引擎32可以实现用于选择建模、贝叶斯建模、或如所示的用户16(例如,网站的访问者)的选择的其他有用建模的技术,所述其他有用建模例如其点击模式,对问题的响应,会话时间,购买,注册,回访,选项选择等等。在一个实施方式中,所述建模可以实现贝叶斯马尔科夫链蒙特卡洛(BayesianMarkovChainMonteCarlo)估计过程的技术。模型引擎32可以使用称为“模型指令”的结构,其允许模型引擎从观测模块36提取建模所需的实验数据的该部分。
预测引擎34与建模引擎32和分配器模块22通信。预测引擎34可以包括一个或多个程序,当执行该程序时,其执行此处描述的功能。根据实验和建模,预测引擎34的作用是生成或创建一个或多个预测。预测可以是对以下模型的简单描述,该模型用来以最优有效的方式将内容15递送给用户16,以实现一个或多个预期结果/目标。例如,对特定的网站,预测可以预测:具有某些特征的用户16将点通关键web页面,购买网站上的商品,在晚上9点和午夜之间进行访问,或者感兴趣的任何其他策略性目标。
在一个实现中,预测引擎34可以根据模型来标识以下内容元素集合,该内容元素集合被预测为最有可能致使访问网站的任何给定用户与模型目标相一致地(即,与内容提供商14的特定目的或目标一致)操作。在另一个实现中,预测引擎34可以允许内容提供商14进行这种标识。
预测引擎34可以生成预测协变量65,其可以在响应于针对内容15的请求而将内容15分配给用户16时使用。也就是说,预测引擎34可以生成以针对特定类型的用户16的特定内容为目标的预测规则,由此提供内容15递送的个性化。预测规则可以是一组规则,其将不同类型或类别的用户16匹配至特定内容15。因此,预测引擎34将模型(其提供所观测行为的摘要5描述)转化为试图优化预期行为的简单规则集。预测规则被转发至分配器模块22,以便应用于内容15向用户16的递送。
实验引擎30、模型引擎32以及预测引擎34中每个的功能可以通过例如主机、文件服务器、工作站的任何适当处理器或者运行适当软件并在任何适当操作系统(如MS-DOS,MacINTOSHOS,WINDOWSNT,WINDOWS2000,OS/2,UNIX,XENIX,GEOS等等)控制下运行的其他适当数据处理设备来执行。
观测模块36与分配器模块22(在内容系统10中)、实验引擎30、以及模型引擎32通信。通常,观测模块36的作用是维护或存储观测数据。观测数据可以是与所观测到的访问内容提供商14网站的用户16的行为有关的信息或数据。可以针对通信管理系统12所管理的每个实验来收集观测数据,并且因此,观测数据可以包括针对实验条件和观测结果的信息。而且,存储在观测模块36中的观测数据可以包括用于多个变量的数据,其中变量例如实验变量、协变量、以及因变量。实验变量可以涉及或表示内容本身。例如,实验变量可以涉及或指定用于实验或用于实验时段的内容处理。实验变量可以被控制,并且可以认为是自变量。因变量涉及或表示结果。例如,因变量可以涉及在处理分配之前或者之后观测到的用户行为。因变量通常将是待优化的目标函数的组成部分。作为示范性示例,因变量可以涉及处理的分配以及此类分配的成功或失败。如果用户16以预期方式对处理做出反应,则认为处理分配的实例为“成功”;如果用户16未以预期方式对所述处理做出反应,则认为处理分配的实例为“失败”。协变量是涉及或表示用户16的变量。例如,协变量可以涉及最终用户的特征(例如,特定的计算机和web浏览器)。此外,协变量可以涉及使用特征(点击的按钮、选择的导航选项、提交的信息、已进行的购买等等)。观测数据还可以包括来自网站的数据日志或客户数据库的可用信息。利用这些数据和信息,通信管理系统12可以将用户16划分为离散的群组或指定用户16的分布,其中每个群组或分布由行为结果的特定集合来表征。
观测模块36可以通过任何一个或多个适当的存储介质来实现,例如随机访问存储(RAM)磁盘存储、或其他适当的易失性和/或非易失性存储介质。在一个实施方式中,观测模块36可以包括关系型数据库。
内容提供商接口38可以与内容存储24(在内容系统10中)、实验引擎30、以及观测模块36通信。内容提供商接口38接收模块结果并且启动分析、评估、选择、标度以及基本报告。内容提供商接口38通常支持通信管理系统12和内容提供商14处的人类用户(例如,信息服务管理者)之间的接口。内容提供商接口38允许所述管理者用户提问、记录并测试情景、以及生成或者获取报告以量化结果。
例如,内容提供商接口38允许10管理者用户协助建立和管理由通信管理系统12执行的实验、建模和预测的过程。内容提供商接口38可以接收用于输入内容存储24的新内容15以及用于转发至实验引擎30的定义。在一个实施方式中,内容提供商接口38可以用来定义针对各种实验的条件和空间、将要操控的属性和等级、所跟踪的个体数据,以及用来启动各种实验设计的生成和创建。而且,内容提供商接口38可以允许所述管理者用户直接根据观测模块36以粗略的形式、或是根据模型引擎32以模型的形式来查看和分析数据。
内容提供商38的功能可以由一个或多个适当的输入设备(例如键盘、触摸屏、输入端口、指点设备(例如鼠标)、麦克风和/或能够接受信息的其他设备)以及一个或多个适当的输出设备(例如计算机显示器、输出端口、扬声器或用于传送包括数字数据、可视信息、或音频信息等信息的其他设备)来执行25。在一个实施方式中,内容提供商接口38可以包括或可操作用于显示具有多个交互设备的至少一个图形用户接口(GUI),所述交互设备例如按钮、窗口、下拉菜单等等,以促进信息的录入、查看和/或获取。
脚本/调度引擎39可以与分配器模块22、实验引擎30、模块引擎32、预测引擎34以及内容提供商接口38通信。脚本/调度引擎39可以包括一个或多个程序,当运行该程序时,执行在此描述的功能。通常,脚本/调度引擎39的作用是管理通信管理系统12和内容系统10的整体操作。
脚本/调度引擎39提供或支持脚本的生成,所述脚本协调分配器模块22、实验引擎30、模型引擎32、预测器引擎34以及观测模块36的行为、动作和/或交互。因此,脚本/调度引擎39可以自动化在此描述的实验、建模以及预测的整个过程。实际上,每个脚本可以指引内容系统10或通信系统12中的一个或多个元素来执行特定的动作或一组动作。
例如,脚本/调度引擎39支持可被执行以测量用户16的行为和反应的各种实验的建立。对于每个实验,脚本/调度引擎39可以生成或提供定义。这些定义可以提供给分配器模块22以执行实验。另外,脚本/调度引擎39可以监测实验的完成,以及随后指引模型引擎32根据实验数据来建立或生成模型。脚本/调度引擎39可以生成或支持用于将此类实验的结果转换为模型并最终转换为预测的脚本,其被设计以实现特定结果/目标。脚本/调度引擎39可以将如何构建模型的指令递送给模型引擎32。这些指令可以指明观测模块36中的数据位置和多个变量(如实验变量、变量、以及因变量)中每个的名称、用于较容易建模的编码的转译、数据从连续到离散和模型形式的转换、或任何其他参数。脚本/调度引擎39可以创建针对模型状态的时间相关的解释,以供分配器模块22在处理用户请求内容15时使用。而且,脚本/调度引擎39可以给分配器模块22提供指令或命令以递送内容15,以用于实验或进行模型/预测。每一脚本可以包括基本的错误处理过程。
任何适当的处理器可以执行脚本/调度引擎39的功能,其可以是与用于实验引擎30、模型引擎32以及预测引擎34分离的处理器相同或者分离的处理器。
在操作中,一般来说,内容提供商接口38可以从内容提供商14接收实验定义。在一个实施方式中,例如,内容提供商14上的管理者用户输入过去网站业务流量或来自当前网站业务流量的采样的有关数据,以便确定如何设立并调度实验。使用所述实验定义,实验引擎30设计针对特定内容集合的一个或多个实验。每个实验可以包括多个内容结构或用于内容的处理。处理之一充当控制处理,而其余处理充当实验处理。对于每个实验,实验引擎30可以生成实验规则的独立集合,其指示在实验期间如何递送处理。这些实验规则被转发至分配器模块22。
分配器模块22将不同的处理分配至各个用户16,以响应来自用户16的针对内容的请求。分配是根据由实验引擎设计的实验规则来执行的。在实验期间,通信管理系统12观测用户对每个处理的行为,并且将这些观测的有关数据收集或存储到观测模块36上。这包括用于实验变量、协变量以及自变量的数据。
使用所述观测数据,模型引擎32生成用于所管控的每个实验的一个或多个模型。这些模型可以捕获用户16的目标行为的出现与所控制的内容变量之间的关系,以及捕获关于用户访问的细节。
根据实验和建模,通信管理系统12可以修改或定制递送至用户16的内容15的处理。特别地,预测引擎34生成一个或多个预测,其用于按照最有效的方式将内容15递送给用户16,以实现一个或多个55预期结果/目标。在一个实施方式中,预测引擎34自动地搜索针对最优内容结构或者处理的实验和建模的结果,并且推荐其用于向用户16的递送。在另一个实施方式中,预测引擎34允许内容提供商14上的人类用户(如信息系统管理员)指定多个最优内容结构或处理以递送至用户16。预测引擎34生成一组预测规则,其被转发至内容系统10中的分配器模块22中。
实验、建模以及预测的过程的每个都可以重复。通过利用将要递送给用户16的内容15连续地进行实验,内容系统10和通信管理系统12有系统地隔离不同通信属性对预期结果/目标的影响。通过基于该连续实验(如在此描述的)来建模一些用户或个体用户16,内容系统10和通信管理系统12能够自动并精确地生成和定义用于呈现定制通信的规则,以实现或改进预期10结果/目标。
这样,内容系统10和通信管理系统12实现了用于交互式通信的设计和开发的系统化方法,从而优化、增强、或其他改进产品开发、公共关系、客户服务、广告效力、电子商务、或可以得益于内容15的实时大量定制的任何其他应用。
实验引擎
图3是根据本发明的实施方式的实验引擎30的框图。实验引擎30通常支持一个或多个实验的创建和执行,以测试用户16对特定内容15的行为或反应和/或格式化内容的特定方式(即,处理)。在一个实施方式中,实验引擎30允许内容提供商14上的管理员用户从特别适于交互式内容实验的、各种可能的经过设计的实验中自动地选择和实现经过设计的实验。如所描述的,实验引擎30包括实验数据存储40和实验管理器对象42。
通常,实验管理器对象42的作用是控制或管理各种实验的执行。实验管理器对象42允许建立经过设计的实验。例如,实验管理器对象42支持一个或多个实验变量的说明,可以调查或考虑这些实验变量对一个或多个感兴趣结果/目标的影响。例如,此类实验变量能够是背景颜色、网页位置或特定折扣。而且,对每个实验变量而言,实验管理器对象42支持一个或多个等级的说明。例如,对实验变量“背景颜色”而言,等级能够包括“蓝”、“粉红”、“黄”以及“绿”。对实验变量“网页上的位置”而言,等级能够包括“中间顶部”、“右底部”、“左边较低”以及“右中部”。对于实验变量“特定折扣”,等级能够包括“减10%”、“减15%”、“减20%”、“减25%”、“减30%”、“减35%”,“减40%”等等。从上面能够看出,实验变量可以是本质上离散的(如背景颜色)或本质上连续的(如特定折扣)。在一个实施方式中,管理者用户能够选择所述变量和相关联的等级。
一旦选择了实验变量和等级,实验管理器对象42能够指定内容15的不同组合或数值。实验管理器对象42可以为每个实验生成要递送的内容结构或处理,并确定递送条件(例如,递送给谁和什么时候递送)。为此,实验管理器对象42可以使用任何或所有在此描述的实验引擎的功能(表、搜索算法等等)。在这些处理中,用于每个实验变量的等级是系统化改变的。
根据用于内容15的给定集合的所有可能内容结构或处理的集合,可以为实验选择子集。更具体地,实验管理器对象42可以从所有可能处理的集合中选择那些以特定方式来最优地实现预期目标或结果的采样。这允许通信管理系统12研究比其他情况下更为大量、更为复杂的内容问题,也确保系统(以及由此还有管理者用户)将会了解哪个内容元素对于用户行为具有怎样的影响,以及因而什么处理对于向站点访问者的将来递送而言是最优的。每个选择的子集可以认为是“控制”内容结构。控制意味着:处理中实验变量的不同等级在通信管理系统12或管理者用户的控制之下或者可以由其指定。
实验管理器对象42还可以定义或实现统计采样程序。这些统计采样过程用于从访问内容提供商14所维护网站的所有用户16中选择将要接收控制内容结构或处理的一些人。可以使用用户简档的组合和/或统计上有效的随机选择技术来完成该选择(例如,分段,其可以包括含有所有用户的分段)。在一个实施方式中,实验管理器对象42可以允许内容提供商14处的管理者用户显式或者隐式地指定接收控制处理的用户16的特定目标人群。例如,实验管理器对象42可以30允许管理者用户选择总计网站业务流量的一部分,继而设计并实现可以应用于总计业务流量的这一部分的实验。利用可以从实验管理器对象42获得的采样过程,管理者用户可以为特定的采样或为来自特定用户群的采样设置限额,其中每个人群可以具有某些共同的特征(例如,ISP,使用的时间,等等)。
实验管理器对象42还可以例如,基于来自管理者用户的输入来指定每个实验什么时候会运行以及运行多久。
实验管理器对象42可以跟踪在给定时间运行的实验以及参与每个实验的用户16。实验管理器对象42还可以通过脚本/调度引擎39来引导通信管理系统12或内容系统10中的其他引擎或元件在每个实验进行时收集关于该实验的数据和信息。例如,实验管理器对象42可以引导分配器模块22来收集各种实验的观测数据,并且将这些数据存储在观测模块36中。因此,可以确定已经完成了什么实验、正在进行什么实验、以及实验空间的什么部分有待实验。而且对每个实验而言,实验管理器对象42生成一组规则,其引导分配器模块22在实验期间应当如何分配处理。
在一个实施方式中,实验管理器对象42可以实现或包括一组接口对象,其可以在通信管理系统12与内容系统10的各部件或模块之间递送。
实验数据存储40与实验管理器对象42通信。实验数据存储40的作用是存储实验数据44。实验数据44通常包括实验引擎30所创建和执行的实验的有关数据和信息。这包括过去(历史的)实验和当前进行中的实验的数据/信息。对每个实验,例如,实验数据44可以指明定义和定义实验的参数、在实验期间使用的内容15、为实验指定的变量、每个实验变量的等级、在所述实验期间考虑的内容结构或处理、针对每个实验跟踪的目标行为、用于每个实验的实验规则、以及被分配参与实验的用户16的定义或标识模式。
实验数据44还可以指定或包括用于建立实验的数据。在一个实施方式中,该数据可以包括一个或多个表。每个表可以与相应的实验设计相关联。可以向这些表中“填入”例如由实验管理器对象42(可选地,与内容提供商14处的管理者用户协作)输入的数据和信息,以便创建专门针对内容提供商14而设计的实验。实验数据存储40还存储内容系统10进行实验的能力的有关信息。
实验数据存储40可以在任何一个或多个适当的存储介质中实现,例如随机访问存储器(RAM),磁盘存储器、或其他适当的易失性或/非易失性存储介质。在一个实施方式中,实验数据存储40可以包括关系型数据库。
利用通信引擎30,通信管理系统12可以从用于内容15的给定集合的所有可能内容结构或处理的集合中选择如下采样,利用该采样进行实验将最优地实现预期目标或结果。这允许通信管理系统12与内容系统10协作来调查比其他可能情况不仅更为大量的而且更为复杂的内容问题。通信管理系统因此能够确定哪个内容结构或处理对用户16具有怎样的影响,并且因此,对向其他用户的将来递送而言什么内容是最优的。
模型引擎
图4是根据本发明的模型引擎32的框图。通常,模型引擎32的作用是根据在实验期间收集的数据来创建或建立行为模型。如图所示,模型引擎32包括数据视图阅读器48、模型生成器50、数据视图管理器对象52、模型输出对象54以及模型数据存储56。
数据视图阅读器48可以与观测模块36通信,通常,数据视图阅读器48的作用是获取或读取在实验期间收集到的观测数据。该观测数据可以包括与实验期间递送给各用户16的处理有关的数据以及每个递送的结果。可以观测用户对各处理的至少某些反应(例如,用户可能最终购买在特定的处理中提供的产品),并且因此,可以认为这些反应是目标行为。
模型生成器50与数据视图阅读器48通信,模型生成器50接收观测数据。建模生成器50将观测数据转换为可以统计上分析的格式。使用观测数据,模型生成器50生成一个或多个行为模型。这些行为模型可以捕获所述目标行为的发生、受控内容变量的集合(例如,横幅广告的放置或背景颜色)以及向其递送内容的用户16之间的关系。选择模型在某种意义上来说是行为模型,因为其描述用户的选择或决定(即,他们的行为)的概率如何随着操纵实验中任意数量的变量的等级而改变。所述模型有助于以下情况,这些情况涉及在实验期间未观测的插值和/或关于未执行的处理的预测。在一个实施方式中,模型生成器50可以生成一个或多个偶然性表(contingencytable)。偶然性表是模型的形式。每个偶然性表能够是有助于具有少量已定义结果的情形的报告。偶然性表可以用于检查模型的复杂形式是否会成功。通过分析偶然性表,通信管理系统12可以在估计步骤中标识将会引起复杂模型失败的数据。偶然性表是非常完整的且相对快速的建模形式。
模型生成器50可以利用以用于选择建模、贝叶斯建模、神经网络、决策树的算法或其他相关建模算法来实现。这些建模算法中的至少一些算法是公开可用的,例如,在各种学术出版物或商业可用软件上。在一个实施方式中,模型生成器50可以利用MATLAB库和目标代码编译器来实现。
模型数据存储56与模型生成器50通信,通常,模型数据存储56的作用是存储和维护模型数据58。模型数据58可以是用于创建、描述、定义和实现在此描述的模型的任何信息和数据。例如,对于每个模型,模型数据58可以指定用于该模型的标识符、描述在模型下可用的选择选项的变量(例如,价格、折扣等级、背景颜色)、描述用户16的变量(例如,用户交互的时间、用户交互的日期、用户的ISP、用户计算机的操作系统等等)、一个或多个旧有系统的内容、人口统计学信息等等。
模型数据存储56可以在任何一个或多个适当的存储介质中实现,例如随机存储器(RAM)、磁盘存储器、或其他适合的易失性和/非易失性存储介质。在一个实施方式中,模型数据存储56可以包括关系型数据库。
数据视图管理器对象52与模型数据存储56和数据视图阅读器48通信。通常,数据视图管理器对象52的作用是通过数据视图阅读器48将各种模型输出给内容提供商14处的人类用户(例如信息系统管理员),以便该用户进行解释。在一个实施方式中,数据视图管理器对象52可以实现或包括能够在通信管理系统12和内容系统10的各部件或模型之间递送的一组接口对象。
在一个实施方式中,内容提供商14可以将用户信息存储到分离的数据库中,该数据库可以合并到模型数据存储58中。例如,由内容提供商14支持的在线银行应用可以从用户的互联网会话和金融机构的公司数据库中提取数据。在这种情况下,数据视图管理器对象52会将公司数据库链接到模型数据存储56中。
模型输出对象54与模型数据存储56相通信,通常,模型输出对象54的作用是将各种模型输出到预测引擎34,以按照预测进行转换或使用。在一个实施方式中,模型输出对象54可以实现或包括在通信管理系统12和内容系统10的各部件或模型之间递送的一组接口对象。
预测引擎
图5是根据本发明的预测引擎34的框图。通常,预测引擎34的作用是使用行为模型来创建或建立预测。如图所示,预测引擎34包括预测生成器62、预测输出对象64以及预测数据存储66。
通常,预测生成器62的作用是生成一个或多个预测,例如,其预测各用户16如何对特定的内容做出反应。可以认为这些预测是大量定制过程。预测使用如包含在模型中的、所揭示(观测)的用户16的偏好来生成统计上可行的预测规则。预测生成器62可以从建模引擎32和内容提供商接口38接收输入,以开发用于将内容15瞄准特定用户16的规则,以便实现预期目标/结果(例如,产品的销售),由此优化内容15的递送。这可以通过转换由建模引擎32输出的各种模型来实现。
在一个实施方式中,预测生成器62可以实现个性化过程。在交互式通信领域,个性化过程可以是这样的过程,凭借该过程,内容15基于其声明的或者隐含的偏好被作为目标以及递送至用户16。示例性个性化过程可以包括用于对用户16进行剖析或区段化的数据挖掘技术。区段化表示将用户16细分、划分或者分割到不同的、离散的群组或区段中。每个群组或区段可以是具有类似行为特征的用户的说明或分布。给定区段中的用户16的行为趋于较为同质(homogenous),然而在区段之间的用户16的行为趋于较不同质。区段可以从无(大量无差别的市场)变化到唯一的个体。
用户16的区段可以基于针对如下特定用户16标识的信息而在建模过程中确定,其中所述特定用户16在与其站点相关的行为中有意以唯一的方式对观测到的内容15做出反应。为了实现区段化,针对用户交互而跟踪每个区段的定义信息。这可以通过区段化规则来完成。可以针对用户16的每一区段来编程或提供独立的区段化规则集。这些规则可以指定将内容15递送至用户16的细节。例如,对于每个区段,独立的规则集可以指定应当在什么时间递送什么内容15。另外,内容提供商14处的管理者用户可以选择预先确定的区段。
预测生成器62将由模型引擎32生成的预测模型转化为优化规则集,其被称为预测。也就是说,预测生成器62可以优化过程,其从内容系统10和/或通信管理系统12移除不成功的内容组合或处理的有关信息,因此仅留下值得使用的内容组合或处理的有关信息。
通过移除此类无用数据,预测生成器62增强了得到的实时处理速度。对于基于预测生成器62来操作的任何给定模型而言,进行对规则集的转换,从而将模型映射回内容系统可以理解的术语。在此过程中,可以接受针对用户16的各种亚群(sub-population)的独立模型中和/或个体用户的驱动模型中其行为差异的特征。
这样,预测生成器62的技术和功能允许包含和分析用户16的多个个体特征,以及对特征进行组合以驱动行为中差异的不同方式。例如,在其他因素相同的情况下,时间可能与各用户16点通网站的倾向的差异相关联。而且,时间可能与用户对报价或页面上的位置等属性的敏感度的差异相关联。
预测生成器62可以从管理者20用户接收输入,例如,该输入指定用于内容递送的调查和优化的特定区段。通过内容提供商接口38,管理者用户可以基于观测模块36中可用的或是来自内容提供商自己的客户(用户)或站点数据库的数据、字段和值来指定标识规则。
预测数据存储66与预测生成器62通信。同行,预测数据存储66的作用是存储和维护预测数据68。预测数据68可以是用于创建、描述、定义以及实现在此描述的预测的任何信息和数据。对于每一预测,例如,预测数据68可以指定用于所述预测的标识符、用于所述预测的规则集、描述用户16的类别的定义、以及对每个类别而言最好的内容15。
预测数据存储66可以在任何一个或多个适当的存储介质中实现,例如随机存储器(RAM)、磁盘存储器或其他适合的易失性和/非非易失性存储介质。在一个实施方式中,预测数据存储66可以包括关系数据库。
预测输出对象64与预测数据存储66和(模型引擎32的)数据视图阅读器48通信。预测输出对象64可以在将内容15递送给用户16期间将各种预测规则输出至内容系统10以便应用。在一个实施方式中,预测输出对象64可以实现或包括可以在通信管理系统12和内容系统10的各部件或模型之间递送的一组接口对象。
在一些包括大量内容或大量用户数据的应用中,预测规则集的大小可能大于人类用户(例如管理者用户)实际能够查看大小。为了允许可实行的人类查看,预测引擎34可以并入或包括用于生成缩减的规则集的一个或多个规则缩减算法。因此,当期望时,管理者用户可以与预测引擎34交互以请求缩减的规则集。
在规则缩减过程的一个示例性实现中,根据用户特征和最优内容的相似性或差异性对用户16进行搜索和聚集在一起。这些聚集的群组充当用于实现预测的区段。在规则缩减过程的另一示例性实现中,在建模过程期间同时搜索区段。在另一个示例性实现中,使用成本函数来约束模型,以产生合理的数目较小的不同预测规则。
观测模块
图6是根据本发明的实施方式的观测模式的框图。如图所示,观测模块36包括观测数据存储74和观测访问对象76。
通常,观测数据存储74的作用是维护10或存储观测数据78。观测数据78可以是与所观测到的访问内容提供商14的网站的用户16的行为有关的数据或信息。由此,观测数据78例如可以指定访问网站的用户16、每个用户的IP地址、在将内容15递送至每个用户的实验条件、每个访问的观测成果或结果、一个或多个实验变量、一个或多个预测协变量、一个或多个因变量、每个访问的时间戳、以及在分析期间能够使用的其他有用数据。至少一部分观测数据78可以构成观测的原始信息和基本统计。观测数据78可以作为适于由用户(如访问者)、处理、会话、以及用户简介查看和建模结果的结构来维护。观测数据78可以允许通信管理系统12和内容系统10将相同的处理递送至回访网站的用户16(假设此类用户从相同的IP地址回访)。观测数据存储74可以通过内容提供商接口32将观测数据78提供给管理者用户。
观测访问对象76与观测数据存储74通信。通常,观测访问对象76的作用是提供对观测数据78的访问(存储或获取)。观测访问对象76可以按照直接适于建模的形式将观测数据78传送至模型引擎32。传送过程可以包括检查用于数据“病态”(例如,丢失的数据、结构性依赖等)的观测数据78以及将所述数据变换成可用于模型的形式(例如,分类和效应编码)。在一个实施方式中,观测访问对象76可以实现或包括在通信管理系统12和内容系统10的各部件或模型之间递送的一组接口对象。
在一些示例中,内容提供商14可以将用户信息存储在独立的数据库中,该数据库可以与观测数据存储74中的其他数据相结合。例如,由内容提供商14支持的在线银行应用可以从用户的互联网会话和金融机构的公司数据库中提取数据。在这种情况下,观测访问对象76会将所述公司数据库连接至观测数据存储74。
脚本/调度引擎
图7是根据本发明实施方式的脚本/调度引擎39的框图。如上文所述,通常,脚本/调度引擎39的作用是调整和自动化在通信管理系统12和内容系统10中的其他元件的操作。如图所示,脚本/调度引擎39包括事件队列80、定时器82、脚本解释器84以及脚本数据存储86。
通常,脚本解释器84的作用是运行各种65脚本,这些脚本为通信管理系统12和内容系统10中的其他引擎和模块(例如,分配器模块22、实验引擎30、建模引擎32、预测引擎34、或观测模块36)提供指令或者指示。这些脚本可以启动或致使某些动作在通信管理系统12和内容系统10中要发生,以响应于各种事件。每个脚本可以指定将要发送到系统10和12中其他引擎或模块的指令的序列或者系列,以便协调指令的运行。
例如,事件可以是由通信管理系统12或内容系统10中的各个模块或引擎中之一执行的某些任务的完成。相关的模块或引擎可以将每个此类事件的通知传送至脚本/调度引擎39。事件还可以涉及预定时间(例如早上8点)的到来或预定量的时间(例如2个小时)的流逝。定时器82跟踪时间并且生成与时间相关的每个事件的信息。
事件队列80与脚本解释器84通信,事件队列80接收并存储通知给脚本/调度引擎39或者在内部生成的每个事件的信息。事件队列80实现用于处理一个或多个事件的队列。这些事件可以在各种脚本中指定,并且可以用来触发脚本解释器84的指令的发出。换句话说,对于每个事件,脚本解释器84根据特定的脚本可以启动或致使某些动作在通信管理系统12或内容系统10中执行。
例如,事件可以是实验引擎30的实验的完成,在这种情况下,脚本解释器84可以期望地启动使用实验结果的相应模型的生成。因此,使用各种模型和引擎所产生的数据以及诊断信息,脚本解释器84可以确定该模块或引擎是否成功地完成其相应的任务,以及通过发出相应指令来启动适当的动作。
脚本数据存储86与脚本解释器84通信。通常,脚本数据存储86的作用是维护或存储脚本数据88。脚本数据88可以是与脚本解释器84生成和运行的各种脚本相关的数据或信息。因此,对于每个脚本,脚本数据88例如可以指定脚本的标识符、作为脚本一部分的指令、应当发出指令的序列、应当触发指令发出的事件、应当向其发出指令的模块或引擎等等。
用于管理内容的方法
图8是根据本发明实施方式的用于管理递送给用户的内容的示例性方法的流程图。方法100可以对应于与内容系统10协作的通信管理系统12的操作的各个方面。
方法100开始于步骤102和104,在此,通信管理系统12与内容系统10协作来定义实验空间和实验。在一个实施方式中,实验引擎30可以生成60实验和相应实验空间的各种定义。这些定义可以指定将作为实验主题的内容15的特定集合、将安置内容15的一个或多个处理、进行每个实验的时段、将向其递送处理的用户16的控制群组、管理内容处理递送的实验规则、预期实现的目标/结果等等。在一个实施方式中,内容提供商14处的管理者用户可以与通信管理系统12交互以设计实验。
在步骤106,实验引擎30调度活跃的实验,以便将特定的处理递送至用户16的相应控制群组。在步骤108,与分配器模块22协同工作的实验引擎30执行所定义的实验,并且收集所观测到的用户行为的有关数据。在一个实施方式中,分配器模块22可以应用实验规则来将各处理递送至特定的控制群组。这可以响应于用户针对内容15的请求而执行。分配器15模块32可以将观测到的用户行为的有关细节(其涉及将要优化的目标或其他)存储在观测模块36中。
在步骤110,模型引擎32使用针对所观测行为而收集的数据/信息来创建模型。模型可以反映内容元素影响用户16的行为或选择的程度。特别地,行为模型可以包括复杂的、连续的、以及离散的多元统计模型,其可用于确定内容结构或处理25的什么方面影响实现特定结果的概率。
在步骤112,预测引擎34创建或生成预测。该预测可以是对如下模型的简单描述,该模型用于按照对于实现预期结果/目标而言最为有效的方式将内容15递送至用户16。预测可以部分地利用预测规则集来实现,所述预测规则以对特定类型用户的特定内容为目标。在步骤114,如果期望,通信管理系统12允许内容提供商14处的管理者用户对预测进行定制。
在步骤116,通信管理系统12与内容系统10协作以执行预测并收集数据。特别地,分配器模块22可以应用预测规则来递送内容15,以响应40用户16的请求。这导致特定处理对用户16的递送取决于特定的标准(例如,时间,点击轨迹等等)。收集与用户16对相应处理的行为有关的数据。在步骤118,模型引擎32和预测引擎34可以协作来分析在预测阶段协期间的处理递送的结果。
在步骤120,通信管理系统12确定观测结果是否满意。也就是说,通信管理系统12确定用户16是否以期望的方式对递送的内容处理做出了反应从而实现了预期结果或目标。如果观测结果不满意,则在步骤122,模型引擎32改变模型的参数、类型等等,此后方法100返回步骤110,在此创建新模型。方法100重复步骤110到122,直至在步骤120确定预测的结果是满意的。此时,方法100结束。
用于定义实验的方法
图9是根据本发明实施方式的用于定义针对结构化内容的实验的示例性方法的流程图。方法200可以对应于通信管理系统12的实验65引擎30的操作的各方面。
可以针对与内容系统10协作的通信管理系统12所执行的每个实验来执行方法200。每个实验可以关注或专注于可以存储在内容系统10中的内容15的特定集合。例如,内容15的任何集合可以包括书面文本、图像、图形、动画、视频、音乐、语音等等。内容的基本组成部分可以是文本文件、图像文件、音频文件、视频文件等等。
方法200开始于步骤202,在此,对于当前实验,实验引擎30标识用户行为的预期目标/结果。例如,结果或目标可以是增加销售和利润、改进电子营销效力以及激励具体商业智能应用。在一个实施方式中,内容提供商14处的管理者用户可以经由内容提供商接口38来标识或选择预期目标/结果。在步骤204,实验引擎30标识内容15的特定集合的那些基本组成部分可能潜在地影响与预期目标/结果有关的用户行为。这可以是经过设计的实验的一部分。
在步骤206,实验引擎30使用基本组成部分的各种组合来生成多个备选内容结构或处理。例如,每个内容结构或处理可以是web页面的特定实现。这些备选内容结构可以在通信管理系统12的控制下改变用于一个或多个实验变量的基本组成部分。例如,这些变量可以是背景颜色、屏幕布置、内容大小等等。不同数值或等级可用于每个变量。例如,对于变量“背景颜色”而言,不同的等级可以是红色、蓝色、灰色、和黑色。对于屏幕布置来说,不同的等级可以是顶部中央、右底部、左下等等。不同的处理可以被另外递送以响应对内容同样的请求,如在此描述的。
在步骤208,实验引擎分配用于实验实现的控制变量和等级。这得到用于本实验的内容15的特定集合的多种备选内容结构或处理。例如,在一个处理中,横幅广告可以具有黄色背景并且放置在屏幕的右上角,而在另一个处理中,横幅广告可以具有蓝色背景并且放置在屏幕的中左部。可以在实验期间将这些内容15的备选处理递送至用户16,而后,方法200结束。
用于进行实验和收集数据的方法
图10是根据本发明实施方式的用于进行实验和收集用于可跟踪的结果/目标的数据的示例性方法300的流程图。方法300可以对应于与内容系统10协作的通信管理系统12的操作的各方面。
方法300开始于步骤302,在此,实验引擎30和脚本/调度引擎39选择一个或多个内容结构或处理以便在本实验期间递送至用户16。每个处理可以是要呈现在web页面上的内容15的特定格式。例如,web页面内容的一个处理可以包括蓝色背景,在其上,每个产品的照片被从上到下显示在屏幕的左边,在靠近每个照片右边处提供有随附描述。用于内容的另一个处理可以包括红色背景,在其上,每个产品的照片从左到右显示在屏幕的上方,在每个照片下面提供有随附描述。
备选地,这些处理可以响应于针对内容的同样请求而递送。一个示例性的请求可以是针对显示特定商品(例如,几件服装产品)的web页面的请求。这种web页面请求可以指定该web页面的特定标识符,例如,统一资源定位器(URL)。而且,web页面请求可以涉及点击网页上特定超链接的用户动作。
在步骤304,通信管理系统12指定接收选定处理的用户16的特定目标群或区段。在一个实施方式中,管理者用户可以显式指定站点用户的特定目标群。例如,目标群可以是那些在平目的下午4点到晚上10点之间访问特定web页面的用户。在步骤306,分配器模块22统计地采样,以便从目标群选择用户16的一个或多个控制群组。例如,在一个实施方式中,统计采样过程可以用来从所有简档匹配的站点访问者中选择将接收在此描述的控制处理的随机样本。每个控制群组可以包括从内容提供商12请求内容的一个或多个用户16。响应于针对内容的相同请求,每个控制群组可以在实验期间接收不同的处理。在步骤308,通信管理系统12分配用于实现的控制变量和数值/等级,由此指定将向每个控制群组递送什么处理。
在步骤310,分配器模块22经由用户接口26将相应的处理分配或递送至每个控制群组。在实验期间,可以向针对内容提供商14的网站发起相同请求(例如,通过指定同样的URL或点击同样的超链接)的各用户16递送不同的处理。参考上文描述的示例,请求服装产品有关信息的第一控制群组可以接收具有蓝色背景和垂直放置的照片的处理,而请求同样信息的第二控制群组可以接收具有红色背景和水平放置的照片的处理。分配器模块22可以存储或记录控制处理的有关信息并且递送至观测模块36中的相应控制群组。
在步骤312,与内容系统10协作的通信管理系统12跟踪接收各种处理的用户16与站点相关的行为。该行为可以是用户如何顺利地或不顺利地查看各种处理的指示符。继续考虑直接的示例,在呈现包括蓝色背景和垂直对准的照片的处理时,第一控制群组中40%的用户可能实际购买服装产品,而在呈现包括红色背景和水平对准的照片的处理时,第二控制群组中只有15%的用户实际购买服装产品。该信息或数据可以包括与预期目标/结果相关联的因变量信息。所有这些信息可以作为观测数据78存储到观测模块36中。
在一个实施方式中,可以将用户行为分类为不同状态。例如,这些状态可以是购买货物的决定、不购买货物的决定、停留在特定web页面的决定、移动到另一个web页面的决定,等等。跨过不同的控制群组,通信管理系统12可以针对各处理记录用户行为的状态的每个变化,以标识处理中的差异如何影响状态的变化。方法300继而可以结束。
用于建模和预测的方法
图11是根据本发明实施方式的用于建模和预测的示例性方法400的流程图。方法400可以对应于通信管理系统12的模型引擎32和预测引擎34的操作的各方面。
方法400开始于步骤402,在此,模型引擎32从观测模块36获取在部分由实验引擎30进行的实验期间产生的观测数据。该观测数据包括与访问内容提供商14网站的用户16的观测行为有关的数据或信息。除其他之外,观测数据例如可以指定访问内容提供商14网站的用户、将内容递送至每个用户的实验条件、每个访问的观测成果或结果、以及关于每个访问期间观测的行为25的一个或多个因变量。
在步骤404,模型引擎32使用多元统计建模技术(例如BayesianMarkovChainMonteCarlo估计过程)来分析观测数据,以确定内容15的哪些方面(类型或格式)影响结果概率性。为此,模型引擎32可以分析或考虑与实验期间观测的行为相关的各个因变量。模型引擎32可以生成一个或多个预测协变量。
在步骤406,使用分析的结果,与预测引擎34协作的模型引擎32确定什么内容结构或处理对于完成某些预期结果或目标而言是最好的。特别地,模型引擎32和预测引擎34生成例如各用户16如何对特定内容做出反应的预测。这可以通过将模型转换为预测规则集来实现。预测规则将内容15发给具体的用户16以便实现预期目标/结果(例如,产品的销售),因此最优化内容15的递送。方法400继而结束。
递送至控制群组的处理的优化选择
根据一种实施方式,对实验期间递送至控制群组的处理的选择进行优化,以提供被估计为满意一个或多个实验目标的概率最大的处理。如上文所述,图2中示出的内容系统10在实验期间将处理递送至用户,并且通信管理系统12中的观测模块36用于存储观测数据。观测数据包括所观测到的与处理交互的用户的行为的有关信息。这可以包括实验条件和观测结果的信息。
根据一种实施方式,使用所递送的处理的观测数据来为递送至控制群组的处理确定置信度。处理的置信度是对相应的处理或将要使用的处理中的内容元素组合满足一个或多个目标的能力的估计。这些置信度被用来确定新处理的加权,并且该加权用来确定将要递送至控制群组的处理的比例。在一个示例中,给予具有较高置信度(例如,表示具有较大的能力来满足一个或多个目标)的处理或内容元素组合较高的加权。继而,将较高加权的处理以大于较低加权的处理的比例递送至控制群组。这在整个实验过程中最小化了次优处理的递送,由此缩短实验的时间。
图12示出了如图2所示系统的实施方式,其被配置以根据置信度来执行处理的最优选择和递送。如图12所述的系统可以包括全部或大多数图2中的元件。某些元件进一步被配置以执行所述优化,而其它元件则按照关于图2描述的方式来进行操作。
模型引擎32确定预测模型,其用于选择用于实验的处理,并且预测引擎34确定用于选择处理的预测规则。根据一个实施方式,预测引擎34还基于接收处理的控制群组的观测数据来确定将要递送至控制群组的每个处理的置信度。例如,预测引擎34包括置信度确定模块51。置信度确定模块51可以包括在模型生成器50中。置信度确定模块51使用统计分析来基于观测数据对所递送的处理满足目标的程度进行量化。对于本领域技术人员而言易见的是,置信度确定模块51可以在系统的其它区域中提供。
递送至控制群组的每个处理可以包括内容元素组合,并且处理或处理中的内容元素组合的置信度被确定。注意,处理还可能具有单个内容元素,并且因而置信度可以针对该单个内容元素而确定。
在处理中的元素组合描述如下。每个内容元素可以构成要考虑和分析的因素,并且每个内容元素可以由类型和变化来表征。例如,考虑存在两类内容元素的情况:横幅广告和可以显示在横幅广告下面的文本消息。每个内容元素可以具有变化。对于横幅广告而言,变化可以是是静态的和移动的以及不同颜色背景和文本。对于文本消息广告而言,变化可以是不同颜色的文本。横幅广告的内容元素组合的示例包括具有特定背景颜色(如黄色)和文本颜色(橙色)的移动的横幅广告。
包括具有橙色文本和黄色背景的移动的横幅广告的处理通过网络递送至一个或多个控制群组,每个控制群组包括一个或多个用户。捕获每个控制群组中用户与处理的交互。在一个简单的示例中,目标是最大化点击广告的用户数量。观测模块36存储点击横幅广告的用户的指示。该点击横幅广告的用户数量可以由置信度确定模块51用来确定该横幅广告的置信度。该置信度与处理以及处理的元素组合的指示一起存储。处理的指示可以包括该处理的唯一ID以及该处理中的内容元素的描述。元件组合的指示可以标识内容元素类型和该组合中每个元素的类型的特定变化。在这个示例中,其是具有包括移动、黄色背景和橙色文本的变形的横幅广告类型。为每个处理确定置信度并将其存储。置信度可以存储在模块引擎32上,并且例如经由预测引擎34和分配器模块22发送至内容存储24以便存储。如上所述,预测引擎34还可以从模型引擎32接收预测模型,并生成预测规则,该预测规则被发送至分配器模块22以选择处理。图12示出了存储在内容存储24中的置信度52、处理53以及预测规则54。置信度52用于已经被递送至控制群组的处理。
图13是根据本发明实施方式的用于确定和存储置信度的示例性方法500的流程图。方法500通过关于图12所示的系统以示例而非限制的方式来描述。注意,在方法500的某些步骤在这里的其他方法中描述。而且,方法500的一个或多个步骤可以是用于选择处理的总体方法中的一部分,如下面关于方法600所描述的。
在步骤501,例如通过网络将处理递送至一个或多个控制群组。处理可以包括在线内容。内容系统10例如选择处理并将该处理递送至控制群组。
在步骤502,针对所递送的处理来捕获和存储观测数据。这包括与处理的用户交互。用户在控制群组中。观测模块36可以用来捕获和存储观测数据。观测数据还可以存储在内容存储24中。
在步骤503,使用观测数据为所递送的处理确定置信度。图12所示的置信度确定模块51使用观测数据来确定处理满足一个或多个目标的程度。在目标是最大化点击在线广告的数量的简化示例中,可以使用控制群组的大小和控制群组中点击广告的用户的百分比来确定置信度。可以使用较为复杂的统计分析过程来确定置信度。
在步骤504,存储置信度。每个存储的置信度还可以包括相应的已递送处理和处理的元素组合的指示。通过利用置信度来标识元素组合,元素组合和相应的置信度可以用来选择新的处理,以便在实验期间递送至控制群组,下面会详细描述。在将处理的不同集合递送至控制群组和评估时,重复该方法。存储的置信度继而可以用于优化对将要递送至控制群组的新处理的选择。
图14示出了根据本发明的用于实验中处理的优化选择和递送的方法600。方法600通过关于图12所示的系统以示例而非限制的方式来描述。
在步骤601,为实验确定处理的集合。最初,可以由实验引擎30来确定处理。例如,实验引擎30基于实验定义、内容元素的已声明变化、以及在先前实验中的观测来生成处理。将处理存储在内容存储24中。从存储的处理中选择处理的集合。随后,基于置信度来确定处理的多个集合。
在步骤602,将该处理的集合递送至一个或多个控制群组,并且,在步骤603,针对所递送的处理捕获观测数据。这类似于上面描述的方法500的步骤501和502。例如,处理经由网络递送至一个或多个控制群组。针对所递送的处理捕获和存储观测数据。这包括与处理的用户交互。用户在控制群组中。观测模块36可以用于捕获和存储所述观测数据。观测数据还可以存储在内容存储24中。
在步骤604,使用观测数据来确定预测。预测是基于类似特征的用户的过去行为来预测用户将会如何对特定的处理做出反应的估计。模型引擎32和预测引擎34可以用来生成预测。例如,模型引擎32分析观测数据以生成预测模型,并且预测引擎34使用预测模型来生成用于选择处理的预测规则。图4所示的方法400的步骤404和406进一步详细地描述生成预测模型和预测规则。
在步骤605,通信管理系统12确定观测的结果是否满意。这类似于图8所示的步骤120。例如,通信管理系统12确定控制群组中的用户是否已经以期望的方式对递送的内容处理做出了反应,因而实现了预期结果或目标。此确定是基于预测模型来执行的。如果观测的结果不满意,则如下文开始于步骤606的步骤中所描述的,选择新的处理。如果观测的结果是满意的,那么在步骤610,结束所述实验。然后可以将最优处理(即,可用内容的最佳选择)返回给新的访问者,并且最优处理规则可以是发布。所述最优处理规则可以用于选择最优处理并将其递送至新的访问者。
在步骤606,使用观测数据来确定集合中的处理的置信度,并且存储置信度,例如在方法500中的步骤503和504中描述的。
在步骤607,基于置信度来确定处理的新集合。可以使用置信度、预测模型以及预测规则来选择处理的新集合。类似于图8中的步骤116,分配器模块22应用预测规则以例如从内容存储24中选择处理的新集合。
根据一个实施方式,从候选处理的群组中选择处理的新集合。因此,在选择处理的新集合之前,确定候选处理的群组。处理基于其置信度以及使用其他标准而被选为候选处理。如上文所述,确定处理的置信度。置信度可以与处理一起存储,或者置信度可以针对相应的元素组合而存储信任,并且根据每个处理中的元素组合来与处理相匹配。
在一个实例中,置信度低于阈值的处理被剔除并且不被选作候选处理。阈值可以是用于标识明显不能满足实验目标的处理的相对较低的阈值。将置信度高于阈值的处理选作候选处理。这些候选处理用于在步骤607标识的新的一组处理。
在步骤608,为每个候选处理确定权重。例如,由预测引擎34为每个候选处理计算权重。加权可以是这样的,即给予较高的置信度以较高的权重。
在步骤609,基于权重来确定递送的候选处理的比例。例如,为了优化对递送给控制群组的、被估计为最能实现实验目标的处理的选择,将具有较高置信度的候选处理以大于具有较低置信度的候选处理的比例递送至控制群组。
在一个示例中,针对元素组合来确定置信度,并且对元素组合进行加权。从内容存储24选择具有对应于较高加权的组合的元素组合的处理,并且将其以大于具有较低加权的元素组合的处理的比例进行递送。
置信度可能错误地确定。例如,处理被不准确地给予了低置信度。随着处理随着时间被重新递送至控制群组,所述处理会被自动地给予较高的置信度,因为将会被控制群组的用户持续地选择。因此,加权过程提供自动置信度改正。
重复方法600的步骤,直至识别出处理满足了实验目标。方法600应该减小步骤中标识满足目标的处理的时间量,以用于新集合的处理的最优选择过程。
包括计算机可读介质的计算机系统图
图15出示了可以和在此描述的实施方式使用的计算机系统700。计算机系统700代表包括可以用在用户装置或可以在用于服务提供商的服务器中的部件的一般平台。计算机系统700可以作为用于执行一个或多个所述方法、功能和在此描述的其他步骤的平台来使用。
计算机系统700包括可以实现或执行实行一些或全部方法、功能和在此描述的其他步骤的软件指令。所述软件存储于计算机可读介质中,例如主存储器706和/或次级数据存储708。来自处理器702的命令和数据基于通信总线704来通信。计算机系统700还包括主存储器706,例如随机访问存储器(RAM),所述软件和用于处理器702的数据可以在运行期间停留,以及次数据存储708,其可以是非易失性的并存储软件和数据。所述存储器和数据存储是计算机可读介质的实例。
计算机系统700可以包括一个或多个I/O装置710,例如键盘、鼠标、显示器等等。计算机系统700可以包括用于连接至网络的网络接口712。对本领域技术人员而言,可以在计算机系统700中增加或替代其他公知的电子部件是显然的。
当已经关于实例描述所述实施方式,本领域技术人员将能够在不脱离主张的实施方式的范围内对所描述的实施方式进行不同的修改。