磐创AI出品
来源 | towardsdatascience
编译 | Flin
作者 | Aparna Dhinakaran
【导读】当过去与现在不再相关时,我们如何预测未来?
极端环境的挑战
冠状病毒是2020年的“黑天鹅”。这种病毒首次出现,不仅是一个出人意料的极端异常事件,而且人类试图控制这种病毒的反应也在世界各地的医疗、商业、金融、零工经济、信贷、商业、自动交通和旅游等系统中掀起了巨大的波澜。
“黑天鹅”事件对机器学习(ML)模型提出了特殊的挑战。ML模型根据以前观察到的情况进行训练,以预测未来的情景。然而,今天这些模型看到的事件与它们曾经训练的对象有很大的不同。许多企业(特别是在信贷和金融领域)的组织中运行着100 -1000个实时生产模型,对影响未来业务结果的数据做出不正确的决策。未来几天或几个月可能出现问题的模型包括信贷、房屋定价、资产定价、需求预测、工厂的供求关系、广告定价等等。
建立一个模型来预测场景,而这个模型的训练数据从未在以往的训练数据中观察到,可以说建立这个模型是一件很困难的事情。
标准的模型训练过程向模型抛出尽可能多的数据,并将数据结构放入跨事件的通用数据中。一个真正的“黑天鹅”事件在其他事件之间没有足够的可学习的结构,需要让人们去填补数据和模型的空白。这该怎么办?
在这篇博客文章中,我们将首先通过进入系统的一些极端范围的数据点来量化这个“黑天鹅”事件。其次,我们将介绍一些最佳实践,通过对生产模型进行鲁棒性的监控、分析和故障排除来跟踪异常事件。
我们现在的环境有多极端
我们首先要问的问题是,当前的环境究竟有多极端?
毫无疑问,这是非常极端的。
今天,当你从天气、失业数据、交通模式、用户支出等方面查看进入生产模型的输入特征数据时,你会发现它与模型的训练数据有很大的不同。让我们对其进行量化。
首先,我们来看看本周刚刚发布的失业数据。328万申请失业救济的人数是第二高读数的4 - 5倍,是 25倍的sigma 事件。
任何使用失业数据作为输入并对这些数据做出决策的模型,都使用了超出期望值20个sigma的特征。这是一个每10万年才会发生一次的事件! 这只是极端事件范围的一个例子,这些极端事件正被输入到制定日常业务决策的模型中。
模型并不会完美地处理每一个意外的输入。记住这一点,重要的是要考虑整个系统对这些输入的弹性,以及在出现问题时进行故障排除的能力。最重要的是团队要有可观察的模型; 如果你不能观察,你就不能适应。这意味着要对模型决策进行检测和分析。
模型可观测性要求:
- 异常值的事件应该能够被检测到并自动浮现
- 异常值事件应该与分析联系起来,以便对模型响应进行故障排除
很明显,失业数据将严重脱离分布。
让我们看看关于汽车流量的数据。
纽约市星期三(3月18日)至星期二(3月24日)的交通量。交通量已经下降到日交通量的20%左右,从日交通量的1%到10%不等。
这一降幅远远超出了每日预期值,也只是模型预期值的一小部分
根据测量,迈阿密的客流量下降幅度没有纽约那么大。看来迈阿密人对隔离的态度不像纽约人那么强硬。在这种情况下,使用交通量作为输入特性的ML模型对城市进行特定的预测,它的输入变量会根据城市的不同而变化。
模型可观测性要求:
- 监控输入数据的分布变化
- 模型输入的鲁棒拼接和滤波能力
本周,我们已经看到人工智能对因冠状病毒产生的事件没有准备。天气预报的预测一直不准确,我们也看到银行在考虑人工智能模型可能无法应对市场低迷的情况。
在这些极端时期建立有弹性的模型
对于面临这些快速变化的企业来说,目前在生产中使用的AI/ML模型是根据与当今情况截然不同的数据进行训练的。
当一个企业的模型之前没有看到这些观察结果时,该怎么办?换言之,当过去与现在不再相关时,我们如何预测未来?
随着COVID-19继续影响许多人类生产的系统,利用AI/ML的企业将不得不在其生产环境中建立弹性模型。随着模型性能的波动,企业需要对生产模型进行实时监控,以了解模型输入是如何变化的,以及模型的不足之处。
输入的数据必须输出
这一切都是从数据进入用于生成预测的模型开始的。
如果罕见事件和其他极端事件之间有相似之处,可以使用多种方法将预测组合在一起,以创建基准期并启用分析。如果一个罕见的事件在输入数据结构中与训练集中的任何其他数据组都没有关系,则仍然需要监控它对模型的影响。
以COVID-19为例,这些情景不仅仅是一次性的异常情况,而是在世界各地不同城市发生的数以百万计的快速发展趋势,所有这些趋势都有不同的时间线和反应。展开场景的规模需要许多不同的分析和检查,跨越许多不同的预测子组。
这里有一些输入级监视器,一个AI/ML模型在生产中应该有:
- 输入检查以确定特性的值和分布是否与正常基准周期有显著不同
- 检查单个事件或少量最近事件以检测分布出错问题
- 检测你的模型最敏感的特征是否发生了巨大的变化
- 用于确定特征与训练集之间差距的统计信息
模型如何响应?
一旦知道模型的输入发生了变化,接下来要监视的是模型如何响应极端输入。
- 检查预测的特定子类的模型性能。能源、航空业或旅游业等某些行业可能存在重大风险。你需要对不同的预测组进行快速的在线检查
- 使用以前的时段生成最坏情况和基本情况的场景,然后与结果进行比较
- 根据你收到的每一个新的真实事件(真实世界的预测反馈)实时监控预测
- 如果由于时间延迟而无法获得真实世界的反馈,请使用代理度量——可以预测和测量的东西来确定模型性能
极端环境下生产ML模型的最佳实践
在Arize AI,我们每天都在考虑生产环境中的ML可观测性和弹性。我们的目标是在这个不确定的时期向你们的团队传授我们的一些经验。生产ML模型的最佳实践离生产软件的最佳实践不远——构建可观察性工具以了解模型或软件在影响客户之前捕获问题时发生的情况。
从我们在许多公司部署AI/ML模型的背景来看,我们正在这些极端环境中共享一些用于生产ML模型的最佳实践。
- 跟踪并识别异常事件
这包括跟踪输入数据和异常事件上的模型性能。在为未来的极端环境收集训练数据时,对这些事件进行注释并能够过滤离群事件会有所帮助。同样重要的是,要考虑是否要在数据中包含离群事件,以用于未来的模型训练。该模型将积极应对未来的极端情况,但它也可能认为极端情况是新常态。
- 决定一个模型备份计划
在过去,当你的模型没有什么可以学习的时候,它会做什么?了解你的模型在过去的极端环境中是如何执行的,可以帮助你了解你的模型现在是如何执行的。如果你的模型表现不佳,你能否基于最后N分钟或N天来建立朴素预测,并将你的模型性能与此朴素模型进行比较?
- 找到类似的事件
你是否对过去的类似事件有足够的可观察性来为当前的情况建立相似的模型?例如,如果你的模型将失业数据作为输入,那么你可能能够利用类似经济衰退中的失业数据,比如2008年的经济衰退。
- 建立一个多样化的模型组合并比较模型性能
与批量预测相比,对外部世界做出反应的实时模型在今天可能表现得更好。拥有一个多样化的模型组合,使团队能够比较从模型性能和路由流量到对极端环境有更好反应的模型。
- 当模型性能无法改善时,了解模型预测的不确定性。
有时,可能没有一个好的模型。在这些情况下,你知道你的模型有多不确定吗?在这种情况下,考虑Bayesian方法,在该方法中,你将返回模型的预测及其置信水平。
注意安全并监控你的模型!
参考文献:
https://www.aljazeera.com/news/2020/03/weather-predictions-affected-coronavirus-outbreak-200326104501955.html
https://www.americanbanker.com/opinion/ai-models-could-struggle-to-handle-the-market-downturn
原文链接:https://towardsdatascience.com/ai-in-the-time-of-corona-c6d3193fada8
- End -