CN117493422A - 抽样方法、装置、电子设备及存储介质 - Google Patents
抽样方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117493422A CN117493422A CN202311841831.7A CN202311841831A CN117493422A CN 117493422 A CN117493422 A CN 117493422A CN 202311841831 A CN202311841831 A CN 202311841831A CN 117493422 A CN117493422 A CN 117493422A
- Authority
- CN
- China
- Prior art keywords
- data
- locking
- experimental
- barrels
- task
- 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
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000002474 experimental method Methods 0.000 claims abstract description 85
- 238000012163 sequencing technique Methods 0.000 claims abstract description 13
- 238000009826 distribution Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000875 corresponding effect Effects 0.000 claims description 8
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000013523 data management Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000001125 extrusion Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明实施例提出一种抽样方法、装置、电子设备及存储介质,属于数据处理领域,方法包括:从目标实验层的所有数据桶中随机抽取多个锁定桶,根据每个锁定桶的数据总量,将所有锁定桶进行排序;根据目标实验任务的实验组数量,将排序后的锁定桶划分成多个间隔组,从每个间隔组中,随机抽取相同数量的锁定桶分配至目标实验任务的各实验组。如此,先将所有数据桶进行排序,并对排序后的数据桶进行间隔划分,使间隔组内的各锁定桶的数据量最为接近,再将间隔组中的各锁定桶以相同数量的方式随机分配给各实验组,使实验组间分配到的数据总量尽可能相同,大大降低了同一实验任务的各实验组间的数据量差异,改善了SRM问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种抽样方法、装置、电子设备及存储介质。
背景技术
对照实验(又称为AB实验)广泛应用于互联网产品、设计、搜索、推荐系统、广告系统、数据分析、数字化运营和智能营销等领域,也广泛应用于自然科学、心理学、经济学和生物医药等领域,是数据驱动和开展科学研究的重要手段。
为保证AB实验的准确性,通常要求抽样得到AB两组流量中的数据差异尽可能小,以减小抽样产生的误差。此外,为了提升抽样效率,目前通常先将数据随机分成N个数据桶,再根据流量占比从多个数据桶中随机抽取k%N个桶。然而,这种抽样方法得到的AB流量组间的数据量差异大,导致产生SRM(Sample Ratio Mismacth,样本比例不匹配)问题。
发明内容
有鉴于此,本发明的目的在于提供一种抽样方法、装置、电子设备及存储介质,其能够降低抽取的对照实验的实验组间的数据量差异,改善SRM问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种抽样方法,所述方法包括:
按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;
获取每个所述锁定桶的数据总量,并根据所述数据总量,将所有所述锁定桶进行排序;
根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;
从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组。
在一种可能的实施方式中,所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶的步骤,包括:
确定所述目标实验层对应的待抽样的多个实验任务,以及每个所述实验任务的实验比例;
将所述待抽样的多个实验任务中排序最前的实验任务,作为锁定任务;
基于所述锁定任务的实验比例,对所述目标实验层的当前时刻未锁定的数据桶进行随机锁定,得到所述锁定任务的锁定桶;
更新未锁定的数据桶,并返回执行所述将所述待抽样的多个实验任务中排序最前的实验任务,作为锁定任务的步骤。
在一种可能的实施方式中,所述基于所述锁定任务的实验比例,对所述目标实验层的当前时刻未锁定的数据桶进行随机锁定,得到所述锁定任务的锁定桶的步骤,包括:
将所述锁定任务的实验比例、数据桶总数和实验组数量作乘,得到所述锁定任务的需求桶数量;
从所述目标实验层的当前时刻未锁定的数据桶中,随机锁定所述需求桶数量个数据桶,作为所述锁定任务的锁定桶。
在一种可能的实施方式中,所述目标实验层为实验域的一个数据实验层;
在所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶的步骤之前,所述方法还包括:
获取待分桶的所有数据流量,并针对每个所述数据实验层,将所述数据流量均匀分配至所述数据实验层的各数据桶内。
在一种可能的实施方式中,在所述针对每个所述数据实验层,将所述数据流量均匀分配至所述数据实验层的各数据桶内的步骤之后,在所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶之前,所述方法还包括:
每间隔预设的计数周期,统计各所述数据桶内的数据流量的数据总量,并将所述数据总量与所述数据桶的标识以关联存储至数据库。
在一这可能的实施方式中,所述获取每个所述锁定桶的数据量的步骤,包括:
根据所述锁定桶的标识,从所述数据库中查询出每个所述锁定桶的数据总量。
在一种可能的实施方式中,每个所述间隔组内的锁定桶数量与所述实验组数量一致;
所述从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组的步骤,包括:
针对所述目标实验任务的每个实验组,从每个所述间隔组中随机抽取一个锁定桶,选择该锁定桶在目标时段分得的数据流量,得到所述实验组的抽样结果;
其中,所述目标时段以最新一次统计所述锁定桶的数据总量的时刻作为结束时刻。
在一种可能的实施方式中,所述将所述数据流量均匀分配至所述数据实验层的各数据桶内的步骤,包括:
获取所述数据实验层的分桶种子,针对每个所述数据流量,根据所述分桶种子和所述数据流量的标识,计算出hash值,将所述数据流量分配至所述hash值对应的数据桶内;其中,所述标识表征数据流量在数据实验层的所有数据流量中的序号。
第二方面,本发明实施例提供一种抽样装置,包括锁桶模块、排序模块、划分模块和分配模块;
所述锁桶模块,用于按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;
所述排序模块,用于获取每个所述锁定桶的数据总量,并根据所述数据总量,将所有所述锁定桶进行排序;
所述划分模块,用于根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;
所述分配模块,用于从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组。
第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现如第一方面中任一种可能的实施方式所述的抽样方法。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一种可能的实施方式所述的抽样方法。
本发明实施例提供的抽样方法、装置、电子设备及存储介质,方法包括:按照实验比例,从目标实验层的所有数据桶中随机抽取多个锁定桶;根据每个锁定桶的数据总量,将所有锁定桶进行排序;根据目标实验任务的实验组数量,将排序后的锁定桶划分成多个间隔组;从每个间隔组中,随机抽取相同数量的锁定桶分配至目标实验任务的各实验组。如此,先使间隔组内的各锁定桶的数据量最为接近,再将间隔组中的各锁定桶以相同数量的方式随机分配给各实验组,使实验组间分配到的数据总量尽可能相同,大大降低了同一实验任务的各实验组间的数据量差异,改善了SRM问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的抽样系统的结构示意图。
图2示出了本发明实施例提供的抽样方法的流程示意图之一。
图3示出了本发明实施例提供的抽样方法的流程示意图之二。
图4示出了图2和图3中步骤S12的部分子步骤的流程示意图。
图5示出了本发明实施例提供的抽样方法的流程示意图之三。
图6示出了本发明实施例提供的随机抽样的数据桶内数据量的均值分布图。
图7示出了本发明实施例提供的抽样方法的数据桶内数据量的均值分布图。
图8示出了本发明实施例提供的抽样方法的效果验证结果图。
图9示出了本发明实施例提供的抽样装置的结构示意图。
图10示出了本发明实施例提供的电子设备的结构示意图。
附图标记说明:1000-抽样系统;10-数据管理设备;20-抽样设备;30-抽样装置;301-锁桶模块;302-排序模块;303-划分模块;304-分配模块;40-电子设备。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供的抽样方法,可以应用于如图1所示的抽样系统1000中,抽样系统1000可以包括数据管理设备10和抽样设备20,数据管理设备10可以与抽样设备20通信连接。
数据管理设备10中可以理解为是数据流量的存储管理中心,数据管理设备10中可以包括多个用于存储数据流量的实验域,每个实验域可以有多个数据实验层,数据实验层中存储有被划分成多个数据桶的数据流量。
对于一个数据实验层,该数据实验层的所有数据桶的数据流量的总和为一种数据总体。属于同一个实验域的各数据实验层的数据流量为同一个数据总体,不同实验域的数据流量为不同的实验总体。
需要说明的是,各实验域的数据流量可以不断新增,且实验域也可以不断新增或更新,用户可以收集新数据流量,来扩充各实验域的数据流量。
抽样设备20,用于获取用户收集的数据流量,并将数据流量存入数据管理设备10的任一实验域。
抽样设备20,还用于实现本发明实施例提供的抽样方法。
数据管理设备10可以是独立服务器、服务器集群、个人计算机等中的任一种。抽样设备20可以是但不限于是:个人计算机、笔记本电脑、平板电脑、手机、移动终端、可穿戴式便携设备等。
在一种可能的实施方式中,提供了一种抽样方法,参照图2,可以包括以下步骤。在本实施方式中,以抽样方法应用于图1中的抽样设备20来举例说明。
S12,按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶。
S14,获取每个锁定桶的数据总量,并根据数据总量,将所有锁定桶进行排序。
S16,根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组。
S18,从每个间隔组中,随机抽取相同数量的锁定桶分配至目标实验任务的各实验组。
可以理解为,抽样设备20得到目标实验任务的实验比例后,从数据管理设备10的各实验域的数据实验层中确定该目标实验任务对应的目标实验层,对数据管理设备10中的目标实验层的所有数据桶进行随机抽取,得到多个锁定桶。
抽样设备20获取每个锁定桶的数据总量,根据数据总量,将所有锁定桶进行排序。并根据目标实验任务的实验组数量,将排序后的锁定桶划分成多个间隔组,由于排序,故而同一个间隔组内的各锁定桶的数据量最为接近。进而,针对每个间隔组,抽样设备20从该间隔组中随机抽取相同数量的锁定桶分配给目标实验任务的各实验组。
以目标实验任务有3个实验组,每个间隔组有6个锁定桶为例,分别随机抽取2个锁定桶给每个实验组。
传统的抽样方法中,为了提升抽样效率,目前通常先将数据随机分成N个数据桶,再根据流量占比从多个数据桶中随机抽取k%N个桶。由于分桶的随机性和数据的不断新增,各数据桶中的数据总量存在不同,部分数据桶的数据量多,部分数据桶的数据量少,从而抽样得到的AB流量组间的数据量差异大,产生了SRM(Sample Ratio Mismacth,样本比例不匹配)问题。
与传统抽样方法相比,上述步骤S12至S18中,先将所有数据桶进行排序,并对排序后的数据桶进行间隔划分,使间隔组内的各锁定桶的数据量最为接近,再将间隔组中的各锁定桶以相同数量的方式随机分配给各实验组,使实验组间分配到的数据总量尽可能相同,大大降低了同一实验任务的各实验组间的数据量差异,改善了SRM问题。
此外,将数据流量先分成数据桶之后,再以本发明实施方式提供的抽样方法进行抽取,大大减少了抽取次数,从而能够提升抽样效率。
为了在提升抽样效率的基础上,进一步降低同一实验任务的各实验组间的数据量差异,引入将数据流量均匀分配至数据实验层的构思。可选的,参照图3,本发明实施例提供的抽样方法还可以包括步骤S11。
S10,获取待分桶的所有数据流量,并针对每个数据实验层,将数据流量均匀分配至数据实验层的各数据桶内。
均匀分配的方式可以灵活设置,例如,可以是将所有的数据流量按数据实验层的数量进行均分,也可以是按预设规则进行均匀分配,在本实施方式中,不作限定。
在一种可能的实施方式中,S10中均匀分配的过程可以实施为:获取数据实验层的分桶种子,针对每个数据流量,根据分桶种子和该数据流量的标识,计算出hash值,将该数据流量分配至该hash值对应的数据桶内。
实验域中的每个数据实验层可以具有不同的分桶种子,并且,数据流量的标识可以表征数据流量在数据实验层的所有数据流量中的序号。如此,以带有序列性的序号进行分桶,考虑了实验域的数据流量的总量,能够各数据桶间的数据量尽可能一致或接近。同时,通过哈希散列分配,使数据流量随机分到数据桶内,提升数据分桶的随机性和代表性。
在其他实施方式中,若数据流量为用户数据时,数据流量得标识可以是用户ID,每个用户ID唯一。计算hash值时,可以采用任一种hash算法,在本实施方式中不作限定。
为了尽可能避免hash计算出错,以及保证hash计算的性能,在一种可能的实施方式中,可以采用mmh3算法(即Murmurhash算法),根据分桶种子和该数据流量的标识,计算出hash值。
实验层的每个数据桶可以对应不同的编号,对于每个数据流量,抽样设备20将数据流量的标识对分桶种子进行取余,得到hash值,将该数据流量分入编号与该hash值一致的数据桶。
数据实验层的分桶种子的设置可以灵活选择,例如,可以是将数据实验层的数据桶的桶数作为分桶种子,也可以是设置任意值作为随机种子,对此,不作限定。
在一种可能的实施方式中,步骤S10中,对于每个数据流量,抽样设备20可以采用Murmurhash算法,将数据流量的标识转换成一个数字,将该数字对分桶种子(可以是数据桶的桶数)取余数,得到hash值,进而将该数字流量分入编号与该hash值一致的数据桶内。
如此,通过对每个数据流量的标识作两次hash运算,根据hash结果将数字流量分入数据桶内的方式,提升hash结果的分布性,进而能够极大地提升各数据桶内的数据流量的均匀性。
可选的,参照图4,步骤S12可以包括以下实施方式。
S121,确定目标实验层对应的待抽样的多个实验任务,以及每个实验任务的实验比例。
S122,将待抽样的多个实验任务中排序最前的实验任务,作为锁定任务。
S123,基于锁定任务的实验比例,对目标实验层的当前时刻未锁定的数据桶进行随机锁定,得到锁定任务的锁定桶。
S124,更新未锁定的数据桶。并返回执行步骤S122。
可以理解为,当同一个数据实验层中同时存在或者连续产生多个实验任务时,抽样设备20可以按照实验任务产生的顺序,依次为每个实验任务从该数据实验层的数据桶中锁定数据桶,得到每个实验任务的锁定桶。
每个实验任务仅从未被锁定的数据桶中获取到锁定桶,且在完成锁定后,立即释放未锁定的数据桶供后续的实验任务使用。
对于步骤S123,得到锁定任务的锁定桶的过程可以包括以下实施方式。
S1231,将锁定任务的实验比例和实验组数量作乘,得到锁定任务的需求桶数量。
S1232,从目标实验层的当前时刻未锁定的数据桶中,随机锁定需求桶数量个数据桶,作为锁定任务的锁定桶。
以数据实验层的数据桶数量为N,实验任务的实验组数量为M,实验比例为k%为例,每个实验任务的锁定桶数量为。
如此,快速为每个实验任务获取锁定桶,每个实验任务确定出锁定桶后,即可执行后续的步骤S14至S18,无需等到完成上一个实验任务的各实验组的锁定桶分配结果。获取到各实验任务的锁定桶之后,可以并行执行步骤S14至S18,为各试验任务的实验组分配锁定桶,完成数据抽样。
传统的抽样中,当存在多个实验任务时,在前的实验任务完成数据桶的抽取后,释放未被抽取的数据,才能为在后的实验任务从被释放的数据中抽取实验所需的数据。如此,实验任务较多时,极易产生堵塞和挤压,影响抽样效率。
本发明实施例提供的抽样方法中,通过上述步骤S121至S124及其相关子步骤,通过锁定数据桶的方式,快速释放未锁定的数据桶为后续试验任务锁定,大大缩短了实验任务的数据等待时长,进而能够提升抽样效率,并改善实验任务的抽样挤压的问题。
对于步骤S14,获取每个锁定桶的数据量的方式可以灵活设置,例如,可以是即时统计,也可以是预先采用神经网络模型进行数据量评估并存储,本实施方式中,不作限定。
可选的,参照图5,抽样方法还可以包括步骤S11。
S11,每间隔预设的计数周期,统计各数据桶内的数据流量的数据总量,并将数据总量与数据桶的标识以关联存储至数据库。
由于步骤S11是周期性执行的,在步骤S10中的数据流量为初始数据流量(即实验域的某个数据实验层的第一个或第一批数据流量)时,步骤S11在步骤S10之后执行,若步骤S10中的数据流量为新增数据流量时,则步骤S11可能在步骤S10之前执行,同时执行和在步骤S10之后执行。
其中,考虑到实验域的结构,数据桶的标识至少包括桶标识、层标识和域标识。计数周期的值可以任意设定,例如,可以是24小时(即一天),也可以是2小时,不作限定。
数据桶的数据总量和数据桶的标识可以以键值对的形式存储在数据库中,也可以按预设格式进行存储,本实施方式中,不作限定。
在一种可能的实施方式中,数据桶的数据总量和数据桶的标识可以整合为一个字段存储至数据库中,此时,数据库中的记录相关信息的表格格式可以如下表1所示。
表1
可选的,在上述基础上,步骤S14中获取每个锁定桶的数据总量的过程可以实施为:根据锁定桶的标识,从数据库中查询出每个锁定桶的数据总量。
通过上述方式,抽样设备20周期性统计每个数据桶的数据总量,并将数据量记录在数据库中,从而在为实验任务进行抽样时,查询数据库中的表格即可获取到每个数据桶的数据总量,无需每次实验任务都统计一次数据桶的数据总量,省去了统计数据量的耗时,进一步提高了抽样效率。
对于步骤S16,每个间隔组中的锁定桶的数量可以灵活设置,例如,可以是目标实验任务的实验组总数的任意倍数,本实施方式中,不作限定。
为了减小实验任务的各实验组中的数据流量的数据量差异,降低SRM,可选的,每个间隔组中的锁定桶数量可以与目标实验任务的实验组总数一致。
例如,目标实验任务有2个实验组时,间隔组内的数据桶的数量为2个。目标实验任务有n个实验组时,间隔组内的数据桶的数量为N个。
当每个间隔组内的锁定桶数量与实验组数量一致时,步骤S18可以进一步实施为:针对目标实验任务的每个实验组,从每个间隔组中随机抽取一个锁定桶,选择该锁定桶在目标时段分得的数据流量,得到该实验组的抽样结果。
其中,目标时段以最新一次统计锁定桶的数据总量的时刻作为结束时刻。
抽样设备20在每统计一次数据桶的数量时,可以同步记录该统计时刻。可选的,数据库中可以包括记录最新统计时刻的字段,每统计一次数据桶的数量,抽样设备20可以依据统计时刻,同步更新该记录最新统计时刻的字段。此外,抽样设备20在将新增的数据流量或初始的数据流量分配至数据桶内时,记录数据流量的分配时刻。
对于步骤S18,可以理解为,抽样设备20可以从数据库的记录最新统计时刻的字段中读取最新统计时刻,并依据计数周期的值,以最新统计时刻为结束时刻,来计算出目标时段。从而,抽样设备20在将锁定桶分配至实验组时,从该实验组分得的每个锁定桶中,抽取在目标时段分得的数据流量,得到实验组的抽样结果。
需要说明的是,当每个间隔组内的锁定桶数量为实验组数量的A倍时,S18中,可以针对目标实验任务的每个实验组,从每个间隔组中随机抽取A个锁定桶,并从该抽取的A个锁定桶中,抽取在目标时段分得的数据流量,得到该实验组的抽样结果。
以AB实验为例,上述抽样方法的理论验证如下:
对于随机抽样时:在数据桶为N个时,数据流量分到哪个数据桶是随机的,因此用户进入到某一桶的几率是1/N。随机抽样先随机Nk%个数据桶作为对照组,此时每个数据桶进入对照组的几率是(1/N)/>N/>k%=k%。再从剩余数据桶中抽取N/>k%个数据桶作为实验组,由于每个数据桶不能进入对照组的几率为(1-k%),故从剩余的N/>(1-k%)个桶中选中N/>k%个桶的进入实验组的几率为(1-k%)/>((N/>k%)/(N/>(1-k%)))=k%。显然,数据桶进入实验组与对照组的概率相同都是k%。
对于上述抽样方法:数据流量分到哪个数据桶的随机几率是1/N,因此数据桶的数据总量跟数据流量是不相关的,故基于数据流量进行排序并划分间隔后,数据流量所在间隔组也是随机的。数据流量分到实验所需要总的流量桶内的概率是1/N(N/>k%/>2)=k%2,比如,数据流量落在第一个间隔组的概率是k%/>2/>(1/(N/>k%))=2/N,在间隔组内随机抽样给对照组和实验组,因此数据流量在第一个间隔组分给实验组与对照组的概率都是2/N/>1/2=1/N。同理,数据流量落在第二个间隔组分给对照组与实验组的概率也都是1/N。一共有N/>k%个间隔,故数据流量落在任何一个间隔组分给对照组与实验组的概率都是1/N,而当前数据流量在任何一个间隔组都可以分进实验组或者对照组,所以数据流量分发至实验组与对照组的概率为N/>k%/>1/N=k%。
故,上述抽样方法的概率同随机抽样的概率是一样的,没有改变数据流量分流的随机性,即不存在选择偏差。
在一个实际验证中,采用上述抽样方法进行抽样后,从整体数据桶中抽取Nk%桶,每次数据桶内的数据量均值分布如图6所示。而采用随机抽样进行抽样后,从整体数据桶中抽取N/>k%桶,每次数据桶内的数据量均值分布如图7所示。
显然,上述抽样方法的抽样结果密度远小于随机抽样的密度,获取的实验组内桶用户量的均值差异极小,几乎是随机抽样的差异的1/20。
在一个效果验证中,分别采用随机抽样和上述抽样方法进行抽样,模拟抽样1000次k% vs k%数据流量的AB实验,此时AB组中的数据流量上策略保持一致,并分别对随机抽样以及上述抽样方法,分析SRM发生的几率,并验证其他指标,分析上述抽样是否影响其他指标的一类错误概率,具体效果如图8所示。
通过图8可知,数据量的SRM问题有极大的改善,从SRM概率的5.2%降到0%,指标1与指标2是求和指标,与用户量高度相关,假阳率也有极大改善,指标3与指标4是人均指标,与随机抽样相比假阳率方面表现几乎一致。
在一种可能的实施方式中,还提供了一种抽样装置30,参照图9,可以包括锁桶模块301、排序模块302、划分模块303和分配模块304。
锁桶模块301,用于按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶。
排序模块302,用于获取每个锁定桶的数据总量,并根据数据总量,将所有锁定桶进行排序。
划分模块303,用于根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组。
分配模块304,用于从每个间隔组中,随机抽取相同数量的锁定桶分配目标实验任务的各实验组。
可选的,还可以包括分桶模块和预统计模块。
分桶模块,用于获取待分桶的所有数据流量,并针对每个数据实验层,将数据流量均匀分配至数据实验层的各数据桶内。
预统计模块,用于每间隔预设的计数周期,统计各数据桶内的数据流量的数据总量,并将数据总量与数据桶的标识以关联存储至数据库。
上述抽样装置30中,通过锁桶模块301、排序模块302、划分模块303和分配模块304的协同作用,先将所有数据桶进行排序,并对排序后的数据桶进行间隔划分,使间隔组内的各锁定桶的数据量最为接近,再将间隔组中的各锁定桶以相同数量的方式随机分配给各实验组,使实验组间分配到的数据总量尽可能相同,大大降低了同一实验任务的各实验组间的数据量差异,改善了SRM问题。
关于抽样装置30的具体限定可以参见上文中对于抽样方法的限定,在此不再赘述。上述抽样装置30中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备40中的处理器中,也可以以软件形式存储于电子设备40的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一种实施方式中,提供了一种电子设备40,其内部结构图可以如图10所示。该电子设备40包括通过系统总线连接的处理器、存储器、通信接口和输入装置。其中,该电子设备40的处理器用于提供计算和控制能力。该电子设备40的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备40的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该计算机程序被处理器执行时实现如上述实施方式提供的抽样方法。
图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的电子设备40的限定,具体的电子设备40可以包括比图10中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一种实施方式中,本发明提供的抽样装置30可以实现为一种计算机程序的形式,计算机程序可在如图10所示的电子设备40上运行。电子设备40的存储器中可存储组成该抽样装置30的各个程序模块,比如,图9所示的锁桶模块301、排序模块302、划分模块303和分配模块304。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的抽样方法中的步骤。
例如,图10所示的电子设备40可以通过如图9所示的抽样装置30中的锁桶模块301执行步骤S12。电子设备40可以通过排序模块302执行步骤S14。电子设备40可以通过划分模块303执行步骤S16。电子设备40可以通过分配模块304执行步骤S18。
在一种实施方式中,提供了一种电子设备40,包括:处理器和存储器,该存储器用于存储一个或多个程序,处理器执行该一个或多个程序时实现如下步骤;按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;获取每个锁定桶的数据总量,并根据数据总量,将所有锁定桶进行排序;根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;从每个间隔组中,随机抽取相同数量的锁定桶分配至目标实验任务的各实验组。
在一种实施方式中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;获取每个锁定桶的数据总量,并根据数据总量,将所有锁定桶进行排序;根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;从每个间隔组中,随机抽取相同数量的锁定桶分配至目标实验任务的各实验组。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种抽样方法,其特征在于,所述方法包括:
按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;
获取每个所述锁定桶的数据总量,并根据所述数据总量,将所有所述锁定桶进行排序;
根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;
从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组。
2.根据权利要求1所述的抽样方法,其特征在于,所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶的步骤,包括:
确定所述目标实验层对应的待抽样的多个实验任务,以及每个所述实验任务的实验比例;
将所述待抽样的多个实验任务中排序最前的实验任务,作为锁定任务;
基于所述锁定任务的实验比例,对所述目标实验层的当前时刻未锁定的数据桶进行随机锁定,得到所述锁定任务的锁定桶;
更新未锁定的数据桶,并返回执行所述将所述待抽样的多个实验任务中排序最前的实验任务,作为锁定任务的步骤。
3.根据权利要求2所述的抽样方法,其特征在于,所述基于所述锁定任务的实验比例,对所述目标实验层的当前时刻未锁定的数据桶进行随机锁定,得到所述锁定任务的锁定桶的步骤,包括:
将所述锁定任务的实验比例、数据桶总数和实验组数量作乘,得到所述锁定任务的需求桶数量;
从所述目标实验层的当前时刻未锁定的数据桶中,随机锁定所述需求桶数量个数据桶,作为所述锁定任务的锁定桶。
4.根据权利要求1至3中任一项所述的抽样方法,其特征在于,所述目标实验层为实验域的一个数据实验层;
在所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶的步骤之前,所述方法还包括:
获取待分桶的所有数据流量,并针对每个所述数据实验层,将所述数据流量均匀分配至所述数据实验层的各数据桶内。
5.根据权利要求4所述的抽样方法,其特征在于,在所述针对每个所述数据实验层,将所述数据流量均匀分配至所述数据实验层的各数据桶内的步骤之后,在所述按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶之前,所述方法还包括:
每间隔预设的计数周期,统计各所述数据桶内的数据流量的数据总量,并将所述数据总量与所述数据桶的标识以关联存储至数据库。
6.根据权利要求5所述的抽样方法,其特征在于,所述获取每个所述锁定桶的数据量的步骤,包括:
根据所述锁定桶的标识,从所述数据库中查询出每个所述锁定桶的数据总量。
7.根据权利要求5所述的抽样方法,其特征在于,每个所述间隔组内的锁定桶数量与所述实验组数量一致;
所述从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组的步骤,包括:
针对所述目标实验任务的每个实验组,从每个所述间隔组中随机抽取一个锁定桶,选择该锁定桶在目标时段分得的数据流量,得到所述实验组的抽样结果;
其中,所述目标时段以最新一次统计所述锁定桶的数据总量的时刻作为结束时刻。
8.根据权利要求4所述的抽样方法,其特征在于,所述将所述数据流量均匀分配至所述数据实验层的各数据桶内的步骤,包括:
获取所述数据实验层的分桶种子,针对每个所述数据流量,根据所述分桶种子和所述数据流量的标识,计算出hash值,将所述数据流量分配至所述hash值对应的数据桶内;其中,所述标识表征数据流量在数据实验层的所有数据流量中的序号。
9.一种抽样装置,其特征在于,包括锁桶模块、排序模块、划分模块和分配模块;
所述锁桶模块,用于按照实验比例,对目标实验层的所有数据桶进行随机抽取,得到多个锁定桶;
所述排序模块,用于获取每个所述锁定桶的数据总量,并根据所述数据总量,将所有所述锁定桶进行排序;
所述划分模块,用于根据目标实验任务的实验组数量,对排序后的锁定桶进行间隔划分,得到多个间隔组;
所述分配模块,用于从每个所述间隔组中,随机抽取相同数量的锁定桶分配至所述目标实验任务的各实验组。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现如权利要求1至8中任一项所述的抽样方法。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的抽样方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841831.7A CN117493422A (zh) | 2023-12-29 | 2023-12-29 | 抽样方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841831.7A CN117493422A (zh) | 2023-12-29 | 2023-12-29 | 抽样方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493422A true CN117493422A (zh) | 2024-02-02 |
Family
ID=89673023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311841831.7A Pending CN117493422A (zh) | 2023-12-29 | 2023-12-29 | 抽样方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493422A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244891A1 (en) * | 2006-04-18 | 2007-10-18 | International Business Machines Corporation | Method of obtaining data samples from a data stream and of estimating the sortedness of the data stream based on the samples |
CN110955802A (zh) * | 2019-11-12 | 2020-04-03 | 微民保险代理有限公司 | 一种数据分桶方法、装置、电子设备和存储介质 |
CN111243757A (zh) * | 2019-12-31 | 2020-06-05 | 南京普恩瑞生物科技有限公司 | 对荷瘤小鼠进行分组的方法 |
CN111884949A (zh) * | 2020-08-05 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
CN115391184A (zh) * | 2022-08-09 | 2022-11-25 | 北京百度网讯科技有限公司 | 一种ab测试的方法、装置及设备 |
CN115729965A (zh) * | 2022-11-16 | 2023-03-03 | 平安壹钱包电子商务有限公司 | 信息流处理方法、装置、流服务器及存储介质 |
CN116340142A (zh) * | 2023-01-30 | 2023-06-27 | 四三九九网络股份有限公司 | 一种ab测试分流的实现方法 |
-
2023
- 2023-12-29 CN CN202311841831.7A patent/CN117493422A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070244891A1 (en) * | 2006-04-18 | 2007-10-18 | International Business Machines Corporation | Method of obtaining data samples from a data stream and of estimating the sortedness of the data stream based on the samples |
CN110955802A (zh) * | 2019-11-12 | 2020-04-03 | 微民保险代理有限公司 | 一种数据分桶方法、装置、电子设备和存储介质 |
CN111243757A (zh) * | 2019-12-31 | 2020-06-05 | 南京普恩瑞生物科技有限公司 | 对荷瘤小鼠进行分组的方法 |
CN111884949A (zh) * | 2020-08-05 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
CN115391184A (zh) * | 2022-08-09 | 2022-11-25 | 北京百度网讯科技有限公司 | 一种ab测试的方法、装置及设备 |
CN115729965A (zh) * | 2022-11-16 | 2023-03-03 | 平安壹钱包电子商务有限公司 | 信息流处理方法、装置、流服务器及存储介质 |
CN116340142A (zh) * | 2023-01-30 | 2023-06-27 | 四三九九网络股份有限公司 | 一种ab测试分流的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mohamadi et al. | ntCard: a streaming algorithm for cardinality estimation in genomics data | |
US10114845B2 (en) | Efficiently estimating compression ratio in a deduplicating file system | |
EP3117347B1 (en) | Systems and methods for rapid data analysis | |
JP5635691B2 (ja) | 複数のシステムを用いたデータ解析 | |
Quang et al. | EXTREME: an online EM algorithm for motif discovery | |
CN111444363B (zh) | 一种图片检索方法、装置、终端设备及存储介质 | |
CN110865992A (zh) | 一种检索库管理方法、检索方法、装置及介质 | |
CN113177050A (zh) | 一种数据均衡的方法、装置、查询系统及存储介质 | |
Ferraro Petrillo et al. | Informational and linguistic analysis of large genomic sequence collections via efficient hadoop cluster algorithms | |
CN110535686B (zh) | 异常事件处理方法和装置 | |
CN110968802A (zh) | 一种用户特征的分析方法、分析装置及可读存储介质 | |
CN112233727A (zh) | 数据分区存储方法及装置 | |
Liu et al. | Are dropout imputation methods for scRNA-seq effective for scATAC-seq data? | |
CN117493422A (zh) | 抽样方法、装置、电子设备及存储介质 | |
CN108170664B (zh) | 基于重点关键词的关键词拓展方法和装置 | |
CN110737691B (zh) | 用于处理访问行为数据的方法和装置 | |
CN114495137B (zh) | 票据异常检测模型生成方法与票据异常检测方法 | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN110059880B (zh) | 一种服务发现方法及装置 | |
EP4113313A1 (en) | Control method, information processing device, and control program | |
CN111027599A (zh) | 基于随机抽样的聚类可视化方法及装置 | |
Zhao et al. | NG-SEM: an effective non-Gaussian structural equation modeling framework for gene regulatory network inference from single-cell RNA-seq data | |
CN113282807B (zh) | 基于二部图的关键词扩展方法、装置、设备及介质 | |
CN112579638B (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 |