Je regardais une présentation d'un spécialiste du blanchiment d'argent chez un grand détaillant, où ils avaient développé un modèle permettant de prévoir les événements de rupture de stock.
Supposons un instant que, avec le temps, leur modèle devienne très précis, ne serait-il pas en quelque sorte "autodestructeur"? Autrement dit, si le modèle fonctionne vraiment bien, ils pourront anticiper les événements de rupture de stock et les éviter, pour finalement arriver à un point où ils n’auraient que peu ou pas d’événements de rupture de stock. Mais si tel est le cas, il n’y aura pas assez de données historiques pour exécuter leur modèle, ou leur modèle sera déraillé, car les mêmes facteurs de causalité qui indiquaient un événement de rupture de stock ne le font plus.
Quelles sont les stratégies pour faire face à un tel scénario?
En outre, on pourrait envisager la situation opposée: par exemple, un système de recommandation pourrait devenir une "prophétie auto-réalisatrice" avec une augmentation des ventes de paires d’articles entraînée par la sortie du système de recommandation, même si les deux articles ne sont pas vraiment en relation.
Il me semble que les deux résultent d'une sorte de boucle de rétroaction qui se produit entre la sortie du prédicteur et les actions entreprises en fonction de celle-ci. Comment peut-on gérer de telles situations?
la source
Réponses:
Un modèle de détection de rupture de stock (OOS) peut s'autodétruire de deux manières:
La relation entre les intrants et OOS pourrait changer avec le temps. Par exemple, les promotions peuvent conduire à un OOS plus élevé (les ventes promotionnelles sont plus difficiles à prévoir que les ventes régulières, en partie parce que non seulement les ventes moyennes augmentent, mais aussi la variance des ventes, et "plus difficile à prédire" se traduit souvent par un OOS), mais le système et ses utilisateurs pourraient l’apprendre et disposer d’un stock supplémentaire pour les promotions. Après un certain temps, la relation initiale entre les promotions et OOS ne tient plus.
Ceci est souvent appelé "changement de modèle" ou similaire . Vous pouvez le surmonter en adaptant votre modèle. Le moyen le plus courant consiste à pondérer les entrées différemment, en accordant moins de poids aux observations anciennes.
Même si la relation entre un prédicteur et le SOS ne change pas, la distribution du prédicteur peut l'être. Par exemple, plusieurs jours sans vente d'une unité de gestion de stock donnée peuvent signaler un OOS - mais si le modèle fonctionne bien, le nombre de SOO peut être réduit dans tous les domaines et il se peut qu'il n'y ait tout simplement pas autant de séquences de vente zéro. .
Les changements dans la distribution d'un prédicteur ne devraient pas être un problème. Votre modèle générera simplement une probabilité moins élevée de SO.
En fin de compte, vous n'avez probablement pas besoin de trop vous inquiéter. Il n'y aura jamais zéro OOS. Des mécanismes de rétroaction tels que ceux décrits ci-dessus sont utilisés, mais ils ne fonctionneront pas tant que le SOS n’aura pas été complètement éradiqué.
Je travaille à la prévision des ventes au détail depuis plus de douze ans maintenant, alors j’ai une petite idée des développements de ce type.
Je suis peut-être pessimiste, mais je pense que des effets très similaires sont à l'œuvre pour d'autres cas d'utilisation du BC que la détection de SOS. Ou peut-être n'est-ce pas du pessimisme: cela signifie que les problèmes ne seront probablement jamais "résolus", de sorte qu'il restera du travail pour nous, même dans des décennies.
la source
Si vous utilisez un modèle pour étayer vos décisions d’intervenir dans un système, alors logiquement, le modèle doit chercher à prédire le résultat en fonction d’une intervention donnée. Ensuite, séparément, vous devez optimiser le choix de l’intervention avec le meilleur résultat attendu. Vous n'essayez pas de prédire votre propre intervention.
Dans ce cas, le modèle pourrait prédire la demande (la variable que vous ne contrôlez pas directement), ce qui, combiné au choix du stockage, entraînerait ou non un événement en rupture de stock. Le modèle devrait continuer à être "récompensé" pour avoir prédit correctement la demande, puisque c'est son travail. Les événements en rupture de stock dépendent de cette variable et de votre choix de stockage.
la source
Vous pouvez probablement suivre quand les événements de réapprovisionnement se produisent. Ensuite, il suffit d’arithmétique pour déterminer le moment où le stock serait épuisé si le modèle n’avait pas été utilisé pour reconstituer les stocks.
Cela suppose que tout niveau de stock positif est indépendant du niveau des ventes. Un intervenant dit que cette hypothèse ne tient pas dans la réalité. Je ne sais pas non plus, je ne travaille pas sur des ensembles de données de vente au détail. Mais, par simplification, mon approche proposée permet de tirer des conclusions en utilisant un raisonnement contrefactuel; Il vous appartient de décider si cette simplification est trop irréaliste pour donner un aperçu significatif.
la source
Votre scénario ressemble beaucoup à la Lucas Critique en économie. Dans l'apprentissage automatique, on parle de " décalage de jeu de données ".
Vous pouvez le surmonter, comme le dit @Sycorax, en le modélisant explicitement.
la source
Une chose à retenir est que ML est un objectif déterminant. En fin de compte, nous ne voulons pas prédire les événements de rupture de stock, nous voulons empêcher les événements de rupture de stock. La prévision d'événements en rupture de stock n'est qu'un moyen d'atteindre cet objectif. Donc, en ce qui concerne les erreurs de type II, ce n'est pas un problème. Soit nous continuons à avoir OOSE, auquel cas nous avons des données pour former notre modèle, ou nous n’avons pas de données pour lesquelles le problème pour lequel le modèle a été créé a été résolu. Ce qui peut être un problème, ce sont les erreurs de type I. Il est facile de tomber dans une patrouille d'ourserreur, où vous avez un système X construit pour empêcher Y, vous ne voyez pas Y, vous concluez donc que X empêche Y, et toute tentative de fermeture de X est rejetée pour le motif "Mais ça fait un si bon travail empêcher Y! " Les organisations peuvent être bloquées dans des programmes coûteux, car personne ne veut risquer que Y revienne, et il est difficile de savoir si X est vraiment nécessaire sans permettre cette possibilité.
Cela devient alors un compromis entre le comportement sous-optimal que vous êtes prêt à occasionnellement adopter (selon votre modèle) pour obtenir un groupe de contrôle. Cela fait partie de toute exploration active: si vous avez un médicament que vous jugez efficace, vous devez avoir un groupe de contrôle qui ne le reçoit pas pour confirmer qu'il est réellement efficace.
la source