Auriau, Vincent, Ali Aouad, Antoine Désir e Emmanuel Malherbe. "Choice-Learn: Modellazione delle scelte su larga scala per contesti operativi attraverso la lente dell'apprendimento automatico". Journal of Open Source Software 9, n. 101 (2024): 6899.
Introduzione
I modelli di scelta discreta mirano a prevedere le decisioni di scelta prese dagli individui da un menu di alternative, chiamato assortimento. I casi d'uso più noti includono la previsione della scelta del mezzo di trasporto da parte di un pendolare o degli acquisti di un cliente. I modelli di scelta sono in grado di gestire le variazioni dell'assortimento, quando alcune alternative diventano non disponibili o quando le loro caratteristiche cambiano in contesti diversi. Questa adattabilità a diversi scenari consente di utilizzare questi modelli come input per problemi di ottimizzazione, tra cui la pianificazione dell'assortimento o la determinazione dei prezzi.
Choice-Learn fornisce una suite modulare di strumenti per la modellazione della scelta che consente ai professionisti e ai ricercatori accademici di elaborare dati sulla scelta e quindi di formulare, stimare e rendere operativi i modelli di scelta. La libreria è strutturata su due livelli di utilizzo, come illustrato nella Figura 1. Il livello superiore è progettato per un'implementazione semplice e veloce, mentre il livello inferiore consente parametrizzazioni più avanzate. Questa struttura, ispirata ai diversi endpoint di Keras (Chollet et al., 2015), consente un'interfaccia di facile utilizzo. Choice-Learn è stato progettato con i seguenti obiettivi:
I contributi principali sono riassunti nelle Tabelle 1 e 2.



Dichiarazione di necessità
Scalabilità dei dati e dei modelli
La gestione dei dati di Choice-Learn si basa su NumPy (Harris et al., 2020) con l'obiettivo di limitare l'ingombro in memoria. Riduce al minimo la ripetizione degli elementi o delle caratteristiche dei clienti e rinvia l'unione dell'intera struttura dei dati fino all'elaborazione dei lotti di dati. Il pacchetto introduce l'oggetto FeaturesStorage, illustrato nella Figura 2, che consente di fare riferimento ai valori delle caratteristiche solo tramite il loro ID. Questi valori vengono sostituiti al segnaposto ID al volo nel processo di batching. Ad esempio, le caratteristiche dei supermercati, come la superficie o la posizione, sono spesso stazionarie. Pertanto, possono essere memorizzate in una struttura dati ausiliaria e nel set di dati principale, il negozio in cui è stata registrata la scelta è referenziato solo con il suo ID.
Il pacchetto si basa su Tensorflow (Abadi et al., 2015) per la stima del modello, offrendo la possibilità di utilizzare un veloce algoritmo di ottimizzazione quasi-Newton come L-BFGS (Nocedal & Wright, 2006) e vari ottimizzatori gradient-descent (Kingma & Ba, 2017; Tieleman & Hinton, 2012) specializzati nella gestione di batch di dati. È possibile anche l'utilizzo delle GPU, che può rivelarsi un risparmio di tempo. Infine, la struttura portante di TensorFlow garantisce un uso efficiente in un ambiente di produzione, ad esempio all'interno di un software di raccomandazione assortito, attraverso strumenti di distribuzione e di servizio, come TFLite e TFServing.

Utilizzo flessibile: Dall'utilità lineare alle specifiche personalizzate
I modelli di scelta che seguono il principio della massimizzazione dell'utilità casuale (McFadden & Train, 2000) definiscono l'utilità di un'alternativa 𝑖 ∈ 𝒜 come la somma di una parte deterministica 𝑈 (𝑖) e di un errore casuale 𝜖𝑖. Se i termini (𝜖𝑖)𝑖∈𝒜 sono assunti come indipendenti e distribuiti da Gumbel, la probabilità di scegliere l'alternativa 𝑖 può essere scritta come normalizzazione della softmax sulle alternative disponibili 𝑗 ∈ 𝒜:

Il compito del modellatore di scelte è quello di formulare un'adeguata funzione di utilità 𝑈 (.) in base al contesto. In Choice-Learn, l'utente può parametrizzare modelli predefiniti o specificare liberamente una funzione di utilità personalizzata. Per dichiarare un modello personalizzato, è necessario ereditare la classe ChoiceModel e sovrascrivere il metodo compute_batch_utility, come mostrato nella documentazione.
Libreria di modelli tradizionali di utilità casuale e modelli basati sull'apprendimento automatico
I modelli di scelta parametrici tradizionali, compreso il Logit condizionato (Train et al., 1987), spesso specificano la funzione di utilità in forma lineare. Questo fornisce coefficienti interpretabili, ma limita il potere predittivo del modello. Lavori recenti propongono la stima di modelli più complessi, con approcci basati su reti neurali (Aouad & Désir, 2022; Han et al., 2022) e modelli ad albero (Aouad et al., 2023; Salvadé & Hillel, 2024). Mentre le librerie di scelta esistenti (Bierlaire, 2023; Brathwaite & Walker, 2018; Du et al., 2023) spesso non sono progettate per integrare questi approcci basati sull'apprendimento automatico, Choice-Learn propone una raccolta che include entrambi i tipi di modelli.
Operazioni a valle: Ottimizzazione dell'assortimento e dei prezzi
Choice-Learn offre strumenti aggiuntivi per le operazioni a valle, che di solito non sono integrati nelle librerie di modelli di scelta. In particolare, l'ottimizzazione dell'assortimento è un caso d'uso comune che sfrutta un modello di scelta per determinare il sottoinsieme ottimale di alternative da offrire ai clienti massimizzando un certo obiettivo, come il ricavo atteso, il tasso di conversione o il benessere sociale. Questo framework è adatto a una varietà di applicazioni, come la pianificazione dell'assortimento, l'ottimizzazione della posizione degli espositori e la determinazione dei prezzi. Forniamo implementazioni basate sulla formulazione della programmazione mista-integrale descritta in (Méndez-Díaz et al., 2014), con la possibilità di scegliere il solutore tra Gurobi (Gurobi Optimization, LLC, 2023) e OR-Tools (Perron & Furnon, 2024).
Utilizzo della memoria: un caso di studio
Nella Figura 3 (a) sono riportati esempi numerici di utilizzo della memoria per mostrare l'efficienza del FeaturesStorage. Consideriamo una caratteristica ripetuta in un set di dati, come una codifica one-hot per le località, rappresentata da una matrice di forma (#locations, #locations) in cui ogni riga si riferisce a una località.
a una località.
Confrontiamo quattro metodi di gestione dei dati sul dataset Expedia (Ben Hamner et al., 2013): pandas.DataFrames (The pandas development team, 2020) in formato lungo e largo, entrambi utilizzati nei pacchetti di modellazione della scelta, Torch-Choice e Choice-Learn. La Figura 3 (b) mostra i
risultati per diverse dimensioni del campione.
Infine, nella Figura 3 (c) e (d), osserviamo i guadagni in termini di utilizzo della memoria su un set di dati proprietario nel settore della vendita al dettaglio in mattoni e supermercati che consiste nell'aggregazione di oltre 4 miliardi di acquisti nei supermercati Konzum in Croazia. Concentrandosi sulla sottocategoria del caffè, il dataset specifica, per ogni acquisto, quali prodotti erano disponibili, i loro prezzi e una rappresentazione a un solo punto del supermercato.
