一、AB测试的必要性
1.1 算法评估
线下可以使用离线的AUC,NDCG等指标进行算法模型的评估,算法上线后怎样进行算法间的评估,上线的算法是好是坏,好多少?坏多少?
要有效评估算法,必须借助AB测试工具。
1.2 方向指导
在算法上线后,往往伴随着特征的增减,怎样能够确定特征对于算法模型影响?
算法进行AB测试过程中通过线上指标,能够确定特征对于核心指标的影响情况。
1.3 提升效率
新算法上线后,如果没有AB,就根本不能知道这个算法的效果是怎样的。导致达到目标的时间周期变长,效率低下。
1.4 总结:AB测试系统必须要有
商业社会, 由于功能设计者个人思维的局限性以及全量用户的不可调研性, 导致了一个功能的预期效果可能与实际上线后的效果存在认知、实用上的差异.
为了达到局部ROI最大化的目标(通常这一目标在潜在意义上会使得产品核心目标得以提升), 就需要用户自己“用脚投票”, 通过实际数据反馈来选出ROI最大化的功能方案.
基于这一商业目的, 多数互联网公司会采取AB测试来寻找能够为圈定指标带来最大收益的功能方案.
二、AB简介
2.1 什么是AB?
AB 测试的本质是分离式组间试验,也叫对照试验,在科研领域中已被广泛应用(它是药物测试的最高标准)。自 2000 年谷歌工程师将这一方法应用在互联网产品以来,AB 测试越来越普及,已逐渐成为衡量互联网产品运营精细度的重要体现。
简单来说,AB 测试在产品优化中的应用方法是:在产品正式迭代发版之前,为同一个目标制定两个(或以上)可行方案,将用户流量分成几组,在保证每组流量在控制特征不同而其他特征相同的前提下,让用户分别看到不同的方案设计,根据几组用户的真实数据反馈,科学地帮助产品进行决策(比如你想优化某个位置的文案颜色,觉得蓝色比红色好,就可以保持这个位置一组流量的文案红色,一组蓝色,其他都相同,进行 AB 测试)。AB 测试原理如下面图 1。
AB 测试是一种科学的评估手段,具备概率统计学理论的支撑。
概率论中有一个中心极限定理,意思是独立同分布的随机变量的和服从正态分布。对于 AB 测试,我们比较的是两组样本的平均表现,AB 测试保证 AB 两组某个因素不一样(这个就是我们要验证的优化点),AB 两组其他很多未知影响因素一样(这些因素是独立同分布的随机变量),当 AB 两组样本足够多时,这些其他因素产生的效果是满足同一正态分布的,因此可以认为对要验证的变量的作用是相互抵消的,这样待验证因素(即我们的控制变量)的影响就可以比较了,因此我们就可以通过实验来验证优化是否有效。
2.2 AB测试的价值
最近几年增长黑客的理念在国内互联网盛行,有很多这方面的专业书出版,很多公司甚至设立了 CGO(首席增长官)的高管职位。增长黑客思维希望通过从产品中找到创造性的优化点,利用数据来驱动产品优化,提升用户体验及收益增长,最终达到四两拨千斤的效果。随着公司业务规模及用户的增长,利用数据来驱动业务发展越来越重要。增长黑客本质上就是一种数据驱动的思维,并且有一套完善的技术管理体系来科学地驱动业务发展,而这套体系中最重要的一种技术手段就是 AB 测试。
AB 测试可以很好的指导产品迭代,为产品迭代提供科学的数据支撑。 具体来说,AB 测试的价值主要体现在如下四个方面。
2.2.1 为评估产品优化效果提供科学的证据
前面说过,AB 测试是基于概率论与统计学原理之上构建的科学的测试技术,有很强的理论依据。
AB 测试也经历过多年实践的检验,被证明是有效的方法。前面提到过 AB 测试是药物测试的最高标准,在药品制造业得到了很好的使用和验证。同时,各大互联网公司都大量使用 AB 测试技术,为整个互联网的发展提供了很好的榜样和示范作用。
2.2.2 借助 AB 测试可以提升决策的说服力
因为 AB 测试是有统计学作为理论基础,并且又有工业上的实践经验作为支撑,利用 AB 测试得到的结论具备极大的说服力。因此,在用数据说话上,大家在意识形态上更容易达成一致,这样就可以让产品迭代更好更快的推行下去。
2.2.3 AB 测试可以帮助提升用户体验和用户增长
任何涉及到用户体验、用户增长相关的优化想法都可以通过 AB 测试来验证,通过验证得出有说服力的结论,从而推动产品朝着用户体验越来越优的方向发展。
2.3.4 AB 测试可以帮助提升公司变现能力
搜索、推荐、广告、会员等涉及到收益相关的产品及算法都可以通过 AB 测试来验证新的优化思路是否可以提升盈利性指标。其中盈利性指标可以根据公司业务和发展阶段来定义。
总之,一切涉及到用户体验、用户增长、商业变现的产品优化都可以借助 AB 测试技术,驱动业务做得更好,AB 测试是一种科学的决策方式。那我们在什么时候需要 AB 测试呢?
2.3 AB 测试的应用场景
2.3.1 算法类
各类算法是 AB 测试应用场景最多的地方,算法开发人员通过 AB 测试来验证一个新的算法或者小的算法优化是否可以提升算法的业务指标。包括推荐、搜索、精准广告、精细化运营等涉及到算法的产品和业务都是可以利用 AB 测试技术的。
2.3.2 运营类
任何一个互联网产品少不了运营,在互联网红利消失的当下,某个产品是否可以“占领”用户的心智,运营将起到越来越重要的作用,甚至有人说互联网时代将进入一个运营驱动的时代。各类运营手段,如用户运营(用户拉新、会员运营等)、内容运营(视频行业的节目编排等)、活动运营(抽奖等)等都可以借用 AB 测试技术来验证哪种运营策略是更加有效的。
2.3.3 UI 展示及交互类
UI 是任何一个互联网产品可直接被用户感知的部分,用户通过 UI 与互联网产品交互,用户对一个产品的感知也是首先通过 UI 建立的。简洁美观的 UI 界面,流畅的 UI 交互往往能够给用户留下好的第一印象。对于 UI 视觉及交互部分的优化,往往凭设计师的经验是不够的,需要利用技术手段来验证哪种 UI 展示风格、哪种交互方式是用户更喜欢的、能够带来最大收益的。
像颜色、字体、按钮形状、页面布局、操控方式的调整及优化都是可以通过 AB 测试来验证的。
三、产品概览
3.1 产品介绍
AB测试是对比两个或多个变体在同一地方好坏的方法,并且需要保证样本的同时和同质。
同时性:两个变体是同时投入使用的,而不是今天使用A变体,明天使用B变体,这样会有其他因素影响。比如,对于电商网站来说今天没有活动,而明天是双十一,在这个条件下我们不能判断变体B比变体A好。
同质性:两个变体对应的使用群体需要保证尽量一致。比如,想想一个极端场景:变体A里全是女性,变体B中全是男性,我们根本无法判断出来究竟是方案影响了最终效果还是性别。
四、主要功能
4.1 功能结构图
五、业务流程
AB测试框架的总体业务流
5.1 AB分组流程
分组模块的目的是根据各种业务规则,将流量(用户)分为 AB 两组(或者多组)。可以说分组模块是 AB 测试最核心的模块,好的 AB 分组方案可以让流量分配的更均匀随机。同时需要具备根据用户、地域、时间、版本、系统、渠道、事件等各种维度来对请求进行分组的能力,并且保证分组的均匀性和一致性。
为了方便计算,假设现在有12个人(Customer),我们给12个人进行编号,C1C12;有6个桶(Bucket)我们编号为B1B6。
每个用户在访问实验时,会先进入到分流算法中,由算法来决定分到哪个桶里面,都分完后最理想的是每个桶里正好有2个人。(实际上基于大数定律原理,数据量越大分配的会越平均)
那么现在,假设每个变体的流量是50%,变体A我们假定对应的是三个桶B1、B2、B3桶,变体B也是对应的是B4、B5、B6桶。
算法:保证分每个桶分到的越随机越平均越好
分流主体:mid(游戏用户id)
5.2 AB创建实验流程
创建AB实验,明确实验的AB策略,流量分配,生效时间等。
5.3 AB开始、停止实验流程
按照实验的时间配置,开始和停止实验流程。