监控方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 11:16:08
技术领域
本申请实施例涉及软件测试技术领域,具体而言,涉及一种监控方法、装置、电子设备及存储介质。
背景技术
在互联网分析中,A/B测试(桶测试或分流测试)是一个随机实验,通常有两个变体A和B,利用控制变量法保持有单一变量的前提下,将A和B的数据进行对比,得出实验结论。
但是,线上测试会有大量用户参与,而变量可能有负面影响,会极大的影响用户体验,因此,如何在A/B测试过程中通过监控保证风险在承受范围内,是需要解决的问题。
发明内容
本申请实施例的目的在于提供一种监控方法、装置、电子设备及存储介质,用以在A/B测试过程中,通过分阶段监控保证风险在承受范围内。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种监控方法,所述方法包括:
分阶段采集目标指标在A/B测试中的实验组数据和对照组数据;
在第k次采集后,对累积实验组数据进行期中分析,得到第k次期中分析的统计量阈值;
根据所述累积实验组数据和累积对照组数据,计算第k次期中分析的标准统计量;
若所述标准统计量超过所述统计量阈值,则触发告警并停止所述A/B测试。
第二方面,本申请实施例还提供了一种监控装置,所述装置包括:
数据采集模块,用于分阶段采集目标指标在A/B测试中的实验组数据和对照组数据;
第一分析模块,用于在第k次采集后,对累积实验组数据进行期中分析,得到第k次期中分析的统计量阈值;
第二分析模块,用于根据所述累积实验组数据和累积对照组数据,计算第k次期中分析的标准统计量;
执行模块,用于若所述标准统计量超过所述统计量阈值,则触发告警并停止所述A/B测试。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的监控方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的监控方法。
相对现有技术,本申请实施例提供的一种监控方法、装置、电子设备及存储介质,对一项指标进行A/B测试时,分阶段采集该指标的实验组数据和对照组数据,每个阶段检验一次,以第k次检验为例,在数据采集完成后,对累积实验组数据做期中分析得到统计量阈值,同时根据累积实验组数据和累积对照组数据计算标准统计量,如果标准统计量超过所统计量阈值,则说明A/B测试中出现了超过承受范围的风险,此时触发告警并停止A/B测试,从而通过监控保证风险在承受范围内,避免线上测试对用户带来的负面影响。
附图说明
图1示出了本申请实施例提供的监控方法的一种流程示意图。
图2示出了本申请实施例提供的监控方法的另一种流程示意图。
图3示出了本申请实施例提供的监控方法的又一种流程示意图。
图4为图3所示的监控方法中子步骤S1021的流程示意图。
图5为图1所示的监控方法中步骤S103的流程示意图。
图6为相对口径的正态分布曲线的示例图。
图7示出了本申请实施例提供的监控装置的方框示意图。
图8示出了本申请实施例提供的电子设备的方框示意图。
图标:10-电子设备;11-处理器;12-存储器;13-总线;100-监控装置;110-数据采集模块;120-第一分析模块;130-第二分析模块;140-执行模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
A/B测试也叫随机实验或对照实验,是互联网分析中常用的方式,简单来说,A/B测试是对两个变体进行的实验,以在给定指标的基础上找出性能更好的一个。
在软件开发中,A/B测试常用于评估新功能对用户行为影响的因果关系。通过从总体中抽取一些样本进行数据统计,进而得出对总体参数的一个评估,保证A/B测试时得到的业务结论在后续正式推送至所有用户时以很大的概率维持不变。例如,A/B测试为同一个优化目标提供不同业务版本,统计各业务版本在运行时产生的业务数据,利用业务数据评估各业务版本的优劣,最终做出决策。
但是,A/B测试是做实验并且会有大量用户参与,而实验过程中可能有负面效果,会影响用户体验。因此,需要对A/B测试进行监控以控制实验带来的风险。
基于此,目前常用的监控技术主要有:基于规则的主观监控、基于序贯分析的监控、基于贝叶斯的监控等。但是,基于规则的主观监控和基于贝叶斯的监控不能在实验过程中进行监控,无法及时发现风险。基于序贯分析的监控要求很快获取到变量对用户产生的影响,并且在整个实验过程中需进行连续监控,实际应用不便。
为了解决上述问题,本申请实施例提供一种监控方法、装置、电子设备及存储介质,在A/B测试过程中,分阶段监控变量带来的负面影响,每个阶段采集到数据后即进行一次分析,一旦发现标准统计量超过统计量阈值,即,实验中出现了超过承受范围的风险,则立即触发告警并停止A/B测试,从而保证风险在承受范围内,避免线上测试对用户带来的负面影响。下面进行详细介绍。
请参照图1,图1示出了本申请实施例提供的监控方法的流程示意图,该监控方法可以包括以下步骤:
S101,分阶段采集目标指标在A/B测试中的实验组数据和对照组数据。
在A/B测试过程中,可以分阶段监控变量带来的负面影响,每个阶段都需要采集样本并进行分析。因此,可以预先给定分阶段监控的次数和每次采集的样本数,即,在实验设计阶段可以指定两个变量:一是计划进行多少次显著性检验,也就是分析次数N;二是每次分析时的样本数。也可以不预先指定分析次数N和每次分析时的样本数,而是在实验过程中根据实际情况灵活调整这两个参数。
需要指出的是,本实施例中的样本是指实验组数据或对照组数据,即,将实验组数据和对照组数据都称为样本。
目标指标是指任意一个需要进行A/B测试的指标,例如,网站上显示的横幅广告的转化次数等。目标指标可以是各种类型的指标,例如,伯努利型、连续型、比率型等,本实施例可以对各种类型的指标进行监控。
以业务版本为例,A/B测试中的业务版本至少有两个:一个是原始版本,作为对照版;另一个是优化后的版本,作为实验版。实验的目的是:测试优化后的版本相比于原始版本是否能带来更好的用户体验。或者,A/B测试中的业务版本也可以是两个优化后的版本,互为实验版和对照版,实验的目的是:从中找出一个用户体验更好的版本。因此,实验组数据为实验版在运行过程中的业务数据,对照组数据为对照版在运行过程中的数据。
例如,针对某直播APP,目标指标是首页显示的广告的转化次数,该直播APP优化的目标是:增加广告的转化次数,计划采用的方式是添加图片,所以需要测试添加图片是否会增加转化次数。因此,需要对添加图片的版本(实验版)和原始版本(对照版)进行A/B测试,实验组数据为实验版的广告的转化次数,对照组数据为对照版的广告的转化次数,实验组均值可以是实验版的广告的转化率,对照组均值可以是对照版的广告的转化率。
S102,在第k次采集后,对累积实验组数据进行期中分析,得到第k次期中分析的统计量阈值。
累积实验组数据是指在A/B测试进行到当前,累积采集到的实验组数据,例如,在第k次采集后,累积实验组数据为:到第k次采集后,累积采集到的所有实验组数据。第k次可以是任意一次,即,k=1,2,…n。
期中分析,是指在A/B测试中,每采集一次数据即进行一次分析,分段检验实验组和对照组对用户的影响,一旦实验组和对照组对用户的影响出现差别,则立即触发告警并停止A/B测试,从而保证风险在承受范围内,避免线上测试对用户带来的负面影响。
期中分析的方法主要有成组序贯其中分析法和α消耗函数期中分析法,其中,成组序贯其中分析法在实验设计阶段必须指定两个变量:一是计划进行多少次显著性检验,即,期中分析的次数;二是每次期中分析时的样本数。
α消耗函数期中分析法的基本原理是:指定一随信息部分t
S103,根据累积实验组数据和累积对照组数据,计算第k次期中分析的标准统计量。
累积对照组数据是指在A/B测试进行到当前,累积采集到的对照组数据,例如,在第k次采集后,累积对照组数据为:到第k次采集后,累积采集到的所有对照组数据。
在本实施例中,可以根据累积实验组数据和累积对照组数据获得对应的实验组均值(例如,y)和对照组均值(例如,x),实验组均值和对照组均值符合二元正态分布,之后,通过Delta方法将实验组均值除以对照组均值转换为相对口径(例如,y/x的形式),相对口径符合一元正态分布,计算出相对口径的期望和方差,并生成相对口径的正态分布曲线,之后根据相对口径的正态分布曲线和方差,就能计算出第k次期中分析的标准统计量,具体内容见下文对步骤S103的详细介绍。
S104,若标准统计量超过统计量阈值,则触发告警并停止A/B测试。
在第k次期中分析过程中,计算出统计量阈值和标准统计量之后,需要检验标准统计量是否超过统计量阈值,一旦标准统计量超过统计量阈值,则说明A/B测试中出现了超过承受范围的风险,此时触发告警并停止A/B测试,从而保证风险在承受范围内。
在一种可能的情形下,在整个A/B测试过程中,可能都不会出现超过承受范围的风险。因此,请参照图2,在步骤S104之前,该监控方法还包括步骤S110。同时,在步骤S104之后,该监控方法还包括步骤S120~S130。
S110,判断标准统计量是否超过统计量阈值。
如果标准统计量超过统计量阈值,则说明A/B测试中出现了超过承受范围的风险,需要触发告警并停止A/B测试,即,执行步骤S104。如果标准统计量未超过统计量阈值,则说明A/B测试中的风险在承受范围内,需要判断采集的累积样本量是否达到预设总样本量,即,执行步骤S120。
S120,判断累积实验组数据量是否达到预设总样本量。
预设总样本量是指A/B测试中总共需要采集的样本量。如果累积实验组数据量达到预设总样本量,则说明已完成A/B测试,执行步骤S130。如果累积实验组数据未达到预设总样本量,则说明未完成A/B测试,需要返回执行步骤S101,直至累积实验组数据量达到预设总样本量,停止A/B测试。对此可以理解为:返回执行步骤S101后,会继续执行步骤S102~S104,直至累积实验组数据量达到预设总样本量,停止A/B测试。
需要指出的是,步骤S120中的累积实验组数据量也可以换成累积对照组样本量,即,也可以通过判断累积对照组数据量是否达到预设总样本量,来确定是否停止A/B测试。
S130,停止A/B测试。
在一种可能的实施方式中,可以采用α消耗函数进行期中分析,因此,下面以α消耗函数期中分析法为例,对步骤S102进行详细介绍。
请参照图3,步骤S102可以包括子步骤S1021。
S1021,在第k次采集后,根据累积实验组数据,采用α消耗函数期中分析法计算统计量阈值。
α消耗函数的基本思路是:
每次期中分析损耗总I类错误α的一部分。假设A/B测试对应的时间为[0,T],在这期间采集到的样本量为[0,I];每次期中分析的时间为:0,t
在进行α消耗函数期中分析之前,需要指定一随信息部分t
在本实施例中,采用α消耗函数期中分析法计算统计量阈值时,在第k次采集后,先计算第k次期中分析时的信息量占比
下面对子步骤S1021的计算过程进行详细介绍。请参照图4,子步骤S1021可以包括:
S10211,计算累积实验组数据量和预设总样本量的比值,得到第k次期中分析的信息量占比。
第k次期中分析时的信息量占比
S10212,根据所述信息量占比和设定的α消耗函数,得到第k次期中分析损耗的I类错误。
每次期中分析时,根据信息量占比t
以第k次期中分析为例,得到第k次期中分析的信息量占比
首先,获取前k-1次期中分析损耗的I类错误。
前k-1次期中分析损耗的I类错误,也就是到第k-1次期中分析时损耗的I类错误,用
然后,将所述信息量占比代入α消耗函数,得到前k次期中分析损耗的I类错误。
前k次期中分析损耗的I类错误,即为到第k次期中分析时损耗的I类错误,用
1、
2、α
3、α
4、
5、
在A/B测试中,可以根据实际情况从上述5种α消耗函数中,预先指定一种进行α消耗函数期中分析。
最后,计算前k次期中分析损耗的I类错误与前k-1次期中分析损耗的I类错误之间的差,得到第k次期中分析损耗的I类错误。
第k次期中分析损耗的I类错误可以用
S10213,根据第k次期中分析损耗的I类错误,计算统计量阈值。
计算出第k次期中分析损耗的I类错误
在计算统计量阈值
随着A/B测试的进行,即,k>1,如果每次采集的样本量比较大,则新采集的样本的均值及和都服从正态分布,累积值的变化过程服从布朗运动,则可以通过伊藤积分或蒙特卡洛模拟进行迭代求解,得到统计量阈值。以蒙特卡洛模拟为例,迭代求解过程可以包括:
首先,随机获取N个样本,每个样本有M个标准正态分布抽样的个体,M与N都极大;
然后,根据公式
接下来,计算第2次期中分析损耗的I类错误
最后,重复上述过程,直至计算出第k次期中分析的统计量阈值
按照上述计算过程,就能计算出每一次期中分析的统计量阈值
在本实施例中,可以通过Delta方法,根据累积实验组数据和累积对照组数据计算第k次期中分析的标准统计量。因此,请参照图5,步骤S103可以包括以下子步骤:
S1031,根据累积实验组数据和累积对照组数据,获得对应的实验组均值和对照组均值,其中,实验组均值和对照组均值符合二元正态分布。
对照组均值可以用X
S1032,采用Delta方法将实验组均值和对照组均值转换为相对口径,得到相对口径的期望和方差,相对口径符合一元正态分布。
Delta方法是指当一个随机变量服从正态分布时,经过可导的函数变化后仍然概率趋向正态分布。结合到本实施例中,可以采用Delta方法,使用实验组均值和对照组均值做均值、方差的点估计。
在本实施例中,将实验组均值和对照组均值转换为相对口径,即,对X
其中,
S1033,基于相对口径的正态分布曲线,根据第k次期中分析损耗的I类错误获得标准统计量,其中,在正态分布曲线中,表征第k次期中分析损耗的区域边缘与曲线中心之间的距离为标准统计量个标准差。
得到相对口径的函数表达、以及相对口径的期望和方差之后,就能生成相对口径的正态分布曲线。例如,相对口径的正态分布曲线如图6所示,其中,黑色区域为第k次期中分析损耗的I类错误
下面通过一个实例对上述的监控方法进行介绍。
假设有个重要的正面指标X,A/B测试不能造成X的下降,按天分阶段进行监控,监控设置为正确率(1-α)95%,总共采集10w样本,即,总I类错误α=0.05,预设总样本量为10w。之后根据上述介绍的监控方法,随着实验的进行,每天采集数据并进行期中分析。
假设第一天采集4w样本,即,实验组数据和对照组数据各4w,则根据累积实验组数据4w、预设总样本量10w和预先指定的α消耗函数,计算出第1次期中分析的统计量阈值
假设第二天采集2w样本,即,实验组数据和对照组数据各2w,则根据累积实验组数据6w、预设总样本量10w和预先指定的α消耗函数,计算出第2次期中分析的统计量阈值
假设第三天采集4w样本,即,实验组数据和对照组数据各4w,则根据累积实验组数据10w、预设总样本量10w和预先指定的α消耗函数,计算出第3次期中分析的统计量阈值
与现有技术相比,本申请实施例具有以下有益效果:
首先,分阶段监控变量带来的负面影响,每个阶段采集到数据后即进行一次分析,一旦发现标准统计量超过统计量阈值,即,实验中出现了超过承受范围的风险,则立即触发告警并停止A/B测试,从而保证风险在承受范围内,避免线上测试对用户带来的负面影响;
第二,α消耗函数进行期中分析,只需指定一消耗函数,可以在信息部分不等时进行期中分析,无须提前指定期中分析次数和每次期中分析时的样本数;
第三,通过Delta方法,可以将实验组均值和对照组均值转换为符合一元正态分布相对口径,再通过相对口径得到标准统计量,从而可以支持用户自定义的任意监控指标和检测水平。
请参照图7,图7示出了本申请实施例提供的监控装置100的方框示意图。监控装置100包括数据采集模块110、第一分析模块120、第二分析模块130和执行模块140。
数据采集模块110,用于分阶段采集目标指标在A/B测试中的实验组数据和对照组数据。
第一分析模块120,用于在第k次采集后,对累积实验组数据进行期中分析,得到第k次期中分析的统计量阈值。
第二分析模块130,用于根据累积实验组数据和累积对照组数据,计算第k次期中分析的标准统计量。
执行模块140,用于若标准统计量超过统计量阈值,则触发告警并停止A/B测试。
可选地,执行模块140还用于:
判断标准统计量是否超过统计量阈值;
若标准统计量未超过统计量阈值,则判断累积实验组数据量是否达到预设总样本量;
若否,则返回执行分阶段采集目标指标在A/B测试中的实验组数据和对照组数据的步骤,直至累积实验组数据量达到所述预设总样本量,停止A/B测试;
若是,则停止A/B测试。
可选地,第一分析模块120具体用于:在第k次采集后,根据累积实验组数据,采用α消耗函数期中分析法计算统计量阈值。
可选地,第一分析模块120执行根据累积实验组数据,采用α消耗函数期中分析法计算统计量阈值的方式,包括:
计算累积实验组数据量和预设总样本量的比值,得到第k次期中分析的信息量占比;
根据所述信息量占比和设定的α消耗函数,得到第k次期中分析损耗的I类错误;
根据第k次期中分析损耗的I类错误,计算统计量阈值。
可选地,第一分析模块120执行根据所述信息量占比和设定的α消耗函数,得到第k次期中分析损耗的I类错误的方式,包括:
获取前k-1次期中分析损耗的I类错误;
将信息量占比代入α消耗函数,得到前k次期中分析损耗的I类错误;
计算前k次期中分析损耗的I类错误与前k-1次期中分析损耗的I类错误之间的差,得到第k次期中分析损耗的I类错误。
可选地,第一分析模块120执行根据第k次期中分析损耗的I类错误,计算统计量阈值的方式,包括:
根据第k次期中分析损耗的I类错误,利用伊藤积分或蒙特卡洛模拟进行迭代求解,得到统计量阈值。
可选地,第二分析模块130具体用于:
根据累积实验组数据和累积对照组数据,获得对应的实验组均值和对照组均值,其中,实验组均值和对照组均值符合二元正态分布;
采用Delta方法将实验组均值和对照组均值转换为相对口径,得到相对口径的均值和方差,相对口径符合一元正态分布;
基于相对口径的正态分布曲线,根据第k次期中分析损耗的I类错误获得标准统计量,其中,在正态分布曲线中,表征第k次期中分析损耗的区域边缘与曲线中心之间的距离为标准统计量个标准差。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的监控装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参照图8,图8示出了本申请实施例提供的电子设备10的方框示意图。电子设备10包括处理器11、存储器12及总线13,处理器11和存储器12通过总线13连接。
存储器12用于存储程序,例如,图7所示的监控装置100,处理器11在接收到执行指令后,执行所述程序以实现发明上述实施例揭示的监控方法。
电子设备10可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请实施例的监控方法,也就是,监控方法的执行主体可以是同一个计算机,也可以是不同的计算机。本申请实施例尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请实施例描述的功能,以均衡处理负载。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的监控方法。
综上所述,本申请实施例提供的一种监控方法、装置、电子设备及存储介质,对一项指标进行A/B测试时,分阶段采集该指标的实验组数据和对照组数据,每个阶段检验一次,以第k次检验为例,在数据采集完成后,对累积实验组数据做期中分析得到统计量阈值,同时,根据累积实验组数据和累积对照组数据计算标准统计量,一旦发现标准统计量超过统计量阈值,即,实验中出现了超过承受范围的风险,则立即触发告警并停止A/B测试,从而保证风险在承受范围内,避免线上测试对用户带来的负面影响。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 电子设备拷机测试监控方法、装置、电子设备及存储介质
- 备自投装置监控方法、装置、电子设备及存储介质