Auriau, Vincent, Ali Aouad, Antoine Désir et Emmanuel Malherbe. "Choice-Learn : Large-scale choice modeling for operational contexts through the lens of machine learning". Journal of Open Source Software 9, no. 101 (2024) : 6899.
Introduction
Les modèles de choix discrets visent à prédire les décisions de choix prises par des individus à partir d'un menu d'alternatives, appelé assortiment. Parmi les cas d'utilisation bien connus, on peut citer la prévision du choix d'un mode de transport par un navetteur ou des achats d'un client. Les modèles de choix sont capables de gérer les variations de l'assortiment, lorsque certaines alternatives deviennent indisponibles ou lorsque leurs caractéristiques changent dans différents contextes. Cette adaptabilité à différents scénarios permet à ces modèles d'être utilisés comme données d'entrée pour les problèmes d'optimisation, y compris la planification de l'assortiment ou la fixation des prix.
Choice-Learn propose une suite modulaire d'outils de modélisation des choix permettant aux praticiens et aux chercheurs universitaires de traiter les choix data, puis de formuler, d'estimer et d'opérationnaliser des modèles de choix. La bibliothèque est structurée en deux niveaux d'utilisation, comme l'illustre la figure 1. Le niveau supérieur est conçu pour une mise en œuvre rapide et facile et le niveau inférieur permet des paramétrages plus avancés. Cette structure, inspirée des différents points de terminaison de Keras (Chollet et al., 2015), permet une interface conviviale. Choice-Learn est conçu avec les objectifs suivants :
Les principales contributions sont résumées dans les tableaux 1 et 2.



Déclaration de besoin
Data et l'évolutivité du modèle
La gestion de data de Choice-Learn repose sur NumPy (Harris et al., 2020) dans le but de limiter l'empreinte mémoire. Il minimise la répétition des éléments ou des caractéristiques des clients et reporte la jointure de la structure data complète jusqu'au traitement des lots de data. Le paquetage introduit l'objet FeaturesStorage, illustré à la figure 2, qui permet aux valeurs des caractéristiques d'être référencées uniquement par leur ID. Ces valeurs sont substituées à l'ID à la volée dans le processus de mise en lots. Par exemple, les caractéristiques des supermarchés, telles que la surface ou la position, sont souvent stationnaires. Elles peuvent donc être stockées dans une structure auxiliaire data et, dans l'ensemble de données principal, le magasin où le choix est enregistré n'est référencé que par son ID.
Le package s'appuie sur Tensorflow (Abadi et al., 2015) pour l'estimation de modèles, offrant la possibilité d'utiliser des algorithmes d'optimisation rapides de type quasi-Newton tels que L-BFGS (Nocedal & Wright, 2006) ainsi que divers optimiseurs de descente de gradient (Kingma & Ba, 2017 ; Tieleman & Hinton, 2012) spécialisés dans le traitement de lots de data. L'utilisation du GPU est également possible, ce qui peut s'avérer être un gain de temps. Enfin, l'épine dorsale TensorFlow garantit une utilisation efficace dans un environnement de production, par exemple au sein d'un logiciel de recommandation d'assortiment, grâce à des outils de déploiement et de service, tels que TFLite et TFServing.

Utilisation flexible : De l'utilité linéaire à la spécification personnalisée
Les modèles de choix qui suivent le principe de la maximisation de l'utilité aléatoire (McFadden & Train, 2000) définissent l'utilité d'une alternative 𝑖 ∈ 𝒜 comme la somme d'une partie déterministe 𝑈 (𝑖) et d'une erreur aléatoire 𝜖𝑖. Si l'on suppose que les termes (𝜖𝑖)𝑖∈𝒜 sont indépendants et distribués par Gumbel, la probabilité de choisir l'alternative 𝑖 peut s'écrire comme la normalisation softmax sur les alternatives disponibles 𝑗 ∈ 𝒜 :

Le travail du modélisateur de choix consiste à formuler une fonction d'utilité adéquate 𝑈 (.) en fonction du contexte. Dans Choice-Learn, l'utilisateur peut paramétrer des modèles prédéfinis ou spécifier librement une fonction d'utilité personnalisée. Pour déclarer un modèle personnalisé, il faut hériter de la classe ChoiceModel et écraser la méthode compute_batch_utility comme indiqué dans la documentation.
Bibliothèque de modèles d'utilité aléatoire traditionnels et de modèles basés sur l'apprentissage automatique
Les modèles de choix paramétriques traditionnels, y compris le Logit conditionnel (Train et al., 1987), spécifient souvent la fonction d'utilité sous une forme linéaire. Cela permet d'obtenir des coefficients interprétables mais limite le pouvoir prédictif du modèle. Des travaux récents proposent l'estimation de modèles plus complexes, avec des approches par réseaux de neurones (Aouad & Désir, 2022 ; Han et al., 2022) et des modèles à base d'arbres (Aouad et al., 2023 ; Salvadé & Hillel, 2024). Alors que les bibliothèques de choix existantes (Bierlaire, 2023 ; Brathwaite & Walker, 2018 ; Du et al., 2023) ne sont souvent pas conçues pour intégrer de telles approches basées sur l'apprentissage automatique, Choice-Learn propose une collection incluant les deux types de modèles.
Opérations en aval : Optimisation de l'assortiment et des prix
Choice-Learn offre des outils supplémentaires pour les opérations en aval, qui ne sont généralement pas intégrés dans les bibliothèques de modélisation des choix. En particulier, l'optimisation de l'assortiment est un cas d'utilisation courant qui s'appuie sur un modèle de choix pour déterminer le sous-ensemble optimal d'alternatives à proposer aux clients en maximisant un certain objectif, tel que le revenu attendu, le taux de conversion ou le bien-être social. Ce cadre englobe une variété d'applications telles que la planification de l'assortiment, l'optimisation de l'emplacement des étalages et la fixation des prix. Nous fournissons des implémentations basées sur la formulation de programmation en nombres entiers mixtes décrite dans (Méndez-Díaz et al., 2014), avec la possibilité de choisir le solveur entre Gurobi (Gurobi Optimization, LLC, 2023) et OR-Tools (Perron & Furnon,2024).
Utilisation de la mémoire : une étude de cas
La figure 3 (a) présente des exemples numériques d'utilisation de la mémoire afin de démontrer l'efficacité de FeaturesStorage. Nous considérons une caractéristique répétée dans un ensemble de données, telle qu'un codage à un coup pour les emplacements, représenté par une matrice de forme (#locations, #locations) où chaque ligne se réfère à un emplacement.
à un emplacement.
Nous comparons quatre méthodes de traitement data sur le jeu de données Expedia (Ben Hamner et al., 2013) : pandas.DataFrames (The pandas development team, 2020) en format long et large, tous deux utilisés dans les progiciels de modélisation des choix, Torch-Choice et Choice-Learn. La figure 3 (b) montre les
résultats pour différentes tailles d'échantillon.
Enfin, dans les figures 3 (c) et (d), nous observons des gains d'utilisation de la mémoire sur un ensemble de données propriétaire dans le domaine de la vente au détail en magasin, qui consiste en l'agrégation de plus de 4 milliards d'achats dans les supermarchés Konzum en Croatie. En se concentrant sur la sous-catégorie du café, l'ensemble de données spécifie, pour chaque achat, les produits disponibles, leurs prix, ainsi qu'une représentation à un point du supermarché.
