BAT都在用的方法,详解A/B测试的那些坑!

业界 2018-11-02 12:08:23 阅读603

“如何把AB实验文化根植到公司的基因中去?”,时代正在向所有的互联网公司发出提问。

If you are not running experiments,you are probably not growing!

——by Sean Ellis

Sean Ellis 是增长黑客模型(AARRR)之父,增长黑客模型中提到的一个重要思想就是“AB实验”。

从某种意义上讲,自然界早就给了我们足够多的启示。为了适应多变的环境,生物群体每天都在发生基因的变异,最终物竞天择,适者生存,留下了最好的基因。这个精巧绝伦的生物算法恐怕是造物者布置的最成功的AB实验吧。

将目光转到互联网世界,AB实验的受重视程度正在空前提高。

01 我们来看两个著名案例

案例1:奥巴马宣传团队用AB实验帮其获得更高的支持率

2008年,奥巴马在竞选中胜出,出任美国第44任总统,这离不开其个人人格魅力,但他的竞选宣传团队的作用也是不可忽略的,在总统竞选页面上,他的团队就用AB实验在16种方案中找到了最佳方案,将竞选页面"change"的转化率提升40.6%。

(图1)

 

(图2)

实验这样设计的:图一中的图片或视频与图二中的不同文案按钮任意组合,形成4*4共16种不同方案组合,每个方案都获得一定比例的流量,观察一段时间后,从中选择转化率最高的方案,推广到全部用户。

最终如下方案胜出:

其团队事后给出的解释是:视频播放给用户很大压力,且当时的网络环境不能保证播放效果,故视频不如图片,且美国人崇尚家庭文化,一副温馨的全家福图片能拉近与选民的距离。至于按钮文案,则是因为美国选民的独立思考意识高,“join us”、“sign up”等文案让人感觉非常简单粗暴,有煽动的嫌疑,所以大家更接受平和一点的“learn more”。

案例2 :Facebook用AB实验挽救了20%的亏损

2012年,Facebook的产品vp Sam Lessin在扎克伯克的大力支持下,亲率30人团队花费大半年时间开发了一款新的版本。在上线前邀请的一些外部用户与内部员工的评价中,新版本酷炫时尚,比老版本好看的多。如图:

(上图为老版)

(上图为新版)

Facebook不愧是一家世界一流的互联网公司,重大的迭代一定会进行AB实验。他们先分配1%的流量给新版本,然后逐渐增多到2%,5%......实验的结果出乎大家意料,新版本在用户参与度、在线时长、广告展示数、营收等四个核心指标的表现上严重落后老版本,刚开始大家觉得可能是用户不习惯,但随着新版本流量放大到12%,观察的时间也拉长到3个月,但情况同样很糟,新版本直接导致了20%的营收下降。最终Facebook壮士断腕,让所有用户回滚到老版本,这才恢复了之前的数据。

而在国内,一家知名的大学生社交网站因为看到了正在进行小流量实验的B方案,就直接copy并快速全流量上线,结果你们都知道的。到现在,这家网站已经彻底沦为了三流互联网产品。

由此可见失败的产品方案不可怕,可怕的是没有经过AB实验就直接上线的公司制度和文化。

我们再来看国内一线公司内的一个AB实验case吧!

如上是不同的引导卡片样式的AB实验,最终结果样式2比样式1的CTR提升24.8%。

02 你的团队是否有这样的问题?

1、不经过AB实验就直接全流量上线,成员在上线后拼命找数据证明自己正确,即便证据牵强,只要向外发布声明都千篇一律##指标又提升了##,众人纷纷点赞。要知道Google、Facebook、Microsoft做AB实验的经验是——90%的新设计都不如线上版本。及时你的团队也很牛,但也不至于把谷哥、face哥、微软哥吊打吧?

2、你的团队非常有想法,但大家各执己见,谁也不能说服谁,导致团队决策变得很困难。

团队的改变从第一个AB实验开始——谁的方案好,谁的方案能推全,与其吵吵吵,不如布置个AB实验,用数据来PK。下文为你详细解释下AB实验的基本概念和常踩之坑。

03 什么是AB实验?

举个例子,你提出了一个产品改进方案(假设叫B),但不确定是否效果比线上版本(假设叫A)好,于是就将线上用户1%的流量分到B,99%的流量分到A,持续观察一段时间,如果B比A好,就将B推到100%的流量,如果A比B好,那就重新修改你的设计方案,重新再做实验。而如果不做AB实验直接上线新方案,如Facebook的例子,新方案甚至可能会毁掉你的产品。这里的方案可能是一组算法、一组文案、一组运营活动、一组UI样式,同时实验的并不一定是AB两种方案,很可能是ABCDE...实验

04 AB实验会遇到的问题

AB实验的实现当然不会像上面的例子一样简单,比如你会遇到下面的问题:

1、如何确保1%的流量与99%的流量用户群特征分布是一致的?

2、如果在实验的过程中有新的方案想法C,能否直接发布到线上同时实验?

3、如何同时并行所需总流量超过100%的多组实验?

4、如何选取指标衡量AB方案,如果多个指标数据表现不一,怎么决策?

5、如何确定方案B与A的指标数值不同是随机误差造成还是统计可信的?

......

AB实验的基本原理是“控制变量法”。

设指标数值=F({隐变量列}、{显变量列(含方案变量)})。一个指标的数据表现是由函数F和多个变量取值共同决定,所以指标衡量结果不能简单归因于方案的差异,特别是其中还有很多我们永远无法知道的隐变量在施加影响。

那么我们是否要知道F和所有的变量才能下结论么?还有更加简便的方法。我们可以确保两个方案中其他的变量保持一致,那么A、B方案的指标结果差异就只能归结为版本的差异。AB实验就是利用控制变量法的思想,保证各个产品方案针对同质人群(特征分布相同)、同一时间进行实验,确保了除方案变量外其他变量一致,故能判定指标差异是方案不同造成的,从而选择出优胜版本全流量上线,实现数据增长。

AB实验的作用很大,但是AB实验的实现并不简单,往往会踩坑无数。

05 AB实验的坑有哪些?

1、人群不同质

AB实验需要切分流量到不同方案,如果不能正确切分,使得分到不同方案的用户群体特征分布一致,那么实验将没有任何意义。为了便于理解,我们来看一个例子:

如果我们要对人群G做一个AB实验来找到发放什么礼品才能使用户的注册转化率更高?A、B分别代表发放不同的奖品BB霜与剃须刀,G由子群G1与G2构成(G1、G2分别代表女生、男生,且各占50%)。按照同质用户的要求,分给这两方案的用户流量中男女比例必须与总体一致,也即女:男=1:1。这时,发生了一些意外......

实验中分给方案A的群体不幸都是G1(女生),分给方案B的群体是G2(男生),最终一种奖品比另外一种奖品有更高的注册转化率,比如A高于B,那么这时能下结论“奖品A比奖品B更受用户喜欢,应该给所有用户发放奖品A”么?

肯定是不能的。这个决策相当于认为女生喜欢的就是男生喜欢的,根据实验结论,你应该对所有的用户G都发放注册转化率更高的礼品A。试想下男生领到BB霜时他们内心是何种感受?

这里的问题就是不同方案分得的人群是不同质带来的。上述举的例子为了便于理解,故比较绝对,实际过程中遇到更多的是A方案、B方案都是男女混合的群体,但是比例却与总体1:1的分布不同,这样同样带来错误的实验结论。

所以设计合理的分流算法,确保分流到每个方案的都是同一特征分布的人群是AB实验结论可信的前提。达尔文AB实验系统经过一年多的探索,已形成一套相对可靠的分流算法。

2、实验不同时

在上面的例子中,如果方案A与方案B都是分到同一特征分布的群体G,那么数据一定具有可比性么?不一定。还是用极端的例子帮助理解。假设第一天,A方案分到100万个用户流量,B方案分到0个用户流量,第二天A方案分到0个流量,B方案分到100万个用户流量,从整体看,这两天的A方案与B方案的累计实验流量都是100万,且人群是同质的,实验结果应该可信,但事与愿违,如果这是一个社交网站,实验是为了观察不同产品版本A和B下用户的主动加好友数量,则A方案明显优势大很多,毕竟用户多了一整天的时间去添加好友,这种情况下任何时间截面数据B都处于劣势,且这种劣势并不是方案不同造成的。同理,一个博客网站,如果对比不同方案下用户的博客开通率、撰写率,也可能犯同样的错误。另外一种情况是,在一些特殊日子中,用户的活跃度会暂时性增高,如果A方案的作用时间刚好是节日,方案B的作用时间非节日,那么显然这种比较对于B方案是不公平的。

上文提到的公式:“指标结果=F({隐变量列}、{显变量列(含方案变量)})”,隐变量、显变量中很大一部分跟时间相关,时间不同,这些变量的取值也不同,从而就破坏了控制变量法的前提,得不出正确的实验结论。

最后列举一个我们参与的一个case让大家感受下:

样式1的文案:《葵花宝典》带你轻松使用XXX

样式2的文案:哪些功能最热门,我来告诉你

由于早期未规范实验管理规范,两个样式的实验并非同时开始

1、样式1,在4月7日的10:00开始实验

2、样式2,在4月7日的0:00开始实验

最终统计的表现不一:如果看4月7日10:00之后进入实验的用户数据,样式2比样式1的CTR只提升了大约0.3%,符合实验同时的前提条件,因此结论可信;但如果看4月7日全天的数据,样式2比样式1的CTR提升了大约1%,这个不符合我们提到的实验同时做的条件,结论不可信;

此处也告诉我们:1、进行对比的各个实验版本(上文的样式1与样式2)一定要同时开启实验

2、实验过程中不能随意修改每个版本的流量,这也会间接导致上述问题

3、没有AA实验的意识

AA实验是AB实验的孪生兄弟,有的互联网公司也叫空转实验。AA指的是实验中的各个方案都是一致的。这么做的目的是啥?这是为了测试埋点、分流、实验统计的正确性,增加AB实验的实验结论可信度

设命题1为:“如果实验的埋点、分流和统计都没有问题,那么AA实验中各个方案的数据表现一定一致”,若命题1成立,则其逆否命题2:“如果AA实验中各个方案的数据表现存在显著差异,则实验的埋点、分流和统计肯定至少一项有问题。”也必定成立。

严格意义上讲AA实验的通过并不能证明上述三项(埋点、分流、统计)绝对没有问题,但是AA实验不通过一定能证明上述三项至少一项存在问题

所以具备AB实验素养的团队,一定会在AB实验前布置AA实验。

4、实验反转

假如一个实验布置到线上第一天,方案A比方案B好,能否代表第二天,第三天的数据表现还是如此?

用户进入到新方案中,很可能因为好奇而表现的更加活跃,但随着时间推移,逐渐趋于冷静,数据表现回到本该有的水平,如果实验观察期设置的过早,则容易得出错误的结论。反过来也如此,有的改版用户很不习惯,但用了熟练之后发现比老版更便捷,数据会逐渐回暖。

另外一方面,做实验的样本量太少,也可能出现反转,抛100次硬币和抛100万次硬币正面的频次很可能不一样,根据大数定律,随着随机实验的次数增加,随机变量的频次分布趋向于其概率分布。在这里,假设实验的第一天只有100个用户进入,由于样本量太少,实验结果的随机性太强,随着天数增加,实验样本也增加,实验结果可能会反转。

一般情况下,我们不建议样本量小于1000用户的产品进行AB实验,因为实验结果很难得到保证。

5、延滞效应

记得我们在上化学实验课时,老师一定是先让你把试管洗干净吧?这么做可不只是为了卫生。待实验的化学药剂如果与试管中残留的药剂混合,则实际实验的则是这种“被混合的药剂”,实验结果当然不可信。上述说的问题就是carry over——延滞效应。

同样在互联网产品实验中,也存在这样的问题。举个例子,编号为00001-10000与编号10001-20000的用户之前被分到不同的实验方案(A和B)进行实验,这个实验结束后团队开始要进行一个新的实验,如果没有特殊处理,则可能00001-10000及10001-20000的用户也是被分到两个方案中(A1,B1),此时实验结果可信么?00001-10000的用户之前经历过方案A,现在全部落在了方案A1上,10001-20000的用户之前经历了方案B,现在全部落在了方案B1上,也许在做第一个实验前两个用户群是同质的,但做了第一个实验后,这两个群体已经不同质,要进行第二个实验则必须采用一定的算法将两个用户群重新打散,获得 一个新的编号排列,再切分出两个同质人群进行第二个实验,或者重新拿出新的号段出来实验,比方20001-30000,30001-40000。

以上列举的只是一些常识性的坑,实际过程中还会遇到更多.....

在国内的顶级互联网公司BAT中,AB实验已非常普遍,百度同时有上千个AB实验并行,阿里巴巴和腾讯也有自己的AB实验系统用以支持多业务大规模并行的AB实验。

“如何把AB实验文化根植到公司的基因中去?”,时代正在向所有的互联网公司发出提问。