写点什么

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

评论

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

智慧之锤|如何通过有监督微调锻造大模型

京东科技开发者

Git冲突高效解决策略:从识别到融合的全面指南

代码忍者

YashanDB V23.3重磅发布,持续深化1:1替代产品力

YashanDB

数据库 yashandb

手把手教你华为鸿蒙开发之第十二节

The Wang

华为

HAMi已在云厂商、互联网等数十家企业应用 异构算力利用率提升5-10倍

极客天地

为什么ETH 3.0需要Lumoz的ZK算力网络?

加密眼界

金融机构远程办公面临的安全挑战

芯盾时代

终端安全 零信任模型 金融业

手把手教你华为鸿蒙开发之第十一节

The Wang

华为

有哪些值得推荐的AI人工智能网站?这10个一定要知道!

职场工具箱

人工智能 效率工具 办公软件 AIGC AI生成PPT

Mybatis 拦截器实现单数据源内多数据库切换

京东科技开发者

您的 API 网关足够安全吗?

NGINX开源社区

nginx API api 网关 nginx 开源版

RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)

汀丶人工智能

rag

虚拟化世界,正上演一场「星际穿越」

脑极体

AI

最新 HUAWEI DevEco Studio 使用技巧

万少

ide 鸿蒙 HarmonyOS NEXT

加速 AI 应用落地!DataWorks 数据治理中心全新升级为数据资产治理

阿里云大数据AI技术

人工智能 大数据 数据分析 Dataworks

benchANT (Time Series: Devops) 榜单数据解读

KaiwuDB

数据库 时序数据库 数据库性能优化

前端最近发生的那些新鲜事儿(SEO,SSR和SSG?)

京东科技开发者

Lumoz的ZK算力网络,加速以太坊3.0的到来

股市老人

镜舟科技荣登 CCFA 2024 年度零售科技新锐企业榜单

镜舟科技

开源 数据分析 分析型数据库 StarRocks

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