1.请描述一下什么是A/B test?
定义:AB test是基于小样本的后验方法,通过设置对照组和实验组,对变量进行试验,通过假设检验对不同组的结果进行检验,以检验变量是否对结果造成显著影响,从而选取最合理的方法
核心逻辑:通过随即合理分流,设置对照组和实验组,分别对两组施加不同的变量,观察两组用户在一段时间内的表现,通过假设检验分析结果是否有显著差异,从而判断改动是否可执行
应用场景:常应用于产品功能,算法策略迭代
2.如果验证AB test的结果?
可以通过假设检验,单尾/双尾检验来验证
假设检验:一般情况下,绝对指标用T检验,相对指标用Z检验
单尾/双尾检验:单尾检验的前提是认为两组指标不同且还明确了大小,一般情况下,我们都认为实验组的效果高于基线组;双尾检验只是认为两组指标不同,未明确大小。通常来说,我们更推荐双尾检验
3.某个购物APP最近优化了“猜你喜欢”模块的推荐算法,希望进一步提升推荐的精准度,进而提升销售额。现在需要通过AB test(50%用户保留原先推荐算法的为控制组,50%用户使用新的推荐算法为实验组)来对新的推荐效果进行评估。请问你会如何评估控制组和实验组的表现?请按重要性列出最重要的三个指标并给出你的分析过程
选择指标:推荐商品的销售额,推荐商品点击率,推荐商品的转化率
分析过程:①设原假设为使用新的推荐算法后上述指标降低或不变,备择假设为使用新的推荐算法后上述指标增加 ②选择显著性水平临界值为5%,并根据指标的预期提升确定样本量和试验周期 ③样本合理分流,AB测试上线,采集数据 ④使用T检验,计算P值,进行效果验证 ⑤分析结论,如果P值小于5%,那么原假设不成立,备择假设成立,即使用新算法后指标提升
4.请分析下AB test的结果统计显著不等于实际显著,你怎么看?
①统计学上显著,实际不显著
可能的原因是我们在AB测试当中所选取的样本量过大,导致和总体数据量差异很小
举例:对应到我们的互联网产品实践当中,我们做了一个改动,APP的启动时间的优化了0.001秒,这个数字可能在统计学上对应的P值很小(统计学上是显著的),但是在实际中用户0.01秒的差异是感知不出来的。那么这样一个显著的统计差别,其实对我们来说是没有太大的实际意义的
②统计学上不显著,实际显著
一般我们会使用的通用的方式是将这个指标去拆分成每一天去观察。如果指标的变化曲线每一天实验组都高于对照组,即使他在统计上来说是不显著的,我们也认为在这样一个观测周期内,实验组的关键指标表现是优于对照组的,那么结合这样一个观测,我们最终也可以得出这个优化可以上线的结论
5.AB test如何合理分流?
用户分流一定要随机均匀,保证各组的用户分布一致,有分桶和分层两种方式,同一层切分为不同的桶,各桶之间是互斥的,即一个用户只能出现在一个桶里,当要同时进行多个实验时,业务逻辑分为解耦的多层,不同的层共享同一批流量,一个用户可以进行多个实验,充分利用流量
方式一(分桶):直接将整体用户切割为几桶,用户只能在一个桶中,但这种情况很不现实,因为如果要同时上线多个实验,流量不够切怎么办?那为了达到最小样本量,就得延长实验周期,做一个实验,要几个月
方式二(分层):将业务逻辑互斥的环节分为多层,每一层都共享同一批用户,在每一层将用户随机后,使之处于不同的桶,到下一层后,对同一批用户再次随机分为几个桶,一个用户会处于多层的多个试验中,只要多层之间互不影响,在保证了每个实验都能用全流量切割,实验数据也是置信的
6.AB test的常规实验单元有哪些?采用何种方式进行分组?
实验单元指实验的最小单位,通常有三种:用户,会话,页面。其中用户粒度是最常见的,当用户进入到APP或者进入到某个页面时(具体根据实验策略决定)后端会对用户随机打上属于哪个分桶的标签,标签在实验期是不会改变的,随机方式一般通过哈希算法,而常见的哈希算法方式涵盖:BKDR,MURMMUR3,MD5等
7.AB test实验周期如何选择?需要考虑哪些因素?过长或者过短会有什么影响?
实验周期选择需要考虑三方面因素:①考虑最小样本量,实验周期内累计样本量,需要大于最小样本量要求 ②考虑周末效应,一般产品周中和周末用户行为表现会存在差异,因此实验至少需要运行完整一周 ③考虑新奇效应,重点针对老用户改版会对用户产生非持久性的行为驱动,这段时期的数据是缺乏置信度的,因此需要适当拉长实验周期。在考虑以上因素的前提下,制定试验周期,时间过长会导致实验迭代的效率,而时间过短会导致实验的不置信
8.为什么要进行AB测试?
由于功能设计者个人思维的局限性以及全量用户的不可调研性,导致了一个功能的预期效果可能与实际上线后的效果存在认知,实用上的差异
一般来讲,AB测试通常有可以划分为两大目的:①判断方案的优劣,究竟是A方案好,还是B方案好 ②计算方案带来的ROI:最近上了一个帖子功能,究竟给平台带来了多数DAU,多数额外使用时长
通俗来说,AB测试可以避免我们拍脑袋决策,科学量化优化方案的效果
9.AB测试的优缺点是什么?
优点:科学量化策略的效果,避免拍脑袋决定造成的损失;对比不同的策略,找到核心问题,探索业务增长点;数据驱动,形成优化闭环;通过AB测试,为创新项目提供数据支持和保障
缺点:数据采集积累,降低了策略的迭代效率;不同策略的维护和开发,增加了开发工作量;需要的用户人数多,要有足够的样本量;通常应用于短期即刻行为,不适用于需要很长时间才能验证的测试;受场景限制,产品版本发布后,无法增加或更改测试场景;制作AB版本的开发,数据收集的工作量较大,以及后期维护成本增加,ROI低
10.AB测试如何进行假设检验?
①确认原假设和备择假设
H0:实验组和对照组没有显著差异
H1:实验组和对照组有显著差异
②构建检验统计量
如果检验统计量服从标准正态分布,总体方差或样本量较大,可使用U检验
如果检验统计量方差未知且样本量较少,可使用T检验
③确认显著性水平及拒绝域
显著性水平:希望样本结果不可信程度达到多少时候就拒绝原假设H0,用α表示,通常取0.01,0.05,0.1
11.AB test的步骤?
①确立优化目标。要确立可量化的可落实到某一个具体功能点的可实施的小目标
②分析数据。找到现有产品可能存在的问题,才好在后续流程中提出相应的优化方案,以优化该环节的转化率
③提出想法。针对发现的问题,针对性的提出产品优化的方案,一般会以假设的方式提出,基于假设,设计对应的AB测试,并通过饰演的数据验证该假设是否成立
④重要性排序。开发资源,版本排期,优先级等因素的制约下,不能对所有想法进行实验;需根据重要性,潜在收益,开发成本等因素对想法进行优先级排序,选取重要的几个进行测试
⑤实施AB测试并分析实验结果。主要分成有效和无效两种,无效的结果可转化为团队的经验,避免再犯同样的错误;有效的结果即成功通过实验提升了产品的转化率,可以把优胜的版本正式推送给全部客户,实现产品用户有效增长
⑥迭代整个流程,进行下一轮AB测试。一种是针对一些转化率较低及很有可能通过改版获得提升的产品功能点,精心设计测试试验,一般会得到明显效果;另一种是快速地做一批简单的AB测试实验,只要其中一部分试验获得成功,就可以在团队内部推进AB测试的实施
12.AB测试结论
①实验效果是否长期有效
标准的实验分析假设实验效应不随时间发生变化,如果发现了实验效应有随时间变化的趋势,那说明实验可能有问题——新奇效应出现,需要长时间运行试验
为了准确判断实验的长期效用,一些公司会运行超级留出实验:部分流量长期(通常为一个季度)没有任何新功能或新改动的发布,以衡量所有实验的累积效应
②实验效果的细分群体差异
与单个实验无关,某个指标的细分群视图——比如付费率可能在不同群体中不一样,相当于非实验导致的差异
在某个实验背景下,某个指标实验效应的细分群视图——异质性处理效应,比如实验在其他渠道都有提升效应,但是在oppo渠道大幅下降
③是否有离群值/异常值影响了实验效果的分析
实验过程中,少数的离群值对整体数据有不成比例的大影响,产生较大的方差,可以考虑采用添加阈值(选择一个阈值,如果数据超过这个阈值就将其用该阈值替代)的方法来避免此类问题
13.哪些场景可以用AB测试,哪些场景不可用?
①适用场景
产品迭代:UI界面优化,产品功能增加或者改版,流程增加或者删除等
策略优化:运营策略,算法策略(推荐,搜索,精准广告,精细化运营)
②不适用场景
原始创新方案
战略层面的策略
用户体量不大的业务
对用户体验有制约
14.AB测试背后的理论支撑是什么?
①中心极限定理:样本量足够大时(>30),可以为样本均值近似服从正态分布
②假设检验:提出假设 → 构造检验统计量,拒绝域 → 计算P值,判断显著性 → 拒绝或接收原假设
a.“小概率事件”原理:小概率事件在一次实验中基本上不会发生
b.反证法:把要拒绝的假设放在原假设的位置,假设检验的机制是保护原假设,若原假设成立的条件下,小概率事件还是发生了,说明应推翻原假设
c.P值:在原假设成立时,发生样本观察结果及更极端情况的概率,P值越小,拒绝原假设理由越充分
③AB测试本质上是一个基于统计的假设检验过程
a.首先对实验组和对照组的关系提出假设
b.在计算两组数据的差异并确定该差异是否存在统计上的显著性
c.最后对假设做出判断
15.如何分组才能更好地避免用户混淆呢?
分流方法:根据分流字段唯一标识的尾号或其它标识进行分组
操作方法:①随机分组:用hash函数将用户的唯一标识进行hash取模,分桶。将用户均匀地分到若干个桶中,可以进一步将用户打散,保证分流均匀 ②多个分组:独占域(不同域之间的用户相互独立,交集为空),共享域(用户分层,下一层需将上一层的用户打散,确保下一层用户的随机性)
16.如果实验组最小样本量不足怎么办?
拉长实验周期
减少最小样本量:更改指标(选择变异系数小的指标)/ 降低功效大小
17.是否需要上线第一天就开始看效果?
否,应考虑新奇效应,等结果平稳后再评估
新奇效应:刚上线一个新功能时,若该功能容易被注意到,则会吸引用户尝试。起初效果可能不错,但随着时间的推移,效果会大打折扣
星期几效应:周末和工作日时的用户数量可能不同,最好以7天为一个周期
节假日效应:节假日用户的行为可能会不同
外部影响:当外部竞争很大时,用户可能忽略该推送,导致测试结论不可靠
18.如何选择实验城市?
尽量选择体量大的城市,更易达到最小样本量,缩小实验周期
剔除正在进行同一维度实验的城市
19.AB测试如何处理多个实验并行的相互影响?如何区分不同实验带来的影响分别是什么样的?
将流量分层:将平台流量划分成N个100%的流量层,实验可能分配到任意流量层中。流量层的基本原则:同层的实验中流量互斥,不同层的实验可能被同一流量命中
进行正交实验:每个独立实验为一层,层与层之间流量是正交的,一份流量穿越每层实验时,都会再次随机打散
不同业务类型实验在不同层进行,如果不同层实验在业务上没什么关联度时,即使使用相同流量(流量正交),也不会对实际业务造成结果
同一类型的实验在同一层进行
20.实验时效果显著,但上线后效果不好是什么原因?
检查实验的科学性,实验步骤和流程是否合理
样本量不足,结果可能是随机波动导致,结果不置信
实验周期太短,要考虑新奇效应,即实验周期较短,用户由于新鲜感而表现出不可持续的行为,故评估实验结果时应等结果稳定之后再进行
实验人群不等于上线人群。实验地域,对象不同所带来的差异,应保证实验样本与总体一致
外部环境不一致
21.统计上显著,但业务没觉得上涨,是什么原因?
统计显著:是一个统计学概念,当样本量足够大时,任何策略都会在统计上显著
业务显著:指策略是否带来关键指标足够的提升,是否具有一定的商业价值
应在实验设计阶段设定好最小预期提升,低于该变化量时,对业务实际上没什么影响
22.AB测试是必须要做的吗?
不必须
AB测试成本很大,当我们对产品做了小改动或小调整,就上线一个AB测试去验证,可能会得到一个负向的收益
因此,对于一些小改动,可通过问卷调查,用户访谈,调研等方式来收集用户的反馈
23.ABtest看提升频率如何排除其他因素的影响
做AB实验之前先想清楚想证明什么,即什么核心因素改编带来了什么指标变化,在这个基础上设置对照组,那如何避免混杂因素影响你要验证的核心因素呢
核心就是在做实验的时候,如何确定对照组和实验组的样本,关键要使试验组和对照组的样本个体差异尽量相同
选择的用户样本是同一时间段
选择的用户样本尽量特征保持一致,从请求的用户中随机选择是避免混杂因素的一个办法
24.AB测试里的灰度流量,正交都是啥意思呢?
首先,考虑到实验迭代效率,实验之间的流量不可能完全独立。就是各个业务团队都在做流量试验,假设一共10个业务团队,每个业务团队都需要大盘20%的流量做实验,这个时候实验流量就达到了200%,通俗理解就是做实验的流量不够用了
也许有人会说各个业务团队的实验时间分开不就行了,但是这样就影响了我们刚才说的实验效率问题。一个大公司同时进行的流量实验甚至有成千上万个,如果都按照时间不重合原则,排序做实验,那么实验的迭代效率就会低很多
那么,如何在保证实验迭代效率的同时,又保证实验之间的结果不受影响呢
这里应用的原理就是流量分层,各分层之间的流量是正交的,可以保证不同流量层的实验不会互相影响,在这个原理下,没有相关性的实验,可以开在不同流量层,极大的拓展了可同时实验的数量上限,不过有相关性的实验必须开在相同层
灰度流量你需要知道灰度测试(会在这期间搭配ABtest)
灰度测试是什么意思?灰度测试是指如果软件要在不久的将来推出新功能,或者进行重大修改,你必须首先做少量的试验工作,然后慢慢增加数量,知道这个新功能覆盖所有系统用户,即新功能上的黑白之间都有灰色,因此这种方法通常也称为灰度测试
灰度流量:灰度发布开始到结束期间的这一段时间产生的流量
25.AA实验如何判断样本量是否均衡?一般不均衡造成的原因是什么?
AA实验样本量不均衡是指观测到的流量比例不符合预期配置的流量比例,可通过卡方检验的方式评估比例是否符合预期
造成样本量不均衡的原因,90%以上是由于实验配置或上报阶段的问题所导致
26.在进行AB试验评估时,通过哪些值来评判指标是否显著?
点估计,区间估计,P值,最小检测变化(MDE),指标趋势,指标差异趋势
27.什么场景下AB测试无法使用?有什么其他的定量方法吗?
当实验环境出现较大变化时,违背了唯一变量的实验需求的时候,此时可以采用因果推断的方法进行分析,例如针对刚刚所说的场景,我们可以采用双重差分的方法来进行分析,实验组和对照组首先都受到环境因素变化影响,那么首先可将实验组和对照组与试验之前的数据先进行一次查分,将对实验组和对照组的一次差分进行相减,得到第二次差分,对二次差分算下期望,得到的数据就是我们的ab测试想要度量的干扰因素的影响力
当无法控制变量时,例如想要度量品牌广告对销量的影响,因为都是基于算法计算ecpm来披露广告,无法主动选择部分用户披露品牌,而部分用户不披露。因此可以采用离线增效的手段,构造与实验组同质的对照组,然后比较实验组和对照组之间的指标差异。例如可以基于倾向性得分的方法,计算每个用户披露品牌广告的概率,然后基于概率得分对没有披露和披露品牌广告用户进行匹配,构造同质对照