本文介绍了美团履约技术平台的新一代实验分析引擎,该引擎对核心实验框架进行了标准化,并融合了众多先进解决方案,有效解决小样本挑战。同时,提供了多样化的溢出效应应对策略,并针对不同业务场景提供了精准的方差和P值计算方法,以规避统计误差。希望对大家有所帮助或启发~~
自谷歌于2000年引入AB实验以来,这一方法已成为互联网公司优化产品的核心手段,使得基于数据的快速决策成为可能。但随着O2O平台经济的崛起,AB实验需面对更复杂的多边市场和强LBS属性带来的挑战。在这些平台中,消费者、服务提供者和商家的互动极大增加了实验的复杂性,传统的实验平台在小样本和溢出效应面前显得力不从心。其根本原因在于用于接收实验数据和实验配置信息并输出实验报告的实验分析引擎,仅能正确支持非常有限的一组实验设计,难以满足不同用例的实验分析需求。我们的故事便从此开始,这是我们的故事,也可能是你的解答。
互联网经济的进步催生了商业模式的创新。我们看到了谷歌、阿里巴巴这样的公司通过向消费者直接提供内容和商品而取得成功,同时,美团、滴滴这样的平台型经济(即时服务平台)代表了一种全新的商业模式,它们通过整合线上线下资源,创新性地提供即时配送和出行服务。在这一变革的背景下,AB实验的应用已经超越了单一用户行为分析,扩展到包含多方市场参与者互动的更为复杂的多边场景中。这种从单边场景到多边场景的共存,使得多边实验相比于单边实验展现出新的特点:多方参与带来的相互依赖性和溢出效应,LBS特性引起的小样本挑战,以及更加复杂和多元化的指标体系。
单边场景实验,由于较少出现溢出效应和具有大样本的特性,基于用户的随机对照实验足以满足需求,从而简化实验设计。在分析方面,大样本的优势消除了因正态性假设不成立而导致的P值计算问题,而随机分组方式也避免了非随机分组情况下复杂的方差计算问题。多边场景实验面临小样本和溢出效应的挑战,导致实验设计和分析的复杂化。传统的随机分组和以用户为单位的实验方式往往不适应这些场景,需要采用多元分组方法和不同实验单位以提高准确性。分析时,必须谨慎处理小样本带来的统计误差和溢出效应解决策略可能引入的携带效应及方差计算误差。
传统实验分析引擎以单一实验单元、普通随机分组、大样本和个体独立性为基本设定,尽管在单边场景实验中表现出色,但在多边场景实验中则显得不足。这主要体现在大样本假设不再成立时,正态性假设失效引发P值计算的问题;小样本和溢出效应的存在使得单一实验单元和普通随机分组不再合适。这不仅需要配备相应的分析方法来处理方差计算,并防止新方法可能引入的携带效应与大实验单位聚合所致的方差误差,还需要具备未来扩展的灵活性,以免在扩展时需要重新构建整体架构,确保能够快速迭代并满足交付时效。在这样的背景下,传统实验引擎在多边场景下由于方法单一、鲁棒性不足以及缺乏灵活性,往往难以胜任。
我们曾经有过这样的实验历程,实验者面临着效率低下和结论可信度不断受到质疑的双重困境,导致挫败感和无助,平台建设者,因实验平台的迭代效率和可信度,正在失去用户信任。
分流框架和实验方法是实验效率和可信度的关键,其中分流框架一经选定,其广泛适用性和稳定性意味着它很少需要变动。然而,为了适应不断演变和多样化的业务需求,实验方法必须不断完善和更新,这对于确保实验的可信度至关重要,同时也影响着实验效率。为此,我们构建了新一代实验分析引擎以标准化实验分析流程。并通过解耦和模块化集成,将引擎与实验操作流程的基础设施分离,以提高迭代的灵活性并保持平台的稳定性。也可能是你的解答:
尽管单边场景实验(消费者实验)得益于其大样本量和单一业务流向,大多数情况下,除了个别场景的溢出效应外,基本的随机对照实验足以满足分组一致性、个体独立性的假设以及减少随机误差的理论标准,使得整个过程看起来相对简单。然而,在分析阶段,仍然潜伏着异常值、多重比较和方差估计盲点等陷阱。如果忽视这些问题,很容易导致分析偏差,使实验结果不可信性。多边场景实验,因其多边特点和LBS属性极大提升了实验的复杂性。除了需要应对单边场景实验中常见的统计问题,还面临由溢出效应和小样本引发的叠加挑战。溢出效应的解决策略不但可能遭遇方差计算和携带效应陷阱,有时还会因应对策略而产生小样本问题,小样本限制本身又增加了这些问题的复杂度。为了解决小样本和溢出效应的问题,可能需要引入多种分组方法和不同的实验单位,这些都要求有相应的分析方法相匹配。一旦处理不当,很容易落入统计误区,造成分析上的偏差,进一步加剧了实验设计的复杂性。
获得高质量实验结果需要对实验和统计有专家级的理解,但许多实验服务团队主要由工程师组成,缺乏数学和统计学背景。尽管有些团队涉及数学、统计学人员,他们更多是以提出需求的方式参与平台建设,工程师在开发核心分析方法时面临专业知识限制,这影响了分析方法的质量和鲁棒性。实验服务团队缺乏数学科学背景,面对特定场景时难以有效应对。特别是在履约业务中,某些团队需采用更复杂、更高级的实验方法来解决场景限制。但受限于经验和平台功能,缺少能够确保高度可信性的先进实验方法,导致他们不得不选择信度较低的准实验或观察性研究。这些方法基于的假设易受外部因素影响,一旦环境发生变化,假设失效,实验就可能失败,需多次重做。
实验分析引擎应确保提供准确无误的分析结论:无论用户选择何种实验设计,任何人都应能够信赖实验结果,无需进行定制验证、深入理解统计学,或详细了解平台。在评估了一些失败案例和其它平台的建设现状后,我们得出结论,建立在“单一实验单元、普通随机分组、大样本和个体独立性”基本设定下的传统实验引擎,只能正确支持非常狭窄的实验设计集合。面对复杂多变的实验需求,这种设计往往产生大量可疑数据,不仅威胁到实验结果的准确性,还导致了大量不必要的重复工作和劳动力浪费。
问题、失败和行不通的方案,这就是推动事情向前发展的意义所在。易出错的分析结果、问题域覆盖不足、数据科学家重复发明轮子的努力浪费、学习缓慢是驱动我们构建新一代实验分析引擎的动力,与传统实验分析引擎比,它应该具备一下显著特点:
为确保任何实验结果的质量,它具有合理的准确性(一致性)、对模型误设的鲁棒性(鲁棒性),以及对业务或产品变化的敏感度(实验灵敏度)。实验分析缺乏标准化和自动化,使用SQL查询或临时脚本在本地环境中分析实验,这个过程既耗时又容易出错。由于每个人使用不同的分析方法,缺乏标准化,这可能会影响结果的质量和准确性(一致性);统计陷阱防不胜防,因统计陷阱导致实验结果不可信,那么工程和分析的努力将会被浪费,减缓策略迭代速度。需要实验引擎对错误的模型假设要有鲁棒性,能够自动适配不同的场景和意外case;在方差和P值计算方面,集成更多前沿功能以提高实验的灵敏度。
实验分析引擎无需预设,全面依据实验上下文自动选择分析方法,并通过标准化与自动化流程确保效率和一致性。每当一个新实验被输入到我们的实验平台时,它将经历一下流水线过程:数据可靠性验证、数据预处理、策略效应估计、方差计算(包括降低方差)、P值计算(假设检验),最终得出分析结论,以实现流程的标准化。在这一固定流程下,我们设计了相应的方法选择器,并集成了一系列丰富的分析方法,以便分析引擎根据输入的数据和实验设计信息选择最合适的方法,从而得出可靠的结论,确保分析过程的鲁棒性。
实验引擎作为核心方法库,整合了覆盖单边和多边场景实验的最佳实践,尤其包括填补行业和学术界空白的先进方法:①针对比率型指标减少方差的“二元降方差方法”;②针对小样本分组同质性的“协变量自适应分组技术”;还有医学界常用于应对小样本和数据隐私问题的统合分析方法;以及适应特殊场景的异常值处理和多样化的溢出效应解决方案。
作为一个开放的中心方法库,它不仅消除了重复开发相同解决方案的资源浪费和对业务响应的延迟,而且促进了跨团队的知识共享和能力提升,极大加速了实验学习过程,推动了实验能力的整体提升。
在审视失败的实验案例和传统实验分析引擎后,我们认识到核心抽象只能正确支持有限的实验设计,微小的偏差就可能导致结果的不准确。实验和统计方法的选择取决于多种因素,而复杂实验的进行则需专家级的理解。因此,构建能支持广泛用例的实验平台不仅需要工程师,还需数据科学家和数据仓库专家的集体努力。新一代实验引擎在实验设计、配置、流量分配和数据处理等方面实现了与基础设施的解耦,使各专业团队能在各自领域内发挥专长,提高平台的迭代效率。工程团队负责构建实验平台的管道,提供配置管理和流量分配工具;数据科学家负责集成统计方法,确保方法的鲁棒性和问题域的全面覆盖;数据仓库专家则确保指标的一致性。通过角色分工,我们避免了单一专业造成的迭代瓶颈和平台鲁棒性不足。
实验分析引擎与实验设计、配置、分流和数据生产流水线的基础架构解耦。实验日志和流水线生成包含实验单位、分组方法、分析方法、实验周期等元数据信息的统一数据集,以及详细的指标元数据。所有分析均在这些通用数据上完成,以产出最终的实验报告。这种流水线的通用设计极大地简化了新方法的引入,仅通过简单的配置更改和在固定接口下的集成,就能够灵活适应不同的实验场景,并确保新能力的集成速度与业务的快速迭代保持同步。这种设计允许它像积木一样无缝集成到其他实验平台中,无需改变现有架构,从而帮助这些平台轻松应对各种实验场景的挑战。
在履约,运行着大量实验,我们希望赋能所有团队以速度、严谨和信心进行改进。为此,秉承着可信、开放、敏捷、易用的原则,打造了新一代实验引擎。该引擎不仅覆盖单边、多边实验场景多样实验用例,还提供了业界领先的小样本解决方案,并作为中心方法库向外界开放,加速实验能力共享和整体实验水平提升。
实验引擎集成了适用于随机对照实验、随机轮转实验、准实验的7种分组和16种分析方法,包括降方差(2种)、效应估计(5种)、P值(3种)和方差计算(4种)、统合分析(2种),以克服小样本和溢出效应带来的挑战,确保各种业务场景下统计结果的准确性和实验结论的可靠性。采纳业界先进的协变量自适应分组及二元CUPED技术,我们成功突破了小样本实验的约束,提高了结论的精确度。针对溢出效应,我们提供多元化的实验选择,包括分层随机轮转和多种双重差分模型,增强实验的适应性。系统的自动离群值排除能力和灵活的实验周期延长机制,进一步提升了实验结果的稳健性,降低了异常数据的干扰。
协变量自适应分组技术,起源于医学研究领域,能够在样本数量受限的情况下确保分组的同质性。经过数据验证,此技术在至少10个样本的条件下也能实现有效的分组同质性。这一方法已在物流、营销、应用程序测试等场景中得到应用,适应了小样本和资源受限的实验环境,满足了实验设计的同质性要求。通过这种技术,可以避免因缺乏高级方法而不得不依赖低可信度的准实验或观察性研究,从而解决了结果量化不准确、实验失败率高和重复实验等问题,有效地降低了实验成本。以我们的实际场景为例,针对区域分组,数据显示:随着样本量的减少,协变量自适应分组方法相比于业界常用的完全随机分组方法,能够稳定有效地将不同质比例控制在5%以下(这是大样本情况下的理想比例)。而在样本量少于40的情况下,完全随机分组方法的不同质比例已超过6%,实际模拟如下图所示:
统合分析不仅是在小流量场景下提高统计功效的有效工具,还可以利用历史实验结果得出更可信的结论。它能整合对同一假设的多次实验结果,有助于在小流量场景下检测策略效果,且无需单个实验有大量样本就能获得可信结果。在小流量场景下,即使采用了各种提高统计功效的方法,实验的统计功效可能仍然不足。对此,可以运行两个或更多的重复实验,并通过统合分析整合结果以提高统计功效。对于意外的结果,可以通过运行重复实验并通过统合分析整合多个实验结果来进一步确认实验结论。
模块化设计:实现实验平台的零成本集成,推动实验平台发展的催化剂。实验引擎采用了一种通用流水线设计,能够通过识别实验单位、类型、分组方法、周期以及所需的指标数据和元数据,自动地进行实验分析并生成报告。这一设计摒弃了与具体实验操作流程的耦合,使得任何实验平台都能通过遵循标准协议与实验引擎交互,从而无缝复用分析引擎的功能,达到零成本集成。实验引擎内部,它通过分布式计算节点,引擎负责执行实验的分析工作。每日定时任务在各计算节点上启动,轮询待分析实验并激活分析流程。分析任务激活后,生成的分析worker会调用数据服务组件,提取所需的指标元数据和数据集。数据获取后,分析worker根据既定流程进行任务排程,随后启动统计引擎进行计算,最终整合分析结果,形成详尽的实验报告。
用户界面(UI)提供:自定义分析的得力助手。实验者和数据科学家在使用现有实验平台进行实验探索时,经常会因为指标覆盖不全、当前分析方法不适用以及需要即兴进行个性化分析而遇到难题。由于平台不能及时提供所需支持,他们不得不回到使用SQL查询或临时脚本在本地环境中分析实验。在这种情况下,实验引擎将成为您的得力助手,助您高效完成实验分析。实验者仅需在实验引擎提供的用户界面中完成实验分析配置,一键点击“实验分析”,即可立即生成实验报告。实验分析配置内容包括实验定义和指标定义:实验定义主要涵盖实验单位、实验类型、分组方式、分析方法(可选)等;而指标定义则囊括了指标名称、计算口径、类型等元数据定义以及数据获取逻辑。
问题、失败和行不通的方案,这就是推动事情向前发展的意义所在。基于固定设定[4]的传统实验分析引擎仅支持非常有限的实验设计集合,即便是微小的偏离也难以得出可信的实验结果,无法满足履约这种多样业务场景的实验诉求。基于此,我们打造了新一代实验分析引擎,该引擎对核心实验框架进行了标准化,并融合了众多先进解决方案,例如行业领先的协变量自适应分组、二元CUPED降低方差技术以及统合分析方法,有效解决小样本挑战。同时,提供了多样化的溢出效应应对策略,包括轮转实验、双重差分实验和半城随机配对实验等。此外,引擎还针对不同业务场景提供了精准的方差和P值计算方法,以规避统计误差。作为一个集成了履约数据科学团队所有最佳实践的中心方法库,它不仅强化了实验的标准化理念,还促进了知识共享。
将实验分析引擎作为中心方法库与基础设施解耦,对于自动化与新功能快速迭代至关重要。按照Fabijan等人(2017)对实验平台四个阶段[5]的描述,基础设施(如实验配置与管理组件、分流SDK)一旦建立,迭代较少,而指标和实验方法则随业务演进持续增强。从用户角度看,常规计算流水线无法满足的高级实验分析功能需随业务场景不断演化。这种解耦,在保持基础架构稳定的同时,通过配置和统一接口集成实验方法,快速适应需求变化;新一代实验引擎通过与实验平台解耦,以实验分析平台的模式对外提供服务,不仅满足实验者和数据科学家的灵活探索需求,而且避免了重复造轮子带来的工作浪费,加速了实验能力的共享和提升。这一方案应能作为一个有用的指南,指导如何思考开发中的挑战,以及实验为了可靠和高效所需采用的不同方法。
未来,随着观察性研究方法和针对溢出效应的先进解决方案(如随机饱和实验、基于地理位置的溢出效应刻画、精确捕捉携带效应的小时级轮转方案)在履约场景的成功落地与实践,我们将进一步开放这些实践,促进更广泛的能力和知识共享。
注释