Ceos - Recomendação de produtos para pontos de vendas

Criar um sistema de recomendação que ajude a companhia a oferecer novos produtos aos PDVs com base na similaridade do perfil do estabelecimento ou no consumo comparado à outros com perfis semelhantes

  • 15000 Raised
  • 2 Juries

Categories

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

Featured Video

Description

Modelo de sistema de recomendação baseado em conteúdo para vendas cruzada em pontos de vendas (PDV)

 

Autores

Aurélien Géron; Rumsey, Deborah J.; Provost, Foster & Fawcett, Tom; Tensor Flow; Data Science Academy; Udemy.

 

Resumo

Visando atender de forma mais customizada e aumentar ao mesmo tempo a venda de produtos o sistema de recomendação procura encontrar através do relacionamento de dados históricos e modelos matemáticos a relação entre um novo produto a um cliente.


Palavras-chave

sistema de recomendação; machine learning; python; tensorflow; keras;

 

Introdução

Oferecer novos produtos ou serviços que se enquadre no perfil do comprador ou aos produtos que o mesmo já tenha adquirido é um dos objetivos dos Sistemas de Recomendação.

 

Empresas que desejam atender de forma customizada seus clientes e ao mesmo tempo alavancar suas vendas tem cada vez mais utilizado essa tecnologia. Cases como Netflix e Amazon se beneficiaram desse tipo de abordagem aumentando substancialmente suas vendas e outras empresas desejam fazer o mesmo.

 

Com o objetivo de indicar novos produto aos PDVs, este projeto visa criar um sistema de recomendação baseada em conteúdo tomando como base os pedidos de compra dos PDVs e informações sobre a região. Campos como Data, Id Mercadoria, Id Atacadista, Quantidade e Localização estão disponíveis nessa base.

 

A base técnica utilizada para o desenvolvimento deste projeto é oriunda de artigos e livros técnicos voltados para Machine e Deep Learning, referência de linguagem de programação e frameworks e cursos de voltados para IA.


Metodologia

Visando definir uma metodologia para criação do sistema de recomendação tomamos como base inicial a definição de alguns tópicos, que serão responsáveis por nortear o desenvolvimento e validação do algoritmo proposto, podendo assim - no final desses passos – obtermos um modelo matemático que possa resolver a hipótese de aproximação entre a função f(x) = y que resultará na recomendação de novos produtos (y) para um PDV informado (x).

  1. Problema a ser resolvido
    1. Qual é o problema
    2. Qual a solução ideal
    3. Como fazer isso com DataScience/ML
    4. Como vou saber que deu certo
  2. Preparação dos dados
  3. Modelagem e arquitetura
  4. Avaliação do modelo

 

Problema a ser resolvido


Qual é o problema?

Ajudar a companhia a oferecer novos produtos aos pontos de venda de forma precisa, aumentando assim as vendas de produtos correlacionados baseado no histórico de compra desses estabelecimentos.


Qual a solução ideal?

Visando atender as necessidades da companhia em oferecer novos produtos aos pontos de vendas e que esses produtos estejam dentro do perfil de compra e perfil do estabelecimento, foi proposto a criação de um sistema de recomendação que leve em consideração tais informações e possa disponibilizar de forma assertiva esses produtos.


Como posso isso fazer com DataScience, Machine/Deep Learning?

Criando um modelo preditivo que receba como parâmetros os dados do estabelecimento e retorne os produtos com maior percentual de aderência pelo estabelecimento.

Como vou saber que deu certo?

  • Durante o desenvolvimento:
    Será utilizada principalmente o RMSE (Root mean square error) Raiz do erro médio quadrático. Essa métrica avalia o quanto distante, em valores absolutos, uma previsão está em relação ao seu valor real.
  •  Durante o período de avaliação em produção:
    Analisando o percentual de conversão de produtos adquiridos por recomendação em relação ao total de itens comprados.

Preparação dos dados


O Dataset

O dataset obtido para resolver o desafio possui dados do pedido de compra emitido pela companhia, esse pedido compõem os seguintes campos de informações para estabelecimento e produto: Id, Grupo, Subgrupo, Endereço, Departamento, Latitude e Longitude fazem parte das informações para o Atacadista; e informações como: Data do Pedido, Material, Quantidade, Dias Entrega, Marca, Submarca, Segmento e Percentual Alcoólico são algumas colunas que compõem os dados do produto.

 

Feature engineering

O processo de feature engineering serve para enriquecer o dataset original: incluindo transformação, agregando ou removendo dados. Este processo tem como objetivo aumentar o valor e a capacidade de explicabilidade dos dados.

Alguns exemplos de feature enginerring que podemos aplicar no dataset:

  • Extração de dados: Extrair um dado de uma única coluna em várias colunas, como por exemplo: Fragmentar um único o campo Data em colunas para Dia, Mês e Ano. Podemos também incluir informações como Dia da semana ou uma flag se feriado ou não.
  • Padronização de dados numéricos: A existência de diferentes escalas de dados numéricos em um dataset pode dificultar a geração de um modelo mais preciso devido os dados estarem em escalas diferentes, por exemplo: Campos com unidade em mililitros e outros campos com unidades toneladas. Para esse tipo de problema podemos padronizar utilizando o padrão de StandardScale, MinMaxScaler e outros.
  • Criação de campos: Podemos utilizar um algoritmo para agrupar os produtos por similaridade e atribuir a esses produtos os rótulos dos grupos gerados reduzindo assim a quantidade de features para esse dataset.

 

Modelagem e Arquitetura


Ferramentas utilizadas

Para desenvolver o modelo  será utilizado como ferramental o Jupiter Notebook com Python 3.x , Pandas, Numpy, Scikit-Learning, nltk, scipy, Tensorflow e Keras. Essas bibliotecas fazem parte da stack de DataScience do ecossistema do python.

 

Arquitetura

Inicialmente a ideia é utilizar um modelo dummy para gerar as previsões de forma simples utilizando o KNN e tomando como base a acurácia e RMSE propor um modelo utilizando Redes Neurais com tensorflow-recommenders.


O modelo de sistema de recomendação a ser utilizado será o baseado em conteúdo, este tipo de sistema leva em consideração as informações dos produtos e assim o modelo não sofrerá do problema de cold-start (quando o modelo ainda não viu determinado produto e não sabe como o recomendar) pois levará em consideração as características do produto, com descrição, e procurará um produto que tenha uma similaridade parecida.

 

Análises estatísticas

Pensando em entender melhor a distribuição dos dados e como eles se comportam de forma distribuída, podemos levar em consideração as seguintes análises que poderão ser feitas no dataset para entender como os dados se comportam:

  • Medidas de centralidade: para enteder como os dados estão centralizados: Media, Media e Moda.
  • Medidas de dispersão: Amplitude, Variância e Desvio Padrão.
  • Distribuição: Entender como os valores se distribuem e se seguem um modelo: Normal ou Gaussiana.

 

Referência Técnica

Pensando em atender os requisitos citados acima na seção de arquitetura, as referências técnicas utilizadas para a criação deste projeto se baseiam em literaturas técnicas, como: documentação de linguagem de programação e frameworks, livros conceituais e técnicos sobre Inteligência Artificial e Machine Learning e cursos voltados para a mesma área.

 

Avaliação do modelo

Para o processo de avaliação do modelo serão utilizados os algoritmos de train_test_split, para separação do dataset em treino e teste, e validação cruzada para garantir que o modelo não sofra de overfitting (quando o modelo aprende demais sobre os relacionamentos entre os dados e acaba decorando, não sendo capaz de generalizar para novos dados).

 

Visando validar a hipótese da criação de um modelo de recomendação o projeto deverá levar em consideração que os dados que serão utilizados para o desenvolvimento deste projeto é apenas uma amostra dos dados de uma população. Com base nesse fato fica claro que o sistema não atingirá uma acurácia alta, ou um erro baixo, no momento de validação com dados de produção. Tendo isso em mente fica evidente que o modelo deverá ser retreinado toda vez que sua performance cair abaixo de um threshold.

 

Referências

Géron, Aurélian. Mãos a Obra: Aprendizado de Máquina com Scikit-Learn & TensorFlow, 2019. - 1º Edição.

Géron, Aurélian. Mãos a Obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow2, 2021. - 2º Edição.

Rumsey, Deborah J. Estatística para Leigos, 2019 - 2º Edição

Provost, Foster & Fawcett, Tom. Data Science para Negócios - O que você precisa saber sobre Mineração de dados e Pensamento Analítico de Dados. 2016.


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