多臂强盗:http ://en.wikipedia.org/wiki/Multi-armed_bandit
提升建模:http ://en.wikipedia.org/wiki/Uplift_modelling
这两种方法有何不同?它们有何相似之处?这个比那个好吗?
编辑:如果需要示例场景,请考虑以下内容。我们在网上放置横幅广告,并希望定位到合适的人。基本上,那些看到广告的人更有可能采取所需的行动。这听起来像是一个提升模型问题,但我不确定武装匪徒是否也适用于这种情况。
多臂强盗:http ://en.wikipedia.org/wiki/Multi-armed_bandit
提升建模:http ://en.wikipedia.org/wiki/Uplift_modelling
这两种方法有何不同?它们有何相似之处?这个比那个好吗?
编辑:如果需要示例场景,请考虑以下内容。我们在网上放置横幅广告,并希望定位到合适的人。基本上,那些看到广告的人更有可能采取所需的行动。这听起来像是一个提升模型问题,但我不确定武装匪徒是否也适用于这种情况。
快五个月没有回音了!我是这样理解的:提升模型使用从随机控制实验中收集的结果来更好地选择下一个周期的目标。多臂老虎机问题没有控制组和实验组。相反,它们是在线学习的问题,您可以在其中动态切换不同的治疗方法。
TL;DR
两种方法都解决了选择最佳治疗的一般问题。
Uplift 模型可以灵活地与所有最先进的 ML 模型(例如基于树的学习器)一起使用,并提供对客户治疗效果的可解释估计。
当有多个治疗选择时,提升模型很难应用,因为我们进行了一项随机实验,收集每种潜在治疗的数据。例如,想象一下,不是四个优惠券价值,而是 1000 个横幅设计。
上下文老虎机算法还为客户模拟治疗结果,但一次进行一项观察并专注于有利可图或尚未充分探索的治疗。重点允许他们处理大量的处理,但通常需要估计模型不确定性和在线更新,因此分析和部署不同于标准的 ML 管道。
效果估计与决策优化
Uplift 建模和 Bandit 算法都是研究治疗因果效应的方法,但它们的原始应用不同。
隆起型模型来自医学和计量经济学文献,最初用于估计平均值,然后通过少量治疗 (1)进行随机实验研究 (3)来估计条件平均治疗效果 (2 ) 。虽然大部分文献的目标是准确估计治疗效果,但“提升”流使用相同的方法来告知客户定位决策并定位那些具有高治疗“分数”的人。
Bandit 算法来自计算机科学和优化文献,是强化学习的一种。在动作 (2) 之间进行选择的原始应用程序,当可能存在许多可能的动作 (1)通过重复试验 (3) 有效地探索其结果时,目标是在尽可能少的次优决策后确定最有利可图的动作。
基本的老虎机算法搜索平均有利可图并忽略客户属性的行为,但上下文老虎机对以客户为条件的结果建模。
1) 处理/动作的数量
Bandit 算法至少在原则上被设计为在大的动作空间上工作,例如数百个潜在的横幅。我们希望他们迅速忽略无利可图的行为,并在实验期间专注于少数有利可图的行为。
提升模型使用每种处理下的随机观察样本来估计其与其他处理或对照组相比的效果。例如,我们会为每个可用横幅收集 5000 个客户的结果。如果我们向随机的 5000 名客户展示数百个横幅中的每一个,这个实验就会变得非常庞大。然而,当适用的隆起模型稳定并且治疗估计具有良好的统计特性时。
2) 估计的解释
Uplift 模型预测了处理对客户的影响,例如,如果我们向他展示这个广告横幅,该客户将花费多少。该预测可能是调查的目标,但通常用于进行成本效益分析并针对增量收入超过报价成本的目标客户。
Bandit 算法直接关注决策问题。我相信一些常见的方法确实可以解释估计的效果(例如linUCB
),但是策略梯度方法的预测分数很难分析。
3) 数据收集
用于提升建模的数据是在一个随机实验中收集的,其中N个客户随机看到其中一个横幅。每当我们想要重新估计模型时,我们都需要运行另一个实验。
Bandit 算法在对客户进行一对一评估的环境中主动收集数据。治疗分配不是随机的,而是基于当前的估计。通常,强盗算法将播放具有高预期结果的治疗方法和结果不确定的治疗方法。相反,他们停止使用某些低结果的治疗方法。估计不确定性的必要性是使赌博机算法设计变得困难的一件事。
原则上,老虎机算法设计为通过分配处理,然后观察结果,然后在下一次预测之前更新模型来工作。模型更新可以在收集一些观察后批量进行,但在线训练是决策优化的重要组成部分。在线培训是使设计和部署更加困难的另一件事。
进一步阅读
根据您的示例进行总结:在这种情况下,您将使用A/B 测试(更多批量方法)或多臂老虎机(更多在线方法)进行提升建模。
szkx 的回答做出了合理的区分,但有一个小错误,即隆起建模并非旨在更好地为下一个周期选择目标。
提升模型的关键在于它们同时考虑了治疗组和未治疗组(对照组)。如果你天真地不这样做,你就不能告诉那些有可能从治疗中受益的个体——不管治疗如何——具有倾向于产生积极结果的特征。因此,提升模型旨在诚实地量化治疗的实际效果,并确定最有可能从治疗中受益的个体的特征。
这可以表示为 A/B 测试,其中A是对照组,B是治疗组。这也可以表示为双臂老虎机,其中一只手臂是对照组,一只手臂是治疗组。(A/B 测试可以被认为是一种老虎机问题,您需要进行批量更新而不是连续更新。)
所以这两个概念是多种多样且复杂的。您可以进行批量或在线隆起建模。最常见的情况是批处理,除了处理/非处理之外还有许多附加功能。你可以用额外的特征来做强盗——上下文强盗——这比简单的强盗要复杂得多。多臂强盗的手臂不必是治疗或非治疗类别的反映。
底线是您可以使用多臂老虎机进行在线提升建模,但是这两个概念都不是一个子集,一个是否“优于”另一个取决于您的目标和约束。