A/B实验分流方法、装置、存储介质和计算机设备制造方法及图纸

技术编号:37394712 阅读:10 留言:0更新日期:2023-04-27 07:31
本发明专利技术提供一种A/B实验分流方法,应用于服务端,包括如下步骤:获取待分流的样本流量;判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器;若是,确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组;若否,基于分桶算法确定所述样本流量的分组,并将所述分流ID加入确定分组的布隆过滤器进行训练。该方法通过为A/B实验中各个分组设置一个布隆过滤器和一个分桶,通过各个布隆过滤器能够快速且可靠的完成对已进入分组的样本流量判定,满足服务端A/B实验SDK对性能的要求。且由于布隆过滤器占用内存小,使得处理效率非常高效,为满足要保证服务端面对高并发、低延迟、高可用的需求提供有力的技术支持,能够使得服务端的A/B实验SDK保证分组始终保持一致性。性。性。

【技术实现步骤摘要】
A/B实验分流方法、装置、存储介质和计算机设备


[0001]本专利技术涉及计算机
,具体而言,本专利技术涉及一种A/B实验分流方法、装置、计算机可读存储介质和计算机设备。

技术介绍

[0002]自互联网领域的A/B实验被提出之后,随着当前互联网流量红利渐渐到期,A/B实验已经成为当下非常热门的进行产品迭代方向选取的一门技术。诸如APP样式的选择、短视频推送策略、机器学习算法的迭代优化等等领域都可以先开展A/B实验,从A/B实验回收回来的数据进行科学的分析,通过显著性校验,从而选取产品最终的迭代策略。
[0003]在A/B实验中,通常情况下,需要保证“进组的用户不再出组”,比如用户1第一次进入A/B实验,被分到了A组,那么后续不论再进入多少次实验,都必须命中A组。该特性在前端样式相关的实验上尤为重要,若是用户在多次进入实验,发生跳组现象,则用户每次打开APP,看到的样式都不一样,必然会极大影响用户体验。
[0004]若A/B实验的SDK是集成在客户端(Android、IOS等),“进组的用户不再出组”是较为容易实现的,只需缓存在客户端本地文件中即可。但若是服务端的A/B实验SDK,要保证服务端面对高并发、低延迟、高可用的诉求,目前业内没有已知的较好的实现方式,服务端的A/B实验SDK难以保证分组始终保持一致性。

技术实现思路

[0005]为至少能解决上述的技术缺陷之一,本专利技术提供了以下技术方案的A/B实验分流方法及对应的装置、计算机可读存储介质和计算机设备。
[0006]本专利技术的实施例根据一个方面,提供了一种A/B实验分流方法,包括如下步骤:
[0007]获取待分流的样本流量;
[0008]判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器;
[0009]若是,确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组;
[0010]若否,基于分桶算法确定所述样本流量的分组,并将所述分流ID加入确定分组的布隆过滤器进行训练。
[0011]在一些可行的实施例中,所述A/B实验分流方法还包括:
[0012]预先划分A/B实验的分组,确定各个分组之间的分流占比;
[0013]为A/B实验的各个分组初始化一个布隆过滤器和一个位桶;其中,初始化的布隆过滤器所有位置为空,各个分组的位桶的赋值位置根据所述分流占比确定。
[0014]在一些可行的实施例中,所述A/B实验分流方法还包括:
[0015]当所述分流占比调整时,通过分布式组件对不同节点的A/B实验中各个分组的布隆过滤器分别进行并集处理。
[0016]在一些可行的实施例中,所述判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器,包括:
[0017]将所述分流ID经过多次hash,得到hash结果;
[0018]将所述hash结果映射到A/B实验中分组的布隆过滤器上的不同位置,判断所述位置是否均被赋值。
[0019]在一些可行的实施例中,所述确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组,包括:
[0020]当所述样本流量的ID存在于A/B实验中两个及以上分组的布隆过滤器时,确定所述样本流量分入其分流ID存在的任一布隆过滤器对应的分组。
[0021]在一些可行的实施例中,所述基于分桶算法确定所述样本流量的分组,包括:
[0022]将所述分流ID进行hash运算后按A/B实验中分组的位桶的初始化大小进行取模运算,得到取模运算结果;
[0023]确定对应所述取模运算结果的位置上有赋值的位桶,将该位桶对应的分组确定为所述样本流量的分组。
[0024]在一些可行的实施例中,所述将所述分流ID加入确定分组的布隆过滤器进行训练,包括:
[0025]将所述分流ID经过多次hash,得到hash结果;
[0026]将所述hash结果映射到确定分组的布隆过滤器上的不同位置,对所述位置赋值。
[0027]此外,本专利技术的实施例根据另一个方面,提供了一种A/B实验分流装置,包括:
[0028]流量获取模块,用于获取待分流的样本流量;
[0029]判断模块,用于判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器;
[0030]分流模块,用于在所述样本流量的分流ID存在于A/B实验中分组的布隆过滤器时,确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组;
[0031]所述分流模块,还用于在所述样本流量的分流ID不存在于A/B实验中分组的布隆过滤器时,基于分桶算法确定所述样本流量的分组,并将所述分流ID加入确定分组的布隆过滤器进行训练。
[0032]本专利技术的实施例根据又一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的A/B实验分流方法。
[0033]本专利技术的实施例根据再一个方面,提供了一种计算机设备,所述计算机包括一个或多个处理器;存储器;一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行上述的A/B实验分流方法。
[0034]本专利技术与现有技术相比,具有以下有益效果:
[0035]本专利技术提供的A/B实验分流方法、装置、计算机可读存储介质和计算机设备,通过为A/B实验中各个分组设置一个布隆过滤器和一个分桶,通过各个布隆过滤器能够快速且可靠的完成对已进入分组的样本流量判定,满足服务端A/B实验SDK对性能的要求。且由于布隆过滤器占用内存小,使得处理效率非常高效,为满足要保证服务端面对高并发、低延迟、高可用的需求提供有力的技术支持,能够使得服务端的A/B实验SDK保证分组始终保持一致性。
[0036]本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本专利技术的实践了解到。
附图说明
[0037]本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0038]图1为本专利技术实施例提供的A/B实验分流方法的方法流程图;
[0039]图2为本专利技术实施例提供的初始化位桶示意图;
[0040]图3为本专利技术实施例提供的布隆过滤器合并示意图;
[0041]图4为本专利技术实施例提供的A/B实验分流装置的结构示意图。
具体实施方式
[0042]下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。
[0043]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种A/B实验分流方法,其特征在于,应用于服务端,包括如下步骤:获取待分流的样本流量;判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器;若是,确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组;若否,基于分桶算法确定所述样本流量的分组,并将所述分流ID加入确定分组的布隆过滤器进行训练。2.根据权利要求1所述的A/B实验分流方法,其特征在于,还包括:预先划分A/B实验的分组,确定各个分组之间的分流占比;为A/B实验的各个分组初始化一个布隆过滤器和一个位桶;其中,初始化的布隆过滤器所有位置为空,各个分组的位桶的赋值位置根据所述分流占比确定。3.根据权利要求2所述的A/B实验分流方法,其特征在于,还包括:当所述分流占比调整时,通过分布式组件对不同节点的A/B实验中各个分组的布隆过滤器分别进行并集处理。4.根据权利要求1所述的A/B实验分流方法,其特征在于,所述判断所述样本流量的分流ID是否存在于A/B实验中分组的布隆过滤器,包括:将所述分流ID经过多次hash,得到hash结果;将所述hash结果映射到A/B实验中分组的布隆过滤器上的不同位置,判断所述位置是否均被赋值。5.根据权利要求1所述的A/B实验分流方法,其特征在于,所述确定所述样本流量分入其分流ID存在的布隆过滤器对应的分组,包括:当所述样本流量的ID存在于A/B实验中两个及以上分组的布隆过滤器时,确定所述样本流量分入其分流ID存在的任一布隆过滤器对应的分组。6.根据权利要求1所述的A/B实验分流方法,其特征在于,所述基于分桶算法确定所述样本流量的分组,...

【专利技术属性】
技术研发人员:林涛揭宗昌黄政钟燊荣黄燮聪
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1