QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

细节决定 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:54711

评论

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

第五届金蝶云・苍穹追光者开发大赛报名正式启动,百万奖金等你拿

金蝶云·苍穹

低代码 低代码平台 开发者大赛 金蝶 金蝶云苍穹

APP和小程序共同塑造现代化政务服务

FinFish

小程序 小程序容器 小程序化 小程序技术 政务服务

软件测试 | 编写单元测试用例

测吧(北京)科技有限公司

测试

软件测试 | Django客户端测试

测吧(北京)科技有限公司

测试

浅析AIGC for MMKG

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 5 月 PK 榜

共享电单车如何投放运营?流程介绍!

共享电单车厂家

共享电动车厂家 本铯智能电动车厂家 共享电动车投放 共享电单车运营

小程序技术助力智慧家居生态互联

FinFish

智慧城市 小程序容器 智慧家居 小程序化 小程序技术

互联网用户之间如何传输大文件

镭速

基于WebGL智慧储能电站三维管理平台

2D3D前端可视化开发

物联网 数字孪生 智慧储能电站 微电网

AI女友同时和1000人谈恋爱,狂赚500万

引迈信息

人工智能 AI 低代码 JNPF

Dynamic Wallpaper Mac(视频动态壁纸) v14.3免激活

真大的脸盆

Mac Mac 软件 视频动态壁纸 高清动态壁纸

住宅代理的未来:挑战、趋势和机遇

摘星星的猫

AIGC背后的技术分析 | 知识图谱

TiAmo

自然语言处理 机器学习 知识图谱 AIGC

Unsafe Unlink:unlink利用

郑州埃文科技

漏洞

镭速传输:安全文件传输的意义

镭速

网易云商·七鱼智能客服自适应 ProtoStuff 数据库缓存实践

网易智企

Java 数据库 缓存

热技术冷思考:AIGC为SaaS带来的不能只有盲目自信

ToB行业头条

构建新一代智慧园区移动应用以推动数字转型

FinFish

智慧城市 移动开发 智慧园区 小程序容器 小程序技术

RocketMQ 在小米的多场景灾备实践案例

Apache RocketMQ

RocketMQ

「AI之劫」:当机器超越人类底线,正在侵犯我们的创造力和道德

加入高科技仿生人

人工智能 低代码 AIGC

直播预告 | 博睿学院:智能告警与AIOps融合探索

博睿数据

根因分析 智能运维 智能告警 博睿数据 博睿学院

火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计

字节跳动数据平台

大数据平台 DAG DataLeap

PAG动效框架源码笔记 (二)层级视图

olinone

ios 动效 andiod 特效

软件测试 | unittest单元测试框架

测吧(北京)科技有限公司

测试

忙碌的七个层次

宇宙之一粟

生活 工作

大央企的“中央厨房”,泰裤辣!

用友BIP

数智化底座

数据智能加持下,中小微企业告别“融资难”

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

在Mac电脑上运行 PC 游戏

互联网搬砖工作者

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