导读
论文题目《Smart “Predict, then Optimize”》。该论文于2021年发表于《Management Science》,文章提出了一种SPO框架,利用优化问题的结构,来设计更好的预测模型。
摘要
许多现实世界的分析问题涉及两个重要挑战:预测和优化。由于每个挑战通常都非常复杂,标准的范式是“先预测,再优化”。大体上,机器学习工具旨在最小化预测误差,并未考虑预测结果将在下游优化问题中的使用。相反,本文提出了一个新的且非常通用的框架,称为智能“先预测,再优化”(SPO),该框架直接利用优化问题的结构,即其目标和约束,以设计更好的预测模型。本文框架的一个关键组成部分是SPO损失函数,它衡量预测引起的决策误差。相对于SPO损失训练预测模型在计算上具有挑战性,因此本文使用对偶理论推导出一个凸替代损失函数,称为SPO+损失。最重要的是,本文证明了在温和条件下,SPO+损失在统计上与SPO损失一致。本文的SPO+损失函数可以切实处理任何具有线性目标的多面体、凸或甚至混合整数优化问题。关于最短路径和投资组合优化问题的数值实验表明,SPO框架可以在“先预测,再优化”范式下显著改进,特别是当训练的预测模型被误设定时。本文发现,使用SPO+损失训练的线性模型往往优于随机森林算法,即使在真实情况高度非线性时也是如此。
介绍
在许多现实世界的运筹学分析应用中,决策的制定通常结合了机器学习和优化。通常,优化模型用于生成决策,而机器学习工具则用于生成预测模型,以预测优化模型中的关键未知参数。由于这两项任务本身的复杂性,分析实践中常采用的广泛方法是“先预测,再优化”范式。例如,考虑一个每天可能多次解决的车辆路径问题。首先,先前训练的预测模型基于当前的交通、天气、假期、时间等因素,为道路网络上所有边的行驶时间提供预测。然后,优化求解器使用预测的行驶时间作为输入,提供近似最优的路线。
本文强调,大多数现实世界的分析问题解决系统都涉及预测和优化的某个组件。除了少数有限的选项外,机器学习工具通常不会有效地考虑预测将在下游优化问题中的使用方式。在本文中,本文提出了一个称为智能“先预测,再优化”(SPO)的通用框架,用于训练预测模型,该框架有效地利用名义优化问题的结构——即其约束和目标。本文的SPO框架基本上是为了生成旨在最小化决策误差而非预测误差的预测模型。
本文的贡献总结如下:
1. 本文首先正式定义了一个新损失函数,本文称之为SPO损失,该损失衡量预测具有线性、凸或整数约束的名义优化问题的成本向量时的误差。该损失对应于由于实施由预测成本向量引起的可能不正确的决策而导致的相对于真实/历史成本向量的次优差距。不幸的是,SPO损失函数在预测中可能是非凸且不连续的,这意味着在SPO损失下训练ML模型可能具有挑战性。
2. 鉴于SPO损失函数的难处理性,本文开发了一个替代损失函数,称为SPO+损失。所得的SPO+损失函数在预测中是凸的,这使本文能够设计基于随机梯度下降的算法来最小化SPO+损失。
3. 本文证明了在本文的SPO框架的一个非常简单和特殊的实例下,与经典机器学习的基本连接。即,在该实例下,SPO损失正是0-1分类损失,而SPO+损失正是铰链损失。铰链损失是流行的支持向量机(SVM)方法的基础,是一个近似最小化0-1损失的替代损失,因此,本文的框架将这一概念推广到具有约束的广泛优化问题族。
4. 本文证明了SPO+损失函数的一个关键一致性结果,这进一步激励了它的使用。即,在完全分布知识下,如果满足两个温和条件,最小化SPO+损失函数实际上等价于最小化SPO损失:给定特征的成本向量的分布是连续且关于其均值对称的。
5. 最后,本文通过最短路径和投资组合优化问题的数值实验验证了本文的框架。本文将SPO框架与标准的“先预测,再优化”方法进行比较,并根据SPO损失评估其样本外性能。
(本笔记仅涉及对SPO及SPO+相关概念的解释,其性质及证明推导可以查询原文)
方法论
SPO 损失函数
根据PO范式,给定一个成本向量预测 ,通过解决来实现一个决策。在实施决策之后,产生的成本是关于实际实现的成本向量c。由于可能相对于c是次优的,因此额外成本为,本文称之为SPO损失。
在图1中,本文展示了两个具有相同预测误差的c值如何导致不同的决策和不同的SPO损失。本文考虑一个二维多面体和椭圆作为可行区域S。本文绘制了(负的)真实成本向量c,以及两个候选预测值ˆcA和ˆcB,它们与c等距,因此具有相同的LS损失。可以看到,对于ˆcA的最优决策与c的最优决策一致,因为,因此SPO损失为零。相反,本文看到,因此导致正的SPO损失。在多面体例子中,任何其负值不在灰色区域内的预测成本向量将导致正的SPO损失,而在椭圆例子中,任何与c不完全平行的预测成本向量都会导致正的SPO损失。定义1正式定义了当实际成本向量为c时,与某一特定优化oracle 相关的预测的真实SPO损失。
图1 SPO损失的几何说明
定义1(SPO损失):给定一个成本向量预测和一个实现的成本向量c,关于优化的真实SPO损失 定义为 。
注意定义1有一个不幸的缺陷,即其依赖于解决(2)的特定。实际上,这个缺陷并不是一个主要问题,因为本文通常应该期望是唯一的最优解——即,本文应该期望是一个单点集。注意,如果损失函数可以使用中的任何解,那么损失函数本质上变成。
无论如何,如果想要解决定义1中对特定的依赖性,那么最自然的方法是假设实施的决策在c方面具有最坏情况的行为。定义2是一个不依赖于特定优化的替代SPO损失函数。
明确的SPO损失
定义2(明确的SPO损失):给定一个成本向量预测和一个实现的成本向量c,(明确的)真实SPO损失定义为
注意定义2提出了一个真实SPO损失的版本,其上界定义1的版本——即,对于所有,都有 。如前所述,定义1和定义2之间的区别仅在退化情况下才相关。在本文的结果和讨论中,本文使用定义2给出的明确的真实SPO损失。回想定义2上界定义1,并且两个损失函数几乎总是相等的,除了在具有多个最优解的退化情况下。
现在,给定训练数据,本文感兴趣的是确定具有最小真实SPO损失的成本向量预测模型。因此,给定前述的真实SPO损失定义,预测模型将通过遵循经验风险最小化原则确定,导致以下优化问题:
不幸的是,上述优化问题在理论和实践上都很难解决。实际上,对于固定的c,在上甚至可能不连续,因为(以及整个集合)在上可能不连续。因此,本文有动机开发方法来产生“合理”近似解,满足以下两个条件:(i) 比标准PO方法表现更好,(ii) 适用于大规模问题,其中训练样本数量n和/或假设类H的维数可能非常大。
说明性示例
为了建立直观理解,本文现在通过一个说明性示例比较 SPO 损失和经典的最小二乘(LS)损失函数。考虑一个非常简单的最短路径问题,其中有两个节点,s 和 t。s 到 t 有两条边,边1和边2。因此,在这个设置中,成本向量 c 是二维的,目标是选择成本较低的边。在决策时,本文不会直接观察到 c,而是只会看到与向量 c 相关的一个一维特征 x。本文的数据由 (xi, ci) 对组成,ci 是 xi 的非线性函数生成的。
在图2(a)中,LS 损失函数的残差用虚线表示。残差是预测值与真实值之间的距离。在图2(b)中,SPO 损失函数的残差用虚线黑线表示。当预测值顺序正确时,残差为零。否则,残差是实际值之间的距离。决策者的目标是通过使用简单的线性回归模型,根据特征来预测每条边的成本。在预测-然后-优化框架中,两条线(对应每条边)的交点将表明决策边界。决策者将尝试使用 SPO 和 LS 损失函数进行线性回归。在图2中,本文通过可视化一个特定数据集和预测边1和边2成本的线性模型的残差,说明 LS 和 SPO 的区别。在 LS 回归中,目标是最小化残差平方和,如图2(a)中的虚线绿色和红线所示。使用 SPO 损失时,本文考虑“决策残差”,这些残差仅在预测导致选择错误边时发生。在这些情况下,SPO 成本是边1和边2的两个真实成本之间的差值,如图2(b)中的虚线黑线所示。
图2 预测残差与决策残差的区别
图3 解释案例
在图3中,本文考虑另一个数据集,但这次绘制的是最优的 LS 和 SPO 线性回归模型。在图3的左上角面板中,本文绘制了数据集和最优决策边界。在右上角面板中,本文绘制了数据的最佳 LS 拟合线,在下方的两个面板中,本文绘制了 SPO 线性回归的两个不同的最优解。垂直虚线对应真实模型和预测模型下的决策边界。注意,图3中的 SPO 损失为零,因为没有决策错误,如图2所述。
从图3可以看出,LS 线非常接近非线性数据,尽管 LS 的决策边界与最优决策边界相距甚远。对于虚线黑线和红线之间的任何 x 值,决策者将选择错误的边。相比之下,SPO 线不需要很好地拟合数据,但它们的决策边界几乎是最优的。实际上,SPO 线的训练误差为零,尽管它们并未拟合数据。关键的直觉是,任何时候选择错误的边时就会产生 SPO 损失,在这个示例中,可以构造出在正确决策边界交叉的线,从而永远不会选择错误的边,从而导致零 SPO 损失。需要注意的是,唯一重要的考虑是线的交点,因此,SPO 线性回归不一定会最小化预测误差。当然,可以使用 SPO 和 LS 损失的凸组合来克服产生的异常线。实际上,对于 SPO 损失的经验风险最小化(ERM)问题有无数个最优解,只需确保线的交点在 x 值为1.2和1.3之间。
SPO+ 损失函数
定义 3(SPO+ 损失):给定一个成本向量预测 和实际成本向量 c,SPO+ 损失定义为:
记 是 S 的支撑函数,即 。用这个符号表示,SPO+ 损失可以等价地表示为:
SPO+损失函数有以下性质:给定一个固定的实现成本向量 c,有:
1. 对于所有的 ,都有 ,
2. 是成本向量预测 的凸函数
3. 对于任意给定的 , 是 SPO+ 在 处的次梯度,即 。
以上性质使得SPO+损失函数在解决预测优化问题中能作为SPO损失函数的近似解。
实验
本文以最短路径问题及投资组合优化问题用于实验比较,实验结果如下图所示:
图4 在最短路径问题实例上的SPO损失
图5 在投资组合优化实例上的测试集SPO损失
Attention
欢迎关注微信公众号《当交通遇上机器学习》!如果你和我一样是轨道交通、道路交通、城市规划相关领域的,也可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!