不同的实验类型

使组间用户在统计角度无差别。将原策略 A 和新策略 B 分别展示给不同的用户组,一段时间后,结合统计方法分析数据,得到两种策略生效后指标的变化结果,并以此判断新策略 B 是否符合预期。

  • 平台在以上的过程中为使用方提供 SDK 接入能力,不同分流单位、应用场景的下游均可接入;
  • 分流模块对用户进行分桶 hash 并且下发不同策略组的配置;
  • 基于实验分流 mapping 信息与数仓共同建设实验效果指标,提供显著性计算及 cuped 后的数据结果;
  • 日常迭代完成后,可根据场景所需推全实验、开启 reverse、加入 holdout 等操作。

普通实验的流程

  1. 普通实验:日常策略迭代时开启的用于 A/B 效果验证的实验,一般为小流量起始,逐渐放量至达到最小样本量。
  2. 推全实验:符合预期的普通实验,在实验完成后为实现快速覆盖至全量用户而开启的实验。推全必须基于普通实验的实验组方可操作。当一个 flag 同时被普通实验、推全实验使用时,生效顺序为 普通实验 > 推全实验
  3. Reverse 实验:又称之为反转实验。当普通实验符合预期上线后,为了观察策略更长期效果而开启的实验。意在长期跟踪观测其核心指标的变化。

其他类型的实验

  1. Holdout 实验:在日活跃用户中留出部分流量,不参与日常迭代。留出的部分即为 holdout 流量部分,与日常迭代流量互斥。在 holdout 流量开启的实验,即为 holdout 实验。holdout 实验添加的 flag 需为日常迭代部分 reverse 实验正在使用的,或为普通实验已经验证完效果待开启 reverse 实验的,不可新增 flag
  2. 互斥实验:在一个互斥组内多个实验能够并行,不产生相互干扰的实验为互斥实验。当用一个模型被多人迭代,或不同功能之间可能存在冲突需要同时独立开启时,可在日常迭代流量中创建互斥层,开启该类型实验。互斥实验间流量独立,不会存在重合用户。
  3. 父子实验:基于已有实验 A 的部分或全部流量开启实验,实验 A 称之为父实验,开启的实验称之为子实验。子实验存在两种模式:正交子实验互斥子实验。一个父实验仅可开启一种模式的子实验。同一个父实验下的正交子实验之间流量正交,互斥子实验间流量互斥。

父子实验

正交子实验(Factorial,用户可同时落入多个子实验)

适用前提:改动发生在不同维度/控件上,彼此不冲突;希望同时估计主效应和交互效应。

  1. 首页改版 × 文案风格

    • 父实验:旧首页 vs 新首页(50%/50%)。
    • 子实验(正交):召回词文案【简短 / 详细】在每个父组再 50/50。
    • 结果:形成 2×2 四格(各 25%);既能看“新首页”的主效应,也能看它与“文案风格”的交互。
  2. 推荐算法 × 频控阈值

    • 父实验:推荐模型 A vs B。
    • 子实验:曝光频控阈值【2 次 / 3 次】。
    • 适用原因:算法与频控是不同维度;想同时评估“换模型”和“放宽频控”是否相互放大/抵消。
  3. 支付页排序 × 优惠提示样式

    • 父实验:支付方式排序【旧 / 新】。
    • 子实验:优惠提示【横幅 / 行内徽标】。
    • 适用原因:显示形态与排序互不覆盖;正交能最省时拿到两条策略的独立与交互结论。

小提示:正交会把样本拆成更多 cell,对应样本量需求上升;但能一次性拿到更全面的结论。

互斥子实验(Mutual-Exclusion,用户同时只进入一个子实验)

适用前提:改动在同一位置/同一触发链路上,会相互覆盖或产生冲突;或优惠/价格不能叠加。

  1. 两套拉新流程二选一

    • 方案 A:三步注册;方案 B:一键短信注册。
    • 冲突点:二者都是“注册流程”,同一入口只能呈现其一。
    • 做法:放入同一互斥组,按 33/33/34%(含对照)切流,避免同一用户被两种流程干扰。
  2. 价格策略冲突:满减 vs 折扣券

    • 方案 A:满 99-20;方案 B:全场 9 折。
    • 冲突点:优惠不可叠加、对 GMV 影响口径不同。
    • 做法:互斥分流,独立评估每种促销的真实增益,避免叠加导致无法归因。
  3. 结算页两种大改版

    • 方案 A:“一步结算”;方案 B:“分段引导结算”。
    • 冲突点:两套 UI 都占据相同页面框架,无法共存。
    • 做法:互斥;流量可 A/B/对照 = 40/40/20%,只看同层对照的提升。