前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分析36计 :Uber的 A/B 实验平台搭建

数据分析36计 :Uber的 A/B 实验平台搭建

作者头像
数据森麟
发布2021-01-08 14:45:49
1.3K0
发布2021-01-08 14:45:49
举报
文章被收录于专栏:数据森麟数据森麟

实验是Uber如何改善客户体验的核心。Uber将多种实验方法应用于各种用例,例如测试一项新功能以增强我们的应用程序设计。Uber的实验平台(XP)在此过程中扮演着重要角色,使我们能够启动,调试,衡量和监视新创意,产品功能,营销活动,促销乃至机器学习模型的效果。该平台支持我们的驾驶员,骑手,Uber Eats和Uber Freight 应用程序的实验,并被广泛用于运行A/B/N,因果推理和基于多臂老虎机(MAB)的连续实验。在任何时间,平台上都会运行1000多个实验。从较高的角度来看,Uber的XP可让工程师和数据科学家监视治疗效果,以确保它们不会导致任何关键指标的变差。

以下图表概述了实验平台团队使用的实验方法的类型:

图1. Uber的实验平台同时进行随机实验和观察性研究。

有多种因素决定了我们应将哪种统计方法应用于给定的用例。广泛地,我们使用四种类型的统计方法:固定水平A/B/N检验(t检验,卡方检验和秩和检验),序贯概率比检验(SPRT),因果推理检验(合成控制和双重差分方法),以及使用多臂老虎机算法的连续A/B/N测试(汤普森采样,置信上限和具有贝叶斯优化的多臂测试)。在统计分析中计算 I 类和 II 类错误的可能性时,我们还应用分块抽样和增量法来估计标准误差,以及回归法来测量偏差校正。在本文中,我们将讨论Uber实验平台如何使用这些统计方法中的每一种来改善我们的产品。 1. 经典 A/B 测试

在许多定量科学领域中,随机A/B或A/B/N测试被视为黄金标准,用于评估处理效应。本质上,经典的A/B测试将用户随机分为对照组和处理组,以比较这些组之间的决策指标并确定实验的治疗效果。

图2. Uber的实验平台团队利用A/B/N测试来确定指标是否优化,从而进行了随机实验。

这种方法的一个常见用例是功能发布实验。假设产品经理想要评估一项新功能是否可以提高用户对Uber平台的满意度。产品经理可以使用XP平台收集以下指标:处理组和对照组的指标提升平均值(处理效应),提升是否显着以及样本量是否足够大以产生高统计功效。

图3.我们的XP分析仪表板使数据科学家和其他用户可以轻松访问和解释其A / B测试结果。

2. 统计引擎

我们团队的主要目标之一是提供适用于整个公司用例的假设检验分析场景。为此,我们与多部门合作构建了一个统计引擎。当我们分析随机实验时,第一步是选择一个决策指标(例如,乘客总预订量)。该选择直接与要检验的假设有关。我们的XP使实验人员可以轻松地重用预定义的指标,并自动处理数据收集和数据验证。根据指标类型,我们的统计引擎会应用不同的统计假设测试程序,并生成易于阅读的报告。下面的图5概述了此功能强大的工具:

图4:Uber的统计引擎用于A/B/N实验,由固定水平假设测试方法决定。

关键组成部分和统计方法

收集数据之后,我们的XP分析平台会验证数据并检测两个主要问题:

  • 样本大小不平衡,这意味着对照组和处理组的样本大小比率与预期存在显着差异。在这些情况下,实验者必须仔细检查其随机化机制。
  • Flickers ,指在控制组和治疗组之间切换的用户。例如,一位乘客购买了一部新的Android手机来代替旧的iPhone,而该实验的处理仅针对iOS进行了配置。骑手将从处理组切换到对照组。这些用户的存在可能会污染实验结果,因此我们将在分析中排除这些用户。

我们的大多数用例都是随机实验,大多数时候,数据足以执行固定水平的A/B测试。在用户级别,有三种不同类型的指标:

  • 连续指标包含一个数值列,例如,每位用户的总预订量。
  • 比例指标包含一个二进制指标值列,例如,用于测试注册后完成任何行程的用户比例。
  • 比率度量包含两个数值列,即分子值和分母值,例如,行程完成比率,其中分子值是完成行程的数量,而分母值是总行程请求的数量。

数据预处理的三种方法被用于提高A/B分析的鲁棒性和有效性:

  • 离群值检测可消除数据中的不规则性,并提高分析结果的鲁棒性。我们使用基于聚类的算法来执行离群值检测和删除。
  • 方差降低有助于提高假设检验的统计能力,当实验的用户群较小或我们需要在不牺牲科学严谨性的前提下提前结束实验时,该功能特别有用。该CUPED方法利用额外的信息,我们已经和减少决策指标的差异。
  • 由于我们的用户多样化,因此实验前偏见是Uber的一大挑战。双重差分法(diff-in-diff)是定量研究中公认的方法,我们使用它来校正组之间的实验前偏差,从而产生可靠的处理效应估计。

我们将p值与普通A/B测试中期望的假阳性率(I型错误)(0.05)进行比较。XP利用各种方法进行p值计算,包括:

  • 韦尔奇(Welch)的t-test,这是用于连续指标(例如完成行程数)的默认检验。
  • 曼-惠特尼U检验,用于在数据严重倾斜的非参数秩和检验。与t检验相比,它需要更弱的假设,并且在倾斜数据下的性能更好。
  • 卡方检验,用于比例的度量,如乘客留存率。
  • Delta方法,只适用于为比率度量或小样本量(如乘客取消行程的比率)的实验生成可靠的结果时,均用于标准误差估计。

在这些计算的基础上,当存在两个或多个处理组,如A/B/C测试时,我们使用多重比较校正(Benjamini-Hochberg程序)来控制总体错误发现率(FDR)。功率计算提供了用户对于实验结论的信心,低功效实验会有较高的误报率(II 类错误)和较高的FDR。XP功率计算中,通过预设的功效,计算达到预计功效所需的样本数量来确定实验进行的时间。

3. 指标管理

随着XP分析组件所使用的度量数量的增加(包含1,000多个度量标准),用户确定合适的度量标准来评估实验性能的挑战越来越大。为了使分析工具的新用户更容易发现这些指标,我们构建了一个推荐引擎,该引擎促进了平台上可用指标的发现。

在Uber,有两种常见的协同过滤方法用于内容推荐:基于项目的方法和基于用户的方法。我们主要使用基于项目的推荐引擎,因为实验者的特征通常不会对其项目产生重大影响。例如,如果实验者从乘客团队转到Uber Eats团队,则算法在选择要评估的指标时就不必查看该实验者先前受Uber Eats影响的选择。

4. 序贯检验

传统的A/B测试方法(例如t检验)通过重复抽取子样本而增加 I 类错误率,而序贯检验则提供了一种持续监控关键业务指标的方法。序贯检验对我们的团队非常有用的一个用例是,监控并确定由平台上运行的实验引起的中断,我们不能等到传统的A/B测试收集到足够的样本量再查看是否中断实验。我们希望确保在这种情况下的实验期间,实验不会引起业务指标变差。因此,我们构建了一个由序贯检验算法提供监控系统,该方法可以相应地调整置信区间,而不会增加 I 类错误率。

使用XP平台在处理组和对照组之间针对这些业务指标进行定期比较,例如应用程序崩溃率和跳闸频率率。如果没有明显的下降,则继续进行实验,否则将给予警报,甚至暂停。该监控系统的工作流程如下图6所示:

图5.我们将序贯检验方法集成到XP的停机监控系统的工作流程中。

方法论

我们利用两种主要方法来执行序贯检验以进行指标监控:混合序贯概率比检验(mSPRT)和使用FDR进行方差估计。 混合序贯概率比检验

我们用于监控的最常见方法是mSPRT。该检验建立在似然比检验的基础上,并加入了混合分布H的额外规范。假设我们正在以零假设进行

检验度量差异,则检验统计量可以写为

=

。由于我们的样本量很大,并且中心极限定理可以应用于大多数情况,因此我们使用正态分布作为混合分布

。这样可以简化计算并生成封闭形式的表达式

。该方法的另一个有用假设条件是在原假设条件下,证明nH, 0是一个鞅:

,接着,我们可以构造

置信区间。 具有FDR控制的方差估计 为了正确地应用序贯检验,我们需要尽可能准确地估计方差。由于我们每天监控对照组和处理组之间的累积差异,因此来自相同用户的观察结果会引入相关性,这与mSPRT检验的假设背道而驰。例如,如果我们正在监视点击率,则可能会将一个用户跨多天的指标关联起来。为了克服这个问题,我们使用delete-a-group jackknife variance estimation或分块抽样方法对相关数据下的mSPRT检验进行调整。

监控系统希望评估正在进行的实验的总体运行状况,因此我们同时监视许多业务指标,有可能导致错误警报。理论上,在这种情况下可以应用Bonferroni校正或BH校正。但是,由于遗失的业务降级可能会造成巨大损失,因此我们在此处应用BH校正,并针对重要性和敏感性水平各不相同的指标调整参数(MDE,功效,对实际重要性的容忍度等)。

5. 用例

假设我们要监控特定实验的关键业务指标,如下图7所示:

图6.序贯检验方法表明,在图B中确定了我们的处理组与对照组之间的显著差异。相反,在图A中未发现显着差异。

随着时间增加,我们会累积更多的样本,并且置信区间会变窄。在图B中,从给定日期(在本例中为11月21日)开始,置信区间始终从零开始偏离。可以检测到指标下降在特定日期后在统计上和实际上都具有重要意义。相比之下,图A的置信区间会缩小,但始终包含0。因此,对于图A我们没有检测到任何差异。红线图A和B表示我们的处理组和对照组之间观察到的累积相对差异。红线带是

累积相对差异的置信区间。

连续实验

图7. Uber实验平台团队利用A/B/N测试来确定提升水平,从而进行了随机实验。

我们的团队实施了多臂老虎机算法和以优化为重点的强化学习方法,以通过对相关指标性能的持续评估来迭代快速地学习。最近,我们完成了一项使用多臂老虎机算法技术进行内容优化以提高客户参与度的实验。与传统的假设检验方法相比,该技术有助于提高客户参与度。图9概述了各种连续实验使用情况,包括内容优化,超参数调优,优化支出和自动化功能的推出:

图8. Uber的XP在各种用例中利用了连续的实验,包括超参数调整和自动功能推出。

在案例研究1中,我们概述了该方法如何帮助优化电子邮件活动并增强了Uber的乘客参与度。在这里,欧洲,中东和非洲(EMEA)的Uber Eats客户关系管理(CRM)团队发起了一封电子邮件活动,以鼓励客户生命周期早期的下单意愿。实验人员计划使用十个不同的电子邮件主题行来开展活动,并根据打开率和打开电子邮件的数量找出最佳主题。下面的图9详细介绍了此案例研究:

我们如何利用连续实验的第二个示例是参数调整。与第一种情况不同,第二种情况研究使用更高级的MAB算法,该技术结合了统计实验和机器学习建模。我们使用MAB在机器学习模型中选择最佳参数。如下图11所示,Uber Eats数据科学团队利用MAB测试创建了一个线性编程模型,称为多目标优化(MOO),该模型在Uber Eats应用程序的主要信息流上对餐厅进行排名:

MOO背后的算法结合了多个指标,例如会话转换率,总预订费和用户留存率。但是,该数学解决方案需要给算法提供一组参数。这些实验包含许多排名算法使用的参数,排名结果取决于我们为MOO模型选择的超参数。因此,为了提高MOO模型的性能,我们希望通过多臂老虎机算法找出最佳的超参数。传统的A/B测试框架过于费时,无法处理每个测试,因此我们决定将MAB方法用于这些实验。MAB能够提供一个框架来快速调整这些参数。我们选择了MAB和贝叶斯优化方法来找到黑箱函数优化问题的最大化。 下面的图9概述了此实验的设置:

图9:我们的XP利用MAB进行超参数调整。

由于其规模和全球影响力,随着我们方法的发展,我们渴望建立一个更加智能的实验平台。将来,该平台将不仅提供从当前实验中获得的见解,而且还可以提供先前的见解,并随着时间的推移主动预测指标。

代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据森麟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. 统计引擎
  • 3. 指标管理
  • 4. 序贯检验
    • 方法论
    • 5. 用例
      • 连续实验
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档