Auriau, Vincent, Ali Aouad, Antoine Désir e Emmanuel Malherbe. “Choice-Learn: Modelagem de escolha em grande escala para contextos operacionais sob a perspectiva do aprendizado de máquina.” Journal of Open Source Software 9, n.º 101 (2024): 6899.
Introdução
Os modelos de escolha discreta têm como objetivo prever as decisões de escolha tomadas por indivíduos a partir de um conjunto de alternativas, denominado “sortimento”. Casos de uso bem conhecidos incluem a previsão da escolha do meio de transporte por um passageiro ou das compras de um cliente. Os modelos de escolha são capazes de lidar com variações no sortimento, seja quando algumas alternativas ficam indisponíveis ou quando suas características mudam em diferentes contextos. Essa adaptabilidade a diferentes cenários permite que esses modelos sejam utilizados como dados de entrada para problemas de otimização, incluindo o planejamento do sortimento ou a definição de preços.
O Choice-Learn oferece um conjunto modular de ferramentas de modelagem de escolha para profissionais e pesquisadores acadêmicos, com o objetivo de processar data de escolha e, em seguida, formular, estimar e operacionalizar modelos de escolha. A biblioteca está estruturada em dois níveis de uso, conforme ilustrado na Figura 1. O nível superior foi projetado para uma implementação rápida e fácil, enquanto o nível inferior permite parametrizações mais avançadas. Essa estrutura, inspirada nos diferentes endpoints do Keras (Chollet et al., 2015), possibilita uma interface intuitiva. O Choice-Learn foi projetado com os seguintes objetivos:
As principais contribuições estão resumidas nas Tabelas 1 e 2.



Declaração de necessidade
Escalabilidade Data do modelo
data do Choice-Learn baseia-se no NumPy (Harris et al., 2020) com o objetivo de limitar o consumo de memória. Ela minimiza a repetição de itens ou características dos clientes e adia a junção da data completa data até o processamento de lotes data. O pacote introduz o objeto FeaturesStorage, ilustrado na Figura 2, que permite que os valores das características sejam referenciados apenas por seu ID. Esses valores são substituídos no placeholder do ID dinamicamente durante o processo de processamento em lotes. Por exemplo, características de supermercados, como área ou localização, costumam ser fixas. Assim, elas podem ser armazenadas em uma data auxiliar e, no conjunto de dados principal, a loja onde a escolha é registrada é referenciada apenas por seu ID.
O pacote baseia-se no TensorFlow (Abadi et al., 2015) para a estimativa de modelos, oferecendo a possibilidade de utilizar algoritmos de otimização quase-Newtonianos rápidos, como o L-BFGS (Nocedal & Wright, 2006), bem como vários otimizadores de descida de gradiente (Kingma & Ba, 2017; Tieleman & Hinton, 2012) especializados no tratamento de lotes data. Também é possível utilizar GPUs, o que pode representar uma economia de tempo. Por fim, a estrutura do TensorFlow garante um uso eficiente em ambiente de produção, por exemplo, em um software de recomendação de sortimento, por meio de ferramentas de implantação e serviço, como o TFLite e o TFServing.

Utilização flexível: desde aplicações lineares até especificações personalizadas
Os modelos de escolha que seguem o princípio da maximização da utilidade aleatória (McFadden & Train, 2000) definem a utilidade de uma alternativa 𝑖 ∈ 𝒜 como a soma de uma parte determinística 𝑈 (𝑖) e de um erro aleatório 𝜖𝑖. Se os termos (𝜖𝑖)𝑖∈𝒜 forem considerados independentes e distribuídos segundo a distribuição de Gumbel, a probabilidade de escolher a alternativa 𝑖 pode ser escrita como a normalização softmax sobre as alternativas disponíveis 𝑗 ∈ 𝒜:

A função do modelador de escolha é formular uma função de utilidade adequada 𝑈 (.) de acordo com o contexto. No Choice-Learn, o usuário pode parametrizar modelos predefinidos ou especificar livremente uma função de utilidade personalizada. Para declarar um modelo personalizado, é necessário herdar da classe ChoiceModel e sobrescrever o método compute_batch_utility, conforme mostrado na documentação.
Biblioteca de modelos tradicionais de utilidade aleatória e modelos baseados em aprendizado de máquina
Os modelos paramétricos tradicionais de escolha, incluindo o Logit Condicional (Train et al., 1987), frequentemente especificam a função de utilidade de forma linear. Isso proporciona coeficientes interpretáveis, mas limita o poder preditivo do modelo. Trabalhos recentes propõem a estimativa de modelos mais complexos, com abordagens de redes neurais (Aouad & Désir, 2022; Han et al., 2022) e modelos baseados em árvores (Aouad et al., 2023; Salvadé & Hillel, 2024). Embora as bibliotecas de escolha existentes (Bierlaire, 2023; Brathwaite & Walker, 2018; Du et al., 2023) muitas vezes não sejam projetadas para integrar tais abordagens baseadas em aprendizado de máquina, o Choice-Learn propõe uma coleção que inclui ambos os tipos de modelos.
Operações de distribuição: otimização do sortimento e dos preços
O Choice-Learn oferece ferramentas adicionais para operações posteriores, que normalmente não estão integradas nas bibliotecas de modelagem de escolha. Em particular, a otimização de sortimento é um caso de uso comum que utiliza um modelo de escolha para determinar o subconjunto ideal de alternativas a serem oferecidas aos clientes, maximizando um determinado objetivo, como a receita esperada, a taxa de conversão ou o bem-estar social. Essa estrutura abrange uma variedade de aplicações, tais como planejamento de sortimento, otimização da localização de exposição e definição de preços. Fornecemos implementações baseadas na formulação de programação mista inteira descrita em (Méndez-Díaz et al., 2014), com a opção de escolher o solucionador entre o Gurobi (Gurobi Optimization, LLC, 2023) e o OR-Tools (Perron & Furnon, 2024).
Uso da memória: um estudo de caso
Apresentamos na Figura 3 (a) exemplos numéricos de uso de memória para demonstrar a eficiência do FeaturesStorage. Consideramos uma característica repetida em um conjunto de dados, como uma codificação one-hot para localizações, representada por uma matriz de forma (#locations, #locations), em que cada linha se refere
a uma localização.
Comparamos quatro métodos data no conjunto de dados da Expedia (Ben Hamner et al., 2013): pandas.DataFrames (The pandas development team, 2020) nos formatos longo e largo, ambos utilizados nos pacotes de modelagem de escolha Torch-Choice e Choice-Learn. A Figura 3 (b) mostra os
resultados para vários tamanhos de amostra.
Por fim, nas Figuras 3 (c) e (d), observamos ganhos no uso de memória em um conjunto de dados proprietário sobre o varejo físico, composto pela agregação de mais de 4 bilhões de compras nos supermercados Konzum na Croácia. Com foco na subcategoria de café, o conjunto de dados especifica, para cada compra, quais produtos estavam disponíveis, seus preços, bem como uma representação one-hot do supermercado.


BLOG





