编程学习网 > IT圈内 > 为什么Tech公司最常见的面试题通过率却最低
2022
12-29

为什么Tech公司最常见的面试题通过率却最低

所周知,A/B测试是一项热门技能,有不少数据科学相关岗位的面试题目都与之相关。但与此同时,有助于准备A/B测试相关面试题目的资源却很少,从而导致大多数候选人在这些面试中表现不佳。事实上,A/B测试实验领域一直在发展,每年都有越来越多关于A/B测试的新的概念和方法。这就意味着即便是几年前自诩A/B测试经验丰富的候选人,如今也经常会在面试中被难住。在这篇文章中,我们将模拟面试官和候选人的对话来进行A/B测试相关的模拟面试,帮助你了解面试官要的是什么,以及如何顺利通过这些面试。你可能会问,为什么我们需要模拟面试?原因是,作为数据科学岗位,我们有时会在沟通方面遇到困难。因此,在脑海中记住一个有效的沟通模板会对你有很大帮助。在本文中,我们将使用食品配送公司Doordash的面试案例进行讲解,该公司的手机App目前在iPhone App Store 中排名第一。他们通过实验不断改进他们的App,并且也在不断寻找有A/B测试相关技能的候选人。

面试题Doordash目前正在扩展更多业务,例如便利店跑腿送货。由于他们之前的推送通知策略效果很成功,于是他们正在考虑在应用内部发送通知来推广这个新业务。那么,你将如何设计实验以决定他们是否应该在应用内部发送通知呢?
解决方案第一步 — 提出明确的问题以更好地理解业务目标和产品功能细节在这一步,面试官希望看到什么——

  • 在深入研究实验细节之前,你是否首先明确了产品/业务目标?

以下是模拟对话部分:
候选人:在开始设计实验之前,我想确保我对产品背景的理解是清楚的。像这样的产品可能有多个目标——例如增加新用户获取、增加用户的转化率、增加该类别中的订单数量或增加总订单价值。请问我应该具体针对哪个目标进行实验呢?
面试官:这个问题问得很好。通过应用内部通知,我们主要是想尝试提高用户的转化率——即在所有登录的用户中,在新的业务类别下订单的用户的百分比。
候选人:好的。除此以外,我还想了解更多关于推送通知的信息——推送通知的内容是什么,以及目标受众是谁?
面试官:我们目前不提供任何折扣优惠,推送通知只是为了让用户知道我们推出了新的服务业务。如果实验证明这样做的确有效的话,我们打算向所有用户推送通知。候选人:好的,谢谢你的补充,下一步我可以开始深入研究实验细节了。
第二步 — 陈述商业假设、零假设,定义要评估的指标面试官想看到什么——
  • 除了主要指标之外,你还考虑了次要指标和护栏指标。

候选人:所以我们的商业假设是——我们预计,如果我们发送应用内部通知,那么新业务的每日订单数量将会增加。因此,我们的原假设 (H0) 是——用户转换率不会因为应用内部推送而产生变化。我们希望在实验中包含不同的指标,因为发推送的目标是提高新业务的用户转化率,所以这将是我们的主要指标;在次要指标方面,我们还应该观察该业务的平均订单价,看看有什么影响。用户转化率提高的同时,平均订单价格有可能会下降,从而导致整体收入下降,这是我们可能需要注意的事情。除此之外,我们还应该考虑护栏指标,这些指标是我们应该考虑的其他因素,从另一种维度来描述实验结果从而提供更全面的分析,例如应用使用时间或应用程序卸载的次数。您觉得在这个实验里,还有哪些我们应该包含的指标呢?面试官:你选择的主要指标非常好,不过对于这个案例,你可以忽略次要指标。但你在护栏指标方面是正确的:Doordash在推出新功能或者新版本时非常谨慎,因为我们知道安装应用程序的用户LTV(生命周期总价值)要高得多。所以在推出新功能时我们确实需要小心,以免促使用户卸载应用程序。候选人:好的,那我们则需要把卸载百分比作为我们的护栏指标。
第三步 — 选择显著性水平(significance level)、统计功效(statistical power)、MDE (最小预期提升幅度)并计算实验所需的样本量和持续时间面试官想看到什么——
  • 你对统计概念的了解以及对样本量和持续时间的计算;

  • 你是否在进行实验时考虑了网络效应(在 Doordash、Uber、Lyft、Airbnb 等双边市场或 Facebook、LinkedIn 等社交网络中很常见)、星期几效应、季节性或新奇效应等可能会影响实验的有效性。

候选人:那么现在我开始设计实验。我们首先看看我们是否需要考虑网络效应。当控制组的行为受到我们对测试组处理的影响时,网络效应就会发生。由于 Doordash 是一个双面市场,因此更容易看到网络效应。在这种特定情况下,如果对实验增加了测试组的需求,可能会导致外卖员数量供应不足的情况,从而导致整体配送效率下降,这反过来又会影响对照组的表现。为了考虑网络效应,我们需要选择一些随机因素。有很多方法可以做到这一点:我们可以进行基于地理的随机化、或基于时间的随机化、或网络用户群体群随机化。面试官:网络效应的确很关键,因为它确实是我们在 Doordash 的实验中会仔细考虑的因素。但由于时间有限,让我们假设这里没有网络效应,然后继续设计实验吧。候选人:好的,如果我们不考虑网络效应,那么实验的随机因素就是用户,我们将随机选择用户并将他们分配给测试和控制组。测试组将收到内部推送,而控制组将不会收到任何推送。接下来,我想计算该实验的样本量和持续时间。为此,我需要准备这些信息:
  • Baseline conversion(基线转换):这是在进行实验之前,控制组的现有用户转换率

  • Minimum detectable difference(最小可检测差异)或 MDE:这是我们实验时可以接受的转化率的最小变化,比这更小的变化我们可以忽略不计

  • Statistical Power(统计功效):我们有多大概率可以拒绝原假设

  • Significance Level(显著性水平):当原假设为正确时拒绝原假设的概率

我们通常默认选择 5% 的显著性水平和 80% 的统计功效,除非有特殊要求。此外,我将假设对照和测试组的比例为一半一半。一旦确认这些信息后,我将使用功效分析来计算样本量。为此我会使用编程语言,例如在 R 中,有一个名为“pwr”的包可用于实现此目的。面试官:好的,假设根据分析,我们得到每组的样本量为10,000名用户,你将如何计算实验的持续时间?候选人:为此我们需要知道每天登录该应用的用户数量。面试官:假设我们每天有 10,000 名用户登录该应用程序。候选人:好的,那在这种情况下,我们至少需要两天的时间来运行实验,我是通过将控制和测试组的总样本量除以每日用户数得出的(10,000*2/10,000)但是,在最终确定持续时间时,我们还应考虑其他因素:
  • Day of week effect(星期几的影响)——你可能在周末和工作日有不同的用户群体,因此运行足够长的时间来捕捉每周的周期是很重要的。

  • Seasonality(季节性)——有时用户的行为会有所不同,这是需要考虑的重要因素,例如假期。

  • Novelty effect(新奇效应)——当你引入一个新功能,尤其是一个容易被注意到的功能时,它最初会吸引用户去尝试。这意味着,一个测试组一开始可能看起来表现不错,但效果会随着时间的推移而迅速下降。

  • External effects(外部影响)——假设市场竞争很大,同类应用的推送通知很多,消费者很有可能会忽略掉我们的推送,这将直接影响我们实验的准确性。

基于上述原因,我建议实验至少进行一周。面试官:好的,那你会如何分析实验结果呢?
第四步 — 分析结果并得出有效结论面试官想看到什么——
  • 你在不同场景中会使用适当的统计检验的知识(例如,针对样本均值的t检验和针对样本比例的 z 检验)

  • 你是否检查了随机化

  • 你提供的最终建议

候选人:我的分析有两个关键部分——
  • 为了使实践的效果最佳,我们应该在分配测试组和对照组时检查随机化是否合理。为此,我们可以查看一些预计不会受到实验影响的基线指标,并对两组进行比较,比如,比较两组之间基线指标的直方图或密度曲线。如果没有差异,我们可以得出结论,随机化是合理的。

  • 所有指标(包括主要指标和护栏指标)的显著性测试。我们的主要指标(转化率)和护栏指标(卸载率)都是比例,因此我们可以使用 z 测试来检验统计显着性,我们可以使用诸如 R 或 Python 之类的编程语言来做到这一点。

如果从统计角度来讲,转化率显著增加,并且卸载率没有受到负面影响,我建议实施内部推送。
如果从统计角度来讲,转化率显著增加,但是卸载率受到负面影响,我建议不要实施内部推送。最后,如果从统计角度来讲,转化率没有显著提高,我建议不要实施内部推送。
面试官:非常好,感谢你的回答。

结论

如果在A/B测试面试中表现出色的话,将为你在招聘过程中提供非常大的优势,使你脱颖而出,因此,花时间学习A/B测试中的关键概念,并且为面试做好准备是非常重要的。

以上就是“为什么Tech公司最常见的面试题通过率却最低 ”的详细内容,想要了解更多IT圈内资讯欢迎持续关注编程学习网


扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取