Auriau, Vincent, Ali Aouad, Antoine Désir e 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.

Introdução

Os modelos de escolha discreta têm como objetivo prever as decisões de escolha tomadas por indivíduos em um menu de alternativas, chamado de sortimento. Casos de uso bem conhecidos incluem a previsão da escolha do modo de transporte de um viajante ou das compras de um cliente. Os modelos de escolha são capazes de lidar com variações de sortimento, quando algumas alternativas se tornam indisponíveis ou quando seus recursos mudam em diferentes contextos. Essa adaptabilidade a diferentes cenários permite que esses modelos sejam usados como insumos para problemas de otimização, incluindo planejamento de sortimento ou precificação.

O Choice-Learn oferece um conjunto modular de ferramentas de modelagem de escolha para que profissionais e pesquisadores acadêmicos processem a escolha data e, em seguida, formulem, estimem e operacionalizem modelos de escolha. A biblioteca está estruturada em dois níveis de uso, conforme ilustrado na Figura 1. O nível mais alto foi projetado para uma implementação rápida e fácil e o nível mais baixo permite parametrizações mais avançadas. Essa estrutura, inspirada nos diferentes pontos de extremidade do Keras (Chollet et al., 2015), permite uma interface fácil de usar. O Choice-Learn foi projetado com os seguintes objetivos:

  • Simplificado: O processamento de conjuntos de dados e a estimativa de modelos de escolha padrão são facilitados por uma assinatura de código simples que é consistente com os principais pacotes de aprendizado de máquina, como o scikit-learn (Pedregosa et al., 2011).

  • Escalável: Processos otimizados são implementados para data armazenamento e estimativa de modelos, permitindo o uso de grandes conjuntos de dados e modelos com um grande número de parâmetros.

  • Flexível: A base de código pode ser personalizada para se adequar a diferentes casos de uso.

  • Biblioteca de modelos: O mesmo pacote fornece implementações de modelos de escolha padrão e métodos baseados em aprendizado de máquina, incluindo redes neurais.

  • Operações downstream: As ferramentas de pós-processamento que utilizam modelos de escolha para planejamento de sortimento e precificação são integradas à biblioteca.

As principais contribuições estão resumidas nas Tabelas 1 e 2.

class="lazyload
class="lazyload
class="lazyload

Declaração de necessidade

Data e escalabilidade do modelo

O gerenciamento do data do Choice-Learn se baseia no NumPy (Harris et al., 2020) com o objetivo de limitar o espaço de memória. Ele minimiza a repetição de itens ou recursos de clientes e adia a junção de toda a estrutura data até o processamento de lotes de data. O pacote apresenta o objeto FeaturesStorage, ilustrado na Figura 2, que permite que os valores dos recursos sejam referenciados somente por seu ID. Esses valores são substituídos pelo espaço reservado para ID durante o processo de processamento em lote. Por exemplo, os recursos dos supermercados, como superfície ou posição, geralmente são estacionários. Assim, eles podem ser armazenados em uma estrutura data auxiliar e, no conjunto de dados principal, a loja em que a escolha é registrada é referenciada apenas com seu ID.

O pacote se baseia no Tensorflow (Abadi et al., 2015) para a estimativa de modelos, oferecendo a possibilidade de usar o algoritmo de otimização rápida quase-Newton, como o L-BFGS (Nocedal & Wright, 2006), bem como vários otimizadores de gradiente descendente (Kingma & Ba, 2017; Tieleman & Hinton, 2012) especializados em lidar com lotes de data. O uso de GPU também é possível, o que pode economizar tempo. Por fim, o backbone do TensorFlow garante um uso eficiente em um ambiente de produção, por exemplo, dentro de um software de recomendação de sortimento, por meio de ferramentas de implantação e de serviço, como o TFLite e o TFServing.

class="lazyload

Uso flexível: Da utilidade linear à especificação personalizada

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 um erro aleatório 𝜖𝑖. Se os termos (𝜖𝑖)𝑖∈𝒜 forem considerados independentes e distribuídos em Gumbel, a probabilidade de escolher a alternativa 𝑖 pode ser escrita como a normalização softmax sobre as alternativas disponíveis 𝑗 ∈ 𝒜:

class="lazyload

O trabalho do modelador de escolhas é formular uma função de utilidade adequada 𝑈 (.) dependendo do 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 a 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 de escolha paramétricos tradicionais, incluindo o Logit condicional (Train et al., 1987), geralmente especificam a função de utilidade em uma forma linear. Isso fornece coeficientes interpretáveis, mas limita a capacidade de previsão 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) geralmente não sejam projetadas para integrar essas abordagens baseadas em aprendizado de máquina, a Choice-Learn propõe uma coleção que inclui os dois tipos de modelos.

Operações downstream: Otimização de sortimento e preços

O Choice-Learn oferece ferramentas adicionais para operações downstream, que normalmente não são integradas em bibliotecas de modelagem de escolha. Em particular, a otimização de sortimento é um caso de uso comum que aproveita um modelo de escolha para determinar o subconjunto ideal de alternativas para oferecer aos clientes, maximizando um determinado objetivo, como a receita esperada, a taxa de conversão ou o bem-estar social. Essa estrutura capta uma variedade de aplicações, como planejamento de sortimento, otimização do local de exibição e precificação. Fornecemos implementações baseadas na formulação de programação inteira mista descrita em (Méndez-Díaz et al., 2014), com a opção de escolher o solucionador entre Gurobi (Gurobi Optimization, LLC, 2023) e OR-Tools (Perron & Furnon,2024).

Uso da memória: um estudo de caso

Na Figura 3 (a), apresentamos exemplos numéricos de uso de memória para demonstrar a eficiência do FeaturesStorage. Consideramos um recurso repetido em um conjunto de dados, como uma codificação one-hot para locais, representado por uma matriz de forma (#locations, #locations) em que cada linha se refere a um local.
a um local.
Comparamos quatro métodos de tratamento data no conjunto de dados Expedia (Ben Hamner et al., 2013): pandas.DataFrames (The pandas development team, 2020) em formato longo e largo, ambos usados em 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, na Figura 3 (c) e (d), observamos ganhos de uso de memória em um conjunto de dados proprietário de varejo físico que consiste na agregação de mais de 4 bilhões de compras em supermercados Konzum na Croácia. Concentrando-se 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 de um ponto do supermercado.

class="lazyload
class="lazyload

Blog do Medium por Artefact.

Este artigo foi publicado inicialmente no Medium.com.
Siga-nos em nosso blog no Medium!