异构变体成本下的最优流量分配

为什么当你的处理比你的控制更昂贵时,默认的 50/50 分割是错误的举动,以及基于成本的采样权重如何解决它异构变体成本下的最优流量分配帖子首先出现在走向数据科学上。

来源:走向数据科学

如果将一名用户置于治疗组中的成本是置于控制组中的成本的两倍,你会怎么做?

如果我想到的第一个答案是仅将控制臂流量的一半分配给处理,我不能责怪您。每个用户价格的两倍,所以购买一半的数量;每只手臂上的花费都是均匀的。这可能感觉很公平,但这并不是这个问题最便宜的答案。

成本最优分配必须同时权衡两件事:多一个科目可以为您带来多少精度,以及该科目的成本是多少;在一个设置中,第二个答案取决于它们落在哪只手臂上。

“那又怎样?”,您可能会想。如果做得好,它可以为您节省 5% 到 15% 的预算;换句话说,可以节省数千到数百万美元。但代价是什么?喝点咖啡,让我们看看什么时候这不再是免费午餐。

在这篇文章中,我将引导您完成:

考虑到当今渴望法学硕士的行业,各个部门的成本不同是常态,认为成本最优的分割是有回报的。折扣、优惠券、现金返还是其他具有良好价值的相关待遇。

武器成本的直觉与样本方差之间存在拉锯战,以及这如何导致双倍成本一半流量并不是问题的良好答案。

边缘情况;当现实与数学不符时。实验不会在孤立的学术头脑中进行。商业激励措施理所当然地挑战了这一想法。

当治疗需要花钱时

就我个人而言,我很少遇到成本最优的流量分配问题。我一直在想:为什么不呢?我知道数学不会说谎,但我也知道实验很少只涉及统计数据;就像组织中的许多事情一样,但特别是实验,有一个强大的商业和社会技术方面来决定它的完成方式。

打折是要花钱的;法学硕士也是如此

几乎在每个行业,招募实验对象都是预算中的一项。有时每一次治疗都是一条线。在医疗保健领域,一种比安慰剂更昂贵的新药;在经济学中,在激励驱动或按绩效付费的设计中,每个接受治疗的受试者都会获得某种形式的价值,以推动他们采取所研究的行为。

然而,在科技领域,有一个令人舒服的观念:参与者是“自由的”。没有人可以招募、说服或支付报酬;他们已经在使用您的产品,因此无论他们是否知道,他们都会遵守并参与。

但如今,一半的行业正在竞相将管道胶带代理功能应用到现有产品上。这是对昂贵治疗组的公开邀请:与旧治疗组相比的人工智能体验,在旧治疗组中,仅仅治疗用户的行为就会触发付费 API 调用。更传统的例子很简单:优惠券、折扣、现金返还促销等。当各部门之间存在成本差异时,实验计划应该开始关注。

因此,对于科技公司来说实验是(稍微)免费的想法并不算太离谱,但肯定有一组治疗方法可以使成本最优的设计成为一条有趣的探索之路。

那么主要的阻碍是什么?尝试折扣一直存在。但对速度的需求也是如此。

速度、默认值和约定

速度几乎就是数字创新的一切。实验需要快速进行才能在竞争中保持领先。我们可以从两件事上看到这一点:在方差减少技术方面所做的研究量,以及

回到基础

在其上放置数字

总结

如果您被问到:为什么我们(理想情况下)将流量分成 50/50?答案可能是这样的:那是功率最高的时候;因此,我们可以用尽可能短的运行时间找到效果。这个问题被问到的次数远远多于成本最优分割是多少?

对运行时间/灵敏度的追求已经成为传统。如果没有明确的协议或对如何管理流量分配的理解,很容易默认采用 50/50 等标准推理。它在大多数情况下都有帮助。

成本最优本身并不是带来最高精度和最低运行时间的方法。因此,优化一个目标就意味着破坏另一个目标。这是成本和速度之间的拉锯战。决定优化哪一个需要清楚地了解限制条件和优先级;预算、实验目标、承诺的时间表等等。这不仅仅是一个统计问题。

也就是说,我们确实需要了解统计数据如何发挥作用才能实现这一点。这是进行原则性对话或完全开始对话的唯一方式。作为一名数据科学家,可以在将成果置于聚光灯下发挥关键作用。

假设您想要进行一个实验。治疗组中的每个受试者都比对照组中的每个受试者贵几倍。您的预算有限,或者只是想在相同的学习时间、相同的科目总数下以最少的费用进行相同的学习。那么问题是:哪种流量分配可以为您带来每美元最多的电力?

如果我告诉你答案就像

最佳样本比例 n1/n0n_1/n_0n1​/n0​(下标 1 为治疗,0 为对照,始终),是各组边际成本反比的平方根:c0/c1\sqrt{c_0/c_1}c0​/c1​​。图片讲述了一千多个公式,让我们将其绘制出来:

直觉。成本加倍并不意味着将昂贵部门的分配减少一半。 “一半受试者成本的两倍”规则认为每个受试者都具有同等价值,无论它们位于何处以及样本已经有多大。

问你的问题:受试者对精度的贡献实际上是恒定的吗?随着样本量的增加,精确度会提高,但增量精确度会降低:每个新主题的帮助都会减少。这就是改变规则与成本直接一对一的原因。

所以,答案就是这样。这是一个简单的启发式方法,但独立起来也有点神秘。所以,你当然会问:到底为什么会这样?为什么是平方根,而不是其他收益递减的函数?

从不稳定的平均值到成本最优的变体分配

您的实验通过从治疗组的平均结果中减去对照组的平均结果来估计效果。因为您只对一些受试者进行了采样,所以每个平均值相对于真实平均值都有给定的偏差(因此是不稳定的)。在许多此类样本平均值中,摆动是通过平均值的方差来衡量的,表示为

其中 σ2\sigma^2σ2 是当前结果的方差,n 是样本大小。看起来很眼熟吗?取它的平方根,你就会得到平均值的标准误差。

直觉。在固定的样本量 n 下,我们对任何估计的确定性都较低,例如样本均值,结果的方差 (σ2)(\sigma^2)(σ2) 越高。但是,反过来,在固定方差的情况下,我们收集的样本越多,我们对手头的估计就越确定。换句话说,样本量抵消了来自结果方差的样本估计的不确定性,σ2\sigma^2σ2。

回想一下,我们减去了两个平均值。恰好治疗效果的方差是手边两臂的方差之和。更广为人知的是均值差估计量的方差

其中两个方差像这样简单地相加,因为臂是随机分配下的独立样本(在 A/B 测试制度下做出的非常好的假设)。Yˉ\bar YYˉ 是样本平均值。Var(τ^)Var(\hat\tau)Var(τ^) 通常是我们想要最小化的值,以便我们获得高功效。

现在到了故事的关键点。样本分配是将所有受试者分为治疗组和对照组。最优分配是这样的: Var(τ^)Var(\hat\tau)Var(τ^) 尽可能低。这就是最优的意思。问题是:我们如何获得这样的最优配置?通过分配更多的治疗或控制?

答案是:这要看情况,两次。首先,它取决于方差相等的假设。其次,要看是否追求成本最优分配。由于这一切的出发点是各部门的不同成本,我们可以说我们确实是这样。

让我们首先弄清楚每个臂的方差如何告诉我们有关最佳分配的信息。仍然考虑 Var(τ^)Var(\hat\tau)Var(τ^),我们需要看看将额外的受试者分配给两个组之一时会发生什么。下面的表达式告诉我们,增加样本量会导致估计量 ΔVar(τ^).\Delta Var(\hat\tau).ΔVar(τ^) 的方差发生变化。

在高 n 处,1 的增量可以忽略不计(10000⋅10001≈10000210000\cdot10001 \approx 10000^210000⋅10001≈100002),因此表达式简化为

这是我们的支付函数,以每边际 n 的 Var(τ^)Var(\hat\tau)Var(τ^) 表示。我们一次用一只手臂进行推理,但请记住,Var(τ^)Var(\hat\tau)Var(τ^) 是两项的函数,如上面一项:一项用于控制,一项用于治疗。

用一个例子来具体说明:假设您有 500 个科目,结果为 σ2\sigma^2σ2= 40,那么添加 1 个科目会使 Var(τ^)Var(\hat\tau)Var(τ^) 减少 40/500^2 = 0.00016。 n 在等式 5 中处于平方范围内,因此随着 n 的增加,单个单位增量的回报会越来越少。

这是很重要的一点。添加样本并不能以一致的方式获得回报:您已经拥有的样本越多,再添加一个样本的帮助就越小。这就是以不同方式分配单个样本的大门;也许在某个地方它能带来更多回报。但在我们开始之前,让我们根据我们的用例定制这个表达式。

当前的 σ2/n2\sigma^2/n^2σ2/n2 告诉我们每个额外样本的精度增益,但我们感兴趣的是每花费一美元的精度增益。

桥梁很简单:如果给定组中的样本成本为 c 美元,那么您每美元购买的精度就是每个样本的增益除以 c。带回组索引 (1, 0) 以明确成本可能因臂而异,治疗组的表达式变为

接下来是我们在分配下一个样本时引入经济意义的地方。我们得到了每个臂的每美元精确收益的表达式。我们还知道,一旦我们已经达到较高的样本量(或总支出),额外的美元就不再能给我们带来太多收益;此外,这美元的成本可能因部门而异。在这种情况下,直觉告诉我们,当我们向一个部门添加一美元比分配给另一个部门带来更多收益时,我们就会这样做。就最优而言,情况如下:

从这里开始,距离初始表达式有两步之遥。首先,我们进行叉乘,得到左边的 n:

如果我们打破这种平等,这仅仅意味着我们对分配下一美元的地方并不漠不关心。我们会在价值较高的地方添加它,当我们在那里分配额外的美元时,由于我们上面讨论的收益递减,分配另一美元就变得不那么有趣了。

然后,我们取平方根,将 n 的幂从幂中解放出来

在这里我们看到平方根是如何成为收益递减机制的。我们还可以看到,在各臂方差相等的假设下,我们得到更简单的最终结果:

为什么要假设这样的事情?因为当流量是随机分配的并且您对实验数据中的比率没有先验知识时,这样做是合理的。如果我们有理由不这样做,那么标准差的比率确实成为最佳样本比率的共同作者。

完整的圆圈。这就是今天的数学。

假设您在一家在线旅行社工作,团队想要测试由法学硕士支持的自由编写搜索(“葡萄牙的一个海滩小镇,适合步行,咖啡好喝”)与值得信赖的基于过滤器的搜索。治疗组中的每个用户在搜索时都会拨打按计量的 LLM 呼叫;在测试过程中,平均每位接受治疗的用户总计约为 0.20 欧元。旧的搜索也不是免费的;每个用户的计算费用约为 0.05 欧元。这是 4 倍的成本比。

规则是:n1/n0=0.05/0.20=1/2n_1/n_0 = \sqrt{0.05/0.20} = 1/2n1​/n0​=0.05/0.20​=1/2。每两个控件对应一个受治疗的用户; 33/67 的分配,而不是 50/50,也不是“四倍的价格,四分之一的用户”所建议的 20/80。

假设您的功率计算为 50/50,要求每组有 20,000 个用户:

50/50(不考虑成本的最佳运行时间):20,000 个处理,价格为 0.20 欧元,加上 20,000 个对照,价格为 0.05 欧元。总计:5,000 欧元。

33/67(成本最优运行时间):偏差放弃了一点敏感性,因此总人数增长以进行补偿;将 Var(τ^)Var(\hat\tau)Var(τ^) 固定为 n0=2n1n_0 = 2n_1n0​=2n1​,可得出 15,000 个治疗组和 30,000 个对照组。总计:15,000 欧元,0.20 欧元加上 30,000 欧元,0.05 欧元,即 4,500 欧元。

这是同样的学习,同样的能力,但费用却小了 10%。十分之一听起来可能不像是本世纪的抢劫,但这只是账单金额的十分之一:在某些情况下是数百万美元。 。不过,我们确实按运行时付费:总体科目数增加了 12.5%。增加 12.5% 的用户可能意味着要多运行一周;或 2 天以上。问题:什么时候我们会因为节省数千或数百万而感到高兴,并支付额外一周的运行时间作为回报?

现实生活中的其他复杂性

c0/c1\sqrt{c_0/c_1}c0​/c1​​启发式很简单。现在我们也知道它是怎么来的了。但我们需要把目光放远,看看它在数学领域之外是如何运作的。接下来,我将分享在进行倾斜分割之前我能想到的三件事。

你“失去”的电力会以更便宜的价格回来

我自己提出的一个反对意见是,偏离 50/50 会在给定的运行时间(以及隐含的样本大小)下失去动力,并且如果没有硬性约束,例如运行时间、总样本大小或预算,您只需运行更长的时间即可收回它。难道成本不会随着更长的运行时间而回升吗?

事实并非如此,因为额外的运行时间填满了廉价的手臂。我们在“将数字放在上面”一节中看到了这一点:保持功率固定并观察成分而不是总数。倾斜的设计需要比 50/50 多 12.5% 的受试者,但治疗人数减少了 25%,而对照组则增加了 50%。

昂贵的手臂也是你的学习手臂

使用平均边际成本;并期望它会摆动

您所支付的是日历时间;这就是这篇文章开头的速度与成本的权衡,最具体的形式。但我们需要考虑这种紧张关系的一个非常真实和实际的维度:在大多数平台上,运行时间和样本大小之间的关系不是线性的。日常用户(例如,基数的 20%)在最初几周内增长得很快,而我们必须等待相对较长的时间才能获得频率较低的用户(另外 80%)的加入。相反,对于新用户来说:随着时间的推移,这些用户通常会以或多或少固定的速率进入。

问题是,就(学习)速度而言,额外的等待可能会导致我们无法承受的更大成本。这使得两种类型的成本之间存在紧张关系:可直接衡量的货币成本与较长学习周期的间接成本。这是一个很容易被忽视的点,它可能会让我们自我感觉良好(因为我们是最优的),但同时也会损害业务,或者导致我们当中的速度魔鬼和会计师之间的利益冲突。

c0/c1\sqrt{c_0/c_1}c0​/c1​​想法缩小了昂贵的手臂,而这正是问题所在。你想了解的关于治疗的一切都在治疗组中:细分、治疗用户的护栏指标、“这实际上对谁有用”的问题。对于标题指标而言成本最优的拆分可能会让您无法回答任何后续问题。

因此,在提交之前,写下您将在读出中被问到的次要问题,并检查较小的手臂是否仍然为您关心的最细粒度的问题提供动力。这为您提供了 n1n_1n1 的底限;应用该楼层之上的成本规则。

您节省的费用将比承诺的公式少一点。作为交换,你不会以一个重要的顶线结束测试,并对接下来的每个问题耸耸肩。

该公式需要治疗对象的边际成本,而对于人工智能功能来说,这个数字不是一个常数。每个会话的令牌各不相同,大量用户的成本不成比例,缓存和重试会降低边际成本。每个用户的平均成本隐藏着一条肥尾巴,而尾巴就是钱的去向。

举措:估计试点或小型影子部署的边际成本,并将其作为一个范围而不是一个点。然后依靠启发式的一个友好属性:平方根抑制估计误差。从会计角度来看,4 倍与 5 倍的成本比率是一个很大的失误,但它几乎没有改变最佳分割。

使成本比率大致正确并继续;不要停止追逐小数的设计,无论如何平方根都会变平。

注意:固定成本,如构建本身、固定平台费用、预留容量合同,不会随分配而变化,因此它们无法更改最佳成本;只有账单的每用户部分属于 c1/c0c_1/c_0c1​/c0​。

那么,这给我们带来了什么? 50/50 的分配并不是自然法则;这是假设两个臂的成本相同的设计问题的最佳答案。一旦治疗对象的成本高于对照对象,该假设就会被打破,并且最佳分割移动:n1/n0=c0/c1n_1/n_0 = \sqrt{c_0/c_1}n1​/n0​=c0​/c1​​,远离昂贵的手臂,平方根保持精益温和,即使成本差距不是如此。为什么现在才开始考虑这个问题?凭借代理功能以及法学硕士驱动体验的成本,对待用户越来越意味着为该用户逐个会话付费。样本比率是在设计时、在任何账单存在之前承认这一点的少数杠杆之一。

同样重要的是知道何时不使用控制杆。如果成本比率接近 1,则平方根会将其扁平化为 50/50 无法区分的分割;保留默认值。如果治疗费用与决策的价值相比很小,那么优化将无法支付您向产品经理解释异国比率的会议费用。当团队渴望速度时,请记住偏差的费用:日历时间,以及可能存在于治疗组中的次要深入问题。在这些情况下,支付全价以获得更快的 50/50 答案简直是更好的交易。

总是很乐意接听 LinkedIn 上的对话。您可以通过经常访问这里或我的个人博客来了解我的文章的最新情况。