CN112817856A - Ab实验集成方法及系统 - Google Patents

Ab实验集成方法及系统 Download PDF

Info

Publication number
CN112817856A
CN112817856A CN202110156820.XA CN202110156820A CN112817856A CN 112817856 A CN112817856 A CN 112817856A CN 202110156820 A CN202110156820 A CN 202110156820A CN 112817856 A CN112817856 A CN 112817856A
Authority
CN
China
Prior art keywords
experiment
rule
shunting
grouping
client
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.)
Pending
Application number
CN202110156820.XA
Other languages
English (en)
Inventor
杨白冰
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110156820.XA priority Critical patent/CN112817856A/zh
Publication of CN112817856A publication Critical patent/CN112817856A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种AB实验集成方法,该方法包括:中心服务端配置所述AB实验的分流规则;将所配置的所述分流规则传送至所述本地服务端,以使所述本地服务端的分流引擎根据所述分流规则对所连接的多个客户端进行分组计算并为各个分组的所述客户端分配相应的实验任务;接收所述本地服务端上报的分组信息和实验数据;根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。本申请还公开了一种AB实验集成系统、电子装置和计算机可读存储介质。由此,能够提供一个快速且分布式的AB实验方案。

Description

AB实验集成方法及系统
技术领域
本申请涉及数据处理技术领域,尤其涉及一种AB实验集成方法、系统、电子装置及计算机可读存储介质。
背景技术
AB实验是一种随机实验,通常有两个变体(A组和B组),利用控制变量法保持有单一变量的前提下,将A组和B组数据进行对比,得出实验结论。这种实验方法被广泛应用在互联网产品中进行产品优化。
现代互联网产品在庞大的用户群体下,无法快速的决策某项功能的正确性以及最优方案,所以一个快速且有效的AB实验方案对整个产品的更迭优化起着至关重要的作用。大到内容的分发算法策略,小到一个按钮颜色以及文案变更带来的用户差异,均可以采用AB实验后的数据验证。一般情况下,是为同一个优化目标制定两个方案,让同一用户群体中的一部分用户命中A方案,同时另一部分用户命中B方案,统计并比较不同方案的点击率、转化率等数据指标,通过不同方案的数据表现,在确定数据表现通过假设检验后决定最终方案。
但是,各大互联网公司现有的绝大多数的AB实验平台都会遇到数据收集和接入方不友好的问题。因此往往都是采用的线上配置实验,线下计算数据的方式来进行对应的AB实验,这样带来的问题是人效低下,会有大量重复工作。并且,实验过程中可能遇到的多层多组实验的相互影响问题,会影响到最终的数据结果,导致判断不够准确。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种AB实验集成方法、系统、电子装置及计算机可读存储介质,旨在解决至少一个上述问题。
为实现上述目的,本申请实施例提供了一种AB实验集成方法,应用于中心服务端,所述中心服务端与一个或多个本地服务端通信连接,所述方法包括:
配置所述AB实验的分流规则;
将所配置的所述分流规则传送至所述本地服务端,以使所述本地服务端的分流引擎根据所述分流规则对所连接的多个客户端进行分组计算并为各个分组的所述客户端分配相应的实验任务;
接收所述本地服务端上报的根据所述分组计算得到的分组信息和所述客户端的实验数据;及
根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
可选地,所述分流规则的配置通过语法决策树实现,支持按照多维度信息及多种算法进行动态化配置。
可选地,所述配置所述AB实验的分流规则包括:
通过多叉树的数据结构配置多层级的分组实验,并通过在所述分流规则中加入随机盐实现同一个所述客户端在不同实验中的正交。
可选地,所述配置所述AB实验的分流规则还包括:
在所述AB实验的运行过程中实时调配流量占比。
此外,为实现上述目的,本申请实施例还提供一种AB实验集成系统,应用于中心服务端,所述系统包括:
配置模块,用于配置所述AB实验的分流规则;
传送模块,用于将所配置的所述分流规则传送至所述本地服务端,以使所述本地服务端的分流引擎根据所述分流规则对所连接的多个客户端进行分组计算并为各个分组的所述客户端分配相应的实验任务;
接收模块,用于接收所述本地服务端上报的根据所述分组计算得到的分组信息和所述客户端的实验数据;
展示模块,用于根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
为实现上述目的,本申请实施例还提供一种AB实验集成方法,应用于本地服务端,所述方法包括:
定期从中心服务端获取所述AB实验的分流规则,并根据所述分流规则更新本地的分流引擎;
所述分流引擎根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算,并向所述中心服务端上报分组信息;
根据所述分组计算的结果向所述客户端分配实验任务;及
从所述客户端中获取实验数据并将所述实验数据上报至所述中心服务端。
可选地,所述根据所述分流规则更新本地的分流引擎包括:
判断所述分流规则是否存在语法错误;
若存在语法错误,则所述分流规则不生效,沿用上一次正确的分流规则;
若不存在语法错误,则根据所述分流规则更新所述分流引擎。
可选地,所述根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算包括:
所述根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算包括:
获取每个所述客户端对应的基本信息,并根据所述分流规则中的语法描述和所述基本信息计算所述客户端所属的分组。
可选地,所述根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算还包括:
针对通过多叉树的数据结构配置的多层级的分组实验,采用深度优先遍历算法优先遍历所述多叉树的子节点,如果不符合所述子节点的条件则回溯到所述子节点的父节点,依次类推以找到所述客户端所属的分组。
为实现上述目的,本申请实施例还提供一种AB实验集成系统,应用于本地服务端,所述系统包括:
获取模块,用于定期从中心服务端获取所述AB实验的分流规则,并根据所述分流规则更新本地的分流引擎;
计算模块,用于所述分流引擎根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算,并向所述中心服务端上报分组信息;
分配模块,用于根据所述分组计算的结果向所述客户端分配实验任务;
上报模块,用于从所述客户端中获取实验数据并将所述实验数据上报至所述中心服务端。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的AB实验集成程序,所述AB实验集成程序被所述处理器执行时实现如上述的AB实验集成方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有AB实验集成程序,所述AB实验集成程序被处理器执行时实现如上述的AB实验集成方法。
本申请实施例提出的AB实验集成方法、系统、电子装置及计算机可读存储介质,能够提供一个快速且分布式的AB实验方案,采用分布式计算引擎的接入将计算资源分布式管理,还集成了实时的数据上报和分析处理,可以实时查看到AB实验的分流情况和实验数据效果。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种AB实验集成方法的流程图;
图3为本申请中一种可选的规则配置页面示意图;
图4为本申请中一种可选的分组计算时遍历多叉树的示意图;
图5为本申请第二实施例提出的一种AB实验集成方法的流程图;
图6为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图7为本申请第四实施例提出的一种AB实验集成系统的模块示意图;
图8为本申请第五实施例提出的一种AB实验集成系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于中心服务端2、本地服务端4、客户端6的应用环境中。
其中,所述中心服务端2用于进行AB实验配置和统一管理。所述中心服务端2通过网络与一个或多个本地服务端4通信连接,以进行数据传输和交互。
所述本地服务端4用于定期从所述中心服务端2获取AB实验配置,并根据所述AN实验配置更新本地的分流引擎。每个所述本地服务端4通过网络与一个或多个客户端6通信连接,以进行数据传输和交互。所述本地服务端4还用于根据本地的所述分流引擎的计算结果得到本地的各个所述客户端6的分组信息,向各个所述客户端6分配实验任务,并将所述分组信息和从各个所述客户端6得到的实验数据上报至所述中心服务端2。
所述客户端6用于根据所述本地服务端4分配的实验任务进行所属分组的实验并得到实验数据。所述客户端2可以为PC(Personal Computer,个人电脑)、手机、平板电脑、便携计算机、可穿戴设备等终端设备。
所述中心服务端2和所述本地服务端4可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例一
如图2所示,为本申请第一实施例提出的一种AB实验集成方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述中心服务端2为执行主体进行示例性描述。
该方法包括以下步骤:
S200,配置AB实验的分流规则。
所述AB实验的主要功能是实现互联网产品的策略以及样式的灰度实验。在本实施例中,所述中心服务端2主要提供所述AB实验的规则配置和统一管理,而通过服务集成AB实验SDK(软件开发工具包,在本实施例中包括辅助开发某一类软件的相关文档、范例和工具的集合)将规则解析功能分布在各个本地服务端4内部的分流引擎中运行,将计算性能的消耗分散到各个本地服务端4中。
首先,在所述中心服务端2提供规则配置页面,所述规则配置页面支持按照用户ID、设备ID、平台信息、版本号等多维度信息进行分流规则的配置。同时,为了多个AB实验之间相互不影响,支持的常见的Hash(哈希)分流。在本实施例中,一次AB实验在创建的时候需要指定实验目标、分流策略、对照组和实验组以及组外流量占比等分流规则。并且,可以通过AST(语法决策树)语法自定义描述所述分流规则(每组的实际流量占比可以自定义,并且可以细分为组外流量和组内流量),该语法支持黑白名单功能以及取值、逻辑运算、哈希运算等多种算法,可以动态化随机组合各种算法。
例如,参阅图3所示,为本申请实施例中一种可选的规则配置页面示意图。可以通过所述规则配置页面配置从全量用户中切分20%的流量,用作实验组和对照组进行所述AB实验。该分流方式具体为:将用户ID(uid)数字加上随机字符串(例如“sIfXwxr”)后进行CRC32哈希运算,再按10取模,若取模结果小于等于1则满足条件。通过该分流方式,可以从全量用户中做哈希运算后取20%的流量(用户ID尾号为0或1)做所述AB实验。然后,再“从上述20%流量中随机取10%(上述取模结果等于0,即用户ID尾号为0)作为对照组进行A组实验;从上述20%流量中随机取另外10%(上述取模结果等于1,即用户ID尾号为1)作为实验组进行B组实验。
本实施例除了支持自定义的分组外,实验过程中还可以实时调配流量占比。所述调配流量占比是指从组外流量中放量引入更多的实验样本,但是一个所述AB实验的中途不允许变更分流方式以及串组。举例而言,从全量用户中切分20%的流量做AB实验,中途仅允许从组外流量(80%)中切分更多的流量进入到实验中,将参与实验的流量从原来的20%提升到40%。而不允许变更分流方式是指同一个用户在实验中途不允许变更到其他组,否则会影响到实验数据。例如,假设某个用户原先在实验组(A组),实验中途不允许变更到对照组(B组)或者移到该实验外。当在所述规则配置页面中调配流量占比后,所述本地服务端4获取到新的分流规则,即可实现所有服务端的分流更新。
另外,所述规则配置页面中还支持多层级的分组实验,理论上支持无限层级的分组。为了实现多层级的分组,本实施例中采用多叉树的数据结构。例如,首先配置第一层实验(20%的流量)的A组(10%)和B组(10%),B组中可以细分为C组(5%)和D组(5%)进行第二层实验,C组中还可以细分为E组(4%)和F组(1%)进行第三层实验,依次类推可以实现无限层级的流量切分。
针对多层级的分组实验,将这些实验分别运行在不同的独立的层上即可,这样的话每个实验都可以独自享受到所有用户流量,而每一个用户(客户端6)也可以在同一时间参与位于不同层的多个实验、交叉获取不同层的实验版本,从而高效地进行所述AB实验。但使用这种实验方式有一个前提:不同层的实验本身在产品逻辑上是独立且互不干扰的。假设第一实验与第二实验逻辑上互相干扰,但又运行在不同的层,那么一个用户有可能同时参与了第一实验与第二实验两个实验,这样可能会造成矛盾或不期望的结果。例如第一实验是用户ID尾号为1的客户端6参与,第二实验是用户ID尾号为11的客户端6参与,则用户ID尾号为11的客户端6需要同时参与了第一实验和第二实验,可能由于第一实验和第二实验之间的相互干扰会导致实验数据污染,影响实验结果。
为了避免同时进行的多组实验之间的相互干扰,本实施例在进行分组时加入了随机盐,不同的实验中采用系统生成的随机盐,通过不同的随机盐来实现同一个用户(设备)在不同实验中的正交。在密码学中,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”,所加的这个特定字符串称之为“随机盐”。例如,在上述具体分流方式中,将用户ID的数字加上了随机字符串,该随机字符串即为所述AB实验分组时加入的随机盐。
S202,将所配置的所述分流规则传送至所述本地服务端4,以使所述本地服务端4的分流引擎根据所述分流规则进行分组计算并为各个分组的客户端6分配相应的实验任务。
在本实施例中,所有所述本地服务端4都可以集成所述AB实验的SDK,并且所述本地服务端4内部集成了分流引擎(分流的计算资源分布在每个本地服务端4内部,而非集中在中心服务端2中处理),所述本地服务端4定期从所述中心服务端2获取所述分流规则。所述中心服务端2将所述规则配置页面中配置的所述AB实验的所述分流规则传送至各个所述本地服务端4。所述本地服务端4根据获取的所述分流规则更新所述分流引擎。在所述本地服务端4中,所有的分流算法无网络请求,均通过本地的CPU计算实现。上述处理方式的优势为:计算资源尽可能的分布在各个业务方(本地服务端4),所述中心服务端2仅做规则的集中管理,所有的规则仅通过所述规则配置页面的配置即可完成,且中心服务端2所需计算资源不会随着AB实验业务方的增加而增加。
所述本地服务端4的分流引擎根据所述分流规则针对与之连接的所述客户端6进行分组计算并为各个分组的客户端6分配相应的实验任务。举例而言,所述本地服务端4可以获取每个所述客户端6对应的用户ID,并根据所述分流规则中的语法计算所述用户ID所属的分组。例如,用户ID尾号为0的客户端6属于实验组(A组),用户ID尾号为1的客户端6属于对照组(B组)。在完成上述分组计算后,所述本地服务端4将分组信息上报至所述中心服务端2。所述分组信息包括所述本地服务端4连接的每个客户端6的基本信息(例如用户ID、设备ID等)和所属的分组(例如A组、B组)等。
针对多层级的分组实验,在所述分流规则中采用的是多层多叉树的数据结构,此时所述分流引擎主要是找寻每个所述客户端6在所述多叉树中匹配的节点。所述本地服务端4在收到客户端6发出的请求后(即获取到所述客户端6的用户ID等信息后),可以采用计算机数据结构中深度优先遍历算法,优先遍历所述多叉树的子节点,如果不符合则回溯到其父节点,依次类推以找到所述客户端6所属的实验分组。其中,优先判断所述客户端6是否符合所述AB实验的分流方式,以及属于所述AB实验的哪一个分组(A组、B组)中,如果不符合则返回默认组。例如,参阅图4所示,为本申请实施例中一种可选的分组计算时遍历多叉树的示意图。
值得注意的是,本实施例中的分流引擎还支持容错处理,语法错误的分流规则在配置后不会立即生效,而是会延用上一次正确的配置。
在进行分组计算之后,所述本地服务端4会向对应的每个客户端6分配所属分组的实验任务,并从所述客户端6实时获取实验数据,然后将所述实验数据上报至所述中心服务端2。
S204,接收所述本地服务端4上报的分组信息和实验数据。
所述中心服务端2可以从所述本地服务端4中接收其上报的(所述本地服务端4所连接的客户端6的)所述分组信息和所述实验数据。其中,所述分组信息和所述实验数据均可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
S206,根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
针对一组所述AB实验或者同时存在的多组AB实验,所述中心服务端2均能根据所述分组信息和所述实验数据进行实时的分析处理,供用户实时查看分流情况和实验数据效果(可以做到分钟级的数据更新)。所述实验数据效果中包含了提前录入的业务指标,细分为指标维度和具体的数据指标,所述指标维度可以理解为是一组数据指标的统称,例如点击通过率为指标维度,其中又包含了曝光数据、点击数据等。
本实施例提出的AB实验集成方法,可以提供一个快速且分布式的AB实验方案,采用AST语法实现动态的实时分流,通过多叉树的数据结构和随机盐实现了多层级分组的功能,并且采用分布式计算引擎的接入将计算资源分布式管理,还集成了实时的数据上报和分析处理,可以实时查看到AB实验的分流情况和实验数据效果。
本实施例支持按照用户ID、设备ID、平台、版本等多维度的分流方式,算法层面支持取值、逻辑运算、哈希运算等分流计算方式。流量分层支持多层分流,分组中可以嵌套分组,理论上可以支持无限层的分流。多个层级的多组实验可以相互正交,以同时进行多维度的多个AB实验而不干扰实验结果。实验分流规则变更可以做到实时生效,动态地扩缩容分流。
实施例二
如图5所示,为本申请第二实施例提出的一种AB实验集成方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述本地服务端4为执行主体进行示例性描述。
该方法包括以下步骤:
S300,定期从中心服务端2获取所述AB实验的分流规则,并根据所述分流规则更新分流引擎。
所述AB实验的主要功能是实现互联网产品的策略以及样式的灰度实验。在本实施例中,所述中心服务端2主要提供所述AB实验的规则配置和统一管理,而通过服务集成AB实验SDK将规则解析功能分布在各个本地服务端4内部的分流引擎中运行,将计算性能的消耗分散到各个本地服务端4中。
首先,在所述中心服务端2提供规则配置页面,所述规则配置页面支持按照用户ID、设备ID、平台信息、版本号等数据进行分流规则的配置。同时,为了多个AB实验之间相互不影响,支持的常见的哈希分流。在本实施例中,一次AB实验在创建的时候需要指定实验目标、分流策略、对照组和实验组以及组外流量占比等分流规则。并且,可以通过AST语法自定义描述所述分流规则,该语法支持黑白名单功能以及取值、逻辑运算、哈希运算等多种算法,可以动态化随机组合各种算法。
例如,可以通过所述规则配置页面配置从全量用户中切分20%的流量,用作实验组和对照组进行所述AB实验。该分流方式具体为:将用户ID(uid)数字加上随机字符串(例如“sIfXwxr”)后进行CRC32哈希运算,再按10取模,若取模结果小于等于1则满足条件。通过该分流方式,可以从全量用户中做哈希运算后取20%的流量(用户ID尾号为0或1)做所述AB实验。然后,再从上述20%流量中随机取10%(上述取模结果等于0,即用户ID尾号为0)作为对照组进行A组实验从上述20%流量中随机取另外10%(上述取模结果等于1,即用户ID尾号为1)作为实验组进行B组实验。
本实施例除了支持自定义的分组外,实验过程中还可以实时调配流量占比。所述调配流量占比是指从组外流量中放量引入更多的实验样本,但是一个所述AB实验的中途不允许变更分流方式以及串组。举例而言,从全量用户中切分20%的流量做AB实验,中途仅允许从组外流量(80%)中切分更多的流量进入到实验中,将参与实验的流量从原来的20%提升到40%。而不允许变更分流方式是指同一个用户在实验中途不允许变更到其他组,否则会影响到实验数据。例如,假设某个用户原先在实验组(A组),实验中途不允许变更到对照组(B组)或者移到该实验外。当在所述规则配置页面中调配流量占比后,所述本地服务端4获取到新的分流规则,即可实现所有服务端的分流更新。
另外,所述规则配置页面中还支持多层级的分组实验,理论上支持无限层级的分组。为了实现多层级的分组,本实施例中采用多叉树的数据结构。例如,首先配置第一层实验(20%的流量)的A组(10%)和B组(10%),B组中可以细分为C组(5%)和D组(5%)进行第二层实验,C组中还可以细分为E组(4%)和F组(1%)进行第三层实验,依次类推可以实现无限层级的流量切分。
针对多层级的分组实验,将这些实验分别运行在不同的独立的层上即可,这样的话每个实验都可以独自享受到所有用户流量,而每一个用户(客户端6)也可以在同一时间参与位于不同层的多个实验、交叉获取不同层的实验版本,从而高效地进行所述AB实验。但使用这种实验方式有一个前提:不同层的实验本身在产品逻辑上是独立且互不干扰的。假设第一实验与第二实验逻辑上互相干扰,但又运行在不同的层,那么一个用户有可能同时参与了第一实验与第二实验两个实验,这样可能会造成矛盾或不期望的结果。例如第一实验是用户ID尾号为1的客户端6参与,第二实验是用户ID尾号为11的客户端6参与,则用户ID尾号为11的客户端6需要同时参与了第一实验和第二实验,可能由于第一实验和第二实验之间的相互干扰会导致实验数据污染,影响实验结果。
为了避免同时进行的多组实验之间的相互干扰,本实施例在进行分组时加入了随机盐,不同的实验中采用系统生成的随机盐,通过不同的随机盐来实现同一个用户(设备)在不同实验中的正交。在密码学中,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”,所加的这个特定字符串称之为“随机盐”。例如,在上述具体分流方式中,将用户ID的数字加上了随机字符串,该随机字符串即为所述AB实验分组时加入的随机盐。
在本实施例中,所有所述本地服务端4都可以集成所述AB实验的SDK,并且所述本地服务端4内部集成了分流引擎(分流的计算资源分布在每个本地服务端4内部,而非集中在中心服务端2中处理),所述本地服务端4定期从所述中心服务端2获取所述分流规则。所述中心服务端2将所述规则配置页面中配置的所述AB实验的所述分流规则传送至各个所述本地服务端4。所述本地服务端4根据获取的所述分流规则更新所述分流引擎。在所述本地服务端4中,所有的分流算法无网络请求,均通过本地的CPU计算实现。上述处理方式的优势为:计算资源尽可能的分布在各个业务方(本地服务端4),所述中心服务端2仅做规则的集中管理,所有的规则仅通过所述规则配置页面的配置即可完成,且中心服务端2所需计算资源不会随着AB实验业务方的增加而增加。
值得注意的是,本实施例中的分流引擎还支持容错处理,语法错误的分流规则在配置后不会立即生效,而是会延用上一次正确的配置。也就是说,所述分流引擎在获取到所述分流规则后,首先判断所述分流规则是否存在语法错误。若存在语法错误,则所述分流规则不生效,沿用上一次正确的分流规则。若不存在语法错误,则根据所述分流规则更新所述分流引擎。
S302,所述分流引擎根据所述分流规则对所述本地服务端4连接的客户端6进行分组计算,并向所述中心服务端2上报分组信息。
所述本地服务端4的分流引擎根据所述分流规则针对与之连接的所述客户端6进行分组计算。所述分流引擎获取每个所述客户端6对应的基本信息,并根据所述分流规则中的语法描述和所述基本信息计算所述客户端6所属的分组。举例而言,所述本地服务端4可以获取每个所述客户端6对应的用户ID,并根据所述分流规则中的语法描述计算所述用户ID所属的分组。例如,用户ID尾号为0的客户端6属于实验组(A组),用户ID尾号为1的客户端6属于对照组(B组)。在完成上述分组计算后,所述本地服务端4将分组信息上报至所述中心服务端2。所述分组信息包括所述本地服务端4连接的每个客户端6的基本信息(例如用户ID、设备ID等)和所属的分组(例如A组、B组)等。所述分组信息可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
针对多层级的分组实验,在所述分流规则中采用的是多层多叉树的数据结构,此时所述分流引擎主要是找寻每个所述客户端6在所述多叉树中匹配的节点。所述本地服务端4在收到客户端6发出的请求后(即获取到所述客户端6的用户ID等信息后),可以采用计算机数据结构中深度优先遍历算法,优先遍历所述多叉树的子节点,如果不符合则回溯到其父节点,依次类推以找到所述客户端6所属的实验分组。其中,优先判断所述客户端6是否符合所述AB实验的分流方式,以及属于所述AB实验的哪一个分组(A组、B组)中,如果不符合则返回默认组。
S304,根据所述分组计算的结果向所述客户端6分配实验任务。
在进行分组计算之后,所述本地服务端4会向对应的每个客户端6分配所属分组的实验任务。所述实验任务主要是向每个分组的客户端6提供该分组对应的互联网产品的策略或样式,以使所述客户端6的用户参与到所属分组的产品体验中,提供实验数据。
S306,从所述客户端6中获取实验数据并将所述实验数据上报至所述中心服务端2。
所述本地服务端4可以从所连接的所述客户端6中实时获取实验数据,然后将所述实验数据上报至所述中心服务端2。所述实验数据可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
所述中心服务端2从所述本地服务端4中接收其上报的所述分组信息和所述实验数据后,针对一组所述AB实验或者同时存在的多组AB实验,均能根据所述分组信息和所述实验数据进行实时的分析处理,供用户实时查看分流情况和实验数据效果(可以做到分钟级的数据更新)。所述实验数据效果中包含了提前录入的业务指标,细分为指标维度和具体的数据指标,所述指标维度可以理解为是一组数据指标的统称,例如点击通过率为指标维度,其中又包含了曝光数据、点击数据等。
本实施例提出的AB实验集成方法,可以提供一个快速且分布式的AB实验方案,采用AST语法实现动态的实时分流,通过多叉树的数据结构和随机盐实现了多层级分组的功能,并且采用分布式计算引擎的接入将计算资源分布式管理,还集成了实时的数据上报和分析处理,可以实时查看到AB实验的分流情况和实验数据效果。
各个本地服务端4内部集成AB实验的分流引擎独立计算,而非集中式处理。理论上可以横向扩展多个节点,理论上节点数量的增加不会带来系统的负担。另外规则的集中管理仅需要少量资源,并且中心服务端2的意外宕机不会影响各个接入的业务方,分流引擎发现是错误的规则描述不会自动生效,会保留上一次正确的规则。
实施例三
如图6所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图6仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述中心服务端2或所述本地服务端4。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如AB实验集成系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述AB实验集成系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
所述电子装置20的所述存储器21中存储的程序被所述处理器22执行时,可以实现上述第一实施例或第二实施例所述的AB实验集成方法。
实施例四
如图7所示,为本申请第四实施例提出一种AB实验集成系统60的模块示意图。所述AB实验集成系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述B实验集成系统60运行在所述中心服务端2中,所述AB实验集成系统60包括:
配置模块600,用于配置AB实验的分流规则。
所述AB实验的主要功能是实现互联网产品的策略以及样式的灰度实验。在本实施例中,所述中心服务端2主要提供所述AB实验的规则配置和统一管理,而通过服务集成AB实验SDK将规则解析功能分布在各个本地服务端4内部的分流引擎中运行,将计算性能的消耗分散到各个本地服务端4中。
首先,配置模块600提供规则配置页面,所述规则配置页面支持按照用户ID、设备ID、平台信息、版本号等多维度信息进行分流规则的配置。同时,为了多个AB实验之间相互不影响,支持的常见的哈希分流。在本实施例中,一次AB实验在创建的时候需要指定实验目标、分流策略、对照组和实验组以及组外流量占比等分流规则。并且,可以通过AST语法自定义描述所述分流规则(每组的实际流量占比可以自定义,并且可以细分为组外流量和组内流量),该语法支持黑白名单功能以及取值、逻辑运算、哈希运算等多种算法,可以动态化随机组合各种算法。
例如,可以通过所述规则配置页面配置从全量用户中切分20%的流量,用作实验组和对照组进行所述AB实验。该分流方式具体为:将用户ID(uid)数字加上随机字符串(例如“sIfXwxr”)后进行CRC32哈希运算,再按10取模,若取模结果小于等于1则满足条件。通过该分流方式,可以从全量用户中做哈希运算后取20%的流量(用户ID尾号为0或1)做所述AB实验。然后,再从上述20%流量中随机取10%(上述取模结果等于0,即用户ID尾号为0)作为对照组进行A组实验;从上述20%流量中随机取另外10%(上述取模结果等于1,即用户ID尾号为1)作为实验组进行B组实验。
本实施例除了支持自定义的分组外,实验过程中还可以实时调配流量占比。所述调配流量占比是指从组外流量中放量引入更多的实验样本,但是一个所述AB实验的中途不允许变更分流方式以及串组。举例而言,从全量用户中切分20%的流量做AB实验,中途仅允许从组外流量(80%)中切分更多的流量进入到实验中,将参与实验的流量从原来的20%提升到40%。而不允许变更分流方式是指同一个用户在实验中途不允许变更到其他组,否则会影响到实验数据。例如,假设某个用户原先在实验组(A组),实验中途不允许变更到对照组(B组)或者移到该实验外。当在所述规则配置页面中调配流量占比后,所述本地服务端4获取到新的分流规则,即可实现所有服务端的分流更新。
另外,所述规则配置页面中还支持多层级的分组实验,理论上支持无限层级的分组。为了实现多层级的分组,本实施例中采用多叉树的数据结构。例如,首先配置第一层实验(20%的流量)的A组(10%)和B组(10%),B组中可以细分为C组(5%)和D组(5%)进行第二层实验,C组中还可以细分为E组(4%)和F组(1%)进行第三层实验,依次类推可以实现无限层级的流量切分。
针对多层级的分组实验,将这些实验分别运行在不同的独立的层上即可,这样的话每个实验都可以独自享受到所有用户流量,而每一个用户(客户端6)也可以在同一时间参与位于不同层的多个实验、交叉获取不同层的实验版本,从而高效地进行所述AB实验。但使用这种实验方式有一个前提:不同层的实验本身在产品逻辑上是独立且互不干扰的。假设第一实验与第二实验逻辑上互相干扰,但又运行在不同的层,那么一个用户有可能同时参与了第一实验与第二实验两个实验,这样可能会造成矛盾或不期望的结果。例如第一实验是用户ID尾号为1的客户端6参与,第二实验是用户ID尾号为11的客户端6参与,则用户ID尾号为11的客户端6需要同时参与了第一实验和第二实验,可能由于第一实验和第二实验之间的相互干扰会导致实验数据污染,影响实验结果。
为了避免同时进行的多组实验之间的相互干扰,本实施例在进行分组时加入了随机盐,不同的实验中采用系统生成的随机盐,通过不同的随机盐来实现同一个用户(设备)在不同实验中的正交。在密码学中,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”,所加的这个特定字符串称之为“随机盐”。例如,在上述具体分流方式中,将用户ID的数字加上了随机字符串,该随机字符串即为所述AB实验分组时加入的随机盐。
传送模块602,用于将所配置的所述分流规则传送至所述本地服务端4,以使所述本地服务端4的分流引擎根据所述分流规则进行分组计算并为各个分组的客户端6分配相应的实验任务。
在本实施例中,所有所述本地服务端4都可以集成所述AB实验的SDK,并且所述本地服务端4内部集成了分流引擎(分流的计算资源分布在每个本地服务端4内部,而非集中在中心服务端2中处理),所述本地服务端4定期从所述中心服务端2获取所述分流规则。所述传送模块602将所述规则配置页面中配置的所述AB实验的所述分流规则传送至各个所述本地服务端4。所述本地服务端4根据获取的所述分流规则更新所述分流引擎。
所述本地服务端4的分流引擎根据所述分流规则针对与之连接的所述客户端6进行分组计算并为各个分组的客户端6分配相应的实验任务。在进行分组计算之后,所述本地服务端4会向对应的每个客户端6分配所属分组的实验任务,并从所述客户端6实时获取实验数据,然后将所述实验数据上报至所述中心服务端2。
接收模块604,用于接收所述本地服务端4上报的分组信息和实验数据。
所述接收模块604可以从所述本地服务端4中接收其上报的(所述本地服务端4所连接的客户端6的)所述分组信息和所述实验数据。其中,所述分组信息和所述实验数据均可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
展示模块606,用于根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
针对一组所述AB实验或者同时存在的多组AB实验,所述展示模块606均能根据所述分组信息和所述实验数据进行实时的分析处理,供用户实时查看分流情况和实验数据效果(可以做到分钟级的数据更新)。所述实验数据效果中包含了提前录入的业务指标,细分为指标维度和具体的数据指标,所述指标维度可以理解为是一组数据指标的统称,例如点击通过率为指标维度,其中又包含了曝光数据、点击数据等。
本实施例提出的AB实验集成系统,可以提供一个快速且分布式的AB实验方案,采用AST语法实现动态的实时分流,通过多叉树的数据结构和随机盐实现了多层级分组的功能,并且采用分布式计算引擎的接入将计算资源分布式管理,还集成了实时的数据上报和分析处理,可以实时查看到AB实验的分流情况和实验数据效果。
实施例五
如图8所示,为本申请第五实施例提出一种AB实验集成系统60的模块示意图。在本实施例中,所述AB实验集成系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述B实验集成系统60运行在所述本地服务端4中,所述AB实验集成系统60包括:
获取模块610,用于定期从中心服务端2获取所述AB实验的分流规则,并根据所述分流规则更新分流引擎。
在本实施例中,所有所述本地服务端4都可以集成所述AB实验的SDK,并且所述本地服务端4内部集成了分流引擎(分流的计算资源分布在每个本地服务端4内部,而非集中在中心服务端2中处理),所述获取模块610定期从所述中心服务端2获取所述分流规则,并根据获取的所述分流规则更新所述分流引擎。在所述本地服务端4中,所有的分流算法无网络请求,均通过本地的CPU计算实现。上述处理方式的优势为:计算资源尽可能的分布在各个业务方(本地服务端4),所述中心服务端2仅做规则的集中管理,所有的规则仅通过所述规则配置页面的配置即可完成,且中心服务端2所需计算资源不会随着AB实验业务方的增加而增加。
值得注意的是,本实施例中的分流引擎还支持容错处理,语法错误的分流规则在配置后不会立即生效,而是会延用上一次正确的配置。也就是说,所述分流引擎在获取到所述分流规则后,首先判断所述分流规则是否存在语法错误。若存在语法错误,则所述分流规则不生效,沿用上一次正确的分流规则。若不存在语法错误,则根据所述分流规则更新所述分流引擎。
计算模块612,用于通过所述分流引擎根据所述分流规则对所述本地服务端4连接的客户端6进行分组计算,并向所述中心服务端2上报分组信息。
所述本地服务端4的分流引擎根据所述分流规则针对与之连接的所述客户端6进行分组计算。所述分流引擎获取每个所述客户端6对应的基本信息,并根据所述分流规则中的语法描述和所述基本信息计算所述客户端6所属的分组。举例而言,所述计算模块612可以获取每个所述客户端6对应的用户ID,并根据所述分流规则中的语法描述计算所述用户ID所属的分组。例如,用户ID尾号为0的客户端6属于实验组(A组),用户ID尾号为1的客户端6属于对照组(B组)。在完成上述分组计算后,所述本地服务端4将分组信息上报至所述中心服务端2。所述分组信息包括所述本地服务端4连接的每个客户端6的基本信息(例如用户ID、设备ID等)和所属的分组(例如A组、B组)等。所述分组信息可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
针对多层级的分组实验,在所述分流规则中采用的是多层多叉树的数据结构,此时所述分流引擎主要是找寻每个所述客户端6在所述多叉树中匹配的节点。所述本地服务端4在收到客户端6发出的请求后(即获取到所述客户端6的用户ID等信息后),可以采用计算机数据结构中深度优先遍历算法,优先遍历所述多叉树的子节点,如果不符合则回溯到其父节点,依次类推以找到所述客户端6所属的实验分组。其中,优先判断所述客户端6是否符合所述AB实验的分流方式,以及属于所述AB实验的哪一个分组(A组、B组)中,如果不符合则返回默认组。
分配模块614,用于根据所述分组计算的结果向所述客户端6分配实验任务。
在进行分组计算之后,所述分配模块614会向对应的每个客户端6分配所属分组的实验任务。所述实验任务主要是向每个分组的客户端6提供该分组对应的互联网产品的策略或样式,以使所述客户端6的用户参与到所属分组的产品体验中,提供实验数据。
上报模块616,用于从所述客户端6中获取实验数据并将所述实验数据上报至所述中心服务端2。
所述上报模块616可以从所连接的所述客户端6中实时获取实验数据,然后将所述实验数据上报至所述中心服务端2。所述实验数据可以按照预设设置的指定格式进行上报,以便所述中心服务端快速进行分析处理。
所述中心服务端2从所述本地服务端4中接收其上报的所述分组信息和所述实验数据后,针对一组所述AB实验或者同时存在的多组AB实验,均能根据所述分组信息和所述实验数据进行实时的分析处理,供用户实时查看分流情况和实验数据效果(可以做到分钟级的数据更新)。所述实验数据效果中包含了提前录入的业务指标,细分为指标维度和具体的数据指标,所述指标维度可以理解为是一组数据指标的统称,例如点击通过率为指标维度,其中又包含了曝光数据、点击数据等。
本实施例提出的AB实验集成系统,可以提供一个快速且分布式的AB实验方案,采用AST语法实现动态的实时分流,通过多叉树的数据结构和随机盐实现了多层级分组的功能,并且采用分布式计算引擎的接入将计算资源分布式管理,还集成了实时的数据上报和分析处理,可以实时查看到AB实验的分流情况和实验数据效果。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有AB实验集成程序,所述AB实验集成程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的AB实验集成方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

Claims (12)

1.一种AB实验集成方法,应用于中心服务端,其特征在于,所述中心服务端与一个或多个本地服务端通信连接,所述方法包括:
配置所述AB实验的分流规则;
将所配置的所述分流规则传送至所述本地服务端,以使所述本地服务端的分流引擎根据所述分流规则对所连接的多个客户端进行分组计算并为各个分组的所述客户端分配相应的实验任务;
接收所述本地服务端上报的根据所述分组计算得到的分组信息和所述客户端的实验数据;及
根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
2.根据权利要求1所述的AB实验集成方法,其特征在于,所述分流规则的配置通过语法决策树实现,支持按照多维度信息及多种算法进行动态化配置。
3.根据权利要求1或2所述的AB实验集成方法,其特征在于,所述配置所述AB实验的分流规则包括:
通过多叉树的数据结构配置多层级的分组实验,并通过在所述分流规则中加入随机盐实现同一个所述客户端在不同实验中的正交。
4.根据权利要求3所述的AB实验集成方法,其特征在于,所述配置所述AB实验的分流规则还包括:
在所述AB实验的运行过程中实时调配流量占比。
5.一种AB实验集成系统,应用于中心服务端,其特征在于,所述系统包括:
配置模块,用于配置所述AB实验的分流规则;
传送模块,用于将所配置的所述分流规则传送至所述本地服务端,以使所述本地服务端的分流引擎根据所述分流规则对所连接的多个客户端进行分组计算并为各个分组的所述客户端分配相应的实验任务;
接收模块,用于接收所述本地服务端上报的根据所述分组计算得到的分组信息和所述客户端的实验数据;
展示模块,用于根据所述分组信息和所述实验数据进行实时的分析处理并展示给用户查看。
6.一种AB实验集成方法,应用于本地服务端,其特征在于,所述方法包括:
定期从中心服务端获取所述AB实验的分流规则,并根据所述分流规则更新本地的分流引擎;
所述分流引擎根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算,并向所述中心服务端上报分组信息;
根据所述分组计算的结果向所述客户端分配实验任务;及
从所述客户端中获取实验数据并将所述实验数据上报至所述中心服务端。
7.根据权利要求6所述的AB实验集成方法,其特征在于,所述根据所述分流规则更新本地的分流引擎包括:
判断所述分流规则是否存在语法错误;
若存在语法错误,则所述分流规则不生效,沿用上一次正确的分流规则;
若不存在语法错误,则根据所述分流规则更新所述分流引擎。
8.根据权利要求6所述的AB实验集成方法,其特征在于,所述根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算包括:
获取每个所述客户端对应的基本信息,并根据所述分流规则中的语法描述和所述基本信息计算所述客户端所属的分组。
9.根据权利要求8所述的AB实验集成方法,其特征在于,所述根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算还包括:
针对通过多叉树的数据结构配置的多层级的分组实验,采用深度优先遍历算法优先遍历所述多叉树的子节点,如果不符合所述子节点的条件则回溯到所述子节点的父节点,依次类推以找到所述客户端所属的分组。
10.一种AB实验集成系统,应用于本地服务端,其特征在于,所述系统包括:
获取模块,用于定期从中心服务端获取所述AB实验的分流规则,并根据所述分流规则更新本地的分流引擎;
计算模块,用于所述分流引擎根据所述分流规则对所述本地服务端连接的多个客户端进行分组计算,并向所述中心服务端上报分组信息;
分配模块,用于根据所述分组计算的结果向所述客户端分配实验任务;
上报模块,用于从所述客户端中获取实验数据并将所述实验数据上报至所述中心服务端。
11.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的AB实验集成程序,所述AB实验集成程序被所述处理器执行时实现如权利要求1至4或6至9中任一项所述的AB实验集成方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有AB实验集成程序,所述AB实验集成程序被处理器执行时实现如权利要求1至4或6至9中任一项所述的AB实验集成方法。
CN202110156820.XA 2021-02-04 2021-02-04 Ab实验集成方法及系统 Pending CN112817856A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110156820.XA CN112817856A (zh) 2021-02-04 2021-02-04 Ab实验集成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110156820.XA CN112817856A (zh) 2021-02-04 2021-02-04 Ab实验集成方法及系统

Publications (1)

Publication Number Publication Date
CN112817856A true CN112817856A (zh) 2021-05-18

Family

ID=75861479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110156820.XA Pending CN112817856A (zh) 2021-02-04 2021-02-04 Ab实验集成方法及系统

Country Status (1)

Country Link
CN (1) CN112817856A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726801A (zh) * 2021-09-02 2021-11-30 北京字节跳动网络技术有限公司 应用于服务端的ab实验方法、装置、设备及介质
CN113965522A (zh) * 2021-11-11 2022-01-21 湖南快乐阳光互动娱乐传媒有限公司 行为日志分组方法、装置、存储介质和设备
CN116389108A (zh) * 2023-04-03 2023-07-04 杭州诺禾网络科技有限公司 Ab实验方法、系统与存储介质
CN116975041A (zh) * 2023-08-29 2023-10-31 上海乐响网络科技发展有限公司 Ab实验分流及分析系统
CN116975041B (zh) * 2023-08-29 2024-05-14 上海乐响网络科技发展有限公司 Ab实验分流及分析系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090703B1 (en) * 2008-04-08 2012-01-03 Google Inc. Overlapping experiments
CN109101425A (zh) * 2018-08-14 2018-12-28 阿里巴巴集团控股有限公司 一种动态化的页面ab测试的指标埋点方法和装置
CN109657801A (zh) * 2019-02-14 2019-04-19 网易(杭州)网络有限公司 推荐系统的分流方法、装置及可读存储介质
CN110008131A (zh) * 2019-04-12 2019-07-12 重庆天蓬网络有限公司 一种基于算法实现的区域ab实验管理的方法及装置
CN110413533A (zh) * 2019-09-03 2019-11-05 江苏满运软件科技有限公司 Ab测试方法、系统、设备及存储介质
CN111245738A (zh) * 2020-01-08 2020-06-05 深圳市英威诺科技有限公司 一种流量染色方法
CN111813816A (zh) * 2019-04-11 2020-10-23 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090703B1 (en) * 2008-04-08 2012-01-03 Google Inc. Overlapping experiments
CN109101425A (zh) * 2018-08-14 2018-12-28 阿里巴巴集团控股有限公司 一种动态化的页面ab测试的指标埋点方法和装置
CN109657801A (zh) * 2019-02-14 2019-04-19 网易(杭州)网络有限公司 推荐系统的分流方法、装置及可读存储介质
CN111813816A (zh) * 2019-04-11 2020-10-23 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备
CN110008131A (zh) * 2019-04-12 2019-07-12 重庆天蓬网络有限公司 一种基于算法实现的区域ab实验管理的方法及装置
CN110413533A (zh) * 2019-09-03 2019-11-05 江苏满运软件科技有限公司 Ab测试方法、系统、设备及存储介质
CN111245738A (zh) * 2020-01-08 2020-06-05 深圳市英威诺科技有限公司 一种流量染色方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726801A (zh) * 2021-09-02 2021-11-30 北京字节跳动网络技术有限公司 应用于服务端的ab实验方法、装置、设备及介质
CN113965522A (zh) * 2021-11-11 2022-01-21 湖南快乐阳光互动娱乐传媒有限公司 行为日志分组方法、装置、存储介质和设备
CN113965522B (zh) * 2021-11-11 2024-04-05 湖南快乐阳光互动娱乐传媒有限公司 行为日志分组方法、装置、存储介质和设备
CN116389108A (zh) * 2023-04-03 2023-07-04 杭州诺禾网络科技有限公司 Ab实验方法、系统与存储介质
CN116389108B (zh) * 2023-04-03 2023-10-10 杭州诺禾网络科技有限公司 Ab实验方法、系统与存储介质
CN116975041A (zh) * 2023-08-29 2023-10-31 上海乐响网络科技发展有限公司 Ab实验分流及分析系统
CN116975041B (zh) * 2023-08-29 2024-05-14 上海乐响网络科技发展有限公司 Ab实验分流及分析系统

Similar Documents

Publication Publication Date Title
CN112817856A (zh) Ab实验集成方法及系统
Hegeman et al. Toward optimal bounds in the congested clique: Graph connectivity and MST
CN109240830B (zh) 基于服务器健康以及客户端信息的应用智能请求管理
US11637889B2 (en) Configuration recommendation for a microservice architecture
US8713182B2 (en) Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
CN109871224A (zh) 一种基于用户标识的灰度发布方法、系统、介质及设备
EP2932693B1 (en) Exchange of server status and client information through headers for request management and load balancing
EP2753044A1 (en) Method and device for resource matching in vpc migration
CN107729138B (zh) 一种高性能分布式矢量空间数据的分析方法和装置
CN104539681A (zh) 分布式gis加速系统和gis服务的处理方法
WO2016169237A1 (zh) 数据处理方法及装置
US9667499B2 (en) Sparsification of pairwise cost information
CN114936254A (zh) 云链融合机制下的食品安全大数据共享管理方法及系统
CN114217920A (zh) 作业调度方法和装置、计算机机群、计算机可读存储介质
CN109657801A (zh) 推荐系统的分流方法、装置及可读存储介质
CN108696418B (zh) 一种社交网络中隐私保护方法及装置
CN113301144A (zh) Nginx服务器的并发访问处理方法、装置、服务器及存储介质
CN112395313A (zh) 全局序列生成方法、装置、电子设备及计算机存储介质
CN113037848B (zh) 文件上传方法和系统
CN114298431A (zh) 一种网络路径选择方法、装置、设备及存储介质
CN112688980B (zh) 资源分发方法、装置、计算机设备
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
CN116436978B (zh) 面向云计算的内存分配方法、内存获取方法、装置和设备
CN110728118A (zh) 跨数据平台的数据处理方法、装置、设备及存储介质
CN116909816B (zh) 数据库恢复方法和装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination