登录
首页大数据时代A/B测试:数据科学面试中的7个常见问题和答案,第1部分
A/B测试:数据科学面试中的7个常见问题和答案,第1部分
2022-03-14
收藏


注意:这是本文的第一部分。您可以在这里阅读第二部分。

A/B测试,又称受控实验,在工业上被广泛应用于产品上市决策。它允许科技公司用一个用户子集来评估一个产品/特性,从而推断该产品可能如何被所有用户接收。数据科学家处于a/B测试过程的前沿,a/B测试被认为是数据科学家的核心能力之一。数据科学采访反映了这一现实。面试官通常会向应聘者提出a/B测试问题以及商业案例问题(也就是指标问题,产品感觉问题),以评估应聘者的产品知识和推动a/B测试过程的能力。

在本文中,我们将采用面试驱动的方法,将一些最常见的面试问题与A/B测试的不同组成部分联系起来,包括选择测试思路、设计A/B测试、评估测试结果以及做出是否进行测试的决定。具体来说,我们将讨论7最常见的面试问题和答案。

在你开始阅读之前,如果你是一个视频人,请随意查看这个YouTube视频,以获得这篇文章的缩略版本。

在测试之前--不是每个想法都值得测试


a/B测试是一个强大的工具,但并不是每个想法都是通过运行测试来选择的。有些想法的测试成本可能很高,处于早期阶段的公司可能有资源限制,因此对每个想法都运行测试是不现实的。因此,我们首先要选择哪些想法值得测试,特别是当人们对改进一个产品有不同的意见和想法时,有许多想法可以选择。例如,UX设计师可能建议更改一些UI元素,产品经理可能建议简化结帐流程,工程师可能建议优化后端算法,等等。在这种情况下,涉众依赖数据科学家来推动基于数据的决策。一个面试样本问题是:


在电子商务网站上,有几个想法可以增加转化率,比如允许多项商品结账(目前用户可以同时结账一项商品),允许非注册用户结账,改变“购买”按钮的大小和颜色,等等,你如何选择投资哪个想法?


评估不同想法价值的一种方法是使用历史数据进行定量分析以获得每个想法的机会大小。例如,在投资于电子商务网站的多项商品结账之前,通过分析每个用户购买的多项商品的数量来获得影响的上限大小。如果只有很小比例的用户购买了一个以上的商品,那么开发这个功能可能就不值得了。更重要的是调查用户的购买行为,以了解用户为什么不同时购买多个商品。是因为选择的项目太少了吗?是不是物品太贵了,他们只能买得起一个?是不是结账过程太复杂了,他们不想再经历一次?

这种分析提供了关于哪个idea是a/B测试的好候选者的方向性见解。然而,历史数据只告诉我们过去是如何做的。它无法准确预测未来。

为了获得对每个想法的全面评价,我们可以通过焦点小组和调查进行定性分析。从焦点小组收集的反馈(与用户或有洞察力的用户进行有指导的讨论)或调查中的问题提供了对用户痛点和偏好的更多见解。定性和定性分析相结合可以帮助进一步的想法选择过程。

设计A/B测试


一旦我们选择一个想法来测试,我们需要决定我们想要运行一个测试的时间,以及如何选择随机化单元。在这一节中,我们将逐一讨论这些问题。

运行一个测试需要多长时间?


要决定一个测试的持续时间,我们需要获得一个测试的样本大小,这需要三个参数。这些参数是:

  • 第二类错误率β或幂,因为幂=1-β。你认识其中一个,你认识另一个。
  • 显著性水平α
  • 最小可检测效应

经验法则是,样本量n大约等于16(基于α=0.05β=0.8)乘以样本方差除以δ平方,而δ是治疗与对照的差值:


如果您有兴趣了解我们如何提出经验法则公式,请查看此视频,以获得一步一步的演练。

在面试过程中,你不需要解释你是如何得出这个公式的,但你需要解释我们如何获得每个参数,以及每个参数如何影响样本量。例如,如果样本方差较大,我们需要更多的样本,如果增量较大,我们需要更少的样本。

样本方差可以从现有数据中得到,但我们如何估计δ,即治疗与对照之间的差异?

实际上,我们在进行实验之前并不知道这一点,这就是我们使用最后一个参数的地方:最小可检测效应。在实践中,这是最小的差异。例如,我们可以考虑将收入增加0.1%作为可检测到的最小效应。在现实中,这个价值是由多个利益相关者讨论和决定的。

一旦我们知道了样本量,我们就可以通过样本量除以每组的用户数来获得运行实验的天数。如果这个数字少于一周,我们应该运行实验至少七天,以捕捉每周的模式。通常建议运行两周。当涉及到为测试收集数据时,多总是比不够好

对照组与治疗组间的干扰


通常,我们通过随机选择用户并将每个用户分配到控制组或治疗组来划分控制组和治疗组。我们希望每个用户都是独立的,控制组和治疗组之间没有干扰。然而,有时这种独立性假设并不成立。当测试社交网络,如Facebook、Linkedin和Twitter,或双边市场,如Uber、Lyft和爱彼迎时,可能会发生这种情况。一个面试样本问题是:


X公司测试了一个新功能,目标是增加每个用户创建的帖子数量。他们将每个用户随机分配到控制组或治疗组。该测试在帖子数量方面以1%的优势获胜。在新特性向所有用户推出后,您预计会发生什么?会不会和1%一样,如果不是,会多还是少?(假设没有新奇效应)


答案是,我们将看到一个大于1%的值。原因如下。

社交网络中(例如Facebook、Linkedin和Twitter),用户的行为很可能受到其社交圈中人的行为的影响。如果用户网络中的人(如朋友和家人)使用某个功能或产品,则用户倾向于使用该功能或产品。这称为网络效应。因此,如果我们以“使用者”作为随机单位,并且治疗对使用者有影响,这种影响可能会溢出到对照组,即对照组的行为受到治疗组的影响。在这种情况下,对照组和治疗组之间的差异低估了治疗效果的真正好处。对于面试问题,会超过1%。

对于双边市场(如Uber、Lyft、ebay和爱彼迎):控制组和治疗组之间的干扰也会导致对治疗效果的偏颇估计。这主要是因为控制组和治疗组之间共享资源,这意味着控制组和治疗组将争夺相同的资源。例如,如果我们有一个新产品在治疗组中吸引了更多的驱动程序,那么在对照组中可用的驱动程序就会更少。因此,我们无法准确估计治疗效果。与社会网络不同,在社会网络中,治疗效果低估了新产品的实际利益,在双边市场中,治疗效果高估了的实际效果。

如何应对干扰?



既然我们知道了为什么控制和治疗之间的干扰会导致发射后的效果表现不同于治疗效果,这就引出了下一个问题:我们如何设计测试来防止控制和治疗之间的溢出?一个示例面试问题是:


我们正在推出一个新功能,为我们的骑手提供优惠券。目标是通过降低每次乘坐的价格来增加乘坐的次数。概述一个测试策略来评估新特性的效果。


有许多方法可以解决组之间的溢出,主要目标是隔离控制组和处理组中的用户。下面是几种常用的解决方案,每种方案适用于不同的场景,并且都有局限性。在实际应用中,我们要选择在一定条件下效果最好的方法,也可以将多种方法结合起来,得到可靠的结果。

社交网络:

  • 确保隔离的一种方法是创建网络群集来表示用户组,这些用户组更有可能与组内的人进行交互,而不是与组外的人进行交互。一旦我们有了这些集群,我们可以将它们分为控制组和治疗组。查看这篇论文,了解更多关于这种方法的细节。
  • 自我聚类随机化。这个想法源于LinkedIn。一个集群是由一个“自我”(一个焦点个体)和她的“改变”(她立即连接到的个体)组成的。它着重于测量一次性网络效应,即一个用户的即时连接处理对该用户的影响,然后每个用户要么具有该特征,要么不具有该特征,不需要用户之间进行复杂的交互。本文对该方法进行了详细说明。

双边市场:

  • 基于地理的随机化。我们可以按地理位置划分,而不是按用户划分。例如,我们可以把纽约大都会区作为对照组,把旧金山湾区作为治疗组。这将允许我们在每个组中隔离用户,但陷阱是会有更大的差异,因为每个市场在某些方面都是独特的,比如客户的行为、竞争对手等。
  • 另一种方法是基于时间的随机化,虽然不太常用。基本上,我们选择一个随机的时间,例如,一周中的一天,并将所有用户分配到控制组或治疗组。当处理效果只持续很短的时间时,例如当测试一个新的浪涌价格算法时,算法表现更好。当治疗效果需要很长时间才能有效时,如转诊方案,它就不起作用。用户可能需要一些时间来引用他或她的朋友。



数据分析咨询请扫描二维码

客服在线
立即咨询