Publié le 31/08/2018

Stage de fin d’études – Research Lab VEKIA - à Lille

  • Stage
  • Lille

  • Publié il y a 3 semaines
  • Date de prise en fonction:
    asap
  • Expérience souhaitée:
    < 1 an
  • Fonction:
    Stage R&D

VEKIA

SUJET : Modélisation des ventes, détection de ruptures et calcul de ventes potentielles

Contexte du stage

Dans un contexte de gestion de ses approvisionnements, un magasin doit faire face à un nombre important d’incohérences dans les données dont il dispose à propos de ses stocks et de ses ventes. Par exemple, lorsque le magasin ne dispose pas d’informations précises sur ses stocks alors que certains articles ne sont pas vendus pendant une période donnée, il est généralement difficile de savoir si l’absence de vente est expliquée par une rupture de stock ou bien par une variation de la demande. L’objectif de ce projet est d’étudier les approches permettant l’inférence des variables utiles à la désambiguïsation des données, par exemple la quantité de stock ainsi que la quantité de vente potentielle (sous l’hypothèse de stock disponible).

Ce stage se déroulera au sein de l’équipe  Research Lab Vekia dont la mission principale est de fournir une expertise théorique sur les sujets rencontrés au sein des activités commerciales de Vekia. Une étude théorique et pratique du problème sera réalisée en collaboration avec les autres membres du Research Lab.

Ce projet est une excellente occasion pour les étudiants en fin de cursus de découvrir les applications du Machine Learning à des problèmes concrets de l’industrie tout en ayant à disposition des ressources de calcul permettant de traiter des volumes de données à dimension réelle.

Solutions existantes

Un algorithme simple a été développé chez Vekia pour détecter les articles en rupture, en se basant uniquement sur l’historique des ventes. Elles sont utilisées pour estimer (de manière grossière) les ventes potentielles. Quelques règles métier a priori sont ajoutées et confrontées aux données par une approche Bayésienne, permettant le calcul d’une probabilité de rupture.

La figure ci-dessous montre un exemple de données de ventes pour un article et un magasin, et les points rouges montrent les jours considérés comme comportant des ruptures.

Cette approche est cependant limitée : sa précision est probablement modeste et il est délicat de prendre en compte d’autres informations comme le cycle de vie du produit ou des photos de stock régulières.

Problématique détaillée

Les jeux de données fournis par les clients servent de base d’apprentissage pour effectuer des prévisions de ventes. Ces jeux de données sont la plupart du temps de qualité moyenne : ils sont « bruités » ou bien comportent des valeurs manquantes.

En particulier les données journalières de stocks, ou même la simple connaissance des articles en rupture, sont en général inconnues. Il est pourtant très important de savoir si une quantité de vente nulle est due à un non-achat ou simplement à une rupture. Cela peut potentiellement influencer grandement la qualité des prévisions qui seront effectuées sur la base de l’historique.

Les ventes potentielles, c’est-à-dire la quantité de ventes sous hypothèse de stocks infinis, sont une autre grandeur d’importance fondamentale liée aux ruptures. Lorsque l’on parle de « prévisions de ventes », il s’agit en fait de ventes potentielles puisque les stocks effectifs futurs sont décidés a posteriori.

L’objectif premier de ce projet est de traiter l’ensemble des données de l’historique (ventes, photos d’inventaire, indicateur de rupture, fréquence de réassort…)  pour chaque magasin, chaque article et chaque jour et d’inférer de la connaissance, sous forme probabiliste, sur un  certain nombre de quantités d’intérêt, au premier rang desquelles les indicateurs de rupture et les ventes potentielles.

Solutions existantes

Un algorithme simple a été développé chez Vekia pour détecter les articles en rupture, en se basant uniquement sur l’historique des ventes. Elles sont utilisées pour estimer (de manière grossière) les ventes potentielles. Quelques règles métier a priori sont ajoutées et confrontées aux données par une approche Bayésienne, permettant le calcul d’une probabilité de rupture.

La figure ci-dessous montre un exemple de données de ventes pour un article et un magasin, et les points rouges montrent les jours considérés comme comportant des ruptures.

Cette approche est cependant limitée : sa précision est probablement modeste et il est délicat de prendre en compte d’autres informations comme le cycle de vie du produit ou des photos de stock régulières.

graph

Figure 1 Ventes d’un certain article/magasin: les ruptures inférées sont en rouge.

Approche envisagée

Le sujet est un sujet de recherche mêlant approche théorique et mathématique avec la réalisation de prototypes.

Le rapport de recherche sera réalisé au fur et à mesure de la période et sera le livrable clef de ce sujet.

D’un point de vue théorique, l’ensemble de processus de vente peut se modéliser sous la forme d’un processus de Markov Caché (Hidden Markov Model : HMM), dont les ventes potentielles et les quantités en stock pourraient faire partie de l’état interne (selon la modélisation exacte qui serait considérée), avec potentiellement d’autres quantités fondamentales, dont les distributions de probabilité des ventes potentielles et des indicateurs de rupture seraient alors inférées par les algorithmes classiques du type Viterbi.

Un certain nombre de difficultés se présenteront probablement :

  • Il va s’agir d’adapter un outil théorique à un contexe industriel particulier : selon les données effectivement prises en considération, le design du HMM peut devenir complexe ; il s’agira d’imaginer et de tester plusieurs modélisations afin de trouver le bon compromis entre la richesse du design, la qualité des résultats et la vitesse d’exécution.
  • Ensuite, l’implémentation concrète et les performances peuvent poser problème : suivant la modélisation effectuée, les matrices de transitions peuvent être infinies (ou au moins bandes) et mener à des challenges d’implémentation. Typiquement l’algorithme devra traiter plusieurs milliers ou millions de chaînes de Markov comportant de l’ordre de 500 à 1000 pas, avec des temps d’exécution ne dépassant pas les quelques heures.

Afin de pouvoir travailler, le chercheur aura à sa disposition des données variées et quantitatives permettant de confronter la théorie. Dans un environnement dynamique, entouré d’autres chercheurs dans un esprit collaboratif, il sera possible d’utiliser des ressources de calcul importantes pour mettre à l’épreuve le prototype et valider à grande échelle les solutions proposées.

Approche envisagée

L’approche précédemment évoquée n’est qu’un point de départ. Comme dans tout sujet de recherche, les points de vue peuvent évoluer et il n’est pas improbable que la solution finalement retenue soit différente, et ne repose plus directement sur les HMM. Le candidat devra donc être force de proposition et prendre le sujet à son compte.

Selon la vitesse d’avancement, d’autres sujets connexes pourront être envisagés :

  • Implémentation du prototype dans un framework industriel (technologie scala/spark) ;
  • Moteur de stock suspect : les anomalies de ventes détectées par le moteur de rupture peuvent être utilisées pour déclencher des alertes demandant une vérification du stock ;
  • Adaptation des modèles à d’autres contextes situés plus en amont dans la supply chain (entrepôts, fournisseurs…)

Connaissance requises:

  • Maîtrise du langage Python et de son environnement scientifique (Numpy, Pandas, Sklearn…)
  • Connaissances générales sur le Machine Learning ;
  • Bonnes connaissances des probabilités, statistiques et de l’optimisation ;
  • Esprit de recherche et force de proposition ;
  • Aisance à collaborer, rédiger et présenter des résultats;
  • Bon niveau en anglais, écrit et oral.

Bibliographie:

  • Gerussi: Modèles de Markov Cachés : applications à l’inférence de la présence des articles. Vekia internal report.
  • Xin Yin, Zhao Song, Karin Dorman, Aditya Ramamoorthy, PREMIER – Probabilistic Error-correction using Markov Inference in Errored Reads, arXiv:1302.0212[cs.IT]
  • L.R Rabiner, A tutorial of Hidden Markov Models and Selected Applications in Speech Recognition.

Informations complémentaires:

  • Stage longue durée minimum 6 mois ou Contrat d’apprentissage ou professionnalisation pour une durée minimum de 12 mois à 24 mois.
  • Démarrage : Dès que possible
  • Indemnité selon âge et niveau d’étude et prise en charge frais de transport à 50 %
  • Le poste est basé à Lille (EuraTechnologies),

Pour postuler:

Pour postuler, envoyez votre CV et votre lettre de motivation par e-mail à recrutement@vekia.fr


Vous pouvez postuler à cette offre en utilisant votre CV en ligne. Cliquez sur le lien ci-dessous pour soumettre votre CV et l'envoyer par mail à l'entreprise.