Como lidar com um modelo de previsão "autodestrutivo"?


36

Eu estava assistindo a uma apresentação de um especialista em ML de um grande varejista, onde eles haviam desenvolvido um modelo para prever eventos fora de estoque.

Vamos supor por um momento que, com o tempo, o modelo deles se torne muito preciso, não seria de alguma maneira "autodestrutivo"? Ou seja, se o modelo realmente funcionar bem, eles serão capazes de antecipar eventos fora de estoque e evitá-los, chegando a um ponto em que eles têm pouco ou nenhum evento fora de estoque. Mas, se for esse o caso, não haverá dados históricos suficientes para executar o modelo, ou o modelo será descarrilhado, porque os mesmos fatores causais que costumavam indicar um evento de falta de estoque não o fazem mais.

Quais são as estratégias para lidar com esse cenário?

Além disso, pode-se imaginar a situação oposta: por exemplo, um sistema de recomendação pode se tornar uma "profecia auto-realizável" com um aumento nas vendas de pares de itens impulsionados pela saída do sistema de recomendação, mesmo que os dois itens não sejam realmente assim. relacionados.

Parece-me que ambos são resultados de um tipo de loop de feedback que ocorre entre a saída do preditor e as ações executadas com base nele. Como alguém pode lidar com situações como essa?


7
(+1) Em algumas situações análogas que envolvem o ensino superior, as pessoas falam sobre um modelo "cannabalizing yourself". Os funcionários da faculdade, usando modelos, concedem ajuda financeira para atingir determinadas metas relacionadas à inscrição e à ajuda financeira, apenas para descobrir que, como resultado, as decisões de inscrição dos alunos em potencial são cada vez menos determinadas ou previsíveis pelo prêmio de ajuda financeira .
Rolando2

1
Essa pergunta é difícil de responder em geral, pois depende bastante da situação. No caso de faltas, existem boas soluções, mas no caso dos recomendadores, pode não haver um grande problema se o seu modelo se tornar um pouco prescritivo.
Dennis Jaheruddin 23/10

Respostas:


15

Há duas possibilidades pelas quais um modelo de detecção de falta de estoque (OOS) pode se auto-descarrilar:

  1. O relacionamento entre entradas e OOS pode mudar com o tempo. Por exemplo, promoções podem levar a OOS mais alto (as vendas promocionais são mais difíceis de prever do que as vendas regulares, em parte porque não apenas o aumento médio das vendas, mas também a variação das vendas, e "mais difícil de prever" se traduz frequentemente em OOS), mas o sistema e seus usuários podem aprender isso e depositar em estoque adicional para promoções. Depois de um tempo, o relacionamento original entre promoções e OOS não se mantém mais.

    Isso geralmente é chamado de "mudança de modelo" ou similar . Você pode superá-lo adaptando seu modelo. A maneira mais comum é ponderar as entradas de maneira diferente, atribuindo menor peso às observações mais antigas.

  2. Mesmo que o relacionamento entre um preditor e OOS não mude, a distribuição do preditor pode mudar. Por exemplo, vários dias com zero de vendas de uma determinada unidade de manutenção de estoque (SKU) podem sinalizar um OOS - mas se o modelo tiver um bom desempenho, o OOS poderá ser reduzido em todos os aspectos, e pode não haver tantas sequências de zero de vendas .

    Alterações na distribuição de um preditor não devem ser um problema. Seu modelo simplesmente produzirá uma menor probabilidade de OOS.


No final, você provavelmente não precisa se preocupar muito. Nunca haverá zero OOS. Mecanismos de feedback como os mencionados acima ocorrem, mas eles não funcionarão até que os OOS sejam completamente erradicados.

  • Alguns OOS pendentes podem simplesmente não ser evitáveis. "Eu tenho uma unidade na prateleira e provavelmente enfrentarei uma demanda por cinco na próxima semana, mas a próxima entrega está prevista para daqui a uma semana."
  • Alguns OOS serão muito difíceis de prever, mesmo que sejam evitáveis, se fossem conhecidos a tempo. "Se soubéssemos que derrubaríamos o palete da empilhadeira e destruiríamos todo o produto, teríamos pedido outro."
  • Os varejistas entendem que precisam buscar um alto nível de serviço, mas que 100% não são alcançáveis. As pessoas entram e compram todo o seu estoque em determinados produtos. É difícil prever (veja acima) e suficientemente raro que você não queira encher suas prateleiras com a possibilidade de isso acontecer. Compare a lei de Pareto: um nível de serviço de 80% (ou até 90%) é bastante fácil de alcançar, mas 99,9% é muito mais difícil. Alguns OOS são conscientemente permitidos.
  • Algo semelhante à lei de Moore é válido: quanto melhor o ML se tornar, mais expectativas aumentarão e mais pessoas darão vida ao modelo. Enquanto os algoritmos de detecção e previsão de OOS melhoram, os varejistas estão ocupados dificultando nossa vida.
    • Por exemplo, através da proliferação de variantes. É mais fácil detectar OOS em quatro sabores de iogurte do que em vinte sabores diferentes. Por quê? Porque as pessoas não comem cinco vezes mais iogurte. Em vez disso, a demanda total praticamente inalterada agora é distribuída em cinco vezes mais SKUs, e o estoque de cada SKU é um quinto da altura anterior. A cauda longa está se expandindo e os sinais estão ficando mais fracos.
    • Ou permitindo a compra móvel usando seu próprio dispositivo. Isso pode reduzir muito as barreiras psicológicas ao roubo de lojas , de modo que os estoques do sistema serão ainda piores do que já são e, é claro, os estoques do sistema provavelmente são os melhores preditores de OOS; portanto, se estiverem desativados, o modelo se deteriorará.

Por acaso, estou trabalhando na previsão de vendas no varejo há mais de doze anos, então tenho uma idéia um pouco sobre desenvolvimentos como esse.


Posso ser pessimista, mas acho que efeitos muito semelhantes estão funcionando para outros casos de uso de ML que a detecção de OOS. Ou talvez isso não seja pessimismo: significa que os problemas provavelmente nunca serão "resolvidos"; portanto, ainda haverá trabalho para nós daqui a algumas décadas.


Concordo especialmente com o seu último comentário. A versão do pior cenário desse cenário parece ser o ponto de partida para um teorema de pleno emprego / sem almoço grátis. Qual é o que faz desta uma questão interessante IMO!
Senderle

26

Se você estiver usando um modelo para apoiar decisões sobre a intervenção em um sistema, logicamente, o modelo deve procurar prever o resultado condicionado a uma determinada intervenção. Em seguida, separadamente, você deve otimizar para escolher a intervenção com o melhor resultado esperado. Você não está tentando prever sua própria intervenção.

Nesse caso, o modelo poderia prever a demanda (a variável que você não controla diretamente) e isso, em combinação com a opção de estoque, resultaria em um evento de falta de estoque ou não. O modelo deve continuar sendo "recompensado" por prever a demanda corretamente, pois esse é o seu trabalho. Eventos de falta de estoque dependerão dessa variável junto com a sua escolha de estoque.


2
É exatamente assim que é resolvido na prática. Um modelo de caixa preta que não forneça entendimento dos fatores determinantes, mas apenas preveja que uma falta de estoque aconteceria na quarta-feira teria uso muito limitado se as pessoas não entenderem as suposições. (Com uma suposição fundamental de que o modelo não está no lugar).
Dennis Jaheruddin

@DennisJaheruddin: Por outro lado, faça um modelo que possa prever quando o produto estará fora de estoque, apesar de uma nova encomenda oportuna e você poderá matar.
Joshua

1
É um pouco mais complexo que isso, porque no modelo usado, o sinal de demanda era apenas um fator. Mas eles também usaram outros fatores, com base nas condições da loja, para explicar situações em que o estoque estava na loja, mas não na prateleira (por exemplo, na sala dos fundos ou em uma das caixas registradoras ou balcões de atendimento porque o cliente mudou mente no último minuto). Para isso, eles não estavam usando apenas a demanda, mas também outros fatores causais.
Reintegrar Monica

@Alex essa complexidade equivale apenas a uma rede de mecanismos simples de suprimento / demanda que governam diferentes locais, independentemente de o modelo os representar ou não explicitamente. O objetivo do modelo é descrito com mais precisão como prever níveis de estoque, não demanda, mas isso só se torna relevante se você considerar especificamente que existem fatores não controlados na oferta e na demanda no ponto da rede (a prateleira) onde o estoque os níveis são importantes. Intervenções como encomendar mais material ou ter funcionários que reabastecem as prateleiras com mais regularidade ainda precisam ser fatores no modelo.
Será

Você pode mencionar a possibilidade de que a demanda varie com o estoque.
Yakk

9

Presumivelmente, você pode acompanhar quando os eventos de reabastecimento acontecem. Então é apenas uma questão de aritmética determinar quando o estoque seria esgotado se o modelo não tivesse sido usado para reabastecer o estoque.

Isso pressupõe que qualquer nível de estoque positivo seja independente do nível de vendas. Um comentarista diz que essa suposição não se aplica à realidade. Não sei de nenhuma maneira - não trabalho em conjuntos de dados de varejo. Mas, como simplificação, minha abordagem proposta permite fazer inferências usando o raciocínio contrafactual; se essa simplificação é ou não irrealista demais para fornecer insights significativos é com você.


Acho que não vejo como isso responde à pergunta. Os problemas que eu os entendo são: (a) Depois de implementar o modelo em produção, a função de previsão ideal para falta de estoque agora é completamente diferente do que era antes, porque alteramos a distribuição de dados; (b) Quanto melhor for o nosso modelo, mais raros os eventos de esgotamento se tornarão e, portanto, mais difícil será prever com precisão o futuro. Saber "quando o estoque seria esgotados tinha o modelo não foi utilizado para o inventário de reabastecimento" não é nem aqui nem lá porque o modelo está em produção a partir de agora
Jake Westfall

@JakeWestfall Esse tipo de análise é chamado de raciocínio contrafactual. Se você conhece o inventário o tempo todo e sabe quando é reabastecido, pode criar um contrafactual que supõe que o reabastecimento não ocorreu: basta subtrair o reabastecimento do inventário depois que o reabastecimento ocorreu. Agora você tem uma série temporal que reflete a suposição de que você nunca reabasteceu. Leve essa série cronológica adiante até a falta de estoque. Agora você sabe quando uma ruptura ocorreria sem reabastecer. Como esse contrafactual tem uma distribuição de dados diferente?
Sycorax diz Restabelecer Monica

Eu entendo tudo isso. O que não entendo é como isso resolve os problemas levantados no OP. Por exemplo, suponha que um forte indicador de falta de estoque seja se é o primeiro dia de um mês (quando muitas pessoas são pagas). Usando nosso novo modelo, agora podemos evitar esses eventos de falta de estoque, solicitando preventivamente mais unidades no final de cada mês. Portanto, agora o "primeiro dia do mês" não será mais um indicador útil de falta de estoque no futuro. Poderíamos, de fato, calcular a probabilidade contrafactual de uma falta de estoque no primeiro dia do mês, se não tivéssemos pedido preventivamente, mas como exatamente isso nos ajuda?
Jake Westfall

2
Isso nos ajuda porque fornece uma probabilidade contrafactual de falta de estoque caso o reabastecimento não tenha ocorrido. O OP está perguntando "como lidar com" o fato de que um modelo que reduz as ocorrências de falta de estoque não terá tantas ocorrências de falta de estoque disponíveis nos dados brutos. O que quero dizer é que você pode fazer inferências sobre a ocorrência contrafactual de falta de estoque e usá-la como substituta. Que tipo de ajuda você queria?
Sycorax diz Restabelecer Monica

1
@ Sycorax: Você assume que o comportamento do comprador não é influenciado pelo número de itens visíveis na prateleira. Essa é uma suposição inválida. A influência pode ser fraca, mas não está ausente.
Ben Voigt


2

Uma coisa a lembrar é que o ML é um objetivo instrumental. Por fim, não queremos prever eventos de falta de estoque, queremos evitar eventos de falta de estoque. Prever eventos fora de estoque é simplesmente um meio para esse fim. Portanto, no que diz respeito aos erros do tipo II, isso não é um problema. Ou continuamos a ter OOSE, caso em que temos dados para treinar nosso modelo, ou não, no qual o problema que o modelo foi criado para resolver foi resolvido. O que pode ser um problema são erros do tipo I. É fácil cair em uma Patrulha do Ursofalácia, em que você tem um sistema X construído para impedir Y, você não vê Y, então conclui que X impede Y e qualquer tentativa de desligar o X é descartada com base "Mas está fazendo um bom trabalho" impedindo Y! " As organizações podem ser trancadas em programas caros porque ninguém quer arriscar que Y volte, e é difícil descobrir se X é realmente necessário sem permitir essa possibilidade.

Torna-se então uma troca de quanto você está disposto a se envolver ocasionalmente (de acordo com o seu modelo) em um comportamento subótimo para obter um grupo de controle. Isso faz parte de qualquer exploração ativa: se você tem um medicamento que considera eficaz, precisa ter um grupo de controle que não está recebendo o medicamento para confirmar que é realmente eficaz.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.