关注我们.

人工智能

LightAutoML:面向大型金融服务生态系统的 AutoML 解决方案

mm
更新 on

尽管 AutoML 几年前就开始流行,但早期的工作 AutoML 的历史可以追溯到 90 年代初 当科学家发表第一篇关于超参数优化的论文时。 2014年,ICML组织了第一届AutoML研讨会,AutoML引起了ML开发者的关注。 AutoML 多年来的主要关注点之一是超参数搜索问题,其中模型实现了一系列优化方法,以确定特定机器学习模型的大型超参数空间中性能最佳的超参数。 AutoML 模型通常实现的另一种方法是估计特定超参数成为给定机器学习模型的最佳超参数的概率。该模型通过实施贝叶斯方法来实现这一目标,贝叶斯方法传统上使用来自先前估计模型和其他数据集的历史数据。除了超参数优化之外,其他方法还尝试从建模备选方案中选择最佳模型。 

在本文中,我们将介绍 LightAutoML,这是一个主要为一家在金融领域运营的欧洲公司及其生态系统开发的 AutoML 系统。LightAutoML 框架部署在各种应用程序中,结果表明,即使在构建高质量的机器学习模型时,其性能也堪比数据科学家的水平。LightAutoML 框架试图做出以下贡献。首先,LightAutoML 框架主要为一家大型欧洲金融和银行机构的生态系统开发。得益于其框架和架构,LightAutoML 框架能够在多个开放基准测试以及生态系统应用程序中超越最先进的 AutoML 框架。LightAutoML 框架的性能还与数据科学家手动调整的模型进行了比较,结果表明 LightAutoML 框架的性能更强。 

本文旨在深入介绍 LightAutoML 框架,我们探讨该框架的机制、方法、架构,以及它与最先进框架的比较。那么让我们开始吧。 

LightAutoML:金融服务的 AutoML 框架

尽管研究人员早在 90 年代中期就开始研究 AutoML,但 AutoML 在过去几年中吸引了大量关注,一些著名的工业解决方案实现了自动构建机器学习模型,包括亚马逊的 AutoGluon、DarwinAI、H20.ai、IBM Watson AI、Microsoft AzureML 等等。这些框架中的大多数都实现了通用的 AutoML 解决方案,该解决方案可在金融服务、医疗保健、教育等不同类别的应用程序中自动开发基于 ML 的模型。这种横向通用方法背后的关键假设是,开发自动模型的过程在所有应用程序中都保持不变。然而,LightAutoML 框架实现了垂直方法来开发 AutoML 解决方案,该解决方案不是通用的,而是满足单个应用程序(在本例中为大型金融机构)的需求。LightAutoML 框架是一种垂直 AutoML 解决方案,它专注于复杂生态系统的需求及其特性。首先,LightAutoML 框架提供快速且接近最优的超参数搜索。虽然该模型不会直接优化这些超参数,但它确实能够提供令人满意的结果。此外,该模型在速度和超参数优化之间保持动态平衡,以确保模型在小问题上达到最优,在大问题上足够快。其次,LightAutoML 框架有意将机器学习模型的范围限制为仅两种类型:线性模型和 GBM 或梯度提升决策树,而不是实现不同算法的大型集成。限制机器学习模型范围的主要原因是为了加快 LightAutoML 框架的执行时间,而不会对给定类型的问题和数据的性能产生负面影响。第三,LightAutoML 框架提出了一种独特的方法,可根据某些选择规则和元统计数据为模型中使用的不同特征选择预处理方案。LightAutoML 框架已在各种应用程序的广泛开放数据源上进行了评估。 

LightAutoML:方法和架构

LightAutoML 框架由称为 Presets 的模块组成,这些模块专用于典型机器学习任务的端到端模型开发。目前,LightAutoML框架支持Preset模块。首先,TabularAutoML Preset 专注于解决表格数据集上定义的经典机器学习问题。其次,白盒预设实现了简单的可解释算法,例如逻辑回归,而不是 WoE 或证据权重编码和离散化特征来解决表格数据上的二元分类任务。由于不同因素带来的可解释性限制,实现简单的可解释算法是对应用程序的概率进行建模的常见做法。第三,NLP预设能够将表格数据与NLP或 自然语言处理 工具包括预训练的深度学习模型和特定的特征提取器。最后,CV Preset 借助一些基本工具处理图像数据。值得注意的是,虽然 LightAutoML 模型支持所有四个 Preset,但该框架仅在生产级系统中使用 TabularAutoML。 

下图中包含了LightAutoML框架的典型管道。 

每个管道包含三个组件。首先,Reader 是一个接收任务类型和原始数据作为输入的对象,它执行关键的元数据计算、清理初始数据,并确定在拟合不同模型之前要执行的数据操作。接下来,LightAutoML 内部数据集包含 CV 迭代器和元数据,用于实现数据集的验证方案。第三个组件是堆叠和/或混合以获得单个预测的多个机器学习管道。LightAutoML 框架架构内的机器学习管道是共享单个数据验证和预处理方案的多个机器学习模型之一。预处理步骤可能最多有两个特征选择步骤、一个特征工程步骤,如果不需要预处理,则可能为空。ML 管道可以在相同的数据集上独立计算,然后使用平均(或加权平均)混合在一起。或者,可以使用堆叠集成方案来构建多级集成架构。 

LightAutoML 表格预设

在 LightAutoML 框架中,TabularAutoML 是默认管道,它在模型中实现以解决表格数据上的三类任务: 二元分类、回归和多类分类,用于各种性能指标和损失函数。包含以下四列的表:分类特征、数值特征、时间戳和具有类标签或连续值的单个目标列,将作为输入提供给 TabularAutoML 组件。LightAutoML 框架设计背后的主要目标之一是设计一种快速假设检验的工具,这也是该框架避免使用蛮力方法进行管道优化的主要原因,而只关注适用于各种数据集的效率技术和模型。 

自动输入和数据预处理

为了以不同的方式处理不同类型的特征,模型需要了解每种特征类型。在单个任务具有较小数据集的情况下,用户可以手动指定每种特征类型。但是,在包含数百个任务且数据集包含数千个特征的情况下,手动指定每种特征类型不再是一种可行的选择。对于 TabularAutoML 预设,LightAutoML 框架需要将特征映射到三个类别:数字、类别和日期时间。一个简单而明显的解决方案是使用列数组数据类型作为实际特征类型,即将浮点/整数列映射到数字特征、时间戳或字符串,这些特征可以解析为时间戳 — 到日期时间,其他到类别。但是,由于类别列中经常出现数字数据类型,因此这种映射并不是最好的。 

验证方案

验证方案是 AutoML 框架的重要组成部分,因为行业中的数据会随着时间的推移而发生变化,而这种变化因素使得 IID 或独立同分布假设在开发模型时变得无关紧要。AutoML 模型采用验证方案来估计其性能、搜索超参数和折叠外预测生成。TabularAutoML 管道实现了三种验证方案:

  • KFold交叉验证:KFold 交叉验证是 TabularAutoML 管道的默认验证方案,包括用于行为模型的 GroupKFold 和用于分类任务的分层 KFold。 
  • 保留验证: 如果指定了保留集,则将实施保留验证方案。 
  • 自定义验证方案: 用户可以根据自己的个人需求创建自定义验证方案。自定义验证方案包括交叉验证和时间序列分割方案。 

功能选择

尽管特征选择是按照行业标准开发模型的一个重要方面,因为它有助于降低推理和模型实施成本,但大多数 AutoML 解决方案并没有过多关注这个问题。相反,TabularAutoML 管道实现了三种特征选择策略:无选择、重要性截止选择和基于重要性的前向选择。在这三种策略中,重要性截止选择特征选择策略是默认的。此外,有两种主要方法来估计特征重要性:基于分裂的树重要性,以及 GBM 模型或梯度提升的排列重要性 决策树重要性截止选择的主要目的是拒绝对模型没有帮助的特征,从而允许模型减少特征数量而不会对性能产生负面影响,这种方法可能会加速模型推理和训练。 

上图比较了二元银行数据集上的不同选择策略。 

超参数调整

TabularAutoML 管道根据调整的内容实现不同的方法来调整超参数。 

  • 提前停止超参数调整 选择训练阶段所有模型的迭代次数。 
  • 专家系统超参数调整 是一种以令人满意的方式为模型设置超参数的简单方法。与硬调模型相比,它可以防止最终模型的得分大幅下降。
  • 树结构 Parzen 估计或 TPE 适用于 GBM 或梯度提升决策树模型。TPE 是一种混合调整策略,是 LightAutoML 管道中的默认选择。对于每个 GMB 框架,LightAutoML 框架都会训练两个模型:第一个模型获得专家超参数,第二个模型经过微调以适应时间预算。 
  • 网格搜索超参数调整 在 TabularAutoML 管道中实现,用于微调线性模型的正则化参数以及提前停止和热启动。 

该模型通过最大化度量函数来调整所有参数,度量函数可以由用户定义,也可以是已解决任务的默认值。 

LightAutoML:实验和性能

为了评估性能,LightAutoML 框架内的 TabularAutoML Preset 与跨各种任务的现有开源解决方案进行了比较,并巩固了 LightAutoML 框架的卓越性能。首先,在 OpenML 基准测试上进行比较,该基准测试在 35 个二元和多类分类任务数据集上进行评估。下表总结了 LightAutoML 框架与现有 AutoML 系统的比较。 

可以看出,LightAutoML 框架在基准测试中的 20 个数据集上优于所有其他 AutoML 系统。下表包含数据集上下文中的详细比较,表明 LightAutoML 在不同类别的任务上提供不同的性能。对于二元分类任务,LightAutoML 性能较差,而对于数据量较大的任务,LightAutoML 框架性能优越。

下表比较了 LightAutoML 框架与 AutoML 系统在 15 个银行数据集(包含一组各种二元分类任务)上的性能。可以看出,LightAutoML 在 12 个数据集中的 15 个上优于所有 AutoML 解决方案,胜率为 80%。 

总结

在本文中,我们讨论了 LightAutoML,这是一个主要为一家在金融领域运营的欧洲公司及其生态系统开发的 AutoML 系统。LightAutoML 框架部署在各种应用程序中,结果表明,即使在构建高质量的机器学习模型时,其性能也堪比数据科学家的水平。LightAutoML 框架试图做出以下贡献。首先,LightAutoML 框架主要为一家大型欧洲金融和银行机构的生态系统开发。得益于其框架和架构,LightAutoML 框架能够在多个开放基准测试以及生态系统应用程序中超越最先进的 AutoML 框架。LightAutoML 框架的性能还与数据科学家手动调整的模型进行了比较,结果表明 LightAutoML 框架的性能更强。 

“职业工程师,心灵作家”。 Kunal 是一位技术作家,对人工智能和机器学习有着深厚的热爱和理解,致力于通过他引人入胜且信息丰富的文档来简化这些领域的复杂概念。