ITPub博客

首页 > 数据库 > 数据库开发技术 > A/B测试如何解决跨产品检验问题?

A/B测试如何解决跨产品检验问题?

原创 数据库开发技术 作者:quincyqiang 时间:2021-06-01 19:22:59 2 删除 编辑

前言

想象一个单一的假想场景:Bing团队想要实现一个图标,允许客户查看微软新闻中的内容。想象一下,Bing团队不知道这将如何影响用户体验,想要对这个策略进行A/B测试,以确保不会损害用户体验。

在这个例子中,在A/B测试中同时查看Bing数据和微软新闻数据是很重要的,因为这两种产品的用户体验都可能受到这种变化的影响。两个栈的多个部分都需要进行评估,因为我们不仅要测试用户满意的更改,还要测试产品性能。此外,我们想要跟踪用户的同类产品,以防这个策略影响到用户的Microsoft News产品使用,甚至在用户点击了图标之后,也可能影响到从未点击过图标的用户。由于Bing和微软新闻有完全不同的遥测系统和后端,这带来了一个巨大的困难。

这是微软经常遇到的一个问题,微软已经找到了多种不同的方法来解决这个问题。在这里,举了一个例子,Bing和微软新闻中的两个大型产品,每个都可以是自己的公司,但产品也可以是同一软件的不同版本(例如,iOS版本和Mac版本)。在本文中,我们将讨论所需的高级需求,研究在线和离线选项,讨论隐私性问题,并讨论其他考虑事项。

1.什么是A/B测试?

A/B测试是一种工业标准方法,用于确定技术堆栈[1]中潜在变化对用户的影响。它包括在两种体验之间随机分配产品的用户流量,计算指标的差异,并运行统计测试以排除噪音造成的任何差异。随机化是根据一个标识符(称为随机化单元)进行的,体验称为实验(因此用户所处的体验通常称为实验分配)。我们进行统计测试,以确定对产品的实验效果。然后,分析可以通过不同的识别信息(部分)进行分桶,或者通过放大符合与测试体验相关的特定条件的数据进行检查(这称为触发)。微软的一个常见问题是,如何在一个产品上执行A/B测试,但是衡量该测试对另一个产品的影响。

2.如何跨产品运行A/B测试?

跨产品的A/B测试包括查看对另一产品(或多个其他产品)进行的A/B测试对一个产品的影响。这些产品可能具有不同的实验分配流程、不同的用户基础和不同的物理位置日志,因此问题可能相当复杂。也就是说,不管跨产品场景的个别复杂性如何,跨产品A/B测试都需要一些特定的东西。

当设置这个场景时,让我们假设正在对产品X运行A/B测试,并希望看到对产品Y的影响。为了创建一个记分卡来查看影响,我们需要在相同的地方添加以下内容:

  • 1)产品Y的诊断数据提供给与产品X有交互和没有交互的用户

  • 2)产品X的随机化单元,它可以绑定到产品Y的诊断数据

  • 3)产品X的实验分配,可以绑定到产品Y的诊断数据

  • 4)可以绑定到产品Y诊断数据的任何相关触发器和分段信息(可能来自产品X的日志或产品Y的日志)

这样我们就可以创建一个数据视图,将所有产品Y的数据绑定到产品X的随机化单元、实验分配和触发/分段信息。然后,这个数据视图可以用于计算基于产品X的A/B测试的产品Y的指标,从而允许我们对提议的对产品X 变更的总体影响做出更明智的决定。

需要注意的是,在某些情况下,A/B测试会改变使用Y产品的用户数量,从而导致样本比例不匹配[2]。在这种情况下,对于产品X,使用所有实验分配流量是非常重要的,即使产品Y没有数据。在此过程中,可以为那些实际上没有使用产品Y的用户计算0值或null值。这将限制你可靠地计算的指标类型,但是是必要的步骤。

有三种主要的方法可以让这个数据视图用于跨产品的A/B测试:在线、离线和混合。我们接下来讨论它们中的每一个方法。每种方法都有优缺点,可以根据工程考虑、隐私性考虑、数据处理的组织考虑以及用户信任考虑来采用。

3.主要方法

3.1.在线方法

使用在线方法,我们希望将一个产品的信息本地记录到另一个产品中。这里有两个选择:

  • 1)将产品Y的诊断数据记录在产品X中

  • 2)将产品X的实验分配和随机分组与产品Y一起记录下来。

如果产品Y只需要少量的数据(例如,点击量、收入和对产品的时间),那么第一种选择是理想的。如果需要从产品Y获取大量数据(比如希望从产品Y获得完整的诊断报告),那么第二种选择是理想的。

现在我们知道要传递什么,我们需要一个在线方法来传递数据。如果它是一个web服务,那么在对该服务的头请求中,可以传递所需的信息。对于客户端应用程序,必要的数据可以本地存储在该客户端的日志中。

在线方法中,产品之间的每个请求都传递必要的信息,这一点很重要。这允许我们以最高保真度将产品Y的数据归因于产品X的处理实验和随机单元。如果不这样做,我们可能只能部分看到产品X的A/B测试对产品Y的影响。

在线方法的主要缺点是工程成本高,需要提前进行。 为了在产品之间实时传递信息,需要计划和执行对产品接口的多个更改。这种方法还有其他成本和顾虑。例如,由于负载大小的增加,可能存在性能问题。还有一些隐私问题,我们将在下面的一节中讨论。所有这些问题都需要在开始第一个跨产品A/B测试之前解决。

3.1.离线方法

上面讨论的在线方法侧重于产品之间的实时数据交换。解决跨产品A/B测试问题的另一种方法是将数据批量地放在一起。我们称之为离线方法。在这种方法中,我们有产品X的数据和产品Y的数据,我们需要将这些数据连接在一起进行分析。这可能很棘手,因为拼接比率可能不是100%,在分析中需要解释这一点。在这里,我们还需要考虑日志计时的不同:web服务经常立即转储数据,而客户端应用程序经常缓存数据以定期将其发送到服务器。等待的时间越长,web服务和客户端应用程序日志之间的连接速率就会增加,因为随着时间的推移,给了客户端app更多实例发送它们数据的机会。此外,如果产品有不同的记录时间的方式(例如使用计算机时间与服务器时间),那么按时联接可能不可靠,应该考虑不同的联接键(例如向两个产品发送信息的有效负载的标识符)。

这种方法的主要缺点是其可行性很大程度上取决于产品和法律场景。 在一些情况下,移动或连接数据是不允许的,因此这个选项是不可行的。

3.2.混合方法

我们提到了通过在线方法或离线方法来满足需求,但是使用这两种方法来执行跨产品A/B测试是可能的。例如,有可能将随机化单元和实验分配的单向链路发送给目标产品(这是在线完成的),然后将该实验分配链路连接到具有真正实验分配的表(离线)。这是可以做到的,因为实验任务可能太大而不能在线发送。下面的图表强调了这个例子。微软内部经常使用混合方法进行跨产品的A/B测试。

无论选择何种方法,您都应该始终注意任何数据丢失、连接率和分析中的警告。最重要的是,必须关注隐私、信任和谨慎的数据处理,我们将在下一节中进一步探讨这些内容。

4.信任和隐私问题

当启用跨产品A/B测试时,在遵守设定的隐私标准的同时,保持所有客户关于数据和安全的义务是很重要的。数据必须始终保存在允许的地理范围内,并仅用于预期和批准的目的。例如,微软是在信任的基础上运行的,因此需要非常小心地确保任何跨产品分析的尝试不仅不违反任何法律义务,也不损害客户对我们的信任。灌输了严格的数据保留政策和数据删除流程,这在跨产品的A/B测试中尤其重要。因此,在实施跨产品的A/B测试解决方案之前,咨询安全、法律和隐私专家是很重要的。

5.如果分析单元与随机单元不同怎么办

上面的讨论适用于最好的情况,在这种情况下,可以将相同的随机单元附加到每个产品的日志中,用于分析目的。由于各种原因,可能不总是可能在产品之间共享首选的随机化单元。在这种情况下,最好的选择是对不同于随机化单元的标识符执行分析。这在[3]中已经被广泛地讨论过了,这里我们只简单地讨论一些重点,之前在你的AB实验还是用户分流吗?群分流也可以解决你的一些问题中,也描述过这个场景。要想对随机单元以外的点进行彻底的分析,作者提出了一个通用的方法,强烈推荐阅读那篇文章。

如果根据稳定单位实验值假设(stable unit treatment value assumption, SUTVA)[4],我们假设随机化单元是一个独立的单元,那么我们需要考虑以下问题:

  • 1)我们想在一个与随机化单位为1:1的单位进行分析,或者高于随机化单位。在这里,简单地使用该单位并执行标准方差计算是安全的。

  • 2)我们想要在一个低于随机化单位的单位进行分析。这就需要使用delta方法来进行正确的方差计算。如果delta方法不可用,那么我们不建议这样做(这可以通过用较低的单元开始产品实验来避免)。

参考文献

[1]  Kohavi, R., Tang, D., & Xu, Y. (2020). Trustworthy Online Controlled Experiments: A practical Guide to A/B Testing. Cambridge: Cambridge University Press. doi:10.1017/9781108653985

[2]  Fabijan, A., Blanarik, T., Caughron, M., Chen, K., Zhang, R., Gustafson, A., Budumuri, V.K., & Hunt, S. (2020, Sep 14). Diagnosing Sample Ratio Mismatch in A/B Testing. Retrieved from Experimentation Platform Blog: https://www.microsoft.com/en-us/research/group/experimentation-platform-exp/articles/patterns-of-trustworthy-experimentation-pre-experiment-stage/

[3]  Deng, A., Lu, J., & Litz, J. (2017, February). Trustworthy Analysis of Online A/B Tests: Pitfalls, challenges and solutions. WSDM ’17: Proceedings of the Tenth ACM International Conference on Web Search and Data Mining, 641-649. doi:10.1145/3018661.3018677

[4]  Imbens, G. W., & Rubin, D. B. (2015). Causal Inference for Statistics, Social, and Biomedical Sciences: An Introduction. Cambridge University Press.

[5]  Machmouchi, W., Gupta, S., Zhang, R., & Fabijan, A. (2020, July 31). Patterns of Trustworthy Experimentation: Pre-Experiment Stage. Retrieved from Experimentation Platform Blog: https://www.microsoft.com/en-us/research/group/experimentation-platform-exp/articles/patterns-of-trustworthy-experimentation-pre-experiment-stage/

如果这对你的学习工作有帮助,欢迎一键三连,支持我的工作。

扫码加我好友进微信群|QQ群


原文作者:ChallengeHub;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-01-07

  • 博文量
    350
  • 访问量
    161006