如何通过面试中的AB测试问题(以doordash为例)

如何通过面试中的AB测试问题(以doordash为例)

AB 测试是一项数据科学必备技能,经常出现在面试过程中。但关于AB 测试面试方面的资源却并不多。作为数据科学领域的招聘经理,在我 15 年的职业生涯中,我发现大多数候选人在这方面的面试中表现不佳。

实际上,数据科学领域的实验一直在发展,每年都会有新的概念和方法,变得更有价值。这意味着,即使是几年前拥有丰富 AB 测试经验的数据科学家,也可能会在面试中感觉困难重重。

在这篇文章中,我们将以一个模拟面试为例,帮助你了解面试官在寻找什么样的候选人,以及相关的面试方法。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
Amazon商业分析师面试指南
如何准备Front-End Back-End岗位面试?
数据岗位大合集|DS、DA、BA和DE的区别及求职面试重点
硅谷数据科学家岗位哪家工资高,哪家面试题难?揭秘FANNG迥异的面试画风!

你可能会问,为什么要进行模拟面试?作为数据科学家,在沟通过程中我们可能会遇到困难,这时,如果脑海中有模板就能帮助我们解决大部分的困难。

就我个人而言,我还发现,当我能设想高风险情况及其可能发生的情景时,这些模板能帮我做好心理准备,处理好压力,并在整体上表现得更好。

我们将以一家食品配送公司——Doordash为例,他们的移动应用程序目前在 iPhone App Store 中排名第一。Doordash通过实验,不断地改进他们的应用程序,并在数据科学面试中寻找实验技能很强的候选人——尤其是产品数据科学或产品分析领域的人。

面试问题

  • 面试官——Doordash 正在扩展领域到其他的类别,例如便利店送货服务。过去,doordash的广告效果都非常好,他们正在考虑在应用内发送通知,推广新类别。

你将如何设计和分析实验,来决定是否应该发送通知?

解决方案

第 1 部分 — 先进行澄清式提问,让自己更好地了解业务目标和产品功能细节

面试官想要看到的——

在深入研究实验细节之前,你能否首先阐明产品/业务目标?在不知道产品目标的情况下,谈论实验是一个很危险的。

  • 候选人——在我们考虑实验细节之前,要确保对背景有一个非常清楚的了解。像这样的功能可能有多个目标——例如,增加新用户获取数量、增加该类别的转化率、增加该类别中的订单数量、或增加总订单价值。你能告诉我这个项目的目标是什么吗?
  • 面试官——问得好。通过应用内的通知,我们的主要目的是提高新类别的转化率——即在所有登录应用的用户中,在新类别下订单的用户的百分比。
  • 候选者——好的,谢谢你的回答。现在我还想了解更多关于通知的信息——通知的信息是什么,目标受众是谁?
  • 面试官——我们目前还没做任何活动。通知的信息只是通知用户我们开设了新的类别,他们可以开始使用了。如果实验成功,我们打算向所有用户推送通知。
  • 候选者——好的。谢谢你提供的背景信息。我现在可以深入研究实验细节了。

第 2 部分 — 确定业务的假设、零假设、定义要评估的指标

面试官想要看到的——

除了主要指标之外,你还能考虑到次要指标和护栏指标

  • 候选者——所以,为了确定业务假设——我们预计,如果我们在应用内发送通知,那么新类别的每日订单数量将会增加。意思是,我们的零假设 (Ho) 是:转换率不会因为通知的增加而改变。

现在,让我定一下实验中需要用到的不同指标——我们的目标是提高新类别的转化率,这也是我们的主要指标。在我们的次要指标中,还应该观察平均订单价值,观察推送带来的影响。虽然转化率增加,但平均订单价值可能会下降,从而导致我们的整体收入降低。我们需要多加注意这方面。

我们还应该考虑护栏指标(guardrail metrics)——有些指标对我们的业务至关重要,我们也并不希望这类指标会影响我们的实验过程。例如,花在应用程序上的时间或卸载应用程序的行为。在这些情况下,我们应该包括此类指标吗?

  • 面试官——我同意你对主要指标的选择,但是在目前这个情景里,你可以忽略次要指标。而且你对护栏指标的掌握很准确——Doordash 希望,在涉及应用程序的功能或版本时,要慎重地做出选择,因为我们知道,已经安装了应用程序的用户的生命周期总价值比之前高得多。所以我们要非常谨慎,避免用户卸载应用程序。
  • 候选者 – 好的 – 很高兴能了解这些。因此,我们需要把卸载率作为我们的护栏指标。

第 3 部分 — 选择显著性水平、统计功效、最小预期提升幅度(MDE)并计算测试所需的样本量和持续时间

面试官想要看到的——

  • 你对统计概念以及样本量和持续时间计算的了解
  • 你是否在设计实验时考虑了网络效应(常见于Doordash、Uber、Lyft、Airbnb 等或FB、LinkedIn 等社交网络)、星期几效应、季节性或新奇效应等因素可能影响测试有效性。
  • 候选人——现在我想讨论一下要如何设计实验。

首先,我们来看看我们是否需要考虑网络效应——当对照组的行为受到测试组的处理的影响时,就会出现这种情况。由于 Doordash 是一个双面市场,因此更容易看到网络效应。在这种特定情况下,如果对测试组的处理增加了对测试组的需求,这种情况可能会导致供不应求(例如:dashers),反过来又会影响对照组的表现。

为了考虑到网络效应,我们要以不同于往常的方式选择随机化单元。方法有很多——我们可以进行基于地理的随机化、或基于时间的随机化、或网络集群随机化、或网络以自我为中心的随机化。你想要深入了解一下这些概念吗?

  • 面试官——我很高兴你提出了网络效应,因为它就是我们在 Doordash 的实验中一直寻找的东西。为了节省时间,让我们假设这里没有网络效应,请继续讲下去。
  • 候选人——如果假设我们不需要考虑网络效应,那么该实验中的随机化单位就是用户——我们将随机选择用户,并将他们分配给实验组和对照组。分配到实验组的用户会收到通知,而分配到对照组的用户不会收到任何通知。接下来,我想计算样本大小和持续时间。为此,我需要一些输入信息。
  • 基线转换(Baseline conversion)——即在更改之前对照组的现有转换
  • 最小可检测差异(MDE)——即我们在检测时感兴趣的转化率的最小变化量。低于该最小变化量,对业务实际上没有什么影响——通常我们选择变化量的基准为:预期结果的改进能让实施和维护该功能的成本是合理的。
  • 统计功效(Statistical Power)——即测试正确拒绝零假设的概率是多少
  • 显着性水平(Significance Level)——当零假设成立时,拒绝零假设的概率是多少

通常,在没有附加说明的情况下,我们会选择 5% 的显着性水平和 80% 的功效。此外,我将假设对照组和实验组之间的比例为一半对一半。一旦我确认了这些输入信息,我会使用功效分析来计算样本量。这个过程中会用到一种编程语言。例如在 R语言 中,有一个名为“pwr”的包可用于此目的。

  • 面试官——好的,假设基于分析,我们得到的每个变量的样本数量为 10,000 个用户。你将如何计算测试的持续时间?
  • 候选人——为此,我们需要每天登录应用程序的用户数量。
  • 面试官——假设我们每天有 10,000 名用户登录该应用程序。
  • 候选人——好的,在这种情况下,做这个实验我们至少需要两天时间——通过将对照组和实验组的总样本量,除以每日用户数。但是,在最终确定需要多久之前,我们还应该考虑其他因素——
  • 星期几效应——周末和工作日的用户数量可能不同——因此运行的时间要足够长,因为捕获每周周期很重要。
  • 季节性——有的日子,用户的行为会有所不同,这一点很重要,例如假期。
  • 新奇效应——当你引入一个新功能,尤其是一个很容易被注意到的功能时,最初它会吸引用户尝试。测试组起初可能效果不错,但随着时间的推移,效果会迅速大打折扣。
  • 外部影响——例如假设市场竞争很大,很多人可能会忽略这个推送,期望获得高回报。这将导致测试结论不可靠。

由于上述原因,我建议该实验至少运行一周。

  • 面试官——不错。那你会如何分析测试结果?

第 4 部分 — 分析结果并得出有效结论

面试官想看到的—

  • 你对用于不同场景的统计测试的了解(例如,样本均值的 t -test和样本比例的 z -test)
  • 你对随机化的检查——这会给你增加印象分
  • 你提供的最终建议(或实现目标的框架)

  • 候选人——分析有两个关键部分——
  • 检查随机化——为了使实践的效果最佳,我们应该在分配测试组和对照组时检查随机化是否合理。为此,我们可以查看一些预计不会受到测试影响的基线指标,并对两组进行比较,比如,比较两组之间基线指标的直方图或密度曲线。如果没有差异,我们可以得出结论,随机化是合理的。
  • 所有指标(包括主要指标和防护指标)的显着性测试——包括主要指标(转化率)和防护指标(卸载率)。我们可以使用 z -test来检验统计显着性,还可以使用 R 或 Python 之类的编程语言。

如果转化率显着增加,并且卸载率没有受到负面影响,我建议实施该测试。

如果转化率显着增加,但是卸载率受到负面影响,那么我建议不实施该测试。

最后,如果转化率没有显着增加——我建议不实施该测试。

  • 面试官——听起来很不错。谢谢你的回答。

结论

在 AB 测试或实验性面试中表现出色,会让你具有一定优势,让你从其他候选人中脱颖而出。因此,我强烈建议所有候选人花点时间学习 AB 测试中的重要概念,并为这些面试做好准备。

祝大家学习和面试愉快!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Preeti Semwal
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/cracking-a-b-testing-data-science-interviews-bc66e399b109