本文介绍了美团履约技术平台的新一代实验分析引擎,该引擎对核心实验框架进行了标准化,并融合了众多先进解决方案,有效解决小样本挑战。同时,提供了多样化的溢出效应应对策略,并针对不同业务场景提供了精准的方差和P值计算方法,以规避统计误差。希望对大家有所帮助或启发~~

1. 引言

自谷歌于2000年引入AB实验以来,这一方法已成为互联网公司优化产品的核心手段,使得基于数据的快速决策成为可能。但随着O2O平台经济的崛起,AB实验需面对更复杂的多边市场和强LBS属性带来的挑战。在这些平台中,消费者、服务提供者和商家的互动极大增加了实验的复杂性,传统的实验平台在小样本和溢出效应面前显得力不从心。其根本原因在于用于接收实验数据和实验配置信息并输出实验报告的实验分析引擎,仅能正确支持非常有限的一组实验设计,难以满足不同用例的实验分析需求。我们的故事便从此开始,这是我们的故事,也可能是你的解答。

图1.实验分析引擎:接收实验配置与实验数据,输出实验报告

1.1 AB实验的发展:从单边场景到单边与多边场景的共存

互联网经济的进步催生了商业模式的创新。我们看到了谷歌、阿里巴巴这样的公司通过向消费者直接提供内容和商品而取得成功,同时,美团、滴滴这样的平台型经济(即时服务平台)代表了一种全新的商业模式,它们通过整合线上线下资源,创新性地提供即时配送和出行服务。在这一变革的背景下,AB实验的应用已经超越了单一用户行为分析,扩展到包含多方市场参与者互动的更为复杂的多边场景中。这种从单边场景到多边场景的共存,使得多边实验相比于单边实验展现出新的特点:多方参与带来的相互依赖性和溢出效应,LBS特性引起的小样本挑战,以及更加复杂和多元化的指标体系

1.2 传统实验分析引擎面临的不足:难以解决多边场景中的小样本与溢出效应挑战

单边场景实验,由于较少出现溢出效应和具有大样本的特性,基于用户的随机对照实验足以满足需求,从而简化实验设计。在分析方面,大样本的优势消除了因正态性假设不成立而导致的P值计算问题,而随机分组方式也避免了非随机分组情况下复杂的方差计算问题。多边场景实验面临小样本和溢出效应的挑战,导致实验设计和分析的复杂化。传统的随机分组和以用户为单位的实验方式往往不适应这些场景,需要采用多元分组方法和不同实验单位以提高准确性。分析时,必须谨慎处理小样本带来的统计误差和溢出效应解决策略可能引入的携带效应及方差计算误差。

传统实验分析引擎以单一实验单元、普通随机分组、大样本和个体独立性为基本设定,尽管在单边场景实验中表现出色,但在多边场景实验中则显得不足。这主要体现在大样本假设不再成立时,正态性假设失效引发P值计算的问题;小样本和溢出效应的存在使得单一实验单元和普通随机分组不再合适。这不仅需要配备相应的分析方法来处理方差计算,并防止新方法可能引入的携带效应与大实验单位聚合所致的方差误差,还需要具备未来扩展的灵活性,以免在扩展时需要重新构建整体架构,确保能够快速迭代并满足交付时效。在这样的背景下,传统实验引擎在多边场景下由于方法单一、鲁棒性不足以及缺乏灵活性,往往难以胜任。

1.3 实现可信与高效:新一代AB实验分析引擎构建的动力

我们曾经有过这样的实验历程,实验者面临着效率低下和结论可信度不断受到质疑的双重困境,导致挫败感和无助,平台建设者,因实验平台的迭代效率和可信度,正在失去用户信任。

  • 当手动调查和分析、重复实验和无休止的质疑成为了日常,这不仅影响实验的效率,更让每一次得出的结论都充满争议。

  • 实验平台的功能限制和不可信导致了用户信任危机。①功能局限和可信度问题频发,用户对平台失去信心。用户不得不线下手动设计和分析实验,实验平台的角色退化为提供基本的实验运行支持,而所有的设计和分析工作则需要用户自己承担;②该平台无法支持实验者遇到的各种用例和潜在的未来扩展。为支持新的实验用例,平台需要频繁进行迭代更新,不仅耗费时间和精力,甚至多次推迟了项目进度。

1.4 新一代实验引擎:对内实验分析的中心方法库,对外实验实践的有用指南

分流框架和实验方法是实验效率和可信度的关键,其中分流框架一经选定,其广泛适用性和稳定性意味着它很少需要变动。然而,为了适应不断演变和多样化的业务需求,实验方法必须不断完善和更新,这对于确保实验的可信度至关重要,同时也影响着实验效率。为此,我们构建了新一代实验分析引擎以标准化实验分析流程。并通过解耦和模块化集成,将引擎与实验操作流程的基础设施分离,以提高迭代的灵活性并保持平台的稳定性。也可能是你的解答:

  1. 该实验分析引擎集成了先进的实验技术(如协变量自适应分组来解决小样本问题、轮转实验和双重差分实验来应对溢出效应问题,以及降低方差的技术来增强实验功效),并作为核心方法库,面向司内全体成员开放,方便实验者按需取用。
  2. 它应当是一个有用的指南,帮助您思考开发过程中面临的挑战,以及为了确保实验可信且高效所需采用的不同方法。

2. 实验者困境成因

2.1 在物流领域的多边实验场景下,构建一个正确和可靠的A/B测试平台依然是挑战

尽管单边场景实验(消费者实验)得益于其大样本量和单一业务流向,大多数情况下,除了个别场景的溢出效应外,基本的随机对照实验足以满足分组一致性、个体独立性的假设以及减少随机误差的理论标准,使得整个过程看起来相对简单。然而,在分析阶段,仍然潜伏着异常值、多重比较和方差估计盲点等陷阱。如果忽视这些问题,很容易导致分析偏差,使实验结果不可信性。多边场景实验,因其多边特点和LBS属性极大提升了实验的复杂性。除了需要应对单边场景实验中常见的统计问题,还面临由溢出效应和小样本引发的叠加挑战。溢出效应的解决策略不但可能遭遇方差计算和携带效应陷阱,有时还会因应对策略而产生小样本问题,小样本限制本身又增加了这些问题的复杂度。为了解决小样本和溢出效应的问题,可能需要引入多种分组方法和不同的实验单位,这些都要求有相应的分析方法相匹配。一旦处理不当,很容易落入统计误区,造成分析上的偏差,进一步加剧了实验设计的复杂性。

2.2 实验服务团队构成与专业技能需求不匹配

获得高质量实验结果需要对实验和统计有专家级的理解,但许多实验服务团队主要由工程师组成,缺乏数学和统计学背景。尽管有些团队涉及数学、统计学人员,他们更多是以提出需求的方式参与平台建设,工程师在开发核心分析方法时面临专业知识限制,这影响了分析方法的质量和鲁棒性。实验服务团队缺乏数学科学背景,面对特定场景时难以有效应对。特别是在履约业务中,某些团队需采用更复杂、更高级的实验方法来解决场景限制。但受限于经验和平台功能,缺少能够确保高度可信性的先进实验方法,导致他们不得不选择信度较低的准实验或观察性研究。这些方法基于的假设易受外部因素影响,一旦环境发生变化,假设失效,实验就可能失败,需多次重做。

2.3 实验分析引擎仅支持非常狭窄的一组实验设计,引发鲁棒性和扩展性挑战

实验分析引擎应确保提供准确无误的分析结论:无论用户选择何种实验设计,任何人都应能够信赖实验结果,无需进行定制验证、深入理解统计学,或详细了解平台。在评估了一些失败案例和其它平台的建设现状后,我们得出结论,建立在“单一实验单元、普通随机分组、大样本和个体独立性”基本设定下的传统实验引擎,只能正确支持非常狭窄的实验设计集合。面对复杂多变的实验需求,这种设计往往产生大量可疑数据,不仅威胁到实验结果的准确性,还导致了大量不必要的重复工作和劳动力浪费。

3. 我们的方法:新一代实验分析引擎,在单边与多边实验场景中实现高效与可信

问题、失败和行不通的方案,这就是推动事情向前发展的意义所在。易出错的分析结果、问题域覆盖不足、数据科学家重复发明轮子的努力浪费、学习缓慢是驱动我们构建新一代实验分析引擎的动力,与传统实验分析引擎比,它应该具备一下显著特点:

3.1 标准化实验分析,确保结论可信:自适应实验上下文,通过标准化和自动化分析流程,消除低效率和结论争议

为确保任何实验结果的质量,它具有合理的准确性(一致性)、对模型误设的鲁棒性(鲁棒性),以及对业务或产品变化的敏感度(实验灵敏度)。实验分析缺乏标准化和自动化,使用SQL查询或临时脚本在本地环境中分析实验,这个过程既耗时又容易出错。由于每个人使用不同的分析方法,缺乏标准化,这可能会影响结果的质量和准确性(一致性);统计陷阱防不胜防,因统计陷阱导致实验结果不可信,那么工程和分析的努力将会被浪费,减缓策略迭代速度。需要实验引擎对错误的模型假设要有鲁棒性,能够自动适配不同的场景和意外case;在方差和P值计算方面,集成更多前沿功能以提高实验的灵敏度。

实验分析引擎无需预设,全面依据实验上下文自动选择分析方法,并通过标准化与自动化流程确保效率和一致性。每当一个新实验被输入到我们的实验平台时,它将经历一下流水线过程:数据可靠性验证、数据预处理、策略效应估计、方差计算(包括降低方差)、P值计算(假设检验),最终得出分析结论,以实现流程的标准化。在这一固定流程下,我们设计了相应的方法选择器,并集成了一系列丰富的分析方法,以便分析引擎根据输入的数据和实验设计信息选择最合适的方法,从而得出可靠的结论,确保分析过程的鲁棒性。

  1. 数据可靠性验证:通过分组同质性检验、系统性偏差检验(SRM)和样本量检验来确保所依赖的数据质量。
  2. 数据预处理:通过异常值检测识别异常数据,在不改变数据分布的情况下剔除异常数据,提前探测数据分布,为后续流程选择合适方法提供关键输入。
  3. 策略效应估计:依据实验类型,选择恰当的策略效应估计方法,如差分法、双重差分法或回归分析,以估计策略效应。
  4. 方差估计:根据实验设计信息,选择合适的降方差和计算方差方法,进行方差估计。
  5. P值计算:根据实验设计和数据分布,选择合适的检验方法,如参数检验或非参数检验,计算p值。
  6. 输出实验报告:整合以上各阶段信息,输出详尽的实验报告。

实验分析引擎,标准化实验分析流程

3.2 中心方法库:整合优秀实践并加速共享;全面覆盖单边、多边实验场景实验问题域

实验引擎作为核心方法库,整合了覆盖单边和多边场景实验的最佳实践,尤其包括填补行业和学术界空白的先进方法:①针对比率型指标减少方差的“二元降方差方法”;②针对小样本分组同质性的“协变量自适应分组技术”;还有医学界常用于应对小样本和数据隐私问题的统合分析方法;以及适应特殊场景的异常值处理和多样化的溢出效应解决方案。

作为一个开放的中心方法库,它不仅消除了重复开发相同解决方案的资源浪费和对业务响应的延迟,而且促进了跨团队的知识共享和能力提升,极大加速了实验学习过程,推动了实验能力的整体提升。

3.3 解耦实验基础设施:专业人员专注专业领域,打破实验平台能力和迭代的限制

在审视失败的实验案例和传统实验分析引擎后,我们认识到核心抽象只能正确支持有限的实验设计,微小的偏差就可能导致结果的不准确。实验和统计方法的选择取决于多种因素,而复杂实验的进行则需专家级的理解。因此,构建能支持广泛用例的实验平台不仅需要工程师,还需数据科学家和数据仓库专家的集体努力。新一代实验引擎在实验设计、配置、流量分配和数据处理等方面实现了与基础设施的解耦,使各专业团队能在各自领域内发挥专长,提高平台的迭代效率。工程团队负责构建实验平台的管道,提供配置管理和流量分配工具;数据科学家负责集成统计方法,确保方法的鲁棒性和问题域的全面覆盖;数据仓库专家则确保指标的一致性。通过角色分工,我们避免了单一专业造成的迭代瓶颈和平台鲁棒性不足。

实验分析引擎与实验设计、配置、分流和数据生产流水线的基础架构解耦。实验日志和流水线生成包含实验单位、分组方法、分析方法、实验周期等元数据信息的统一数据集,以及详细的指标元数据。所有分析均在这些通用数据上完成,以产出最终的实验报告。这种流水线的通用设计极大地简化了新方法的引入,仅通过简单的配置更改和在固定接口下的集成,就能够灵活适应不同的实验场景,并确保新能力的集成速度与业务的快速迭代保持同步。这种设计允许它像积木一样无缝集成到其他实验平台中,无需改变现有架构,从而帮助这些平台轻松应对各种实验场景的挑战

实验分析引擎:解耦实验基础设施

4.实验分析引擎揭秘

在履约,运行着大量实验,我们希望赋能所有团队以速度、严谨和信心进行改进。为此,秉承着可信、开放、敏捷、易用的原则,打造了新一代实验引擎。该引擎不仅覆盖单边、多边实验场景多样实验用例,还提供了业界领先的小样本解决方案,并作为中心方法库向外界开放,加速实验能力共享和整体实验水平提升。

实验分析引擎揭秘

4.1 多元化方法适配多样实验用例

实验引擎集成了适用于随机对照实验、随机轮转实验、准实验的7种分组和16种分析方法,包括降方差(2种)、效应估计(5种)、P值(3种)和方差计算(4种)、统合分析(2种),以克服小样本和溢出效应带来的挑战,确保各种业务场景下统计结果的准确性和实验结论的可靠性。采纳业界先进的协变量自适应分组及二元CUPED技术,我们成功突破了小样本实验的约束,提高了结论的精确度。针对溢出效应,我们提供多元化的实验选择,包括分层随机轮转和多种双重差分模型,增强实验的适应性。系统的自动离群值排除能力和灵活的实验周期延长机制,进一步提升了实验结果的稳健性,降低了异常数据的干扰。

  1. 自动化处理离群值和实验周期调整:保证策略效果评估稳健性。自动排除离群值与调整实验周期增强了结果的稳健性。因素如天气、节假日可能引发离群值,大的离群值可能会使实验结果从显著变为不显著,影响统计显著性。尽管AA测试可预推实验周期,但实验前数据并不总能预见实际情况,故需灵活修正周期,以降低假阴性风险。
  2. 精准实验分析:业务适配与统计误差防范。实验引擎提供多元计算方法,满足不同实验和指标需求,确保分析的灵活性与准确性。针对以城市、区域、站点为实验单位的实验,自动调整标准误差以防数据聚集误差。方差计算根据样本独立性与规模,区分独立与非独立样本,大样本采用Delta法,小样本适用Bootstrap。策略效应估计覆盖差值法至回归分析,适应多变实验环境。结合参数与非参数检验,适配样本量与分布差异,计算P值以确保实验结果的稳健性,避免统计误判。

实验分析引擎多元化分析方法适配多样用例

4.2 协变量自适应分组:小样本实验新解,实现从低可信准试验、观察性研究到高信度随机对照实验的进阶

协变量自适应分组技术,起源于医学研究领域,能够在样本数量受限的情况下确保分组的同质性。经过数据验证,此技术在至少10个样本的条件下也能实现有效的分组同质性。这一方法已在物流、营销、应用程序测试等场景中得到应用,适应了小样本和资源受限的实验环境,满足了实验设计的同质性要求。通过这种技术,可以避免因缺乏高级方法而不得不依赖低可信度的准实验或观察性研究,从而解决了结果量化不准确、实验失败率高和重复实验等问题,有效地降低了实验成本。以我们的实际场景为例,针对区域分组,数据显示:随着样本量的减少,协变量自适应分组方法相比于业界常用的完全随机分组方法,能够稳定有效地将不同质比例控制在5%以下(这是大样本情况下的理想比例)。而在样本量少于40的情况下,完全随机分组方法的不同质比例已超过6%,实际模拟如下图所示:

协变量自适应分组效果模拟验证

4.3 统合分析:突破单次实验样本量限制,可以利用历史实验结果得出更可信的结论

统合分析不仅是在小流量场景下提高统计功效的有效工具,还可以利用历史实验结果得出更可信的结论。它能整合对同一假设的多次实验结果,有助于在小流量场景下检测策略效果,且无需单个实验有大量样本就能获得可信结果。在小流量场景下,即使采用了各种提高统计功效的方法,实验的统计功效可能仍然不足。对此,可以运行两个或更多的重复实验,并通过统合分析整合结果以提高统计功效。对于意外的结果,可以通过运行重复实验并通过统合分析整合多个实验结果来进一步确认实验结论。

统合分析举例

4.4 零成本集成与自助分析

模块化设计:实现实验平台的零成本集成,推动实验平台发展的催化剂。实验引擎采用了一种通用流水线设计,能够通过识别实验单位、类型、分组方法、周期以及所需的指标数据和元数据,自动地进行实验分析并生成报告。这一设计摒弃了与具体实验操作流程的耦合,使得任何实验平台都能通过遵循标准协议与实验引擎交互,从而无缝复用分析引擎的功能,达到零成本集成。实验引擎内部,它通过分布式计算节点,引擎负责执行实验的分析工作。每日定时任务在各计算节点上启动,轮询待分析实验并激活分析流程。分析任务激活后,生成的分析worker会调用数据服务组件,提取所需的指标元数据和数据集。数据获取后,分析worker根据既定流程进行任务排程,随后启动统计引擎进行计算,最终整合分析结果,形成详尽的实验报告。

实验分析引擎的模块化设计

用户界面(UI)提供:自定义分析的得力助手。实验者和数据科学家在使用现有实验平台进行实验探索时,经常会因为指标覆盖不全、当前分析方法不适用以及需要即兴进行个性化分析而遇到难题。由于平台不能及时提供所需支持,他们不得不回到使用SQL查询或临时脚本在本地环境中分析实验。在这种情况下,实验引擎将成为您的得力助手,助您高效完成实验分析。实验者仅需在实验引擎提供的用户界面中完成实验分析配置,一键点击“实验分析”,即可立即生成实验报告。实验分析配置内容包括实验定义和指标定义:实验定义主要涵盖实验单位、实验类型、分组方式、分析方法(可选)等;而指标定义则囊括了指标名称、计算口径、类型等元数据定义以及数据获取逻辑。

5. 总结与展望

问题、失败和行不通的方案,这就是推动事情向前发展的意义所在。基于固定设定[4]的传统实验分析引擎仅支持非常有限的实验设计集合,即便是微小的偏离也难以得出可信的实验结果,无法满足履约这种多样业务场景的实验诉求。基于此,我们打造了新一代实验分析引擎,该引擎对核心实验框架进行了标准化,并融合了众多先进解决方案,例如行业领先的协变量自适应分组、二元CUPED降低方差技术以及统合分析方法,有效解决小样本挑战。同时,提供了多样化的溢出效应应对策略,包括轮转实验、双重差分实验和半城随机配对实验等。此外,引擎还针对不同业务场景提供了精准的方差和P值计算方法,以规避统计误差。作为一个集成了履约数据科学团队所有最佳实践的中心方法库,它不仅强化了实验的标准化理念,还促进了知识共享。

将实验分析引擎作为中心方法库与基础设施解耦,对于自动化与新功能快速迭代至关重要。按照Fabijan等人(2017)对实验平台四个阶段[5]的描述,基础设施(如实验配置与管理组件、分流SDK)一旦建立,迭代较少,而指标和实验方法则随业务演进持续增强。从用户角度看,常规计算流水线无法满足的高级实验分析功能需随业务场景不断演化。这种解耦,在保持基础架构稳定的同时,通过配置和统一接口集成实验方法,快速适应需求变化;新一代实验引擎通过与实验平台解耦,以实验分析平台的模式对外提供服务,不仅满足实验者和数据科学家的灵活探索需求,而且避免了重复造轮子带来的工作浪费,加速了实验能力的共享和提升。这一方案应能作为一个有用的指南,指导如何思考开发中的挑战,以及实验为了可靠和高效所需采用的不同方法。

未来,随着观察性研究方法和针对溢出效应的先进解决方案(如随机饱和实验、基于地理位置的溢出效应刻画、精确捕捉携带效应的小时级轮转方案)在履约场景的成功落地与实践,我们将进一步开放这些实践,促进更广泛的能力和知识共享。

注释

  • [1]多边场景实验:多边场景实验同样存在单边场景实验的陷阱。
  • [2]实验地理单元以及时间片长度:轮转实验通过地理单元和时间的随机化来减少SUTVA违规。较大地理单元可减少溢出,但会加剧小样本问题,增加方差;而短时间窗口可能带来携带效应,增加偏差。
  • [3]非常有限:实验单位是用户,分流方式是随机分流。
  • [4]固定设定:单一实验单元、普通随机分组、大样本和个体独立性。
  • [5]四个阶段:
    • (1)爬行阶段:完成运行实验所必须的基础设施建设,包括:实验配置与管理组件、分流SDK。
    • (2)步行阶段:定义更多标准指标,包括量化平台可信能力的指标和评估所需的业务指标。
    • (3)跑步阶段:更加丰富和完善的指标体系。
    • (4)飞行阶段:丰富的实验用例,满足更多实验域诉求。