Auriau, Vincent, Ali Aouad, Antoine Désir, and Emmanuel Malherbe.“选择-学习:通过机器学习的视角为操作环境建立大规模选择模型”。开源软件期刊》9,第 101 期(2024 年):6899.
导言
离散选择模型旨在预测个人从被称为 "品种 "的备选方案中做出的选择决定。著名的应用案例包括预测通勤者对交通方式的选择或顾客的购买行为。当某些替代品不可用或其特征在不同情况下发生变化时,选择模型能够处理各种变化。这种对不同情况的适应性使这些模型可以用作优化问题的输入,包括品种规划或定价。.
Choice-Learn 提供了一套模块化的选择建模工具,供从业人员和学术研究人员处理选择 data,然后制定、估算和操作选择模型。如图 1 所示,该库分为两个使用层次。较高层次旨在快速、轻松地实现,而较低层次则可实现更高级的参数化。这种结构受到 Keras 不同端点(Chollet 等人,2015 年)的启发,实现了友好的用户界面。Choice-Learn 的设计目标如下:
表 1 和表 2 总结了主要贡献。.



需求说明
Data 和型号可扩展性
Choice-Learn 的 data 管理依赖于 NumPy(Harris 等人,2020 年),目的是限制内存占用。它最大限度地减少了项目或客户特征的重复,并将完整的 data 结构的连接推迟到处理 data 的批次时进行。该软件包引入了 FeaturesStorage 对象(如图 2 所示),允许仅通过 ID 引用特征值。在批处理过程中,这些值会被即时替换为 ID 占位符。例如,表面或位置等超市特征通常是固定的。因此,它们可以存储在辅助的 data 结构中,而在主 dataset 中,记录选择的存储空间只用其 ID 引用。.
该软件包基于 Tensorflow(Abadi 等人,2015 年)进行模型估计,提供了使用快速准牛顿优化算法的可能性,如 L-BFGS(Nocedal & Wright,2006 年)以及专门处理 data 批次的各种梯度下降优化器(Kingma & Ba,2017 年;Tieleman & Hinton,2012 年)。使用 GPU 也可以节省时间。最后,通过 TFLite 和 TFServing 等部署和服务工具,TensorFlow 主干网可确保在生产环境中的高效使用,例如在各种推荐软件中。.

使用灵活:从线性用途到定制规格
遵循随机效用最大化原则(McFadden & Train, 2000)的选择模型将替代品𝑖 ∈ 𝒜的效用定义为确定性部分𝑈 (𝑖)和随机误差𝜖𝑖的总和。如果假定 (𝜖𝑖)𝑖∈𝒜 项是独立且 Gumbel 分布的,那么选择备选方案 𝑖 的概率可以写成对可用备选方案 𝑗∈ 𝒜 的软最大归一化:

选择建模者的工作就是根据具体情况制定一个适当的效用函数𝑈 (.) 。在 Choice-Learn 中,用户可以对预定义的模型进行参数化,也可以自由指定一个自定义的效用函数。要声明一个自定义模型,用户需要继承 ChoiceModel 类,并重写 compute_batch_utility 方法,如文档所示。.
传统随机效用模型和基于机器学习的模型库
传统的参数选择模型,包括条件 Logit 模型(Train 等人,1987 年),通常以线性形式指定效用函数。这提供了可解释的系数,但限制了模型的预测能力。最近的研究提出了利用神经网络方法(Aouad & Désir,2022 年;Han 等人,2022 年)和基于树的模型(Aouad 等人,2023 年;Salvadé & Hillel,2024 年)来估计更复杂的模型。现有的选择库(Bierlaire,2023;Brathwaite & Walker,2018;Du 等人,2023)往往不是为了整合这类基于机器学习的方法而设计的,而 Choice-Learn 则提出了一个包括这两类模型的集合。.
下游业务:分类和定价优化
Choice-Learn 为下游业务提供了额外的工具,这些工具通常没有集成到选择建模库中。特别是,分类优化是一个常见的使用案例,它利用选择模型来确定向客户提供的最佳替代品子集,从而最大限度地实现特定目标,如预期收入、转换率或社会福利。这一框架涵盖了多种应用,如分类规划、展示位置优化和定价。我们根据(Méndez-Díaz et al.,2014)中描述的混合整数编程公式提供了实现方法,并可在 Gurobi(Gurobi Optimization, LLC, 2023)和 OR-Tools (Perron & Furnon,2024)之间选择求解器。.
内存使用:案例研究
我们在图 3 (a) 中提供了内存使用的数字示例,以展示 FeaturesStorage 的效率。我们考虑了在 dataset 中重复出现的特征,例如位置的单次编码,由形状为 (#locations, #locations) 的矩阵表示,其中每一行指的是
到一个地方。.
我们在 Expedia dataset(Ben Hamner 等人,2013 年)上比较了四种 data 处理方法:pandas.DataFrames(熊猫开发团队,2020 年)的长格式和宽格式,这两种格式都用于选择建模软件包 Torch-Choice 和 Choice-Learn。图 3 (b) 显示了
不同样本量的结果。.
最后,在图 3(c)和(d)中,我们观察了实体零售业专有的 dataset 的内存使用收益,其中包括克罗地亚 Konzum 超市 40 多亿次购买的汇总。dataset 以咖啡子类别为重点,为每次购买指定了可用的产品、产品价格以及超市的单点表示。.


博客





