Auriau, Vincent, Ali Aouad, Antoine Désir y Emmanuel Malherbe. "Choice-Learn: Modelización de elecciones a gran escala para contextos operativos a través de la lente del aprendizaje automático". Journal of Open Source Software 9, nº 101 (2024): 6899.
Introducción
El objetivo de los modelos de elección discreta es predecir las decisiones que toman los individuos a partir de un menú de alternativas, denominado surtido. Los casos de uso más conocidos incluyen la predicción de la elección del modo de transporte de un viajero o las compras de un cliente. Los modelos de elección son capaces de gestionar variaciones en el surtido, cuando algunas alternativas dejan de estar disponibles o cuando sus características cambian en diferentes contextos. Esta capacidad de adaptación a distintos escenarios permite utilizar estos modelos como datos de entrada para problemas de optimización, como la planificación del surtido o la fijación de precios.
Choice-Learn ofrece un conjunto modular de herramientas de modelización de la elección para que los profesionales y los investigadores académicos procesen la elección data y, a continuación, formulen, estimen y operacionalicen modelos de elección. La biblioteca está estructurada en dos niveles de uso, como se ilustra en la Figura 1. El nivel superior está diseñado para una implementación rápida y sencilla, y el nivel inferior está diseñado para una implementación rápida y sencilla. El nivel superior está diseñado para una implementación rápida y sencilla y el nivel inferior permite parametrizaciones más avanzadas. Esta estructura, inspirada en los diferentes puntos finales de Keras (Chollet et al., 2015), permite una interfaz fácil de usar. Choice-Learn está diseñado con los siguientes objetivos:
Las principales contribuciones se resumen en los cuadros 1 y 2.



Declaración de necesidad
Data y escalabilidad del modelo
La gestión de data de Choice-Learn se basa en NumPy (Harris et al., 2020) con el objetivo de limitar la huella de memoria. Minimiza la repetición de elementos o características de clientes y aplaza la unión de la estructura completa de data hasta el procesamiento de lotes de data. El paquete introduce el objeto FeaturesStorage, ilustrado en la Figura 2, que permite referenciar los valores de características sólo por su ID. Estos valores se sustituyen al marcador de posición ID sobre la marcha en el proceso de procesamiento por lotes. Por ejemplo, las características de los supermercados, como la superficie o la posición, suelen ser estacionarias. Así, pueden almacenarse en una estructura auxiliar de data y, en el conjunto de datos principal, el almacén donde se registra la elección sólo se referencia con su ID.
El paquete se basa en Tensorflow (Abadi et al., 2015) para la estimación de modelos, ofreciendo la posibilidad de utilizar algoritmos de optimización rápidos de cuasi-Newton como L-BFGS (Nocedal & Wright, 2006), así como varios optimizadores de gradiente-descenso (Kingma & Ba, 2017; Tieleman & Hinton, 2012) especializados en el manejo de lotes de data. También es posible el uso de GPU, lo que puede suponer un ahorro de tiempo. Por último, la columna vertebral de TensorFlow garantiza un uso eficiente en un entorno de producción, por ejemplo dentro de un software de recomendación de surtido, a través de herramientas de despliegue y servicio, como TFLite y TFServing.

Uso flexible: Desde la utilidad lineal hasta la especificación personalizada
Los modelos de elección que siguen el principio de Maximización de la Utilidad Aleatoria (McFadden & Train, 2000) definen la utilidad de una alternativa 𝑖 ∈ 𝒜 como la suma de una parte determinista 𝑈 (𝑖) y un error aleatorio 𝜖𝑖. Si se supone que los términos (𝜖𝑖)𝑖∈𝒜 son independientes y distribuidos por Gumbel, la probabilidad de elegir la alternativa 𝑖 puede escribirse como la normalización softmax sobre las alternativas disponibles 𝑗 ∈ 𝒜:

El trabajo del modelador de elecciones consiste en formular una función de utilidad adecuada 𝑈 (.) en función del contexto. En Choice-Learn, el usuario puede parametrizar modelos predefinidos o especificar libremente una función de utilidad personalizada. Para declarar un modelo personalizado, es necesario heredar la clase ChoiceModel y sobrescribir el método compute_batch_utility como se muestra en la documentación.
Biblioteca de modelos tradicionales de utilidad aleatoria y modelos basados en el aprendizaje automático
Los modelos de elección paramétricos tradicionales, incluido el Logit Condicional (Train et al., 1987), suelen especificar la función de utilidad de forma lineal. Esto proporciona coeficientes interpretables, pero limita el poder predictivo del modelo. Trabajos recientes proponen la estimación de modelos más complejos, con enfoques de redes neuronales (Aouad & Désir, 2022; Han et al., 2022) y modelos basados en árboles (Aouad et al., 2023; Salvadé & Hillel, 2024). Mientras que las bibliotecas de elección existentes (Bierlaire, 2023; Brathwaite & Walker, 2018; Du et al., 2023) no suelen estar diseñadas para integrar estos enfoques basados en el aprendizaje automático, Choice-Learn propone una colección que incluye ambos tipos de modelos.
Operaciones descendentes: Optimización del surtido y de los precios
Choice-Learn Servicios herramientas adicionales para operaciones posteriores, que no suelen estar integradas en las bibliotecas de modelos de elección. En concreto, la optimización del surtido es un caso de uso común que aprovecha un modelo de elección para determinar el subconjunto óptimo de alternativas que ofrecer a los clientes maximizando un objetivo determinado, como los ingresos esperados, la tasa de conversión o el bienestar social. Este marco abarca diversas aplicaciones, como la planificación del surtido, la optimización de la ubicación de los expositores y la fijación de precios. Proporcionamos implementaciones basadas en la formulación de programación entera mixta descrita en (Méndez-Díaz et al., 2014), con la opción de elegir el solucionador entre Gurobi (Gurobi Optimization, LLC, 2023) y OR-Tools (Perron & Furnon,2024).
Uso de la memoria: estudio de un caso
En la Figura 3 (a) ofrecemos ejemplos numéricos de uso de memoria para mostrar la eficiencia del FeaturesStorage. Consideramos una característica que se repite en un conjunto de datos, como una codificación de ubicaciones, representada por una matriz de forma (#ubicaciones, #ubicaciones) en la que cada fila se refiere a una ubicación.
a una ubicación.
Comparamos cuatro métodos de manejo de data en el conjunto de datos Expedia (Ben Hamner et al., 2013): pandas.DataFrames (The pandas development team, 2020) en formato largo y ancho, ambos utilizados en paquetes de modelado de elección, Torch-Choice y Choice-Learn. La figura 3 (b) muestra los
resultados para distintos tamaños de muestra.
Por último, en la Figura 3 (c) y (d), observamos ganancias en el uso de memoria en un conjunto de datos propio de la venta minorista en establecimientos físicos consistente en la agregación de más de 4.000 millones de compras en supermercados Konzum de Croacia. Centrándonos en la subcategoría de café, el conjunto de datos especifica, para cada compra, qué productos estaban disponibles, sus precios, así como una representación del supermercado.
