持续机器学习

持续机器学习是 IBM 受生物学中自然选择启发的研究成果,适用于自动分类器节点和自动数值节点。

建模的不便之处是随时间的数据更改导致模型变得过时。这通常被称为模型漂移概念漂移。为有效地帮助克服模型漂移,SPSS Modeler 提供持续自动机器学习。

什么是模型漂移?在基于历史数据构建模型时,数据会停滞。在许多情况下,新数据总是不断出现,出现旧的历史数据无法捕获的各种变体、新模式、新趋势等等。为解决此问题,IBM 受生物学中被称为物种自然选择的著名现象的启发,将模型视为物种,将数据视为自然。正如自然选择物种一样,我们应该让数据选择模型。模型和物种之间有一个巨大区别:物种可以进化,但模型在建立后是静止的。

物种进化有两个前提条件;第一个是基因突变,第二个是种群。现在,从建模的角度来看,要满足第一个前提条件(基因突变),我们应该将新的数据更改引入现有模型。要满足第二个前提条件(种群),我们应该使用大量模型,而不仅仅使用一个模型。什么可以表示大量模型?整体模型集 (EMS)!

下图说明了 EMS 如何进化。图的左上部分表示具有混合分区的历史数据。混合分区确保了丰富的初始 EMS。图的右上方部分表示一个变为可用的新数据组块,每侧都有竖线。左侧竖线表示当前状态,右侧竖线表示存在模型漂移风险时的状态。在每一轮新的持续机器学习中,执行两个步骤以进化模型并避免模型漂移。

首先,使用现有训练数据构造整体模型集 (EMS)。此后,当新的数据组块变为可用时,将针对此新数据构建新模型,并将其添加到 EMS 作为组件模型。使用新数据重新评估 EMS 中现有组件模型的权重。作为此重新评估的结果,为当前预测选择具有更高权重的组件模型,并且可能从 EMS 中删除权重较低的组件模型。此过程将刷新 EMS 的模型权重和模型实例,以以灵活且有效的方式进化,解决数据随时间推移而不可避免的变化。

图 1. 持续自动机器学习
持续自动机器学习

整体模型集 (EMS) 是生成的自动模型块,并且自动建模节点与生成的自动模块块之间存在定义它们之间的刷新关系的刷新链接。在启用持续自动机器学习时,会持续向自动建模节点提供新数据资产以生成新的组件模型。将更新模型块,而非替换。

下图提供了持续机器学习场景中 EMS 的内部结构的示例。仅针对当前预测选择前三个组件模型。对于每个组件模型(标注为 M1、M2 和 M3),将保留两种权重。当前模型权重 (CMW) 描述组件模型使用新数据组块的执行情况,累计模型权重 (AMW) 描述组件模型针对最新的数据组块的总体性能。通过 CMW 和 AMW 自身的先前值以迭代方式计算 AMW,并且并有一个超参数 beta 来平衡两者。计算 AMW 的公式被称为指数移动平均值

当新的数据组块可用时,首先 SPSS Modeler 使用它来构建一些新的组件模型。在此示例图中,使用 CMW 和初始模型构建过程中计算的 AMW 来构建 模型四 (M4)。然后,SPSS Modeler 使用新的数据组块重新评估现有组件模型(M1、M2 和 M3)的度量,并根据重新评估结果更新其 CMW 和 AMW。最后,SPSS Modeler 可能会基于 CMW 或 AMW 对组件模型进行重新排序,并相应地选择前三个组件模型。

在此图中,使用归一化值 (sum = 1) 描述 CMW,并基于 CMW 计算 AMW。在 SPSS Modeler 中,为简单起见,将选择绝对值(等于选中的评估加权度量值,例如,准确性)来表示 CMW 和 AMW。

图 2. EMS 结构
EMS 结构
请注意,为每个 EMS 组件模型定义了两种类型的权重,如下所示,这两种权重都可用于选择前 N 个模型和组件模型删除:
  • 通过针对新数据组块的评估计算当前模型权重 (CMW)(例如,新数据组块的评估准确性)。
  • 通过组合 CMW 和现有 AMW 计算累计模型权重 (AMW)(例如,指数加权的移动平均值 (EWMA))。

    用于计算 AMW 的指数移动平均值公式如下:
    用于计算 AMW 的指数移动平均值公式

在 SPSS Modeler 中,运行自动分类器节点以生成模型块后,以下模型选项可用于持续机器学习:

  • 在模型刷新期间启用持续自动机器学习 选择此选项可启用持续机器学习。请记住,必须使用一致的元数据(数据模型)来训练持续自动模型。如果选择此选项,那么将启用以下其他选项。
  • 启用自动模型权重重估 此选项控制模型刷新期间是否计算并更新评估度量(例如,准确性)。如果选择此选项,那么自动评估过程将在 EMS 之后运行(模型刷新期间)。这是因为通常需要使用新数据重新评估现有组件模型以反映数据的当前状态。然后,将根据重估结果分配 EMS 组件模型的权重,并使用权重来决定组件模型对最终整体预测的贡献。缺省情况下已选择此选项。
    图 3. 模型设置
    模型设置
    图 4. 标志目标
    标志目标
    图 5. 设置目标
    设置目标
    以下是“自动分类器”节点的受支持的 CMW 和 AMW:
    表 1. 受支持的 CMW 和 AMW
    目标类型 CMW AMW
    标志目标 总准确性
    曲线下面积
    累计准确性
    累计 AUC
    设置目标 总准确性 累计准确性

    以下三个选项与 AMW 相关,AMW 用于评估组件模型在最近数据组块周期期间的执行情况:

  • 在模型权重重估期间启用累计因子。如果选择此选项,那么将在模型权重重估期间启用 AMW 计算。AMW 表示 EMS 组件模型在最近数据组块周期期间的综合性能,与上面的 AMW 公式中定义的累计因子 β(可在节点属性中进行调整)相关。如果未选择此选项,那么将仅计算 CMW。缺省情况下已选择此选项。
  • 基于模型刷新期间的累计限制执行模型缩减。 如果要在模型刷新期间从自动模型 EMS 中移除 AMW 值低于指定限制的组件模型,请选择此选项。这有助于废弃对于阻止自动模型 EMS 变太重无用的组件模型。
    累计限制值评估与选择评估加权投票作为整体方法时使用的加权度量相关。请参阅以下内容。
    图 6. 目标(T)
    目标

    请注意,如果对于评估加权度量选择模型精确性,那么将删除累计准确性低于指定限制的模型。如果对于评估加权度量选择曲线下面积,那么将删除累计 AUC 低于指定限制的模型。

    缺省情况下,模型准确性用于自动分类器节点的评估加权度量,并且如果是标志目标,那么有一个可选的 AUC ROC 度量。

  • 使用累计评估加权投票。如果要将 AMW 用于当前的评分/预测,请选择此选项。否则,缺省情况下将使用 CMW。为整体方法选择评估加权投票时,启用此选项。

    请注意,对于标志目标,如果为评估加权度量选择模型精确性,那么选择此选项,会将累计准确性用作 AMW 以执行当前评分。或者,如果为评估加权度量选择曲线下面积,那么累计 AUC 将用作 AMW 以执行当前评分。如果不选择此选项,并且为评估加权度量选择模型精确性,那么总体准确性将用作 CMW 以执行当前评分。如果选择曲线下面积,那么曲线下面积将用作 CMW 以执行当前评分。

    对于集合目标,如果选择此使用累计评估加权投票选项,那么累计准确性将用作 AMW 以执行当前评分。否则,总体准确性将用作 CMW 以执行当前评分。

通过持续自动机器学习,自动模型块将通过重建自动模型不断进化,从而确保您获得反映数据当前状态的最新版本。SPSS Modeler 提供灵活性,可根据当前权重选择 EMS 中不同的前 N 个组件模型,从而与不同时间段的不同数据保持同步。

注: 自动数值节点是一个更简单的案例,其提供自动分类器节点中选项的子集。
图 7. 自动数值节点
自动数值节点

示例

在此示例中,在电信行业中使用持续机器学习来预测行为并保留客户。

在以下流中,数据资产包含有关上个月离开的客户的信息 (Churn 列)。由于每月都有新数据,因此本场景适合持续机器学习。在此示例中,一月 (Jan) 数据用于构造初始自动模型,然后使用二月 (Feb) 数据通过持续机器学习增强自动模型。

图 8. 电信示例
电信示例
在流的上分支中,在数据资产节点之后,有一个过滤节点可过滤掉一些不重要的字段。在分支末尾,有一个终端自动分类器建模节点。在节点的专家设置下,我们选择要用于训练过程的算法。在此示例中,我们选择三个算法:Logistic 回归、贝叶斯网络和神经网络。然后,我们运行流以生成自动模型块。
现在,让我们来看看自动模型块中的内容。我们可以看到其包含我们选择的三个算法的三个组件模型。对于每个组件模型,生成了若干评估度量(例如,准确性和曲线下面积)。这些评估度量描述组件模型针对训练数据(一月数据集)的执行情况。您可以选择要在当前整体预测中使用的组件模型。
图 9. 评估度量
评估度量

在流的上分支中,在数据资产节点之后,有一个过滤节点可过滤掉一些不重要的字段。在分支末尾,有一个终端自动分类器建模节点。在节点的专家设置下,我们选择要用于训练过程的算法。在此示例中,我们选择三个算法:Logistic 回归、贝叶斯网络和神经网络。然后,我们运行流以生成自动模型块。

您还可以看到累计评估度量。这些累计度量用于持续机器学习,因为它们描述了组件模型使用最新数据更改的执行情况,以便您了解模型在一段时间内的综合性能。由于这是初始自动模型,我们看到累计度量的初始值与相关的当前度量相同。缺省情况下,针对训练数据计算评估度量,因此可能存在某种程度的过度拟合。为避免此情况,自动分类器节点提供构建选项,用于通过交叉验证来计算更稳定的评估度量。

接下来,让我们来看看最终的整体预测是如何生成的。如果打开自动模型的属性,那么在整体标志目标下,训练目标 churn 字段是 yes/no 标志目标。在整体集合目标下(对于包含两个以上值的集合目标字段),有一个整体方法下拉菜单。下拉菜单中提供多个选项(例如,多数投票表示每个组件模型持有一张投票,置信度加权投票表示每个组件模型预测的置信度字段用作投票权重 - 置信度越高,对于最终整体预测的影响越多)。同样,为更好地支持持续机器学习,提供评估加权投票,以便使用组件模型的评估度量(例如,模型准确性或曲线下面积)作为投票权重。如果是标志目标,那么在使用评估加权投票时,还可以选择特定评估度量作为投票权重。如果是集合目标,当前仅支持准确性

图 10. 集合和标志目标
集合和标志目标
整体公共设置下,您可以开启持续机器学习。然后,我们可以使用二月的数据来查看发生了什么。我们可以选择两种不同的算法来区分现有组件模型算法。然后,在重建流并查看自动模型的内容后,我们看到添加了两个新的组件模型(C5 和 C&RT)。我们还注意到,已重新计算现有组件模型的评估度量。CMW 度量和 AMW 度量都与之前不同。现在,我们可以将它们与原始自动模型中的相应度量进行比较。
图 11. 评估度量
评估度量

现在如何? 通过增强的自动模型,我们可以选择划分优先级的评估度量,并获取按此度量排名前 N 的组件模型。然后,我们可以使用前 N 个组件模型来参与收入预测性分析请求的最终整体预测。如果为整体方法评估加权投票,那么我们可以通过简单选择整体公共设置下的使用累计评估加权投票选项,使用累计度量作为投票权重。如果取消选择,那么缺省情况下将在评估加权投票中使用 CMW 度量。

利用持续机器学习,自动模型始终通过不断针对新数据组块进行重建来进化,确保您的模型是反映数据当前状态的最新版本。这允许灵活地根据其当前或累计评估度量在 EMS 中选择不同的排名前 N 的组件模型,从而与不同时间段的不同数据保持同步。