数据产品组 业务数据平台 产品负责人

A/B 实验平台(首个公司级科学实验平台)

2021.03 — 2023.08

业务改版按天看数、判不清效果;从方法论、多源数据融合到自动出置信结论的报告,建成首个公司级科学实验平台(至今全公司公用),支撑多部门 4000 场实验/年,落地页优选理论增收 8 万/天。

4000 场实验/年

支撑多部门

8 万/天

落地页实验人均广告主价值 +6.6%、理论增收

01

方法先行、基建跟上、再攻深水区:先让人信,再让对的流程变成默认流程

2021 年已有的实验平台没法告诉业务“结论是否置信”,一次实验查数要跳 4 个平台,所需数据分属多个部门。我没有等平台立项,先用自研的置信计算器和 SQL 模板帮业务出结论,用科学收益和效率提升打动业务,再联合集团数据中台立项。方法和平台互相带动:方法让平台有人用,平台把方法固定成默认流程。

2021

MVP:验证命题

置信计算器 + SQL 模板;数据融合打通两侧数据;看板覆盖 70% 效果收入;开课宣讲覆盖 8 个业务 200 余人。

2022 下半年—2023 上半年

全面使用:建机制、稳质量、提体验

公司级分享与实验评审机制;全链路质量监控;速查报告;跨部门立项拿到研发资源。

2023—2024

深水区:对标行业最佳

按实验四个环节逐个攻坚:落地页动态择优(本页 04、05),降方差、全局进组和季度反转(见实验评估页)。

覆盖

由商业化自用推广为小米集团公用

首个公司级科学实验平台

规模
4000场/年

支撑多部门的实验量

方法论
1000+人

听过集团清河大学的 A/B 实验分享

02

两套打点短期统一不了:不改底层,事件原样落仓,查询时再聚合

实验要把用户行为和广告收入放在一起看,但两侧数据分属不同部门,用两套打点体系采集,底层短期内统一不了。我在数据层绕过去:两侧事件各自原样落成事件表,再合成一张明细表,指标和维度不用提前固化,分群、漏斗、下钻都在查询时按需算。

两套打点 · 不改底层 上层分析 媒体侧打点页面、卡片、实验分组 广告侧打点曝光、点击,补全下载 媒体事件表 广告事件表 合并事件 明细表 事件 + 属性原样落仓 行为分析分群 · 漏斗 · 下钻 A/B 报告自动出置信结论 查询时再按需聚合
01两套打点,不改底层媒体侧:页面、卡片、实验分组;广告侧:曝光、点击,补全下载
02各自原样落成事件表媒体事件表、广告事件表
03合并事件明细表事件 + 属性原样落仓,查询时再按需聚合
04行为分析与 A/B 报告分群、漏斗、下钻;自动出置信结论
一期 · 汇总层

先验证需求

梳理 119 个指标,按 key 融合,先满足看数,用真实使用量为明细层争取资源。

二期 · 事件明细

原样落仓

两侧事件 + 属性原样落仓,广告数据新增 29 个媒体业务维度。

2021 下半年 · 全链路

一张表到底

新的“事件 × 属性”模型,一张表从广告请求打通到广告主端内付费,支持 46 个指标。

查询
1 小时→约 1 分钟

同类查询约 60 倍提速

人力
3000人天/年

查数预计节省的人力

准确
< 0.5%

与原有口径的数据差异

03

把方法论做进产品:报告直接给出置信结论,质量问题由平台主动发现

过去业务按天看数,忽正忽负:一个跑了 15 天的实验,业务方仍判断不了,准备再延两周。平台按五层来建,最上层是让人会用的方法和机制,往下是报告、策略、数据和质量。

方法与机制让人会用、敢信
集团课程与知识白皮书实验评审机制公司级分享
报告层自动出结论
置信区间、p 值、MDE 自动给出 速查报告提前选好指标、凌晨预算,P95 从 60 分钟降到 5 分钟 报告通用化重构去掉 10+ 条定制逻辑
策略层自动做决策
落地页自动择优按转化数据持续动态分流
数据层一张表打通
合并事件明细表从广告请求到端内付费 数据架构升级全服务查询 P95 从 4 小时降到 26 分钟
质量层主动发现问题
全链路质量监控99% 问题主动发现,季均 6 次降到 2 次 进组样本健康度检测

报告给出的结论长这样(示意)

一条置信区间,加上 p 值和 MDE,业务一眼能看懂“现在能不能下结论”。

0 −0.147% +0.593% 跨过 0
置信区间 [−0.147%, +0.593%]p 值 0.237MDE 0.529%

怎么读

区间跨过 0:实验组和对照组的差异可能是噪声,还不能说改版有效。

p 值 0.237:远高于常用的 0.05 门槛,同样指向不显著。

MDE 0.529%:按现在的样本量,只有差距超过约 0.53% 才测得出来;预期收益比这个小,就要加流量或延长时间。

04

落地页择优:门槛太高,74% 的广告从没调过流量;改用汤普森采样,边用边探

每个“广告 × 广告位”要从 22 个落地页模板里找出转化最好的。一期按传统 A/B 均分流量,显著了才切量;广告数据稀疏,大多数组合一直等不到显著,就一直停在平均分流上,浪费流量和广告主的预算。

一期:显著才切量

74%

参与择优的“广告 × 广告位”,整个周期从没调过流量,等于没有择优。

二期:汤普森采样

每个模板维护一条转化率分布。分布的位置代表现在有多好(利用),宽窄代表还有多不确定(探索)。每次按分布抽样、取最大者分流:好的多给,不确定的也留机会。

转化率低转化率高 模板 A 样本多、表现差 模板 B 样本少、还不确定 模板 C 样本多、表现好
没选

ε-greedy

固定比例随机探索,不管模板好坏都平均试

没选

UCB 置信上界

打分 = 当前表现 + 探索加成,适合离线计算

选了

汤普森采样

分布本身就平衡了利用和探索,不用额外调参,适合线上按批次抽样

目标也一起改了:从“转化率差异是否显著”改为“遗憾值(regret)最小”,即少把流量浪费在次优模板上。

05

数据太稀疏、算法收敛不了:用 sigmoid 系数随展示量把择优粒度由粗收细

信息流广告量大但收入少、小广告位多,细到“广告 × 广告位”以后数据极度稀疏,照搬论文里的算法收敛不到最好的模板。我设计了一组 sigmoid 系数:展示量少时主要参考粗粒度(应用 × 媒体)的表现,展示量积累起来以后平滑过渡到细粒度的实测,不做一刀切的硬切换。

粒度怎么收细

最粗的一层用“行业 × 媒体”的激活率作冷启先验,细粒度数据不够时系数为 0。

10 累计展示量 → 粗:应用 × 媒体 细:广告 × 广告位 细粒度权重 λ

上线时的安全阀

新模板

从已有模板均分 20% 流量冷启动

模板下线

它的流量并入当前流量最高的模板

置信度

自动择优用 90%(标准 A/B 是 95%),用少量误判换更快收敛

理论增收
8万/天

落地页实验

人均广告主价值
+6.6%

落地页实验

点击激活率
+8.6%

相对提升

覆盖
80%

信息流流量

这套择优策略后来也用到了素材择优上。

①悬停或点按编号,查看同一个问题对应的方案与结果

问题

Problem
  • ①业务按天看数,忽正忽负、不知置信度,错的改版上线、对的被延误
  • ②数据分属多部门,查数跳 4 个平台
  • ③落地页模板择优这类长期持续、需动态决策的实验,靠人看结果再切流,效率低

打法

Approach
  • 方法先行:自研置信计算器与SQL模板,开课、写文档、立评审机制,再联合集团数据中台立项
  • 数据先汇总层验需求,再打通事件明细

方案

Solution

0 到 1 几乎全由本人设计:

  • ①报告层自动出置信区间、p 值与 MDE
  • ②数据层一张明细事件表打通广告请求到端内付费,质量层全链路监控
  • ③策略层做落地页自动优选,按转化数据持续动态分流、自动择优

攻坚

Hard parts
  • ④两套打点短期难统一→不改底层,事件原样落仓、合表按需聚合,查询 1 小时→约 1 分钟(约 60 倍)
  • ⑤实验多、方差按用户粒度算,报告 P95 涨到 60 分钟→设计凌晨预算的速查报告,降到 5 分钟
  • ⑥落地页一期显著才切量,74% 广告×广告位从未调流→改汤普森采样,sigmoid 系数随展示量把粒度由粗收细,缓解稀疏

结果

Results
  • 已由商业化自用平台推广为小米集团公用的 A/B 平台,支撑多部门 4000 场实验/年
  • 查数预计年省 3000 人天
  • 落地页实验人均广告主价值 +6.6%、理论增收 8 万/天
  • 质量问题 99% 主动发现、季均 6→2 次
  • 集团清河大学分享 1000+ 人听过