[TOCE] 38 P5-C22-S1 版本之间的泄漏和干扰
Trustworthy Online Controlled Experiments Part 5 Chap 22
你的理论有多么美丽并不重要,你的聪明程度也无关紧要。如果你不敢用实验验证你的理论,那它就是错的。 – Richard Feynman
为什么重要
在大多数实验分析中,我们假设实验中每个样本的行为不受其他样本的影响。在大多数实际应用中,这是一个合理的假设。但是,在许多情况下,此假设也会不成立。
在本书的大部分讨论中,我们都假设使用鲁宾因果模型(Imbens and Rubin 2015),这是用于分析对照实验的标准框架。在本章中,我们讨论了该模型用到的假设,假设失败的场景以及解决这些问题的方法。
鲁宾因果模型中的一个关键假设是稳定的样本干预价值假设(SUTVA),该假设指出实验中每个样本的行为均不受其他样本变化的影响(Rubin 1990,Cox 1958,Imbens和Rubin 2015 ),如公式22.1所示:
(22.1)
。
在大多数实际应用中,这是一个合理的假设。例如,喜欢第2章中描述的新结帐流程的用户更有可能购买商品,并且该行为独立于其他用户。但是,如果SUTVA假设不成立(请参阅本章后面的示例),则该分析会得出可能不正确的结论。我们将干扰定义为违反SUTVA,有时称为溢出或泄漏。
干扰有两种产生方式:直接或间接 。例如,如果两个用户是社交网络上的朋友,或者他们同时访问了相同的物理空间,这是直接连接。间接连接是由于某些潜在变量或共享资源而存在的连接,例如,“干预和控制组”中的样本共享相同的广告预算。这两种类别的相似之处在于,在两种情况下,都有一种媒介将治疗组和控制组联系起来并允许它们进行交互。媒体可以是社交网络上的物化友谊连接,也可以是根据“干预”和“控制”用户的点击付费的共享广告预算。重要的是要理解干扰可以通过其表现出来的机制,因为解决这些干扰的最佳解决方案可能会有所不同。
为了使问题更具体,一下是详细讨论。
例子
直接连接
如果两个用户是社交网络上的朋友,或者他们同时访问了相同的物理空间,则可以直接连接两个单元。直接连接的两个单元可能分别被分在“处理”和“控制”组,因此会导致变体之间的干扰。
Facebook / LinkedIn。在Facebook或LinkedIn等社交网络中,用户行为可能会受到其社交社区行为的影响(Eckles,Karrer和Ugander,2017; Gui等,2015)。随着更多邻居的使用,用户发现新的社交参与功能更有价值,因此更有可能自己使用它。例如,从用户角度来看:
-
如果我的朋友使用它,我更有可能在Facebook上使用视频聊天。
-
如果我的朋友给我发消息,我更有可能在LinkedIn上给他们发消息。
-
如果我的网络中的朋友在LinkedIn上发帖,则我更有可能在LinkedIn上发帖。
在A / B实验中,这意味着,如果“干预”对用户产生重大影响,则该效果可能会扩散到他们的社交圈,而不管邻居是否处于“治疗”或“控制”状态。例如,LinkedIn上的“可能认识的人”算法中的一种更好的推荐算法鼓励用户发送更多的联系邀请。但是,收到这些邀请的用户可能处于Control变体中,并且当他们访问LinkedIn接受邀请时,他们可能会发现更多与之联系的人。如果主要关注指标是已发送邀请的总数,则“处理”和“控制”邀请都可能会增加,因此差异会向下偏移,并且无法完全利用新算法的优势。同样,如果“干预”鼓励用户发送更多消息,则“控制组”也将看到随着用户答复而发送的消息有所增加。参见图22.1。

当Treatment中的用户向他们的网络发送更多消息时,Control中的用户在回复这些消息时也会发送更多消息。
Skype通话。作为一种通信工具,Skype上的每个呼叫至少涉及两个参与方。显然,如果用户决定在Skype上呼叫朋友,则该朋友最终会更多地使用Skype,至少要接听此呼叫。朋友可能还会使用Skype打电话给他们的朋友。在A / B设置中,假定Skype改善了Treatment的呼叫质量,增加了Treatment组的呼叫。这些呼叫可以转到处于“治疗”或“控制”状态的用户。结果是,使用Skype进行通话的Control用户也有所增加,因此低估了Treatment和Control之间的差异。
间接联系
由于某些潜在变量或共享资源,两个单元可以具有间接连接。像直接连接一样,这些间接连接也会导致干扰和对治疗效果的估计偏差。
-
Airbnb如果AirBnB的房屋出租市场站点改善了Treatment用户的转化流量,从而导致更多的预订,那么自然会导致Control用户的可选房源减少。这意味着从对照组获得的收入少于没有治疗组的情况下的收入。从而导致高估干预效果(Holtz 2018)。 Uber / Lyft。想象一下,Uber想要测试一种非常棒的“激增价格”算法,以至于“治疗”中的骑手更有可能选择骑车。现在道路上的驾驶员越来越少,控制组的价格上涨了,导致了更少的骑手。结果,比较了治疗组和对照组的差额被高估了(Chamandy 2016)。
-
易趣。假设针对买家的待遇鼓励提高出价,例如回扣或促销。由于治疗和控制用户正在争夺相同的物品,因此干预组的较高出价无疑会使控制用户赢得拍卖的可能性降低。如果感兴趣的指标是交易总数,则治疗和控制之间的差异就被高估了(Blake和Coey 2014,Kohavi,Longbotham等,2009)。
-
广告活动。考虑一个实验,该实验向用户显示相同广告的不同排名。如果“待遇”鼓励增加广告点击次数,则会更快地用尽广告系列预算。由于给定活动的预算由治疗组和控制组共享,因此控制组最终会获得较小的预算。结果,治疗和控制之间的差异被高估了。同样,由于预算限制,影响广告收入的实验在月初(或季度)与月末(或季度)的结果往往会有所不同(Blake和Coey 2014,Kohavi,Longbotham等人。 2009)。
-
相关性模型训练。相关性模型通常严重依赖用户参与度数据来了解什么是相关的,什么是不相关的。只是为了解释这个概念,请想象一个使用简单的基于点击的相关性模型进行排名的搜索引擎。在这种情况下,如果有更多的用户在搜索“鞋”时单击target.com,则搜索引擎将为target“ com”学习关键字“鞋”并将其排名更高。此学习过程是模型训练,并且随着新数据的流入而连续发生。考虑“干预相关性”模型,该模型可以更好地预测用户喜欢单击的内容。如果我们使用从所有用户收集的数据来训练“干预”和“控制”模型,则实验运行的时间越长,来自“干预”的“良好”点击就越多。
-
中央处理器。当用户在网站上执行某项操作(例如将商品添加到购物车或单击搜索结果)时,通常会导致对网站服务器的请求。简化后,请求由服务器计算机处理,并将信息返回给用户。在A / B设置中,来自“干预”和“控制”的请求通常由同一台机器处理。我们已经遇到了一些例子,其中“干预”中的错误意外占用了计算机上的CPU和内存,结果,“处理”和“控制”双方的请求都需要花费更长的时间来处理。如果我们进行通常的“治疗和对照”比较,那么对实验中的负面治疗效果将被低估。
-
子用户实验单位。正如我们在第14章中讨论的那样,即使用户是更常用的实验单位,在某些情况下,实验也会以不同的单位随机化,例如页面访问或会话。如果“干预”有很强的学习效果,则小于用户的实验单位(例如综合浏览量)可能会导致同一用户的单位之间潜在的泄漏。在这种情况下,“用户”是潜在连接。举例来说,假设我们进行了“干预”,显着改善了延迟,并且我们对页面浏览量进行了随机化处理,因此,同一用户在“干预”和“控制”中都会体验到页面浏览。更快的页面加载时间通常可以带来更多的点击和更多的收入(请参阅第5章)。但是,由于用户体验混合的体验,因此他们在快速页面上的行为可能会受到慢速页面的行为的影响,反之亦然。同样,干预效果被低估了。
现实解决方案
尽管这些示例中的干扰可能是由不同的原因引起的,但它们都可能导致结果有偏差。例如,在一个广告系列中,可能会在实验过程中看到收入的正增量,但是当“治疗方案”面向所有用户推出时,由于预算限制,其影响可能是中性的。当我们进行实验时,我们想要估计两个平行的之间的差额:每个单元都在“干预”中的宇宙,以及每个单元都在“控制”中的宇宙。治疗和控制单元之间的泄漏会使估计值产生偏差。我们如何预防或纠正它?
解决受控实验中的干扰有几种实用方法。 Gupta等。 (2019)也对其中一些方法进行了很好的讨论。
经验法则:行为的系统价值
并非所有用户操作都从“处理”扩散到“控制”。可以确定可能会溢出的操作,并且仅在这些操作在实验中受到实质影响时才担心干扰。这通常不仅意味着一阶动作,而且还意味着对动作的潜在反应。例如,为社交网络上的实验考虑以下指标
-
已发送的邮件总数以及已回复的邮件
-
创建的帖子总数以及收到的喜欢/评论总数
-
喜欢和评论的总数,以及收到这些喜欢和评论的创建者的总数。
这些指标可以表明对后续实验的影响。衡量响应可以估算出一阶行动对生态系统潜在影响的深度和广度(Barrilleaux and Wang 2018)。对一阶行动产生积极影响而对下游指标没有影响的实验不太可能产生可衡量的溢出效应。
一旦确定了指示下游影响的指标,就可以为每个行动如何转化为整个生态系统的价值或参与度建立一般指导。例如,来自用户A的消息转化为多少而来自A及其邻居的会话?建立此经验法则的一种方法是使用历史实验证明其具有下游影响,并使用工具变量法将这种影响外推至行动X / Y / Z的下游影响(Tutterow和Saint Jacques 2019)。
这种经验法则方法相对易于实施,因为它需要一次性的工作来确定生态系统价值,然后将其应用于任何Bernoulli随机实验。它比其他方法更敏感,因为它依靠伯努利随机数来衡量对下游指标的重大影响。但是,该方法确实有局限性。本质上,经验法则只是一个近似值,可能不适用于所有情况。例如,某些处理产生的其他消息可能会对系统造成的影响要大于平均值。
隔离
干扰通过连接治疗组和控制组的介质发生。可以通过识别介质并隔离每个变体来消除潜在的干扰。经验法则使用伯努利随机化设计,是的你可以在分析过程中估计对系统的影响。要创建隔离,必须考虑其他实验设计,以确保将治疗和控制单元很好地分开。这里有一些实用的隔离方法。
- 拆分共享资源。如果共享资源引起干扰,则将其分为治疗和控制是显而易见的首选。例如,可以根据变体分配来划分广告预算,并且只允许分配20%的流量的版本消耗20%的预算。同样,在相关性算法训练案例中,可以根据从中收集训练数据的变体对训练数据进行拆分。
应用此方法时需要注意两点:
1.是否可以根据版本分配的流量,准确分配资源?对于预算或培训数据而言,这很容易实现。但对于其他实验,这通常是不可能的。例如,对于共享的机器,由于各个机器之间存在异质性,不同的机器会引入太多其他难以纠正的混淆因素。
- 流量分配(资源分割大小)是否会带来偏差?对于训练数据,模型性能会随着获得更多训练数据而提高。如果“干预”模型仅获得5%的数据进行训练,而“对照”模型获得了95%的数据,则这会导致对“对照”模型的偏见。这是我们建议将流量分配为50/50的原因之一。
-
基于地理位置的随机化。有很多示例,其中两个单位在地理位置上接近时会发生干扰,例如,两个旅馆在争夺同一名游客,或者两辆出租车在争夺同一名骑手。合理地假设来自不同地区的单位(酒店,出租车,骑士等)是相互隔离的。这使我们可以在区域级别进行随机化,以隔离治疗和控制之间的干扰(Vaver和Koehler,2011年,2012年)。一个警告:在地理位置级别随机化会限制可用地理位置的数量,从而限制样本数量。这导致A / B测试的差异更大且Power更低。有关减少方差和提高功率的讨论,请参见第18章。
-
基于时间的随机化。可以使用时间创建隔离。在任何时候,都可以掷硬币并决定是要给予所有用户治疗还是给予所有用户控制权(Bojinov和Shephard,2017年; Hohnhold,O'Brien和Tang,2015年)。当然,要使其正常工作,同一用户随时间推移可能引起的干扰就无关紧要了(请参阅上面的子用户实验单元讨论)。时间单位可以短(秒)或长(周),具体取决于实际情况以及所需的采样点数。例如,如果以“天”为单位,则一周只能收集七个采样点,这可能不够快。要记住的一件事是通常存在强烈的时间变化,例如一周中的一天或一天中的一个小时。通常,通过在配对t检验或协变量调整中利用此信息,有助于减少方差。有关更多详细信息,请参见第18章。在第11章中讨论了一种类似的技术,称为中断时间序列(ITS)。
-
网络集群随机化。类似于基于地理的随机化,在社交网络上,我们根据节点的相互干扰可能性构造彼此接近的节点“集群”。我们将每个簇作为“巨型”单位使用,并将它们独立地随机分为治疗组或对照组(Gui等,2015; Backstrom和Kleinberg,2011; Cox 1958; Katzir,Liberty和Somekh,2012)。
这种方法有两个局限性:
1.在实践中很少有完美的隔离。在大多数社交网络中,连接图通常过于密集而无法切成完全隔离的群集。例如,当尝试从整个LinkedIn图创建10,000个隔离和平衡的群集时,群集之间仍然有80%以上的连接(Saint-Jacques et al.2018)。
2.与其他大型单位随机化方法一样,有效样本大小(聚类数)通常很小,这在构建聚类时会导致方差偏见的权衡。群集的数量越大,方差越小,但偏差也越小,隔离度也越高。以网络自我为中心的随机化。在网络集群随机化方法中,通过最小化集群之间的边缘切割来构建集群,并且每个集群都不采用特定的结构。在实验分配过程中,群集中的每个节点也被视为相同。以自我为中心的随机化解决了社交网络上类似的干扰问题,但局限性较小。通过创建每个均由“自我”(焦点人物)及其“替代者”(与之直接联系的个体)组成的集群,它可以实现更好的隔离和较小的方差。这使我们可以分别决定自负和变更的变量分配。例如,进行所有变更干预,仅进行一半自我干预。通过比较“干预”中的自我和“对照”中的自我,可以测量一阶影响和下游影响。可以在Saint-Jacques等人的文章中找到有关此问题的精彩讨论。 al。 (2018b)。
在适用的情况下,请始终结合使用隔离方法以获取更大的样本量。例如,在应用网络集群随机化时,可以利用时间t作为采样维数来扩展样本大小。如果大多数干扰的时间跨度较短,并且“处理”效果本身是事务性的,则可以每天使用硬币翻转来确定每个群集的版本分配。有时,可以通过预测可能发生干扰的地方来创建更好的隔离。例如,用户不会向其社交网络中的每个邻居发送消息。一般网络本身通常过于密集以至于无法创建孤立的群集,因此确定可能交换消息的子图可以创建更好的群集。
边缘水平分析
在两个用户之间明确定义的交互中会发生一些泄漏。这些相互作用(边缘)很容易识别。可以对用户使用伯努利随机化,然后根据用户(节点)的实验分配将边缘标记为以下四种类型之一:“干预至干预”,“干预至控制”,“控制至控制”和“控制到干预”。发生在不同边缘的对比互动(例如,消息,喜欢)可让你了解重要的网络效果。例如,使用“治疗到治疗”和“控制到控制”之间的对比来无偏差估计,或确定干预中的单元是否比控制单元更倾向于向其他治疗单元发送消息(治疗亲和力),以及是否由干预获得更高的缓解率。可以在Saint-Jacques等人的文章中阅读边缘级分析。 al。 (2018b)。
检测和监视干扰
了解干扰的机制是确定好的解决方案的关键。但是,尽管获得精确的测量值可能并非对每个实验都可行,但是拥有强大的监视和警报系统以检测干扰非常重要。例如,如果实验期间的所有广告收入均来自预算受限的广告客户 vs 预算不受限制的广告客户,则实验结果在发布后无法推广。实验爬坡阶段还可以检测到非常严重的干扰(例如,“干预”消耗了所有CPU)。有关详细信息,请参见第15章。