如何处理“自我挫败”的预测模型?


36

我正在观看一家大型零售商的ML专家的演讲,他们在那里开发了一种模型来预测缺货事件。

让我们假设一下,随着时间的流逝,他们的模型变得非常精确,这是否会以某种方式“自欺欺人”?也就是说,如果模型确实运行良好,那么他们将能够预见缺货事件并避免它们,最终达到一点点,甚至根本没有缺货事件。但是,如果是这样的话,将没有足够的历史数据来运行他们的模型,或者他们的模型出轨,因为过去用来指示缺货事件的因果关系不再起作用。

处理这种情况有哪些策略?

此外,可以预见相反的情况:例如,推荐系统可能会变成“自我实现的预言”,即使推荐项系统的输出确实驱动了这两个项目,但它们对的销量却有所增长有关。

在我看来,这两者都是某种反馈回路的结果,该回路发生在预测变量的输出与基于该反馈变量采取的操作之间。如何处理这种情况?


7
(+1)在一些涉及高等教育的类比情况下,人们谈论一种“自食其力”的模式。高校官员使用模型授予经济援助以实现某些与招生和经济援助相关的目标,结果是,最终,潜在学生的入学决定越来越少地由经济援助决定或由其预测。
rolando2 '18 -10-22

一般来说,这个问题很难回答,因为它在很大程度上取决于情况。在缺货的情况下,有很好的解决方案,但在推荐人的情况下,如果您的模型变得有点规范,可能根本就不会有什么大问题。
丹尼斯·贾赫鲁丁

Answers:


15

缺货(OOS)检测模型可能会自行失效有两种可能性:

  1. 输入和OOS之间的关系可能会随时间变化。例如,促销活动可能会导致OOS升高(促销活动比常规销售更难预测,部分原因是不仅平均销售增加,而且销售差异很大,而且“难以预测”通常会转化为OOS),但是系统及其用户可能会学到这一点,并积additional了额外的促销资源。一段时间后,促销和OOS之间的原始关系不再存在。

    这通常称为“模型转换” 或类似现象。您可以通过调整模型来克服它。最常见的方法是对输入的权重进行不同的加权,从而使较早的观测值的权重降低。

  2. 即使预测变量与OOS之间的关系不变,预测变量的分布也可能会发生变化。例如,某个特定库存单位(SKU)零销售的多天可能表示一个OOS-但是,如果模型运行良好,则OOS可能会全面降低,并且零销售的序列可能不会那么多。

    预测变量分布的变化应该不是问题。您的模型只会输出较低的OOS概率。


最后,您可能不必担心太多。OOS永远不会为零。确实发生了上述反馈机制,但直到完全消除OOS后它们才起作用。

  • 一些待处理的OOS可能根本无法避免。“我的货架上有一个单元,未来一周可能会面临五个单元的需求,但是下一个交货期是从今天起一周。”
  • 有些OOS将是非常难以预料的,即使他们可以避免的,如果他们在时间上是已知的。“如果我们知道我们将把托盘从叉车上放下并销毁所有产品,我们将另外订购一个。”
  • 零售商确实了解他们需要追求高服务水平,但是100%的目标是无法实现的。人们确实会进来并购买某些产品上的全部库存。这很难预测(见上文),而且非常罕见,以至您不想在可能发生的紧急情况下填满货架。比较帕累托定律:80%(甚至90%)的服务水平很容易实现,而99.9%的服务水平难得多。有意识地允许一些OOS。
  • 类似于摩尔定律的观点是:ML越好,期望值就越高,人们越难为模型付出生命。尽管OOS检测(和预测)算法得到改进,但零售商正忙于使我们的生活更加困难。
    • 例如通过变体增殖。在四种酸奶中检测OOS比在二十种不同口味中检测OOS更容易。为什么?因为人们吃的酸奶不多于五倍。取而代之的是,现在总需求几乎没有变化,分配给了五倍的SKU,而每个SKU的库存却是以前的五分之一。长尾巴正在扩大,信号越来越弱。
    • 或者通过允许使用您自己的设备进行移动结帐。这可能大大降低了入店行窃的心理障碍,因此系统清单将比已经存在的状况更糟,当然,系统清单可能是OOS的最佳预测指标,因此,如果不存在,系统模型将会恶化。

我恰好从事预测零售量的工作已经超过十二年,所以我对这样的发展确实有一些想法。


我可能会感到悲观,但是我认为除OOS检测外,其他ML用例的效果也非常相似。也许这不是悲观主义:这意味着问题将永远不会“解决”,所以即使从现在起几十年后,对我们来说仍然会有工作。


我特别同意你的最后评论。这种情况的最坏情况似乎是充分就业/没有免费午餐定理的起点。这是什么使IMO成为一个有趣的问题!
senderle '18 -10-23

26

如果您使用模型来支持有关干预系统的决策,那么从逻辑上讲,该模型应设法预测以给定干预为条件的结果。然后分别进行优化,选择预期效果最佳的干预措施。您并不是要预测自己的干预。

在这种情况下,模型可以预测需求(您不直接控制的变量),而这与库存选择相结合,将导致是否发生缺货事件。该模型应继续被“奖励”以正确预测需求,因为这是它的工作。缺货事件将取决于此变量以及您的库存选择。


2
这正是在实践中解决的方式。如果人们无法理解这些假设,那么一个黑匣子模型将无法提供对驱动因素的理解,而只是预测周三会发生缺货,因此使用范围非常有限。(关键假设是该模型尚未到位)。
丹尼斯·贾赫鲁丁

@DennisJaheruddin:另一方面,建立一个可以预测尽管及时重新订购产品何时缺货的模型,但您可以做出致命决定。
约书亚

1
它要复杂得多,因为在他们使用的模型中,需求信号只是一个因素。但是,他们还根据商店的状况使用其他因素来说明库存在商店中而不在货架上的情况(例如,在后台,或者在收银机或服务台之一,因为客户更换了在最后一刻他们的想法)。为此,他们不仅使用需求,还使用其他因果驱动程序。
恢复莫妮卡

@Alex,无论模型是否明确表示它们,复杂性都等于管理不同位置的简单供求机制网络。该模型的目标可以更准确地描述为预测库存水平,而不是需求,但这只有在您特别考虑到网络中(库存)点上的供需双方都存在不受控制的因素时才有意义级别很重要。诸如订购更多库存或让员工更经常地补充货架等干预措施仍然需要成为模型中的因素。

您可能要提到需求随库存而变化的可能性。
Yakk

9

大概您可以跟踪何时发生补货事件。然后,如果不使用该模型来补充库存,则算出何时库存将被耗尽只是算法问题。

假设任何正库存水平与销售水平无关。评论者说,这种假设实际上是不成立的。我都不知道-我不处理零售数据集。但为简化起见,我提出的方法允许人们使用反事实推理进行推理。这种简化是否过于现实以至于无法给出有意义的见解取决于您。


我想我看不出如何回答这个问题。据我了解,这些问题包括:(a)在生产中实施模型后,由于我们更改了数据分配,因此缺货的最佳预测函数现在与以前完全不同。(b)我们的模型越好,缺货事件就会越少,因此准确预测未来的困难就越大。知道“的时候,股票将被耗尽了该模型没有被用来进货库存”是不伦不类的,因为模型是在生产中从现在开始
杰克西部荒野

@JakeWestfall这种类型的分析称为反事实推理。如果您始终知道库存,并且知道何时进行补货,则可以创建一个假设事实,假设没有发生补货:只需在补货发生后从库存中减去补货即可。现在您有了一个时间序列,该序列反映了您从未补货的假设。将此时间序列向前进行,直到缺货为止。现在您知道什么时候不进行补货就会出现缺货的情况。这个反事实如何具有不同的数据分布?
恢复莫妮卡

我都明白 我不明白的是这如何解决OP中提出的问题。例如,假设缺货的一个强有力的预测指标是是否在一个月的第一天(当许多人得到报酬时)。使用我们的新模型,我们现在可以通过在每个月底之前抢先订购更多单位来避免发生缺货事件。因此,现在“每月的第一天”将不再是未来缺货的有用预测指标。如果没有提前订购,我们确实可以计算出缺货的反事实概率,但这对我们有什么帮助呢?
杰克·韦斯特伦

2
这对我们有帮助,因为如果没有补货,它会给您反事实的缺货概率。OP正在询问“如何处理”这样的事实,即减少缺货发生的模型在原始数据中不会有那么多的缺货发生。我的观点是,您可以推断出缺货的反事实发生,并以此作为替代。您想要什么帮助?
恢复莫妮卡

1
@Sycorax:您假设购买者的行为不受架子上可见物品数量的影响。那是一个无效的假设。影响力可能很弱,但并非没有。
Ben Voigt


2

要记住的一件事是ML是工具性目标。最终,我们不想预测缺货事件,我们想防止缺货事件。预测缺货事件只是为此目的的一种手段。因此,就II型错误而言,这不是问题。要么我们继续拥有OOSE,要么在这种情况下我们有数据来训练我们的模型,否则我们没有,这已经解决了创建模型以解决的问题。可能出现问题的是I型错误。掉入熊巡逻很容易谬论,您有一个构建为防止Y的系统X,您看不到Y,因此您得出结论X阻止了Y,并且关闭X的任何尝试都基于“但是做得很好”阻止Y!” 组织可以被锁定在昂贵的程序中,因为没有人愿意冒Y回来的风险,并且在没有允许这种可能性的情况下,很难确定X是否确实必要。

然后,要权衡您愿意(根据您的模型)为获得对照组而偶尔进行的次优行为的程度。这是任何积极探索的一部分:如果您拥有自己认为有效的药物,则必须有一个对照组,而该对照组没有让该药物确认其确实有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.