背景
AB试验可谓是互联网公司进行产品迭代添加用户粘性的大杀器。但人们对AB试验的运用往往只停留在开试验算P值,然后let it go。。。let it go 。。。
让我们把AB试验的成果简略的拆解成两个方面: P(试验成果明显)=P(核算查验明显∣试验有用)P(试验有用)P(试验成果明显) = P(核算查验明显|试验有用) P(试验有用) 假如你的产品改进计划本来就没啥作用当然怎样开试验都没用,但假如计划有用,请不要让 statistical Hack 浪费一个优异的idea
假如预期试验作用比较小,有哪些根底操作来添加试验明显性呢?
一般情况下为了添加一个AB试验的明显性,有两种常见做法:添加流量或许增长试验时刻。但对一些或许对用户体验发生负面影响或许成本较高的试验来说,上述两种办法都略显粗糙。
关于老练的产品来说大多数的改动带来的提高或许都是细小的!
在数据为王的今天,我们莫非不应该选用更精细化的办法来解决问题么?无论是延长试验时刻还是添加流量一方面都是为了添加样本量,由于样本越多,方差越小,p值越明显,越简略检测出一些细小的改进。
因而假如能合理的经过核算办法下降方差,就或许更快,更小成本的检测到细小的作用提高
CUPED(Controlled-experiment Using Pre-Experiment Data)应运而生。 下面我会简略总结一下论文的中心办法,还有几个Bing, Netflix 以及Booking的运用事例。
论文
Deng A, Xu Y, Kohavi R, Walker T. Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-experiment Data. Proceedings of the Sixth ACM International Conference on Web Search and Data Mining. New York, NY, USA: ACM; 2013. pp. 123–132. Paper链接
中心办法总结
论文的中心在于经过试验前数据对试验中心目标进行修正,在确保无偏的情况下,得到方差更低, 更灵敏的新目标,再对新目标进行核算查验(p值)。
这种办法的合理性在于,试验前中心目标的方差是已知的,且和试验自身无关的,因而合理的移除目标自身的方差不会影响估量作用。
作者给出了stratification和Covariate两种方式来修正目标,一起给出了在实践运用中或许碰到的一些问题以及解决办法.
stratifiaction
这种方式针对离散变量,一句话概括便是分组算目标。假如已知试验中心目标的方差很大,那么可以把样本分红K组,然后分组估量目标。这样分组估量的目标只保存了组内方差,然后剔除了组间方差。
Covariate
Covariate适用于接连变量。需要寻觅和试验中心目标(Y)存在高相关性的另一接连特征(X),然后用该特征调整试验后的中心目标。X和Y相关性越高方差下降起伏越大。因而往往可以直接挑选试验前的中心目标作为特征。只需确保特征未遭到试验影响,在随机AB分组的条件下用该目标调整后的中心目标仍旧是无偏的。
stratification和Covariate其实是相同的原理,从两个视点来看:
- 从回归猜测的视点,试验中心目标是Y,下降Y的方差便是寻觅和Y相关的自变量X来解释Y中信息的过程(提高R2R^2),X可以是接连也可以是离散的
- 从投资组合的视点,Y是组合中的一项资产,想要下降交易Y的危险(方差),就要做空和Y相关的X资产来对冲危险,相关性越高对冲作用越好
下图摘自Booking的事例,他们的中心目标是每周的房间预定量,Covariate是试验前的每周房间预定量,博客链接在事例分享里。
实战攻略
covariate的挑选
这儿的挑选包括两个方面,特征的挑选和核算特征的pre-experiment时刻长度的挑选
- Covariate一般会挑选相同目标在per-experiment的估量,目标自然是为了让X和Y的相关性越高越好,究竟方差减缩的起伏是correlation的函数
- 估量covariate挑选的时刻段相对越长作用越好,时刻越长covariate掩盖的用户集体越大,且遭到短期动摇的影响越小估量更稳定。当然也不能无限延长,超越必定时刻后,covariate和目标的相关性会下降
没有pre-experiment数据怎样办
这个现象在互联网中很常见,新用户或许很久不活泼的用户都会面对没有近期行为特征的问题。作者以为可以结合stratification办法对有/无covariate的用户进一步打上标签。或许其实不仅局限于pre-experiment特征,只需确保特征不遭到试验影响post-experiment特征也是可以的。
而在Booking的事例中,作者挑选对这部分样本不作处理,由于一般缺失值是用样本均值来填充,在上述式子中就等于是不做处理。
CUPED要小心运用的场景
关于会影响用户结构的试验,并不推荐运用CUPED。例如会拉活低活用户/低活用户,影响用户发动的试验,不适用CUPED,由于用户结构改变后,他们的pre-experiment目标不再是无偏的。由于上述Covariate运用的中心是E(Xtreatment)=E(Xcontrol)E(X^{treatment}) = E(X^{control}),一旦用户结构发生变化这个假定自然不再建立。当然关于这类试验自身对目标的剖析也是和其他试验不同的
CUPED调整目标和实践目标正负相反
实践运用中不可避免会呈现调整前后目标一个正一个反的情况,大多是由于试验分流的不均匀导致的。哈哈不过只需都不明显,并不需要特别重视。当然更简略的解决计划也可以对部分低灵敏目标只保存CUPED,对自身高灵敏的目标不做CUPED调整
Attention
Covariate挑选的中心是E(Xtreatment)=E(Xcontrol)E(X^{treatment}) = E(X^{control}),这一点不管你挑选什么特征, 是pre-experiment还是post-experiment都要确保。
当然也有用CUPED来纠正试验组对照组差异的,但这个内容不在这儿讨论。
运用事例
Bing 加载时刻对用户点击率的影响
论文中作者在实践AB试验中查验了CUPED的作用。Bing试验检测检测加载时刻对用户点击率的影响。 一个本来运转两周只要个别天明显的试验在用CUPED调整后在第一天就明显,当把CUPED估量用的样本削减一半后明显性仍旧超越直接运用T-test.
Netflix 多种办法的实践作用比照
Huizhi Xie,Juliette Aurisset.Improving the Sensitivity of Online Controlled Experiments: Case Studies at Netflix
Netflix尝试了一种新的stratification, 上述论文中的stratification被称作post-stratification由于它只在估量试验作用时用到分组,这时用pre-experiment估量的分组概率会和随机AB分组得到的试验中的分组概率存在必定差异,所以Netflix尝试在试验前就进行分层分组。经过多个试验成果,Netflix得到以下定论:
- 大样本下,post-strat在实践中更灵敏和pre-strat表现适当
- 能否成功找到和试验中心目标相关的covariate是成功的关键
Booking.com 新日历交互对用户影响
How Booking.com increases the power of online experiments with CUPED
试验作用比照如下,CUPED用更少的样本更短的时刻得到了明显的成果。了解细节请戳上面的博客,作者讲的非常通俗易懂。
###想更多了解AB试验高端系列的朋友,戳这儿呦
AB试验的高端玩法系列1 – AB试验人群定向/个别作用差异/HTE 论文github保藏 AB试验的高端玩法系列3 – AB组不随机?观测试验?Propensity Score
想看更多因果推理AB试验相关paper的小伙伴看过来 Paper_CausalInference_abtest
Ref
- A/B Testing for the Next Decade. CHALLENGES, COMPETITIONS AND OPPORTUNITIES. ALEX DENG @ MICROSOFT 2015