0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从不均匀性角度浅析AB实验

OSC开源社区 来源:OSCHINA 社区 2023-05-12 14:55 次阅读

本篇的目的是从三个不均匀性的角度,对 AB 实验进行一个认知的普及,最终着重讲述 AB 实验的一个普遍的问题,即实验准确度问题。

一、AB 实验场景

在首页中,我们是用红色基调还是绿色基调,是采用门店小列表外 + 商品 feed(左图),还是采用门店大列表囊括商品 feed(右图),哪种更吸引用户浏览下单呢,简单来处理让 50% 的用户看到左图效果,让 50% 的用户看到右图效果,最终通过点击量,单量等指标进行比对得出结论,这是典型的 AB 实验场景

f4d0b890-f089-11ed-90ce-dac502259ad0.png

f5119d06-f089-11ed-90ce-dac502259ad0.png

二、AB 实验的定义

A/B 实验就是针对想迭代的产品功能,提供两种不同的备选解决方案,然后让一部分用户使用方案 A,另一部分用户使用方案 B,最终通过实验数据对比来确定最优方案。 从定义里我们就可以看出来,最直观的一个概念,就是用户的分流,此时就涉及到分流人数是否均匀的问题,即人数比例的均匀性。

三、AB 中的三个不均匀

1、人数比例的不均匀

目前 AB 实验的分流核心算法是通过的哈希算法,假设我们按用户名做为分流因子,使用 murmurhash 算法,以 100 桶制为例,确定一个人的位置的算法就是

//将用户名通过hash算法计算出一个整数 int hashNum = MurmurHash3.murmurhash3_x86_32(useName) //整数值对100取模 int bucket = hashNum % 100;当我们定义一个实验两个策略的人数均为 50% 时,那么 bucket 为 0-49 的用户由 AB 系统标记为 A, 业务系统根据 A 标记,使得用户使用方案 A bucket 为 50-99 的用户由 AB 系统标记为 B, 业务系统根据 B 标记,使得用户使用方案 B。 可是我们都知道哈希算法并不是绝对均匀的,当 100 人时,基本上不会出现有 50 个人走 A,50 个人走 B,但是 1 万个人的时候,两部分流量可能就接近了 1:1,10 万人的时候可能更接近 1:1。 之前有位运营的同学问过,为什么不能用一种很均匀的算法,比如第一个人来了,放入 A,第二个人来了放入 B,第三个人来了放入 A,第四个人来了放入 B....,这样一天 1W 个人来,5000 个取 A 策略,5000 个取 B 策略。 假设我们真的这么做了,第一天是 OK 的,第二天进 A 只来了 4000 人,这样还是不均匀的,如果你第二天仍然按第一天的规则重新分配,这样会有一部分人乱了策略,不符合我们固定人群走固定策略的实验目的。 所以说这个不均匀是无解的,HASH 算法是目前最理想的解决方案,前提是你需要一定的流量,流量越大,分流相对就比较准确。

2、人群素质的不均匀

我们假设流量足够大,人数比例很均匀了,但是还有个问题就是人群素质的均匀问题。这里的素质包括消费能力,活跃度,年龄等各种人群因素。 假设现在我们的活动统一采用的 A 策略(现状),我们想验证一下 B 策略(新策略)会不会带来客单价的提升,就直接做了 AB 实验,还按 1:1 比例来分流,发现使用 A 方案的人群客单价是 100,使用客单价 B 的人群是 96,此时我们能认为原有 A 方案优于 B 方案吗?其实是不能的,怎样确定这种人群素质的差异呢,可以采用 AA 实验,就是两部分人都走 A,进行分开统计,可能会发现,位于 0-49 桶的人群本身客单价就是 100,而位于 50-99 桶的人群可能只有 94,这么看来 B 方案是能提升客单价的,因为位于 50-99 桶的人群本身指标就差一些。 当然 AA 不是必须的,可能你有整体的客单价指标,上了 B 策略后发现整体提升了,这种情况相当于灰度验证了,但实际情况是比较复杂的,整体指标你是不清楚的(因为这里的整体可能只是你取的业务中的一部分流量)。 所以解决素质不均匀的手段就是采用 AA 提前确定差异性,再在这个差异性基础上看差异的变化。

3、实验间影响的不均匀

这个不均匀性是最复杂的,一般做实验我们走两种极端: 第一种是完全不复用人群,每个实验人群都是独立的,这样的话效果比较准确,但是弊端是,当所有流量都被用去后,不能有新实验开始,必须等待有结束的实验后才能继续做。 第二种,所有实验都用全部流量,此时我们认为实验虽然互相之间有影响,但是这种影响是正交的,量大的时候应该是均匀的,如下图所示,P 实验的两个策略人群,到 Q 实验时,对 Q 的两个策略影响是均匀的。

f52fc89e-f089-11ed-90ce-dac502259ad0.png

这种可以满足无限个实验,想做多少实验都可以,但弊端是,实验太多,必然有影响不均匀的,且我们无法消除这种不均匀。 所以我们想能不能结合以上两种情况来处理呢,结合 google 的 Overlapping Experiment Infrastructure 文章我们设计出分层的实验管理模型

f5e23b6e-f089-11ed-90ce-dac502259ad0.png

首先我们将总流量分成两部分,正交域,垂直域(含对比区) 我们假设如图取 80% 的流量用做正交阈,20% 用作垂直域,垂直域中有 5% 用做对比区。 上图正交域下 4 个层,层内实验流量互斥,层间实验流量正交,我们将可能会互相影响的实验放到同一层内进行流量互斥,而影响不大的实验可以放到不同层内。 垂直域中的实验流量只能互斥,且不与任何实验正交,可以理解用最纯正的流量做实验,可以 I1 和 I2 两个策略间对比,也可以 I1 或 I2 和对比域(现状)比对。 那此时有一个很重要的问题需要解决,我们怎么确定哪些实验互相影响较大,需要放到同一层下。 有一些简单标准,比如入口不一样,目标不一样等等,这种可以放到不同层,我们可以忽略正交不均匀的问题,反之就不行。 比如活动页劵对单量提升度的实验和会员页面入会效果的实验,就可以放到不同层。 而首页上满减活动实验对客单价提升的实验和同样首页买赠活动对客单价提升的实验,最好是不共用用户,放到同层比较合适。 但对于很多实验是不太容易通过简单规则来确定的,需要大数据的同学和产品,甚至研发来共同决定实验放到哪些层和哪些实验互斥,这确实在实际的运作中是最难的点。 总之采用这种策略,可以复用流量的同时还可以降低不必要的互相影响,比较综合考虑了流量和准确度问题。

四、总结

现在我们对以上问题进行总结,从问题到解决方案上来认识 ab 实验 1、人群做不到绝对的均匀,只能通过 HASH 算法,结合一定的流量来解决。 2、通过 AA 实验,来提前确定人群素质的不均匀。最终的实验数据结合 AA 实验数据来确定最终效果。 3、设计出正交垂直域,正交阈内多个层,每个层内放可能相互影响的实验,层内互斥,层间正交,保留垂直域,为要求精准的实验留出流量,来解决实验间相互影响的问题。 本篇从核心分流与实验间相互影响角度讲解 ab 实验,希望能引起大家在做实验前能有更多的思考,来更准确的验证自己想要的效果,希望大家有兴趣的可以留言讨论。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4562

    浏览量

    92159
  • 模型
    +关注

    关注

    1

    文章

    3040

    浏览量

    48432

原文标题:从不均匀性角度浅析AB实验

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    不均匀的定义 PPT学习资料

    不均匀的定义可以这样说:组成系统是由传输线+功能电路,这中间会遇到大量的不均匀或者说不连续。对于
    发表于 11-02 17:13

    矩阵式LED的显示亮度不均匀

    亮的效果(比如点亮LED2 LED 4 LED6 LED8 LED11 LED12)刷新6次;然后,发现亮度不够,并且显示起来亮度不均匀,然后又尝试了行列式点亮,也是亮度不均匀,其实单独做个LED显示
    发表于 12-17 08:41

    在同步设计中使用占空比不均匀的时钟是否可行

    喜 在同步设计中使用占空比不均匀的时钟是否可行,我使用这些时钟在上升沿和下降沿执行操作。我使用这些脉冲作为总是块的时钟。请建议。谢谢,维沙尔以上来自于谷歌翻译以下为原文hi
    发表于 01-30 08:03

    VHDL小源程序平均频率输出不均匀

    一.积分分频(小数分频)注:只是对平均频率,输出不均匀。library ieee; use ieee.std_logic_1164.all; use
    发表于 02-20 06:35

    如何解决厚铜PCB电路板铜厚度不均匀的问题呢?

    如何解决厚铜PCB电路板铜厚度不均匀的问题呢?
    发表于 04-11 14:31

    基于不均匀密度的自动聚类算法

    针对基于密度的聚类算法不能自动处理密度分布不均匀的数据问题,提出一种基于不均匀密度的自动聚类算法。该算法既保持了一般基于密度算法的优点,也能有效地处理分布不均
    发表于 04-09 09:39 16次下载

    照度不均匀图像的自动Gamma灰度校正

    照度不均匀图片分辨率较差,许多信息被掩盖,为了较好地去除光照影响,真实再现原场景,本文提出了一种改进的Gamma非线性灰度矫正函数,实现了对不同像素进行不同程度的灰度修正,另
    发表于 03-01 14:31 26次下载

    为什么数码管亮度不均匀

    为什么数码管亮度不均匀?  关于亮度一致的问题是一个行业内的常见问题。  有二个大的因素影响到亮度一致。  一是使用原材料芯片的选
    发表于 11-06 11:44 6128次阅读

    RTC 计秒不均匀

    STM32F103RCT6的RTC 计秒不均匀
    发表于 12-07 18:13 0次下载

    抑制永磁体局部温升最高点的不均匀轴向分段技术

    抑制永磁体局部温升最高点的不均匀轴向分段技术_陈萍
    发表于 01-07 18:12 0次下载

    为什么光纤激光打标机打标效果不均匀

    因为每一个聚焦镜都有对应的焦深范围,而采用偏离焦点的办法会容易导致大范围标刻图案时,边缘处在焦深临界点或者超出焦深范围,这样就比较容易造成效果的不均匀。因此,偏焦标刻的方法须考虑激光能量的问题。
    的头像 发表于 01-22 17:47 2434次阅读

    简单分析光纤激光打标机打标效果不均匀的原因

    光纤激光打标机打标效果不均匀的原因分析。
    的头像 发表于 12-25 13:15 728次阅读

    机器人静电喷涂不均匀的原因有哪些

    因种种原因机器人静电喷涂有时候也有喷涂不均匀的情况,下面分享一下机器人静电喷涂不均匀的原因。
    发表于 12-26 08:27 769次阅读

    浅谈连接器电镀不均匀的原因

    很多连接器都需要电镀,但是有些连接器电镀后会出现电镀不均匀的情况。我们来看看原因。
    的头像 发表于 12-07 14:18 1349次阅读

    DataParallel里为什么会显存不均匀以及如何解决

    DataParallel里为什么会显存不均匀以及如何解决
    的头像 发表于 12-14 10:36 1056次阅读