Fork me on GitHub

一站式A/B实验平台的搭建与落地应用

以下文章来源于 https://zhuanlan.zhihu.com/p/641222646

导读 随着互联网领域进入存量资源市场,业务侧迭代追求"短、平、快",网易云音乐之前相对简陋的AB实验平台已不能满足业务实验诉求。基于这个原因,云音乐搭建了一套一站式的AB实验平台。本文将介绍该平台在网易云音乐的落地实践。主要包括以下四大部分:

全文目录:

1.平台基建

2.指标基建

3.实验科学性

4.实验效率


分享嘉宾|沐德 网易云音乐 资深算法平台研发工程师

编辑整理|范雯蕾 香港科技大学

出品社区|DataFun


01/AB实验平台基建

首先来简单介绍下AB实验在云音乐平台的系统基建。云音乐天秤实验平台致力于打造业内领先的一站式AB测试平台,实现实验管控与效果评估的一体化,助力产研、运营快速实验、精准决策。



在线上分流计算方面,平台提供了一套高性能分流器,实现在线分流计算性能保证。云音乐是一个内容级音乐产品,提供了多终端 SDK 支持,除了iOS、Android手机端之外,还支持诸如手表、车机、电视等智能终端的接入。实验数据回收方面,为了满足多业务、多场景自动看数需求,平台搭建了一套实验数据自动化回收链路,有效避免了烟囱式指标生产口径不齐的问题,同时也极大提升了指标生产效率。

在实验评估方面,除了提供统计推断相关工具方法之外,还提供了多维下钻、漏洞分析等数据分析能力,同时在复杂实验场景也在尝试因果推断方法。落地相关分析案例,给分析师、业务方提供更多维度的实验分析能力。现阶段,平台基于Doris分析引擎打造端到端实验分析实验产品及套件,旨在提高面向业务用户的常规实验分析自助率,同时提供实验问题全链路诊断、复杂实验数据分析能力。

02/指标基建

云音乐作为业内领先的内容级音乐社区,产品构造越来越复杂,以往烟囱式的开发模式难以应对呈爆发式增长的指标需求,同时在指标口径上不可避免的出现多方对不齐的问题。为了统一指标口径、提高指标生产效率,我们在指标基建方面做了很多工作,主要分为三大部分:



第一部分是指标模型的设计。为了让实验评估有效,指标要可测量、可计算、可收敛、灵敏、指向性好。我们将指标拆分成原子指标和复合指标两大类。原子指标,就是简单计数型指标,比如曝光次数、点击次数、播放次数、样本人数等。复合指标,即通过这些原子指标组合衍生而来,比如点击率、播放率、人均播放时长、人均播放次数等。

第二部分是指标模型的开发。业务的快速迭代,对指标开发效率要求很高。指标开发是面向原子指标的,逻辑简单、易抽象,基于云音乐批流一体化计算平台,实现了拖拽式的指标开发,使得数据开发同学能很快基于业务方给到的统计口径将相应指标模型推入指标系统。

第三部分是指标的生产与查询。基于云音乐批流一体化计算平台,搭建了从实验数据采集、数据加工、指标计算、指标存储等全链路,最终将指标数据汇总到ClickHouse,提供即席查询的能力。

03/实验科学性

接下来介绍我们在AB实验平台建设推广中遇到的一些实验科学性问题。

首先来看一下影响实验科学性的一些关键因素:



第一点是基于样本的均匀分流。当实验出现分流样本不均匀现象时,实验数据一般不能直接用作决策,此时,业务方会对实验科学性进行质疑,给相关方提排查需求。该类问题的排查涉及到的链路很长,排查成本往往很高。因此,平台在设计时,提前收集常见的SRM现象及其发生的原因和规避方法,提供实验样本检验、监控、告警等能力,及时发现问题、解决问题。

第二点是指标的正确计算。平台内置的指标,开发口径是经产品、BI、数据开发多方评估达成一致的,这方面的问题相对较少。

第三点是实验效果的科学评估。实验效果评估存在很多陷阱,比如因样本量未达到最小样本量要求、指标值过于稀疏、随机波动等,导致实验统计功效不足,又或者因异常值导致实验结果出现反事实的现象,给实验效果的有效、科学评估带来极大的成本。

第四点是实验决策的有效执行。这部分更多涉及实验外因素,非本文重点,暂不赘述。

接下来将围绕实验样本的均匀分流、实验效果的科学评估这两部分展开介绍。

1. 均匀分流---SRM问题



实验样本不均匀分流问题在业界也叫SRM问题。SRM问题的归因可以总结为如下几点:

  • 分流算法不随机。涉及整套实验平台分流的设计问题。从后台统计来看,这些case概率可以得到有效控制,却很难给业务方解释。对此,平台对分流模型和算法做了一些系统验证,将验证报告和支撑理论对业务方进行了宣讲,让业务方相信这套平台的基础分流没有问题。
  • 实验流量分配不科学。人群圈选、流量分配不科学,常见的问题是分不清AB实验和流量灰度的区别。在实验周期内做流量扩缩,带来实验流量污染。一般来讲用户行为会有7天的周期,基于7天的数据才能获得可靠的结论。但是有时业务方因为压力会在整个灰度期间对实验进行频繁的操作,导致实验数据出现污染。
  • 实验前用户状态偏差。与实验方案设计有关系,二次进入时候会受到第一次实验影响,也会导致实验分流出现不均匀现象。
  • 实验策略/漏洞影响留存。可能是一些bug导致当前实验组出现用户流失现象。比如云音乐会做会员歌曲的推荐,将付费歌曲的比重在头部位置进行权重的加强,此时大量用户会发现头部歌曲无会员没法收听,导致实验策略组用户出现大量的流失。² 实验日志上报漏报、错报。常见的是一些工具漏洞,以及SDK 的bug。
  • 风控、反垃圾。策略组会导致某些用户行为异常活跃,导致触发风控机制。

以上问题是在实验过程中常见的导致SRM样本量不均匀的原因。这些问题带来了高昂的排查和分析成本,严重阻碍实验效率。针对这些问题,平台采取了以下一些措施。



足够随机的、高性能散列算法,是实验平台的基础。首先,我们对分流模型的随机算法做了大量验证,对比murmurhash、md5、bkd等散列算法,最终选择了murmurhash,该算法的计算性能和分流随机性上表现突出。其次,对不同用户规模、不同数量的实验进行叠加测试,murmurhash在分流正交性上同样表现优异,可以有效避免不同实验层之间的影响。



经过大量的测试和线上实验验证,分流器可以将一次分流不均匀的概率控制在5% 以内。但是通过对线上实验的统计发现,不规范的流量分配及放量方式是引起实验样本不均匀的一个重要原因。经过推导,当实验组和对照组的流量分配比例相等时,指标统计值的方差最小,放量过程中,等比例放量的方式也可以保证实验组和对照组持续保持稳定。因此,平台在操作实验流量时,推荐等比例分配流量、等比例扩缩量的方式,以保证对照组和实验组流量的到达概率及收敛速度一致,用户分布更均匀,统计值误差更小,更有利于后续实验数据的分析与评估。

前面讲的两点是如何预防SRM问题,但实际操作中,有些问题仍是不可避免的,比如实验方案设计不合理、实验逻辑开发错误等,也会导致SRM问题,因此需要对实验的样本量进行监控,及时发现实验样本不均的问题,并进行预警,早发现、早处理。



平台提供天级、小时级的样本监控,对样本量、样本比例进行监控。监控维度包括样本量、一些提前预设的维度比如年龄、性别、设备、等级、会员等,只要有一个维度通不过卡方检验,平台就会高亮提醒该实验出现了SRM问题,同时发送告警信息给实验干系人,相关人员就可以去排查问题,及时做出调整。



平台检测出了SRM问题,会自动对该实验进行标识,并记录相关指标数据。同时,平台发出排查通知后,实验后续的排查及解决过程中的关键事件也会录入到该实验的诊断记录中,平台及数据分析师会对常见问题进行归因、聚类分析,定期复盘,并推动实验问题收敛。

2. 科学评估

实验指标评估,可能会出现的问题,包括指标假阳性、指标数据反事实等,不仅会使得实验评估的效率偏低,甚至会得出错误的实验结论,影响业务决策。



云音乐对此制定了一套科学的实验指标评估标准:

第一类是全局指标(守护指标)。必须守护大盘指标,实验对其可能无直接影响,无法直接带来有效提升,但一般而言,实验不能对其有显著负向影响,比如增长类指标、营收类指标、播放类指标等。

第二类是业务核心指标(北极星指标)。业务核心指标是评估实验策略是否符合预期的直接效果指标,也叫实验成功指标。比如,底tab实验,一级tab进入率指标就是该业务的核心指标。

第三类是实验观测指标(辅助指标)。辅助实验判断的观测指标,也称为实验过程指标,比如某场景新增了一个icon入口,那么该icon的点击率就是该实验的主要观测指标。

一般来说,实验指标评估流程为,全局指标是首先要保证的指标,只要不出现显著负向的情况,就可以去看业务核心指标的表现,如果核心指标显著正向,那么该实验策略是有效的,可以考虑放量。



科学的实验指标评估标准只是第一步,实操中,我们发现指标往往没有想象中的那么简单:

第一个难点是统计功效低,测试结果不显著。统计功效的影响因素主要有样本量、显著性水平和效应量三个因素。

样本量越大,统计功效越大。因此我们给出的第一个解决方案就是增加样本量。



增加样本量主要有三种方法:

  • 延长测试时间,在实验时间充裕的情况下,该方法有着显著效果;
  • 增加实验流量的比例;
  • 共享对照组,在多组AB实验并行的前提下,可通过共享对照组的方式,节省实验样本。

受限于AB测试的时间成本、经济成本,往往不能简单通过增加实验样本量达到目标,另一种方案是保持样本量不变的前提下,通过缩减方差来提高统计功效。



缩减方差的方法主要包括:

  • 剔除异常值,异常值(极大或极小)对指标方差的影响比较大,比如音乐的播放时长指标,低于10s或者高于86400s都可算作异常值,计算时需要剔除;
  • 按触发时机统计,很多实验在实际实施时,可能在触发时机前上报实验标签,稀释实验效果,在统计时,需要严格按照实验的触发时机去圈选样本,从而有效提高实验指标的灵敏度;
  • 实验前预AA,对实验前各分组核心业务指标进行预AA检测,筛选出差异最小的两个组开启实验;
  • 方差缩减,常用的方法有CUPED,根据实验前的数据对实验后的指标进行修正,从而达到缩减方差的目标;
  • 选择方差更小的指标,同样是衡量新策略对播放的影响,可以将人均播放时长或者人均播放次数的指标转化为方差更小、更稳定的播放率、人均播放UV。

第二个难点是多重检验问题,会影响实验决策。



多重检验问题又称作多重测试或多重比较问题,第一类错误的概率会增加,从而影响评估结果的准确性。假设P为至少出现一次一类错误的概率,则:



当α=0.05时,检验次数n越大,犯错的概率越高。

最常见的多重检验的案例,比如一个实验同时出现多个对照组或者策略相同的多个实验组,或者实验评估目标不清晰,一个实验关联过多评估指标并在同一检测标准下评估,又比如实验过程中频繁check实验数据。

业内解决方案主要有两个。一是修正α(Bonferroni法),假设n为检测次数,将α修正为α/n,因为α被修正的更小,则多次检测至少出一次第一类错误的概率P也就更小,趋近于单次检测的犯错概率,这种方法适用于检测次数极少的情况。另一方案为修正P值,当检测次数较大时,比如需要对更多细分维度做进一步检验,这时可以通过调整P值来达到修正的目的,常见的方法为BH法。

还有其它一些常见问题及其规避方案,如下图所示:



03/实验效率

最后简单介绍一下实验效率。影响实验效率的核心关键点在以下三个方面:



  • 接入效率。继续完善平台、数据基建。
  • 协作效率。需要确定边界,避免扯皮。
  • 决策效率。需要进行方法与经验的沉淀,加强实验文化运营。

04/QA问答环节

Q1:共享对照组如何做α矫正?

A:实验平台在设计时,借鉴了共享对造组的方案,这里面更多是用作长期空白组的存在,用于联合多个实验看长期效果。实际实验生成时,平台会自动生成等比的对照组和实验组流量,这里也是避免出现SRM问题的一个有效手段。

Q2:指标是运营和产品自定义吗?

A:指标定义主要来自BI的输入,但也不会排除产品和运营会定义指标,为了避免引入同一个指标多个细分场景口径不一致的问题,给出的方案是口径必须通过BI和数据的评审,细分场景坑位可以自由定义,可以在指标生成环节避免出现不一致的问题。

以上就是本次分享的内容,谢谢大家。



▌2023数据智能创新与实践大会

数据架构/数据效能/智能应用/算法创新......

4大体系,专业解构数据智能

16个主题论坛,覆盖当下热点与趋势

70+演讲,兼具创新与最佳实践

1000+专业观众,内行人的技术盛会

点击下方链接了解详情:

DataFunCon2023(北京站):数据智能创新与实践大会


本文地址:https://www.6aiq.com/article/1688378176996
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出