NOTÍCIAS / TECNOLOGIA AI

25 de novembro de 2020
Neste artigo, os cientistas sênior Artefact Kasra Mansouri e Camille Le Gonidec explicam como criar um produto científico data com restrições comerciais limitadas e elevadas. Descubra como eles conseguiram reduzir a falta de estoque de produtos em hipermercados com a modelagem de séries temporais.

Declaração do problema

Todos nós já sentimos aquela frustração de domingo de manhã quando não conseguimos encontrar nosso cereal ou refrigerante favorito na prateleira da loja local. Na verdade, a falta de estoque nas prateleiras é um grande problema para as lojas de varejo: não se trata apenas de uma oportunidade perdida de vendas, mas também de uma queda na satisfação do cliente, que estará mais propenso a mudar de loja.

Dois fenômenos causam principalmente a falta de estoque em uma prateleira:

  • A loja não tem o produto em questão, ou seja, até mesmo o depósito da loja está vazio do produto. Isso pode ser causado por uma demanda subestimada do cliente ou por problemas logísticos.
  • A loja tem o produto em estoque, mas a prateleira está vazia. As prateleiras geralmente são abastecidas todas as manhãs, mas não há nenhum funcionário cuja tarefa específica seja cuidar do estoque durante o dia. Detectar uma falta ao passar pela prateleira pode ser sustentável para lojas pequenas, mas se torna um problema para hipermercados, considerando seu tamanho. Algumas prateleiras acabam ficando vazias (enquanto o nível de estoque é positivo) até que um funcionário as identifique ou até que as prateleiras sejam arrumadas na manhã seguinte.

Vamos tratar desse segundo tipo de falta de estoque aqui, pois nosso objetivo era ajudar os funcionários de um hipermercado a identificar as faltas de estoque nas prateleiras durante o dia para que pudessem corrigi-las e reiniciar a venda do produto. Passamos muito tempo em campo para entender os pontos problemáticos de nossos usuários e projetar a melhor solução para atendê-los.

Descobrimos que a melhor opção para as equipes operacionais seria receber um alerta diário por volta das 14h (não há necessidade de tempo real), com uma lista de artigos fora da prateleira que eles deveriam corrigir.

Mas o Como podemos identificar a falta de estoque nas prateleiras sem nenhuma pista visual?? Na verdade, a instalação de câmeras ou sensores visuais seria muito cara e não podemos pedir aos nossos funcionários que “verifiquem” o status das prateleiras todos os dias para coletar o data. Nosso maior desafio está no fato de que há não há histórico do data disponível nas prateleiras - falta de estoque (a única informação que temos é o nível de estoque global no final do dia), portanto, só podemos confiar em um conjunto restrito de recursos: vendas em tempo real, atributos do item e características da loja.

Abordagens propostas

Previsão de séries temporais de vendas por hora

Nossa primeira abordagem alternativa consistia em detecção de anomalias de vendas (vendas excepcionalmente baixas) por prever as vendas de produtos por hora e compará-las com as vendas reais

A ideia por trás disso é estimar/prever a quantidade de vendas regulares que esperamos que um produto tenha quando não há “anomalias” na loja, depois compará-las com suas vendas reais e emitir um alerta se a diferença for “enorme”. Portanto, ao aplicar nosso modelo todos os dias às 14h, preveríamos as vendas de cada produto até as 14h e detectaríamos anomalias comparando as vendas reais de cada produto com nossas estimativas.

Como ponto de partida, desenvolvemos um Modelo de média móvel. Para cada hora, o modelo faria suas previsões calculando uma média das vendas do produto na mesma hora durante os últimos 30 dias. Em seguida, compararíamos esse valor com as vendas reais do produto durante aquela hora e, se a seguinte desigualdade fosse verificada, emitiríamos um alerta de falta de estoque.

Image for post

Essa abordagem se baseia na suposição de que as vendas por hora dos produtos seguem uma Distribuição normal e tem como objetivo alertar sobre produtos fora do 95% intervalo de confiança.

Figura 1: Exemplo de uma distribuição normal

E esse não é o caso! Na verdade, temos muito pouco sinal de séries temporais se analisarmos as vendas por hora em uma loja, e isso ocorre simplesmente porque a maioria dos produtos tem vendas nulas por várias horas durante o dia, portanto, o modelo preveria um valor próximo de 0 (fazendo a média dos valores anteriores) para a hora em questão. Portanto, modelar as vendas por hora claramente não é o caminho certo a seguir.

Image for post

Figura 2: Quantidade de vendas por hora de uma bebida com gás

Tentamos modificar ligeiramente nossa abordagem, prevendo vendas diárias quantidade O senhor poderia ter usado a solução da Coca-Cola até as 14 horas, mas ainda teríamos muitos produtos para os quais não tínhamos sinal suficiente, o que chamamos de «produtos de baixa rotação». Essa abordagem provavelmente teria funcionado com produtos de alta rotação, como refrigerantes da Coca-Cola, garrafas de água etc., mas nossa solução precisava funcionar com todos os produtos em um hipermercado, portanto, eliminamos essa abordagem.

Detecção de anomalias usando a distribuição de Poisson

Nossa segunda abordagem foi tentar modelar a frequência das vendas (e não a quantidade)ou seja, o tempo decorrido entre duas vendas consecutivas de um único produto.

Realizamos testes estatísticos nas vendas de alguns produtos data e percebemos que o tempo entre suas duas vendas consecutivas segue uma distribuição exponencial, o que intuitivamente faz sentido, pois uma distribuição exponencial é normalmente usada para modelar o tempo entre diferentes ocorrências de um evento.

A consequência lógica disso é que nós pode modelar a «taxa de vendas» de um produto com uma distribuição de Poisson. Por taxa de vendas, queremos dizer o número de vezes que um produto passa pelo caixa durante uma hora, independentemente da quantidade vendida.

Image for post

Figura 3: Histograma da distribuição do tempo entre cada venda de um biscoito específico

Image for post

Figura 4: Exemplo de uma distribuição exponencial

Portanto, nossa segunda abordagem alternativa é estimar a taxa de vendas regular de cada produto, que é o lambda da distribuição de Poisson e, em seguida, compará-lo com suas vendas diárias reais até as 14 horas.

Esse é um processo de duas etapas:

Cálculo do lambda: O lambda é a média da distribuição de Poisson. Portanto, para estimá-la, precisamos calcular a média de nossos pontos data anteriores, ou seja, o número médio de checkouts por hora que o produto teve no passado. Utilizamos uma profundidade histórica de 50 dias em nosso cálculo para manter as informações do passado próximo. Além disso, calculamos o lambda para cada dia da semana separadamente, pois há uma forte sazonalidade semanal nas vendas de produtos em um hipermercado.

Em termos concretos, reunimos as vendas data de um produto nos últimos 50 dias, calculamos sua taxa de vendas em cada dia e, em seguida, calculamos a taxa média de vendas para cada dia da semana, portanto, nosso cálculo resulta em 7 lambda números, um para cada dia da semana. Esse cálculo é feito toda semana.

Detecção de anomalias: Todos os dias, às 14h, procuramos a última vez que o produto foi vendido. Em seguida, calculamos a probabilidade (função de massa de probabilidade de Poisson) de não haver vendas entre a última venda e as 14h, dado o lambda parâmetro. Se a probabilidade for inferior a 1%, consideramos que o produto tem uma taxa de vendas excepcionalmente baixa.

Por exemplo, vamos imaginar um refrigerante da Coca-Cola que é vendido regularmente a cada 20 minutos, tendo, portanto, um lambda=Calculamos a função de massa de probabilidade de Poisson de ter 0 vendas por 3 horas, sabendo que o produto é vendido regularmente 3 vezes por hora.

Image for post

Resultados

Realizamos testes preliminares em nosso modelo de Poisson tentando medir a capacidade de estimar as vendas às 14 horas. O modelo foi capaz de estimar o número de checkouts de produtos com uma precisão de 67%. Esse resultado confirmou nossa intuição de que um modelo de Poisson poderia ser a ferramenta certa para detectar com precisão a falta de produtos. Por isso, decidimos testar nosso modelo em campo.

Fomos a duas lojas a cada dois dias para testar e avaliar a precisão dos alertas de nosso modelo em 3.000 produtos que as lojas identificaram como prioridade máxima. Um alerta seria considerado preciso se a prateleira estivesse vazia ou tivesse menos de 10% de sua capacidade média na mesma hora em que o alerta foi enviado. Essa fase de avaliação durou 2,5 meses e resultou em uma medição de taxa de precisão de 58% (ou seja, 58% dos alertas de falta de estoque do nosso modelo foram precisos).

 

Embora a precisão do 58% possa não ser brilhante, o que se deve entender é que essa solução é muito simples de implementar (o que o senhor só precisa é ter acesso ao histórico de vendas data e às vendas quase em tempo real data nas lojas) e pode ser facilmente dimensionado para todas as lojas para reduzir os riscos de falta de estoque nas prateleiras.

O senhor pode implementar essa solução para cada loja em menos de uma semana e obtenha diretamente a precisão 58-60%! Lembre-se de que um modelo de classificação aleatória teria uma precisão de quase 5% pois, em geral, há cerca de 5% de produtos fora de estoque nas prateleiras.

Além disso, essa solução poderia fazer parte de um produto maior que aumenta todos os tipos de alertas com um ciclo de feedback. Os alertas de falta de estoque farão com que os funcionários da loja tomem providências e reabasteçam as prateleiras, e os alertas de falta de estoque poderão ser usados para uma análise mais aprofundada para entender por que o produto teve um volume de vendas excepcionalmente baixo. Também é possível pensar em criar um modelo de aprendizado de máquina que classifique os alertas como falta de estoque nas prateleiras ou não, já que começaremos a coletar o data rotulado.

Este artigo foi publicado pela primeira vez no The Artefact Tech Blog - uma biblioteca de artigos de engenharia e ciência data.

O senhor tem interesse em digital e data marketing?

Assine o Data Digest, o boletim informativo do Artefact, para receber conselhos práticos, insights e opiniões em sua caixa de entrada todos os meses.

O senhor pode me inscrever!