写点什么

细节决定 A/B 测试的成败:不可忽视的抽样

  • 2020-04-05
  • 本文字数:2260 字

    阅读完需:约 7 分钟

细节决定A/B测试的成败:不可忽视的抽样

最近在微信公众号的后台陆陆续续收到了不少热心小姐姐小哥哥的问题,有关心我们流量层具体运作原理这样比较高端领域的,也有关心 A/B 测试基本能力是否真如传说中那样强大的。


有位小姐姐问到了抽样这个词,引起了我的深思思想者状沉思 ing,仔细想了想,目前已有的资料里面,对于 A/B 测试最最基本的组成部分:抽样,好像鲜有提到。不仅如此,大量的新手教程啦入门指导啦各个案例什么的,都是在从更高的角度解读 A/B 测试,没什么资料从根源讲解 A/B 测试一个致命的关键点……


从根源出发:深挖抽样

在统计学中,平均数是反映数据集中趋势的一项指标,一般通过将一组数据集中所有数据之和除以这组数据集的数据个数得到。在 A/B 测试中,我们无法知道所有用户的行为(如点击率)的真正均值——如果每次做活动、每次做版本迭代的时候,都将测试面向所有用户的话,且不说动用的人力物力,一旦其中有什么版本效果不好,比如大幅度降低了点击之类,带给企业的影响将是灾难性的。举个栗子,一个 APP 如果有一万名用户,假设五千人测试版本 A,五千人测试版本 B,这样固然可以知道 AB 之间孰优孰劣,但是如果 A 的效果极差(比如引起用户删除应用),那么使用 A 版本的五千人岂不是……简直是灾难 ——因此,必须通过抽样,抽取一部分具有代表性的用户来测试不同版本的效果(例如均值),从而基于抽样数据进行统计分析。一般来说,我们抽样的样本数越多,方差也会逐渐变小,从而使抽样样本的均值和真正均值之间的误差降低。


这事儿说起来简单,但是有个很致命的要求:要保证所抽取的样品单位对全部样品具有充分的代表性。不然可不能确保数据分析的结果是否准确。这就需要从这三大方面来保证:


第一,相似性


很重要也最复杂的一点。相似,指的是用户群体各个维度的群体特征相似。用户使用的机型是手机还是平板、系统的版本是 iOS 几还是安卓几点几,目前的应用版本是几点几甚至使用的语言是中文还是英语法语日语之类的外语之类,都是区分不同用户群体的指标。举个栗子,某 APP 针对手机用户有一项活动,那么在测试的时候如果放任平板用户参与,就失去了活动的意义不是吗。相似性,正是为了 确保被抽取的部分用户足以代表整个用户群而提出的。但这并不简单,实际上,分割各个用户群的标准是什么?是客户的需求。因为只有按照客户要求进行区分的用户群才有价值,如何让客户随心所欲区分用户群,才是相似性复杂的地方。


第二,唯一性


最重要的一点,每个用户分配到的试验版本得是唯一的。举个栗子,为了推广某项服务,某 APP 推出了两个版本 A 和 B,分别用不同的界面来推销这款服务。陆仁甲在测试期间登录 APP,看到了版本 A,觉得 A 给出的这个界面非常不错,于是充值打算购买这个服务,但因为有别的事情于是只好先关闭了应用。过了一段时间,他又登录了,但是却看到了版本 B。“我去这什么界面设计,太难看了”对于版本 B 感到反感的他,为了购买在 A 中看到的服务,只好被迫在 B 里面点击了购买按钮……且不说由于版本来回变换带来的不良用户体验,更别提这种类似于刷数据一样 bug,光是同一用户的重复测试就已经导致测试结果不可信了不是吗,陆仁甲是被迫在版本 B 中提高了点击,这将计入 B 的点击转化,但是实际上他喜欢的是 A 啊(A:是我,是我先,明明都是我先来的)。如果因此判断 B 比 A 好而发布版本 B……那画面太美我不敢看


第三,均匀性


既然是抽样实验,那么抽取的样本量就必须一致,这样才有对比性。这就跟初中高中物理里面用的控制变量法似的,保证单一变量(版本 AB)有变化,而其他变量要保持一致。实现这一点的重要倚靠是分配流量是否真如所愿一般分配。就比如,一个有十万用户群的 APP,能不能做到给 AB 各分配 2%的流量时,进入这两个版本的用户真的都是是在 2000 人附近。

回到根源,如何满足三大性质

满足了这三个点,才敢说 A/B 测试真正有价值。Testin A/B 测试从创始之初就致力于让抽样经得住考验,在这三方面不敢说历经考验,但起码是经得起考验,受到诸多用户的一致好评。让我们从三个方面一个个来看 Testin 是怎么做的:


在相似性方面,


我们首先基于 SDK 自动采集来使用聚类分析分割用户群,确保各个维度的群体特征相似,例如不同用户群的机型比例、语言比例等都会相似,以免干扰试验结果可信度。而在“让客户随心所欲区分用户群”这一点上,则在兼顾灵活性的基础上做到了精确定向。通过允许客户添加各类用户标签,Testin A/B 测试可以依此实现精准定向分流,客户只要设置相应的用户标签(例如性别、年龄等,需要上传),就可以在分配流量(分流)的时候自动完成用户群分割,简单高效。



用于分割用户群的用户标签


在唯一性方面,


为确保每个用户不被重复计入测试,我们通过精准且高效的 Hash 算法,确保单个用户每次登录应用时被分到的试验版本是唯一的


在均匀性方面,


技术上运用了安全哈希算法 SHA 1,经过数个月的实战检测,实际分流效果非常接近目标流量分割比例,且用户量越大分流结果越精确。并且,不止于此,Testin A/B 测试依仗精准的分流效果,允许用户随时在试验的进行过程中调节试验版本之间的流量分配比例,你要 2%,那么进入测试的就只有 2%的用户,你要 50%,也就只有 50%的用户接受测试。



可调节的精确分流


很高兴你能看到这里嗷!好有耐心的,赞相似、唯一、均匀,在抽样上要满足的三点即是 Testin 能够在行业中站稳脚跟的关键。尤其是相似性,是测试中容易被忽视但却又不容忽视的重中之重。对于任何一位想要切实提高产品效益的运营和 PM 来说,使用的 A/B 测试工具是否具有精确分割用户群的能力都是能否做好 A/B 测试的一个致命的关键点。


2020-04-05 16:54949

评论

发布
暂无评论
发现更多内容

华为云GaussDB(for openGauss) 同城双集群高可用方案正式发布

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

厂长来了 | 从个人英雄到软件工程,我们经历了什么

万事ONES

项目管理 研发管理 SaaS

企业如何通过迁移到云平台来减少开支

云计算

研发效能度量引发的血案

CODING DevOps

DevOps 团队协作 研发效能 腾讯云 CIF 峰会 度量

汽车域控制器(上):动力域控制器、底盘域控制器、智能座舱域控制器

SOA开发者

一个Camel Multicast组件聚合策略问题的解决过程

华为云开发者联盟

消息 Apache Camel Multicast 组件 Multicast 子路径

011云原生之事件驱动架构模式

穿过生命散发芬芳

云原生 10月月更

腾讯面试聊到的几种存储虚拟化

hanaper

“无用发明家”告诉你,5G推开了三重门

脑极体

浅谈云上攻防--SSRF漏洞带来的新威胁

腾讯安全云鼎实验室

漏洞分析 SSRF

阿里P8呕心沥血整理出这份32W字Java面试手册,竟然在Github上标星80K+

Java 架构 面试 程序人生 编程语言

深度解读 | 《2021年中国企业级 SaaS 行业研究报告》趋势剖析

万事ONES

SaaS 研发管理工具 ONES

DBeaver

soap said

开发工具 数据库客户端

如何绘制一个仪表盘

Changing Lin

android 10月月更

云原生消息、事件、流超融合平台——RocketMQ 5.0 初探

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件 消息

面试失败总结,这577道LeetCode题Java版答案你值得拥有

Java 架构 面试 程序人生 编程语言

模块八:设计消息队列存储消息数据的MYSQL表格

kk

架构训练营

记一次Kafka服务器宕机的真实经历!!

冰河

Docker kafka 运维 服务器 消息队列

想不明白!Github上竟然有阿里专家仅凭800页MySQL笔记火了

Java 架构 面试 程序人生 编程语言

从坐席到外呼,明道云与品聘云呼叫对接示例

明道云

逛街时偶然发现的阿里P8Java成长笔记,竟然在Github上标星90K+

Java 架构 面试 程序人生 编程语言

什么是激光雷达的“发动机技术”?一文讲透行业技术壁垒(二)

SOA开发者

操作系统虚拟化VMware, Citrix, Hyper-v比较

hanaper

如何绕过WAF和本地防火墙双重防护?

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

疫情反复,声网如何助力青岛教育局保障线上教学体验?

RTE开发者社区

人工智能 网络

空降Github榜单,火爆全网的Spring Security手册及源码笔记,竟然标星103K

Java 架构 面试 程序人生 编程语言

什么是激光雷达的“发动机技术”?一文讲透行业技术壁垒 (一)

SOA开发者

汽车域控制器分类(下):自动驾驶域控制器、车身域控制器

SOA开发者

【案例】云链智运携手百度OCR,实现货运物流智能化升级

百度大脑

人工智能

一文看懂微服务背后的技术演进与应用实践

阿里巴巴中间件

阿里云 微服务 云原生 中间件

OpenCV学习(一):简介

轻口味

android OpenCV 音视频 10月月更

细节决定A/B测试的成败:不可忽视的抽样_文化 & 方法_云测数据_InfoQ精选文章