分享实录 | 一文了解A/B测试与业务增长的底层逻辑
本文是火山引擎开发者社区Meetup分享-《ab测试驱动业务增长》的实录整理,第一篇介绍A/B测试与火山引擎A/B测试产品以及A/B实验背后的逻辑,第二篇介绍如何正确开启一个实验。
文 | Yang 来自 字节跳动数据平台团队
A/B实验的基本思想就是:我们在线上流量中取出一小部分(较低风险),完全随机地分给原策略A和新策略B(排除干扰),再结合一定的统计方法,得到对于两种策略相对效果的准确估计(量化结果)。
这一套基于小样本的实验方法同时满足了低风险,抗干扰和量化结果的要求,因此不论在互联网产品研发还是科学研究中,都被广泛使用。
A/B Test
为什么我们需要A/B测试?
A/B实验能帮我们解决什么问题?
在日常工作中,比如产品设计,可能经常会出现“到底是谁的方案更好”的争论。在没有数据作证下空口说服对方其实是很难且风险很高的一件事情。而A/B实验就可以帮我们解决这个问题,能够有效地去消除分歧。不用battle,直接上A/B实验,看结果做决策。 互联网公司日常的工作,不管是算法优化,产品迭代,其实本质上都属于创新和试错的过程,而 A/B实验能够检验我们的想法,帮助我们加速正向创新。 通过A/B实验,能够快速准确定位一些产品中的问题,特别有时会存在一起反直觉的错误,或者说一个非常隐性的问题,可以通过数据来揭示这些仅通过经验很难找到的问题。 通过 A/B实验&feature flag,它是能够降低我们产品发布的风险。我们可以在对不影响全部用户的情况下,选取线上一部分用户,先在一个小范围内去进行试错。对那如果他效果不好,其实对产品影响面是非常有限的。如果效果很好,那我们可以逐步再把量给扩大,实现低风险以及平稳的上线,其实这就是所谓的“灰度发布”的概念。
A/B Test
火山引擎A/B测试
火山引擎A/B测试经历了字节跳动内部多年的打磨,于2021年正式对外开放。在实验自动分流、流量正交互斥、指标设计和解读、置信度统计等方面,火山引擎A/B测试都积累了非常成熟的技术基础,使用效果也得到了客户的认可。
火山引擎 A/B 测试架构图
SDK层
最底层支持了各种各样的服务端和客户端 SDK 去给大家进行一个平台的接入。
分流服务
分流服务是这款产品的核心能力。我们的底层算法是可以对用户群体去进行均匀随机的分流,保证各实验组样本的一个同质性,实验结果也是更加可靠的。
特型实验
火山引擎 A/B 测试是可以支持各场景下的不同的实验需求,然后也是经过字节跳动内部长时间的积累,为大家包装出了在适用于各种特殊场景下的一些特型的实验模板。
编程实验:这个也是最全能最万能的一种实验类型不管是算法还是产品上的一些 UI 的实验类型,都是可以通过编程实验来实现的。 可视化实验:可视化实验其实就是通过一些可视化拖拽的方式去改变产品或者说页面布局上的一些前端元素,然后来完成这个实验组和对照组的配置。所见即所得——这是新手非常友好的一种实验形式,然后也可以降低开发成本。
多链接实验:主要是用户会访问统一的落地页 URL ,然后会分流至不同的 URL 落地页。这块是适用于一些落地页活动运营的一些场景,比如说去测试不同的落地页的一些转化率或者说是其他的一些效果数据等。 推送实验:在活动推送中,大家可以配置多个文案落地页,去开启实验,去查看活动推送效果。推送实验是支持 mab 智能调优的文案赛马功能,可以帮助大家尽快地拿到最大的收益。 广告实验:广告实验包括拆分对比实验,主要是对比不同广告素材去进行 A/B 实验,然后提高广告主投放的一些 ROI 然后去指导后续广告的一些投放动作。其次还有增效度量实验,就是我们的 CIA 实验,通过将广告是否曝光作为变量,然后结合多媒体广告投放的能力度量广告曝光提升转化量。 灰度发布:架构图右边是feature flag 也就是灰度发布能力。除了灰度发布之外,我们还有feature的管理以及自定义灰度规则等能力。 统计策略:最左上角看的话,其实就是字节跳动内部A/B测试同款的成熟统计策略。这块的设计依照于鉴定统计学假设检验的方法论,包括一些 p-value MD 置信区间等这种统计学的数据,进行实验数据评估。除此之外,也有以贝叶斯统计为原理的实验引擎。在数据分析方面提供了包括漏斗分析、热力图分析、群体洞察等这些更加细致的分析手段,帮助大家更好地洞察实验结果。 那接下来的话我们来看一下 A/B 测试背后的一些理论。
A/B Test
A/B测试背后的理论
一个实验的背后其实是包括了几个核心的部分,第一个就是一直在提到的用户分流,然后第二块的话是数据,然后第三部分其实就是实验报告的产出。本文重点介绍分流原理和火山引擎A/B测试的核心能力之一——用户分流。
分流原理
当我们说用户分流其实也是在说开启一个 A/B 实验,用户分流决定了用户到底是会被哪一些实验命中,然后到底应该进入哪个实验组?
这其实就是从整体的流量中去抽取部分流量,然后把抽取的流量进行随机的分配,分配到 A 组跟 B 组之中。然后这块也会尽量地去减少抽样误差。
其实我们的分流服务就像一个无情的分组机器。大家可以看一下下面这张图。
产品介绍
火山引擎A/B测试
A/B测试,摆脱猜测,用科学的实验衡量决策收益,打造更好的产品,让业务的每一步都通往增长。后台回复数字“8”了解产品
- End -