目标是选择具有最大影响力的变体
原文towardsdatascience.com/targeting-variants-for-maximum-impact-bdf26213d7bc?sourcecollection_archive---------13-----------------------#2024-08-30如何使用因果推断来改善关键的商业指标https://medium.com/alexander.polyakov?sourcepost_page---byline--bdf26213d7bc--------------------------------https://towardsdatascience.com/?sourcepost_page---byline--bdf26213d7bc-------------------------------- Alexander Polyakov·发表于 Towards Data Science ·7 分钟阅读·2024 年 8 月 30 日–Egor Kraev和Alexander Polyakovhttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/db54a5a09fa2eddf2447e6c262e37065.png图片由作者提供假设你想给客户发送一封电子邮件或者对你的客户界面进行更改并且你有多个变体可以选择。你如何选择最佳选项最简单的方法是进行A/B/N 测试将每个变体展示给你的客户的随机子样本并选择得到最佳平均响应的变体。然而这种方法假设所有客户都有相同的偏好且隐含地认为客户之间的差异仅仅是需要平均的噪音。我们能做得比这更好吗能否根据客户的可观察特征为每个客户选择最适合的变体在评估实验结果时真正的挑战在于根据可观察到的客户特征衡量每个变体的相对影响力。这并不像听起来那么简单。我们不仅仅关心具有特定特征的客户接收某个变体后的结果还关心这个变体的影响力即与另一个变体相比结果的差异。与结果本身不同影响力是不可直接观察的。例如我们无法同时向同一个客户发送和不发送相同的电子邮件。这带来了一个重大挑战。我们如何解决这个问题呢**答案有两个层面**第一我们如何最大化任务分配的影响其次一旦我们选择了一个分配策略我们如何最好地衡量它与纯随机分配相比的表现比较不同任务分配的表现第二个问题的答案比第一个更简单。做这件事的直觉方法是将你的客户群体分成两组一组是完全随机分配变体另一组则是根据最大化影响的最佳分配策略来分配——然后比较结果。然而这样做是浪费的每组的样本量只有总样本量的一半因此你的平均结果会更加嘈杂而且更有针对性的分配只能让样本中的一半客户享受到好处。**幸运的是有一种更好的方法**首先你应该让你的有针对性的分配也带有一定的随机性只是偏向你认为在每种情况下最好的选项。这是合理的因为你永远不能确定什么是每个特定客户的最佳选择而且它允许你在收获已知成果的同时继续学习。其次当你收集到使用特定变体分配策略的实验结果时你可以使用一种统计方法叫做ERUPT或政策值来获得任何其他分配策略特别是随机分配变体的平均结果的无偏估计。听起来像魔法吗不这只是数学。查看ERUPT 基础中的笔记本了解一个简单的示例。寻找最佳任务分配https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ce9aa4e665a1c9b8ff303a87eb429fb7.png图片来源作者能够根据来自单一实验的数据比较不同任务的影响是非常棒的但我们如何知道哪个任务分配策略是最好的呢在这里CausalTune再次发挥了作用。我们如何解决上面提到的挑战——估算向同一客户展示不同变体所产生的结果差异——因为我们无法直接观察这种差异呢顺便提一下这种估算被称为提升建模它是一种特定的因果建模。直觉方法是将展示给每个客户的变体视为客户的另一个特征并在结果特征和结果集上拟合你最喜欢的回归模型例如XGBoost。然后你可以查看如果我们仅改变“特征”中变体的值拟合模型对于某个客户的预测会发生多大变化并将此作为影响估计。这个方法被称为S-Learner。它简单直观但根据我们的经验通常表现非常糟糕。你可能会想我们怎么知道它表现得非常糟糕既然我们无法直接观察到影响一种方法是查看合成数据在那里我们知道正确的答案。但是有没有一种方法可以在真实世界数据中评估影响力估计的质量呢在这种情况下真实值在任何特定案例中都是不可知的事实证明是有的我们认为我们的方法在这一领域具有原创贡献。假设有一个简单的情形只有两种变体——对照组没有处理和实验组。对于一组给定的处理影响力估计来自我们希望评估的特定模型如果我们将该估计从处理样本的实际结果中减去我们预计处理样本和未处理样本的特征、结果组合将具有完全相同的分布。毕竟它们是从同一个总体中随机抽样的现在我们所需要做的就是量化这两个分布的相似性这样我们就得到了一个影响力估计的评分。现在你可以为不同的提升模型打分你可以对它们的类型和超参数进行搜索这正是CausalTune的用途并选择最佳的影响力估计器。CausalTune目前支持两种评分方式ERUPT和能量距离。详情请参见原始的CausalTune 论文。使用 CausalTune 优化影响力分配如何在实践中利用这一点以最大化你期望的结果例如点击率你首先选择你的总体可达客户群体并将其分为两部分。你从一个完全随机的变体分配实验开始或者根据你之前的信念使用某些启发式方法。此时至关重要的是不论你的信念有多强你总是要在每个分配中保留一些随机性 —— 你只能根据客户特征调整分配的概率但绝不能让它们完全变为确定性的分配 —— 否则你将无法从实验中学到更多一旦第一次实验的结果出来后你可以首先像上述所述使用ERUPT来估计你使用启发式分配方法相比完全随机分配所带来的平均结果的改进。但更重要的是你现在可以在实验结果上拟合CausalTune从而根据客户特征生成实际的影响力估计然后你可以利用这些估计来创建一个新的、更好的分配策略可以通过为每个客户选择具有最高影响力估计的变体或者更好的是使用汤普森抽样在利用现有知识的同时持续学习并将其应用于第二个实验针对其余可达客户群体。最后你可以在第二次实验的结果上使用ERUPT以确定你新的策略相比随机策略以及之前的启发式策略的超越表现。Wise 案例研究优化点击率我们在 Wise 的数据科学团队工作拥有许多实际的因果推断和提升模型的应用案例。这里有一个 Wise 早期应用的故事我们几乎就是这么做的。该电子邮件营销活动的目标是向现有的 Wise 客户推荐他们应该尝试的下一个产品。第一波电子邮件使用了一个简单的模型我们通过查看现有客户使用每个产品的初次使用顺序训练了一个梯度提升模型预测给定前几个元素后该序列中的最后一个元素是什么不使用其他任何数据。在随后的电子邮件营销活动中我们使用该模型的预测来偏向分配最终得到了1.90%的点击率——而根据ERUPT估算相同实验结果下随机分配的点击率为1.74%。然后我们在这些数据上训练了CausalTune并使用该模型制定了两种新的变体分配策略。第一个策略是**“贪心”**的即始终选择模型预测最高影响的变体。第二个策略不仅使用了影响估算值还使用了它们的标准差也由模型提供并采用了Thompson 采样来生成分配概率。贪心分配的样本外ERUPT估算为2.18%而Thompson 采样策略为2.22%相比随机分配提高了25%一个令人惊讶的发现是尽管Thompson 采样策略具有随机性但其估计效果不逊色于贪心策略。这是一个好消息因为像Thompson 采样这样的随机策略使我们能够继续从下一个实验结果中学习同时最大化利用我们已有的知识。因此我们建议使用Thompson 采样从拟合的因果模型中创建策略而不是使用贪心方法——更多内容将在下一篇文章中介绍。我们目前正在准备该实验的第二波以观察ERUPT预测的增益是否会在真实的点击率中显现。结论CausalTune为您提供了一个独特的、创新的工具包帮助您优化个体客户的目标定位以最大化期望的结果比如点击率。我们的AutoML因果估计器可以可靠地估算不同变量对客户行为的影响而ERUPT估计器允许您将实际实验的平均结果与其他分配选项进行比较提供了无需牺牲样本量的性能测量。