Une journée dans la peau d’un Data Scientist

Une journée dans la peau d’un data scientist 

Dans toutes les entreprises, l’intérêt pour les données est devenu une réalité et ne cesse de grandir. La data est devenue le pétrole du XXIe siècle. Pour traiter et utiliser ces données, de nouveaux métiers apparaissent dont celui de Data Scientist. La Harward Business Review décrivait déjà en 2012, ce dernier comme le job le plus sexy du XXIe siècle.

Mais que fait un Data Scientist pour que son titre mérite tant d’éloges ? Pour le découvrir, suivons Martin.

Martin occupe le poste du job le plus sexy du XXIe siècle. Il est data scientist chez Coelho, une enseigne de grande distribution dans le pôle Data depuis un an. Chaque métier a ses spécificités, nous réduirons donc son temps de travail au prorata d’une journée.

9h – 10h : Kick-off 

Avant même d’avoir allumé son PC, Martin a rendez-vous avec une des équipes métier : l’équipe « Prix ». Cette dernière souhaite faire le lien entre les produits Coelho et la concurrence. Ils se heurtent à une problématique : ils ne savent pas relier de manière automatique un produit de la concurrence au produit identique commercialisé par Coelho. Le libellé n’est jamais exactement le même, et les fiches produits sont tout aussi aléatoires. Ils passent aujourd’hui l’essentiel de leur temps à effectuer cette correspondance manuellement.

Les échanges durent ; Martin veut s’assurer de bien comprendre l’objectif de ses collègues. Martin le sait :  la réussite de ce projet et l’efficacité de son algorithme (« algo » pour les intimes) reposent énormément sur sa  compréhension et de l’intégration de l’expertise métier de ses collègues. Après plus d’1h de questions/réponses, il pense avoir tout ce dont il a besoin pour faire opérer la magie de ce que tous appellent l’Intelligence Artificielle !

Martin traduit le besoin métier dans ses aspects techniques (accessibilité des données, machine learning, …) et se fait une première idée de la faisabilité du projet. Il pense mettre en place une application qui permettra, à partir du nom d’un produit, d’extraire du catalogue le produit vendu par Coelho et ceux des concurrents.

10h – 10h30 : Définition du scope et des spécifications du projet 

Martin prend du temps pour rassembler les informations recueillies auprès du métier. Petit à petit, il identifie les différentes étapes du workflow technique.

Le Data Scientist a la particularité d’avoir une vue d’ensemble de son domaine et de la data. Il peut mettre en place des workflows techniques complets allant de l’extraction à la prédiction non sans oublier la visualisation des données. Pour la suite, Martin travaillera sur chacune des étapes pour confirmer leur faisabilité et la qualité du résultat.

10h30 – 11h : Récupération des données 

Une fois ce travail fait, il contacte les équipes Coelho qui lui faciliteront l’accès aux données dont il a besoin pour traiter le sujet.

Il s’assure d’une chose importante et pas toujours prise en compte : l’accessibilité de ces données sans parler de la nécessité de leur mise à jour tant que son application fonctionne.

10h30 – 13h : Compréhension, analyse et nettoyage des données 

Les données sont récupérées. Martin prend le temps de les comprendre et de les analyser. Il se rend compte que les données ne sont pas utilisables dans l’état. Pas de problèmes… Les données brutes sont rarement exploitables sans les avoir nettoyer au préalable.

Les données contiennent souvent des doublons ou des lignes sans référence. Toutes ces opérations sont codées dans des langages informatiques, comme Python, qui permettent d’être très efficace pour tout type d’opérations de nettoyage sur des données de type numérique, textuel ou autre.

Une fois ce nettoyage réalisé, Martin produit une petite analyse statistique sous forme graphique afin de comprendre les données et la présente à l’équipe Prix. Ils échangent sur la nature des données et précisent ce qui a pu être oublié lors du kick-off. Pour réaliser ce type de visualisation, il existe des outils capables d’adresser des volumes de données importants, comme Apache Superset. Ces derniers prennent la relève des tableurs lorsqu’ils atteignent leurs limites.

Si cette étude n’est pas directement liée au besoin final, elle n’en demeure pas moins une étape indispensable pour que Martin prenne en main les données et surtout s’assure de leur fiabilité.

13h – 14h : Pause

Comme tout être vivant, Martin doit se nourrir. Il rejoint ses collègues au food-truck et discute de son nouveau projet et des données associées. Pas de pause réelle ! La passion, ça ne s’explique pas !

Son collègue, expert dans le traitement des données images, lui indique qu’il pourrait essayer d’étoffer ses données en utilisant les images des produits. Même autour d’un sandwich, d’un burger, d’un wrap (ou d’une salade !) Martin cogite. Il veut en venir à bout et s’assurer que son travail réponde au mieux à la problématique métier. Toute idée est bonne à prendre. La data science c’est aussi être inventif, trouver des astuces pour appréhender une thématique sous des angles nouveaux.

14h – 16h : Exploration des données

L’après-midi commence. Martin a enfin tout ce dont il a besoin. Il a bien saisi la finalité de son algorithme. Il a dorénavant accès aux données et, plus important encore, il s’est familiarisé avec le projet et le métier.

Le travail de scientifique commence. Il travaille à partir des données brutes afin d’en extraire le plus de sens sous la forme de variables explicatives (c’est-à-dire celles qui portent une information utile pour atteindre l’objectif). 

Définir le produit ? Le libellé est important… Quelle information dans la fiche produit doit-il considérer comme la plus pertinente ? Martin se souvient que le métier lui a signalé que les fiches produits concurrentes ne contiennent pas l’information « couleur des produits ». L’absence de cette information fait donc de celle-ci une variable inutilisable. 

L’exploration des données est l’étape la plus chronophage mais aussi une de celles qui apportera le plus de valeur à un projet de data science.

La qualité des variables explicatives que définira Martin durant cette étape seront la clé de l’efficacité de son algorithme

16h – 17h : Machine Learning (ou apprentissage automatique) 

Martin a maintenant choisi des variables explicatives des fiches produits, concurrentes ou non. Il a su récupérer un nombre assez conséquent de fiches. Il en a assez pour que le logiciel apprenne à décider automatiquement si deux fiches (donc deux produits) sont identiques ou non. Pour ce faire, Martin va utiliser un algorithme de Machine Learning.

Dans la quasi-totalité des cas, Martin ne doit pas construire (coder) lui-même un algorithme de Machine Learning ; il l’utilise à partir de code disponible. Il existe des banques d’algorithmes déjà pré-codés. On retrouve celles-ci sur des plateformes logicielles mono-machine (comme Sci-kit learn), ou distribuées (comme Apache Spark) permettant le traitement de volumes de données plus importants.

Mais l’existence d’algorithmes pré-codés n’implique pas que Martin n’ait rien à faire. Cela ne signifie pas non plus que l’algorithme est prêt à l’emploi. Bien au contraire !  Il existe des dizaines d’algorithmes de Machine Learning et tous ces algorithmes doivent être paramétrés pour fonctionner sinon la prédiction sera loin d’être optimale. L’expertise de Martin sera utilisée afin de choisir et de paramétrer l’algorithme. Il fera ses choix en fonction :

  • Du type de données ;
  • De la volumétrie ;
  • Des besoins métiers (i.e, est-il préférable que l’algorithme se trompe quelques fois ou qu’il rapproche le plus de produits possible en acceptant quelques erreurs ?) ; 

Le catalogue de produits de Coelho se compte en millions d’articles et ses concurrents en vendent deux fois plus au  catalogue. Avec une telle volumétrie de données, Martin décide d’utiliser un réseau de neurones profonds (Deep Neural network aka Deep Learning) qu’il entrainera à définir une fonction de distance entre deux produits. La puissance de cette technologie lui permettra même d’insérer des données non-structurées (i.e. images, textes, …) par la suite si les premiers résultats ne sont pas satisfaisants.

17h – 18h : Retour de l’équipe prix

La journée est presque terminée. Martin pense avoir un premier résultat convenable. Il est temps de s’attaquer à la restitution à l’équipe. Celle-ci débute par une présentation attractive de son travail et de ses résultats à l’équipe Prix. Il explique qu’exception faite pour  les rayons 1 et 4, il leur assure que son algorithme retrouve les fiches produits concurrents (en incluant le prix) pour 87% des produits Coelho.

L’euphorie gagne l’équipe Prix car ils ont compris que cette performance est un point de départ et peut être améliorée. Les résultats sont plus que convenables ! L’ensemble de ses collègues est emballé ! Le potentiel de son algorithme pourrait leur économiser un travail manuel fastidieux. Emballés mais ils notent, néanmoins, que l’algo manque de précision pour certains types de produits. 

Conlusion 

Demain matin, Martin reprendra son projet du début pour améliorer les performances de son algorithme de comparaison de produits. Il tentera de suivre le conseil de son collègue : ajouter les images comme donnée d’entrée de son algorithme en utilisant un réseau de neurones à convolution (CNN) ; algorithme spécifiquement développé pour traiter les images. Une nouvelle idée qui nécessitera sans doute un nouvel aller/retour chez le métier.

Arrivera l’étape d’industrialisation. Là il devra accompagner l’équipe de développement… Parfois chez Coelho, le Data Scientist développe lui-même l’API afin d’utiliser son algorithme.

Le métier de data scientist est un métier qui englobe plusieurs facettes mais reste très opérationnel. Le Data Scientist a besoin, d’une part, d’une certaine aisance relationnelle puisqu’il travaille en étroite collaboration avec le métier et d’autre part, d’une bonne capacité d’abstraction pour comprendre leurs besoins.

Plus qu’un statisticien, le Data Scientist a aussi besoin d’une bonne connaissance technique. Les technologies du Machine Learning ne correspondent en réalité qu’à une petite partie de son travail. Eh oui le Data Scientist c’est un superman : il est impliqué dans bon nombre de sujets : la compréhension du besoin, la définition du besoin, le développement et l’intégration continue …