博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

Bosch 使用 Amazon Forecast 和 Amazon SageMaker 自定义模型进行大规模收入预测

这篇文章由博世人工智能中心 (BCAI) 的 Goktug Cinar、Michael Binder 和 Adrian Horvath 共同撰写。

对于大多数组织的战略业务决策和财务规划而言,收入预测是一项具有挑战性但至关重要的任务。 通常,收入预测是由财务分析师手动执行的,既耗时又主观。 对于需要在多个粒度级别跨广泛的产品组和地理区域进行收入预测的大型跨国企业组织而言,这种手动工作尤其具有挑战性。 这不仅需要预测的准确性,还需要预测的层次连贯性。

Bosch 是一家跨国公司,其实体在多个领域开展业务,包括汽车、工业解决方案和消费品。 鉴于准确和连贯的收入预测对健康的业务运营的影响, 博世人工智能中心 (BCAI) 一直在大力投资使用机器学习 (ML) 来提高财务规划流程的效率和准确性。 目标是通过 ML 提供合理的基线收入预测来减轻手动流程,金融分析师只需要使用他们的行业和领域知识进行偶尔的调整。

为了实现这一目标,BCAI 开发了一个内部预测框架,能够通过各种基础模型的定制集合提供大规模的分层预测。 元学习器根据从每个时间序列中提取的特征选择性能最佳的模型。 然后对来自所选模型的预测进行平均以获得聚合预测。 通过实施 REST 风格的接口,架构设计是模块化和可扩展的,它允许通过包含其他模型来持续改进性能。

BCAI 与 亚马逊机器学习解决方案实验室 (MLSL) 以整合基于深度神经网络 (DNN) 的收入预测模型的最新进展。 神经预测器的最新进展已经证明了许多实际预测问题的最先进性能。 与传统的预测模型相比,许多神经预测器可以合并额外的协变量或时间序列的元数据。 我们将 CNN-QR 和 DeepAR+ 这两个现成的模型包含在 亚马逊预报,以及使用训练的自定义 Transformer 模型 亚马逊SageMaker. 这三个模型涵盖了神经预测器中常用的一组具有代表性的编码器主干:卷积神经网络 (CNN)、顺序递归神经网络 (RNN) 和基于转换器的编码器。

BCAI-MLSL 合作伙伴关系面临的主要挑战之一是在 COVID-19 的影响下提供稳健和合理的预测,这是一场史无前例的全球事件,导致全球公司财务业绩出现巨大波动。 由于神经预测器是根据历史数据进行训练的,因此基于波动较大时期的分布外数据生成的预测可能不准确且不可靠。 因此,我们建议在 Transformer 架构中添加一个掩蔽注意力机制来解决这个问题。

神经预测器可以捆绑为单个集成模型,或单独合并到博世的模型世界中,并通过 REST API 端点轻松访问。 我们提出了一种通过回测结果集成神经预测器的方法,随着时间的推移提供有竞争力和稳健的性能。 此外,我们调查和评估了许多经典的分层协调技术,以确保预测在产品组、地理区域和业务组织之间一致地聚合。

在这篇文章中,我们展示了以下内容:

  • 如何将 Forecast 和 SageMaker 自定义模型训练应用于分层、大规模时间序列预测问题
  • 如何使用 Forecast 中的现成模型集成自定义模型
  • 如何减少 COVID-19 等破坏性事件对预测问题的影响
  • 如何在 AWS 上构建端到端的预测工作流程

挑战

我们解决了两个挑战:创建分层的大规模收入预测,以及 COVID-19 大流行对长期预测的影响。

分层、大规模的收入预测

财务分析师的任务是预测关键财务数据,包括收入、运营成本和研发支出。 这些指标提供不同聚合级别的业务规划见解,并支持数据驱动的决策。 任何自动化预测解决方案都需要在任意业务线聚合级别提供预测。 在博世,聚合可以被想象为分组时间序列,作为更一般的层次结构形式。 下图显示了一个具有两级结构的简化示例,它模仿了博世的分层收入预测结构。 总收入根据产品和地区分为多个级别的聚合。

博世需要预测的时间序列总数达到数百万。 请注意,顶级时间序列可以按产品或地区进行拆分,从而创建通往底层预测的多条路径。 需要在层次结构中的每个节点上预测收入,预测范围为未来 12 个月。 提供每月历史数据。

层次结构可以使用以下形式表示,并带有求和矩阵的符号 S (海德曼和阿萨纳索普洛斯):

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

在这个等式中, Y 等于以下内容:

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

在这里, b 表示时间的底层时间序列 t.

COVID-19 大流行的影响

COVID-19 大流行给预测带来了重大挑战,因为它对工作和社会生活的几乎所有方面都产生了破坏性和前所未有的影响。 对于长期收入预测,中断也带来了意想不到的下游影响。 为了说明这个问题,下图显示了一个样本时间序列,其中产品收入在大流行开始时经历了显着下降,之后逐渐恢复。 典型的神经预测模型会将收入数据(包括分配外 (OOD) COVID 时期)作为历史背景输入,以及模型训练的基本事实。 结果,产生的预测不再可靠。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

建模方法

在本节中,我们将讨论我们的各种建模方法。

亚马逊预报

Forecast 是 AWS 的一项完全托管的 AI/ML 服务,可提供预配置的最先进的时间序列预测模型。 它将这些产品与自动超参数优化、集成建模(对于 Forecast 提供的模型)和概率预测生成的内部功能相结合。 这使您可以轻松获取自定义数据集、预处理数据、训练预测模型并生成可靠的预测。 该服务的模块化设计进一步使我们能够轻松查询和组合来自并行开发的其他自定义模型的预测。

我们合并了来自 Forecast 的两个神经预测器:CNN-QR 和 DeepAR+。 两者都是有监督的深度学习方法,可以为整个时间序列数据集训练一个全局模型。 CNNQR 和 DeepAR+ 模型都可以获取关于每个时间序列的静态元数据信息,在我们的案例中,它们是对应的产品、区域和业务组织。 他们还自动添加时间特征,例如一年中的月份,作为模型输入的一部分。

带有 COVID 注意面具的变压器

变压器架构(瓦斯瓦尼等人。),最初是为自然语言处理 (NLP) 设计的,最近成为时间序列预测的流行架构选择。 在这里,我们使用了中描述的 Transformer 架构 周等。 没有概率日志稀疏注意。 该模型采用典型的架构设计,结合了编码器和解码器。 对于收入预测,我们将解码器配置为直接输出 12 个月的预测,而不是以自回归的方式逐月生成预测。 根据时间序列的频率,添加额外的时间相关特征(例如一年中的月份)作为输入变量。 描述元信息(产品、区域、业务组织)的附加分类变量通过可训练的嵌入层输入网络。

下图说明了 Transformer 架构和注意力屏蔽机制。 注意屏蔽应用于所有编码器和解码器层,以橙色突出显示,以防止 OOD 数据影响预测。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

我们通过添加注意掩码来减轻 OOD 上下文窗口的影响。 该模型经过训练,通过掩码很少关注包含异常值的 COVID 时期,并使用掩码信息执行预测。 注意掩码应用于解码器和编码器架构的每一层。 掩蔽窗口可以手动指定,也可以通过异常值检测算法指定。 此外,当使用包含异常值的时间窗口作为训练标签时,损失不会反向传播。 这种基于注意力掩蔽的方法可用于处理其他罕见事件带来的中断和 OOD 案例,并提高预测的稳健性。

模型合奏

模型集成的预测性能通常优于单一模型——它提高了模型的通用性,并且更擅长处理具有不同周期性和间歇性特征的时间序列数据。 我们采用了一系列模型集成策略来提高模型性能和预测的稳健性。 深度学习模型集成的一种常见形式是聚合来自具有不同随机权重初始化的模型运行或来自不同训练时期的结果。 我们利用这种策略来获得 Transformer 模型的预测。

为了进一步在不同的模型架构(例如 Transformer、CNNQR 和 DeepAR+)上构建集成,我们使用泛模型集成策略,根据回测结果为每个时间序列选择性能最佳的前 k 个模型,并获得它们的平均值。 因为回测结果可以直接从经过训练的 Forecast 模型中导出,所以该策略使我们能够利用像 Forecast 这样的交钥匙服务以及从 Transformer 等自定义模型中获得的改进。 这种端到端的模型集成方法不需要训练元学习器或计算用于模型选择的时间序列特征。

分级和解

该框架自适应地结合了广泛的技术作为分层预测协调的后处理步骤,包括自下而上 (BU)、自上而下与预测比例协调 (TDFP)、普通最小二乘 (OLS) 和加权最小二乘 ( WLS)。 这篇文章中的所有实验结果都是使用自上而下的预测比例对账报告的。

架构概述

我们在 AWS 上开发了一个自动化的端到端工作流程,利用 Forecast、SageMaker、 亚马逊简单存储服务 (Amazon S3), AWS Lambda, AWS步骤功能 AWS云开发套件 (AWS CDK)。 部署的解决方案通过 REST API 使用 Amazon API网关,通过以预定义的 JSON 格式返回结果。

下图说明了端到端预测工作流程。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

该架构的关键设计考虑因素是多功能性、性能和用户友好性。 该系统应该具有足够的通用性,可以在开发和部署过程中整合多种算法,所需的更改最少,并且可以在未来添加新算法时轻松扩展。 该系统还应为 Forecast 和 SageMaker 添加最小开销并支持并行训练,以减少训练时间并更快地获得最新预测。 最后,该系统应该易于用于实验目的。

端到端工作流依次运行以下模块:

  1. 用于数据重新格式化和转换的预处理模块
  2. 一个模型训练模块,在 SageMaker 上结合了预测模型和自定义模型(两者并行运行)
  3. 支持模型集成、层次协调、度量和报告生成的后处理模块

Step Functions 作为状态机从头到尾组织和编排工作流。 状态机运行配置了一个 JSON 文件,其中包含所有必要信息,包括 Amazon S3 中历史收入 CSV 文件的位置、预测开始时间和模型超参数设置以运行端到端工作流。 创建异步调用以使用 Lambda 函数在状态机中并行化模型训练。 所有历史数据、配置文件、预测结果以及回测结果等中间结果都存储在 Amazon S3 中。 REST API 构建在 Amazon S3 之上,以提供用于查询预测结果的可查询接口。 该系统可以扩展以包含新的预测模型和支持功能,例如生成预测可视化报告。

评价

在本节中,我们详细介绍了实验设置。 关键组件包括数据集、评估指标、回测窗口以及模型设置和训练。

数据集

为了在使用有意义的数据集的同时保护博世的财务隐私,我们使用了一个合成数据集,该数据集与来自博世一个业务部门的真实收入数据集具有相似的统计特征。 该数据集总共包含 1,216 个时间序列,收入按月记录,涵盖 2016 年 2022 月至 877 年 XNUMX 月。该数据集以最细粒度级别(底部时间序列)提供 XNUMX 个时间序列,并表示相应的分组时间序列结构作为求和矩阵 S。每个时间序列与三个静态分类属性相关联,分别对应真实数据集中的产品类别、区域和组织单位(在合成数据中匿名化)。

评估指标

我们使用中值-平均反正切绝对百分比误差 (median-MAAPE) 和加权-MAAPE 来评估模型性能并进行比较分析,这是博世使用的标准指标。 MAAPE 解决了业务环境中常用的平均绝对百分比误差 (MAPE) 指标的缺点。 Median-MAAPE 通过计算每个时间序列上单独计算的 MAAPE 的中值来概述模型性能。 加权 MAAPE 报告单个 MAAPE 的加权组合。 权重是每个时间序列的收入与整个数据集的总收入的比例。 加权 MAAPE 更好地反映了预测准确性对下游业务的影响。 这两个指标都在 1,216 个时间序列的整个数据集上报告。

回测窗口

我们使用滚动 12 个月的回测窗口来比较模型性能。 下图说明了实验中使用的回测窗口,并突出显示了用于训练和超参数优化 (HPO) 的相应数据。 对于 COVID-19 开始后的回测窗口,根据我们从收入时间序列中观察到的结果,结果受到 2020 年 XNUMX 月至 XNUMX 年 XNUMX 月 OOD 输入的影响。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

模型设置和训练

对于 Transformer 训练,我们使用分位数损失并使用其历史平均值对每个时间序列进行缩放,然后再将其输入 Transformer 并计算训练损失。 使用在 胶子. 我们使用一个上下文窗口,其中包含过去 18 个月的月收入数据,这些数据是通过 HPO 在 2018 年 2019 月至 15 年 2020 月的回测窗口中选择的。关于每个时间序列的静态分类变量形式的附加元数据通过嵌入输入到模型中层,然后将其馈送到变压器层。 我们用五种不同的随机权重初始化来训练 Transformer,并对每次运行的最后三个时期的预测结果进行平均,总共平均 XNUMX 个模型。 五个模型训练运行可以并行化以减少训练时间。 对于蒙面的 Transformer,我们将 XNUMX 年 XNUMX 月至 XNUMX 月的月份表示为异常值。

对于所有 Forecast 模型训练,我们启用了自动 HPO,它可以根据用户指定的回测周期选择模型和训练参数,该回测周期设置为用于训练和 HPO 的数据窗口中的最近 12 个月。

实验结果

我们使用相同的超参数集训练蒙面和未蒙面的变形金刚,并在 COVID-19 冲击后立即比较了它们在回测窗口中的性能。 在被屏蔽的 Transformer 中,两个被屏蔽的月份是 2020 年 12 月和 2020 月。下表显示了从 XNUMX 年 XNUMX 月开始具有 XNUMX 个月预测窗口的一系列回测期的结果。我们可以观察到,被屏蔽的 Transformer 始终优于未屏蔽的版本.

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

我们根据回测结果进一步对模型集成策略进行了评估。 特别是,我们比较了仅选择表现最好的模型与选择表现最好的两个模型时的两种情况,并且通过计算预测的平均值来执行模型平均。 我们在下图中比较了基本模型和集成模型的性能。 请注意,没有一个神经预测器在回滚测试窗口中始终优于其他预测器。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。 博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

下表显示,平均而言,前两个模型的集成建模提供了最佳性能。 CNNQR 提供了第二好的结果。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。

结论

这篇文章展示了如何结合 Forecast 和在 SageMaker 上训练的自定义模型,为大规模预测问题构建端到端 ML 解决方案。 根据您的业务需求和 ML 知识,您可以使用完全托管的服务(例如 Forecast)来卸载预测模型的构建、训练和部署过程; 使用 SageMaker 使用特定的调整机制构建您的自定义模型; 或者通过结合这两种服务来执行模型集成。

如果您需要帮助加速在您的产品和服务中使用 ML,请联系 亚马逊机器学习解决方案实验室 程序。

参考资料

Hyndman RJ,Athanasopoulos G. 预测:原则和实践。 文本; 2018 年 8 月 XNUMX 日。

Vaswani A、Shazeer N、Parmar N、Uszkoreit J、Jones L、Gomez AN、Kaiser Ł、Polosukhin I。您只需要注意。 神经信息处理系统的进展。 2017 年;30。

Zhou H, Zhang S, Peng J, Zhang S, Li J, Xiong H, Zhang W. Informer:Beyond Effective Transformer for Long Sequence Time-Series Forecasting。 AAAI 2021 年 2 月 XNUMX 日的会议记录。


作者简介

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。格克图格·西纳尔 是首席机器学习科学家,也是罗伯特博世有限责任公司和博世人工智能中心机器学习和基于统计的预测的技术负责人。 他领导了预测模型、层次整合和模型组合技术的研究,以及对这些模型进行扩展并将它们作为内部端到端财务预测软件的一部分服务的软件开发团队。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。迈克尔·宾德 是 Bosch Global Services 的产品负责人,负责协调公司范围内预测分析应用程序的开发、部署和实施,以对财务关键数据进行大规模自动化数据驱动预测。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。阿德里安·霍瓦特 是博世人工智能中心的一名软件开发人员,负责开发和维护基于各种预测模型创建预测的系统。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。许盼盼 是 AWS 的 Amazon ML 解决方案实验室的高级应用科学家和经理。 她正在研究和开发机器学习算法,用于各种工业垂直领域的高影响客户应用程序,以加速他们的人工智能和云采用。 她的研究兴趣包括模型可解释性、因果分析、人在环人工智能和交互式数据可视化。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。贾斯琳·格雷瓦尔 是 Amazon Web Services 的一名应用科学家,她与 AWS 客户一起使用机器学习解决现实世界的问题,特别关注精准医学和基因组学。 她在生物信息学、肿瘤学和临床基因组学方面拥有深厚的背景。 她热衷于使用 AI/ML 和云服务来改善患者护理。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。塞尔万·森蒂维尔 是 AWS 的 Amazon ML 解决方案实验室的高级 ML 工程师,专注于帮助客户解决机器学习、深度学习问题和端到端 ML 解决方案。 他是 Amazon Comprehend Medical 的创始工程主管,并为多个 AWS AI 服务的设计和架构做出了贡献。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。张瑞林 是 AWS 的 Amazon ML Solutions Lab 的 SDE。 他通过构建解决常见业务问题的解决方案来帮助客户采用 AWS AI 服务。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。谢恩·赖 是 AWS 的 Amazon ML 解决方案实验室的高级 ML 策略师。 他与各行各业的客户合作,使用 AWS 广泛的基于云的 AI/ML 服务来解决他们最紧迫和最具创新性的业务需求。

博世使用 Amazon Forecast 和 Amazon SageMaker 自定义模型 PlatoBlockchain Data Intelligence 进行大规模收入预测。 垂直搜索。 哎。林利昌 是 AWS 的 Amazon ML Solutions Lab 团队的应用科学经理。 她与战略性 AWS 客户合作,探索和应用人工智能和机器学习来发现新见解并解决复杂问题。

时间戳记:

更多来自 AWS机器学习