GamaFlow

Um sistema de recomendação em tempo real que combina o fluxo de informação referente às vendas de produtos e as características do comportamento dos clientes da ABInBev.

  • 5000 Raised
  • 2 Juries

Categories

  • Sistema de recomendação e otimização

Featured Video

Description

RecSys AbInbev - GamaFlow


AUTORES

Claudiney R. Tinoco; Heitor F. Ferreira.


Link projeto no Github


PROBLEMA SELECIONADO

“Sistema de Recomendação: desenvolver um sistema de recomendação que permita a venda e venda cruzada de produtos (novos produtos ou produtos já comprados), possibilitando maior geração de receita.”


      RESUMO

Este projeto propõe uma aplicação híbrida de técnicas baseadas em Data Streams, Machine Learning e Agentes Inteligentes para categorizar, em tempo real, vendas B2B realizadas pela ABInBev. Através do dinamismo na evolução dessas categorias, será possível recomendar produtos considerando as características individuais de cada cliente. Isso será possível pois o projeto recomendará, com base na localização, comportamento do cliente, disponibilidade dos produtos e histórico de compras, as melhores opções para cada região. Além disso, como o sistema detecta mudanças no consumo, poderá notificar os centros de distribuição e as fábricas para que se adaptem a essas mudanças, garantindo a alta disponibilidade. Como resultado, espera-se o aumento dos lucros, elevar a experiência do cliente, estar atualizado às tendências de mercado e a prevenção de indisponibilidades.

palavras-chave: fluxo de dados; venda-cruzada; tempo real; mineração; agrupamento. 


      ABSTRACT

This project proposes a hybrid application of techniques based on Data Streams, Machine Learning and Intelligent Agents to categorize, in real time, the B2B sales made by the ABInBev. Through the dynamism in the evolution of these categories, it will be possible to recommend products considering the individual characteristics of each customer. This is possible because the project will recommend, based on location, customer behaviour, product availability and purchase history, the best options for each region. Besides, as the system detects changes in consumption, it will be able to notify distribution centers and factories to adapt to these changes, ensuring high availability. As a result, it is expected to increase profits, improve the customer experience, stay updated with market trends and prevent outages.

keywords: data-streams; cross-selling; anytime; data-mining; clustering. 


      1. INTRODUÇÃO

O aumento da quantidade de dispositivos e usuários conectados à rede, a velocidade de circulação da informação e a quantidade de informação (e.g., redes sociais, internet das coisas (IoT), dispositivos móveis pessoais e plataformas de e-commerce), faz-se necessário o desenvolvimento de técnicas que sejam capazes de trabalhar de forma eficiente nessa nova realidade. Esses cenários são totalmente dinâmicos e pedem “tomadas de decisão” em tempo real. O uso de planilhas ou banco de dados com informações passadas, ainda possuem grande valor na agregação de conhecimento, contudo, permitem apenas que mudanças no conceito da operação sejam observadas depois de acontecerem. Segundo Gama (2010), essas características se devem ao fato de que agora não se tem somente pessoas alimentando computadores, mas, computadores alimentando computadores, o que gera um crescimento exponencial.


Vendas e vendas cruzadas de produtos são exemplos claros de cenários onde se faz necessária a tomada de decisão em tempo real, uma vez que é preciso detectar rapidamente novas tendências de vendas e desvios de conceitos das rotinas dos consumidores. O trabalho de Veloso (2021), apresenta os principais fundamentos e motivações da aplicação de técnicas baseadas em Data Stream, focando, principalmente, na descoberta de conteúdo através da classificação e recomendação. Otsuka (2016) propôs a aplicação de Data Streams na proposição de um sistema automático para a recomendação de hashtags no Twitter, auxiliando os usuários a encontrar hashtags relevantes aos seus interesses. No trabalho de Ludman (2017), a detecção de conhecimento através de Data Streams foi aplicada na recomendação de artigos científicos relevantes da literatura. Por sua vez, Portugal (2018) apresenta uma revisão da literatura referente a aplicação de Machine Learning (ML) em Sistemas de Recomendação (RecSys). Por exemplo, no trabalho de Fessahaye (2019), uma técnica baseada em ML foi proposta para a recomendação de músicas e conteúdos de entretenimento (e.g., YouTube e Netflix).


Sendo assim, buscando solucionar o problema apresentado, este projeto apresenta a proposição e as direções para o desenvolvimento de um RecSys baseado na composição de técnicas de Data Streams, ML e Agentes Inteligentes com foco não só na eficácia da recomendação de produtos ABInBev, mas, também na eficiência e acurácia.


          1.1. Hipótese

Considerando a necessidade de se identificar mudanças no comportamento do mercado de forma automática e o crescimento exponencial no volume de informação, este projeto busca encontrar um sistema eficiente de recomendação, capaz de recomendar em tempo real produtos para os clientes ABInBev. Um sistema com essas características apresenta alta relevância nas duas pontas, tanto para os clientes quanto para a ABInBev. Isso se deve ao fato de que os clientes terão uma melhor experiência e maior lucratividade, pois estarão atualizados às tendências do mercado. Além disso, o sistema poderá auxiliar na manutenção da alta disponibilidade nos centros de distribuição da ABInBev, o que diminuiria o cancelamento de vendas por indisponibilidade.


Assim, a hipótese pode ser apresentada da seguinte forma:

“A combinação do fluxo de informação referente às vendas de produtos com as características de comportamento dos clientes da ABInBev, permite a proposição de um sistema de recomendação em tempo real.”


          1.2. Metodologia

Sistemas baseados em Data Streams realizam agrupamentos de dados em tempo real a partir de fluxos da informação, i.e., os dados são processados à medida que se apresentam, e o resultado, deve refletir o estado atual dos dados e não um estado passado. A partir dessas características, surge a proposição de aplicar streams nas vendas cruzadas de produtos oferecidos pela ABInBev.


O fluxo de informação que irá alimentar o sistema baseado em Data Streams representa as vendas realizadas pela empresa. A detecção do surgimento de uma nova classe representará uma nova tendência de venda (denominado na literatura por concept drift). A partir da detecção de uma nova classe de vendas, será possível direcionar e sugerir para os clientes/consumidores novos produtos.


A literatura apresenta vários algoritmos baseados em Data Stream que podem ser aplicados na construção da solução do problema em questão. Dentre esses algoritmos podemos destacar: Clustree (Kranen, Assent, Baldauf, & Seidl, 2011), Denstream (Cao, Estert, Qian, & Zhou, 2006) e o StreamKM++ (Marcel R. Ackermanny, 2012). Esses algoritmos são importantes para o embasamento teórico da proposta, e não impedem a proposição de um sistem próprio que segue as necessidades do negócio.


O histórico de compras dos clientes servirá como fonte para aplicação ML, que permitirá o funcionamento do RecSys voltado para os clientes. Para clientes novos no sistema (compradores), o sistema realizará a estratégia de Cold-Start, recomendando produtos que estão clusterizados por região. 


Como exemplos, podemos citar as empresas do ramo de entretenimento digital (e.g., Youtube, Netflix, Spotify, etc), que usam o histórico de visualização dos conteúdos por parte dos clientes, dados sobre os seus conteúdos e classificações dos conteúdos por parte das suas equipes especializadas, para prever o próximo conteúdo que melhor satisfará as necessidades dos seus clientes.


A abordagem escolhida, para os sistema de ML, será a híbrida, uma vez que a mesma combina as filtragens baseadas em conteúdo (content-based) e colaborativa (collaborative filter). Como o objetivo é utilizar também as vendas passadas do cliente, a filtragem baseada em conteúdo se baseia nos conteúdos já consumidos por esse cliente na plataforma e dados do sistema sobre os produtos da AbInbev. Com o perfil desse cliente, o sistema irá buscar produtos semelhantes para realizar a recomendação. Por sua vez, na filtragem colaborativa, iremos basear nos dados comportamentais do cliente, possibilitando recomendar e combinar o seu perfil com o perfil de outros clientes.


      2. RecSys GamaFlow

Esta seção apresenta o sistema proposto para a recomendação de produtos ABInBev. Denominado de GamaFlow, o sistema recebeu esse nome em homenagem ao professor João Gama (Universidade do Porto - Portugal), uma das maiores referências no mundo se tratando de DataStreams. O sistema GamaFlow é um sistema híbrido formado pela combinação de três técnicas: um algoritmo de avaliação para DataStreams, um algoritmo de Machine Learning e a modelagem de um Agente Inteligente.


De maneira sucinta, o algoritmo de DataStreams recebe o fluxo de dados referente às vendas feitas pela empresa e, através desse fluxo, detecta mudanças no comportamento dos clientes. Essas mudanças podem ser caracterizadas pelo surgimento da demanda de um novo produto, ou aumento/queda na consumação de produto que já estava no mercado. Quando uma mudança é detectada, o algoritmo a deixa em evidência para uma futura tomada de decisão. O algoritmo de ML é responsável por criar os padrões de perfis dos clientes. Com o perfil do cliente, é possível determinar se a mudança detectada no comportamento do mercado deve ser recomendada ao mesmo, i.e., se o produto referente a essa mudança está de acordo com os padrões de consumo desse cliente. Por último, o Agente Inteligente, que é responsável por realizar as tomadas de decisão, considerando algumas variáveis ambientais. Essas variáveis estão relacionadas, principalmente, com as mudanças de conceito destacadas pelo algoritmo de DS, a verificação do perfil do cliente através do algoritmo de ML e o estado atual do seu carinho. Como possíveis ações, esse agente pode recomendar novos produtos ou o redimensionamento do carrinho dos clientes, bem como notificar os CDDs para prepararem o estoque, garantido a disponibilidade, e as fábricas para aumentar/diminuir o ritmo da produção de um determinado produto.


A descrição detalhada do sistema foi organizada de acordo com os seguintes tópicos: (i) Arquitetura do Sistema, onde é feita a representação do sistema de forma clara e objetiva, mapeando as funcionalidades de cada componente e como as interações entre esses componentes acontecem dentro desse sistema; (ii) Dados de Entrada do sistema, destacando os dados necessários para que as recomendações e notificações sejam realizadas com sucesso, bem como informações importantes que ainda não são coletadas; (iii) Ferramentas de Pré-Análise, onde descrevemos a ferramenta MOA para análise de DataStreams, a qual é utilizada para avaliarmos quais algoritmos se encaixam no problema; e, por fim, (iv) são listadas as Métricas de Avaliação, com o objetivo apresentar possibilidades para quantificar a eficácia e a eficiência do sistema.


          2.1. Arquitetura do Sistema

A arquitetura apresentada foi modelada de forma a facilitar o entendimento do sistema proposto, uma vez que a sua composição híbrida incrementa a sua complexidade. Dessa forma, a arquitetura foi desenvolvida com um nível de abstração mais alto, através de uma abordagem baseada em componentes. O uso de componentes foi possível uma vez que as informações trocadas e as interfaces dos mesmos são bem definidas.


A Figura 01 descreve a arquitetura do sistema GamaFlow. O fluxo se inicia pelos usuários (users), que no caso são clientes B2B da AbInbev. Esses clientes entram no sistema de e-commerce da empresa e iniciam uma nova compra. Ao iniciar uma nova compra, o servidor de e-commerce irá executar a sequência pré-definida de ações para realizar a venda, ao mesmo tempo que envia para o RecSys GamaFlow uma requisição (RecSys request) para efetuar a recomendação de algum produto para esse cliente em específico. A interface do RecSys GamaFlow enviará a requisição do servidor de e-commerce diretamente para o Agente Inteligente (intelligent agent). Esse agente, em um primeiro momento, irá observar o ambiente em que está inserido (perception), realizando a coleta das variáveis necessárias para a sua tomada de decisão. Dentre as variáveis coletadas pelo agente, estão as mudanças de conceito destacadas pelo algoritmo de DS, a avaliação do perfil do cliente feita pelo algoritmo de ML e o estado atual do carrinho do cliente analisado. Após a análise dessas variáveis, o agente envia uma recomendação (recommendation) para o servidor de e-commerce, que, por sua vez, repassa essa recomendação para o cliente. Dependendo da construção desse agente, o mesmo pode conter implementar um algoritmo de aprendizado, e também levar em consideração os resultados das recomendações realizadas no passado (feedback). 



Figura 01: Arquitetura do sistema de recomendação GamaFlow.

 A detecção de mudanças no comportamento do mercado na região onde o cliente está inserido é o principal ponto do sistema GamaFlow. A cada nova compra, o servidor de e-commerce envia os dados referentes a essa compra para o algoritmo de DS. Esse envio constante de informação forma o fluxo de dados (data stream) e, através desses dados, o algoritmo de DS (DS algorithm) detecta mudanças no comportamento do mercado em tempo real. As mudanças de comportamento detectadas, são traduzidas em tendências claras (trends info) para serem utilizadas em futuras tomadas de decisão.


Os mesmos dados que são passados para o algoritmo de DS são armazenados em um banco de dados (sellings data). Utilizando essas informações históricas de vendas, um algoritmo de ML (ML algorithm) é treinado para aprender os diferentes perfis dos clientes (profiles). A construção de um módulo capaz de aprender os perfis dos clientes é importante para definir quais informações de tendências, apresentadas pelo algoritmo de DS, devem ser recomendadas para os clientes. Em outras palavras, não basta que uma mudança no comportamento do mercado seja detectada para que uma recomendação seja enviada, é necessário verificar se essa mudança está de acordo com as necessidades do cliente.


A análise do carrinho do cliente (e-cart), através das informações do usuário (users data), é importante para verificar a forma e as possibilidades de recomendação, uma vez que, dependendo do conteúdo do carrinho, o RecSys GamaFlow poderá, por exemplo, selecionar uma estratégia de cross-selling ou de up-selling. Vale destacar que outras informações sobre o comportamento do cliente e do público em geral seriam de importantes para as tomadas de decisão do Agente Inteligente (e.g., o comportamento do cliente dentro site; os produtos que o cliente mais visualiza; trends topics relacionados em redes sociais; e eventos de grande porte que poderão acontecer na região).


Além da recomendação eficiente de produtos para os clientes (o que impacta no aumento dos lucros, melhorias na experiência do cliente, facilidade de se manter atualizados às tendências de mercado e etc), e visto que o GamaFlow possui informações sobre mudanças no comportamento do mercado, o mesmo pode, através do seu Agente Inteligente, enviar notificações (notification) para os CDDs e para as fábricas (factory) da empresa para se adaptarem de maneira mais rápida às mudanças do mercado. Essas notificações são de extrema importância para garantir a disponibilidade dos produtos ou, pelo menos, reduzir o tempo de indisponibilidade em casos extremos. 


          2.2. Dados de entrada (DataStream)

O fluxo de dados (datastream) que irá alimentar o algoritmo de DS será constituído pelos seguintes dados de entrada:


  • M2_Territory_ID - Location ID 2 of Wholesaler

  • M1_Territory_ID - Location ID 1 (sub - location) of Wholesaler

Necessários para entender e definir a localização dos clientes. Com esses dados será possível delimitar as regionalidade na qual o cliente está inserido e, então, recomendar produtos de acordo com as tendências daquela região.


  • Brand - Brand of Material/SKU

  • Subrand - Sub brand of Material/SKU

  • Segment LE - Beer segment of Material/SKU

  • Degre Alc - % alcohol in beer

Necessários para entender e criar grupos de produtos relacionados com o consumo dos clientes em cada região. Com esses dados, será possível definir as mudanças de conceito na consumação dos clientes.


  • HL delivered - Hectolitre delivered of the Material/SKU in one order

Necessário para entender a quantidade dos pedidos. Esse dado possibilita, por exemplo, a recomendação de up-sellings para clientes futuros, levando em consideração o conteúdo dos seus carrinhos (e-carts).


Alguns dados não estão disponíveis do dataset atual da empresa, e esses seriam imprescindíveis para o sucesso da aplicação do sistema de recomendação. Dentre esses dados ausentes, podemos destacar:

  • On_off_trade: variável indicando qual o modelo de venda do cliente, off sendo off-trade clientes que seus clientes finais não consomem in loco (e.g., mercearias, supermercados), e on-trade sendo os locais onde o cliente final consome in loco (e.g., bares, botecos, pubs, restaurantes, casas de show). 

          2.3. Protótipo

O sistema GamaFlow, descrito anteriormente, é um sistema híbrido, composto de três técnicas (um algoritmo de datastream, um algoritmo de ML e um agente inteligente). Contudo, para a prototipação do projeto, foi implementada apenas a parte de detecção de mudanças no comportamento do mercado através de um algoritmo de datastreams. Essa escolha se deve ao fato de que a detecção em tempo real de mudanças no mercado é a principal característica do sistema proposto.


Para a construção do protótipo, foi implementado uma variação do algoritmo top-k (Spacing-Saving), que tem como objetivo, definir os produtos que estão sendo mais cotados no cenário em questão através da exploração de um datastream. Essa análise é feita utilizando métricas de avaliação e realizando a manutenção de um ranking de produtos que possuem mais influência (por se tratar de um datastream, com a evolução do tempo, novos produtos podem entrar e produtos antigos podem sair do ranking). A Figura 2, ilustra a principal tela do sistema GamaFlow, considerando a fase de detecção de mudanças no comportamento do mercado. Nela é possível observar o ranking de cervejas que estão em destaque no mercado analisado (dados reais do dataset ABInBev). No caso o sisteam está mantendo um top-5 das cervejas que estão sendo consumidas na região analisada. As informações trazidas por esse ranking representam uma das variáveis que são utilizadas pelo agente inteligente no seu processo de decisão para realizar as recomendações. 


Figura 02: Tela principal do protótipo GamaFlow (Algoritmo de DS).

 Vale ressaltar que, antes da implementação do protótipo, foi feita uma pré-análise dos algoritmos de datastream com a ferramenta de código aberto Massive Online Analysis, MOA (Bifet et al., 2010). Essa ferramenta é um ambiente de análise que implementa diversos algoritmos de classificação, clusterização e de detecção de desvio de conceito. Através dessa análise, foi possível definir quais algoritmos se encaixam melhor nas características do problema em questão.


O algoritmo top-k foi escolhido para ser aplicado na prototipação do RecSys aqui proposto, por possuir características mais simples de serem implementadas. Contudo, considerando a pré-análise feita no software MOA, para a implementação em ambiente de produção, indicamos um algoritmo mais robusto, como o ClusTree. O ClusTree (Kranen, 2011) é um algoritmo para agrupamento de datastreams baseado em uma estrutura de indexação que mantém sumários de streams. Essa estrutura permite armazenar e manter uma visão compacta do agrupamento atual. O algoritmo é livre de parâmetros, todos os dados da stream são indexados e o algoritmo se adapta automaticamente às mudanças na velocidade do fluxo de dados, permitindo o melhor uso do tempo disponível.


          2.4. Métricas de avaliação

    A proposição de um sistema de recomendação deve ser acompanhada de métricas de avaliação, assim o sistema pode ser analisado antes de ser aplicado em operação. Essas métricas são essenciais para comprovar a eficácia do sistema e, visto que técnicas clássicas de recomendação são amplamente utilizadas, se torna possível realizar uma comparação entre ambos, garantindo não só a sua eficácia, mas, também, a sua eficiência e acurácia. A seguir, estão listadas algumas métricas que podem ser utilizadas na avaliação do sistema proposto.


  • Métrica 01: Analisar o desempenho da primeira recomendação feita pelo sistema. Essa análise é feita calculando a quantidade de vendas realizadas com sucesso. A porcentagem de sucesso se dá pela divisão da quantidade de vendas realizadas devido a uma recomendação pelo total de recomendações;

  • Métrica 02: Analisar a perpetuação das recomendações passadas. Essa análise é feita avaliando a quantidade de clientes que voltaram a comprar um produto que foi recomendado em uma venda passada, sem a necessidade de uma nova recomendação. A porcentagem de sucesso se dá pela divisão da quantidade de clientes que voltaram a comprar pela quantidade de clientes que não voltaram;

  • Métrica 03: Comparar o sistema com métodos clássicos da literatura. Uma vez que os métodos de classificação e recomendação clássicos são simples de serem implementados, uma análise comparativa se torna interessante para avaliar o sistema proposto. A porcentagem de sucesso pode ser calculada utilizando alguma das métricas mencionadas anteriormente, e então os sistemas são comparados considerando os valores obtidos;

  • Métrica 04: Encontrar os dados históricos dos momentos críticos referentes à indisponibilidades de um produto nos CDD da empresa, e simular o sistema preditivo para observar as notificações de mudança de conceito. Dessa forma, será possível avaliar em quanto o tempo de indisponibilidade seria reduzido caso o sistema proposto estivesse em produção naquele momento;

  • Métrica 05: Utilizar o próprio sistema de feedback já implementado pela Ambev, o Net Promote Score (NPS). Esse sistema tem como objetivo garantir que os clientes estão sendo bem atendidos e melhorar a sua experiência sempre que possível. Com esse sistema é possível avaliar se as recomendações realizadas estão de acordo com as necessidades dos clientes e definir o grau de satisfação dos mesmos.


    Feedback: Como já mencionado, agente inteligente executa o processo de tomada de decisão no qual escolhe o produto que será recomendado aos clientes. Dessa forma, se torna necessário um mecanismo de feedback para que esse tenha “conhecimento” da sua eficácia no processo de recomendação. Através do feedback, o agente poderá realizar rotinas para aprimorar o seu processo decisório (e.g., retreinar a sua rede neural e atualizar os parâmetros do sistema) e, por consequência, a sua eficácia nas recomendações. Para esse processo, podem ser aplicadas as métricas de avaliação definidas anteriormente.


      3. REFERÊNCIAS

ACKERMANNY, M. R.; MÄRTENS, M; RAUPACH, C; SWIERKOT, K; LAMMERSEN, C; SOHLER, C. “StreamKM++: A clustering algorithm for data streams”. Journal of Experimental Algorithmics (JEA), 17, pp. 2-4, 2012.


BIFET, A., HOLMES, G., PFAHRINGER, B., KRANEN, P., KREMER, H., JANSEN, T., & SEIDL, T. (2010, September). “Moa: Massive online analysis, a framework for stream classification and clustering”. In Proceedings of the First Workshop on Applications of Pattern Analysis (pp. 44-50). PMLR.


CAO, F.; ESTERT, M.; QIAN, W.; ZHOU, A. “Density-Based Clustering over an Evolving Data Stream with Noise”. In: International Conference on Data Mining, pp. 328-339, 2006.


FESSAHAYE, F.; PEREZ, L.; ZHAN, T.; ZHANG, R.; FOSSIER, C. et al. “T-recsys: A novel music Recommendation System using Deep Learning”. In: IEEE international conference on consumer electronics (ICCE). IEEE, p. 1-6, 2019.


GAMA, J.. “Knowledge Discovery from Data Streams”. CRC Press, 2010.


KRANEN, P.; ASSENT, I.; BALDAUF, C.; SEIDL, T. “The ClusTree: indexing micro-clusters for anytime stream mining”. Knowledge and Information Systems, 29, pp. 249-272, 2011.


LUDMANN, Cornelius A. “Recommending News Articles in the CLEF News Recommendation Evaluation Lab with the Data Stream Management System Odysseus”. In: CLEF (Working Notes). 2017.


OTSUKA, E.; WALLACE, S. A.; CHIU, D. “A hashtag recommendation system for twitter data streams”. Computational Social Networks, v. 3, n. 1, p. 1-26, 2016.


PORTUGAL, I.; ALENCAR, P.; COWAN, D. “The use of machine learning algorithms in recommender systems: A systematic review”. Expert Systems with Applications, v. 97, p. 205-227, 2018.


VELOSO, B.; GAMA, J.; MALHEIRO, B. “Classification and Recommendation With Data Streams”. In: Encyclopedia of Information Science and Technology, Fifth Edition. IGI Global. p. 675-684, 2021.

Copyright © 2022 All rights reserved. TAIKAI — Hackathon Platform.