De l'avenir du métier de Data Scientist(e)

Depuis quelques temps, en parcourant la toile j'ai pu prendre connaissance ici et là d'un certain nombre de billets et de vidéos sur l'avenir du métier de Data Scientist(e). Cet article tente, au travers de ma pratique du métier et de ma propre expérience, de vous apporter objectivement les premiers éléments de réponse.

D’aucuns y voient que les Data Scientist(e)s eux-mêmes pourraient être remplacés à long terme par les algorithmes d’AutoML devenant de plus en plus performants, d’autres que le métier de Data Scientist, à l’instar du métier de Data Engineer va tellement se spécialiser que le titre même de Data Scientist(e) pourrait être remis en question. Que ce titre soit parfois extrêmement convoité jusqu’à être controversé ne fait aucun doute. Que les approches de Data Science dans les entreprises soient très diverses et en forte évolution est une évidence. Mais une question centrale est actuellement posée : le titre de Data Scientist(e) est-il voué à disparaitre à terme ? Cet article tente de vous apporter objectivement les premiers éléments de réponse.

Tout d’abord, il faut préciser que le métier de Data Scientist est en constante évolution, ce qui est d’ailleurs une preuve de sa vivacité. Il s’est séparé lui-même en deux catégories il y a quelques années déjà avec la naissance de la fonction de Data Engineer, elle-même ayant donné naissance à la fonction plus récente de ML Engineer. Le ML Engineer est en fait avant tout un Data Engineer spécialisé dans la mise en production des modèles, le déploiement, les opérations, le monitoring des modèles, et pour résumer en un mot : ML Ops. Il y a donc déjà eu depuis le départ des spécialisations successives qui sont intervenues. Les techniques de Data Science et d’IA (Intelligence Artificielle) sont de plus en plus vastes, du fait de la diversité des méthodes (apprentissage supervisé, non supervisé, profond, renforcé), des technologies, des langages disponibles (Python, R, Scala, Java, Julia) que ce soit sur les outils propriétaires des grandes plateformes cloud (AWS, Azure, GCP), ou sur les plateformes de Data Science plus généralistes comme KNIME, DATAIKU, ALTERYX, SAS, etc… Ceci nous amène donc à nous interroger sur la question suivante : qu’est-ce qu’attend d’un(e) bon(ne) Data Scientist(e) ?

La Data Science est une discipline fortement hybride qui requiert une compréhension des besoins métier, un savoir-faire sur la préparation des pipelines de données, la conception et le test des modèles (faisant intervenir des mathématiques, de la statistique, du machine learning, et de l’IA), la mise en production et le monitoring des modèles. Bien entendu, tout cela requiert beaucoup de maitrise technologique, et dans cette liste, la préparation des pipelines de données, la mise en production et le monitoring des modèles reviennent désormais principalement au Data Engineer et au ML Engineer. 

Je crois que le rôle central du (de la) Data Scientist(e) doit rester fondamentalement la compréhension des besoins métiers, et la traduction de ces besoins en modèles qui fonctionnent. Cela nécessite une compétence incontournable en mathématiques avancées, en statistiques et en machine learning. En effet, concevoir des modèles d’intelligence artificielle et de machine learning sans une excellente maitrise de la statistique est très risqué. Il ne s’agit pas ici de faire du copier-coller de code Python trouvé sur Internet sans prise de hauteur, mais de comprendre réellement comment les algorithmes vont se comporter et interagir en fonction des variations des données en entrée, des biais possibles sur les données, et des problèmes de changement de nature des données (data drifting) qui pourront se produire avec le temps. 

Le choix des algorithmes dans les modèles est un point qui reste délicat, car la complexité des algorithmes utilisés doit être mis en perspective avec la complexité des données en entrée.  Un algorithme trop simple ou trop complexe par rapport à la complexité intrinsèque des données donnera toujours des résultats aberrants. 

Ensuite il y a le réglage des paramètres des modèles, ce que nous appelons dans notre jargon les « hyper paramètres ». Il est vrai que de plus en plus de plateformes (et de librairies) proposent des fonctionnalités dites « d’autoML », qui consistent à automatiser les réglages de ces paramètres. Cela va même parfois jusqu’à ajuster le choix de l’algorithme automatiquement. Cela fonctionne dans certains cas, mais les résultats aberrants restent courants. 

L’autoML n’est autre que du ML (Machine Learning) appliqué à lui-même. Il peut avoir un intérêt au début de la modélisation car il représente un gain de temps, mais il s’avère souvent insuffisant dans un second temps au moment d’affiner réellement le modèle. En effet, le choix de ces paramètres n’est parfois pas neutre pour les métiers. Il est souvent nécessaire que le(la) Data Scientist(e) soit capable d’interpréter les conséquences du choix de ces paramètres pour les métiers. 

Par exemple, dans un moteur de recommandation, un seuil de classement aura un impact direct sur le chiffre d’affaires, la marge, et la proportion de population adressée lors d’une campagne marketing : les métiers veulent ils réellement ignorer les impacts de ces réglages sur leurs résultats ? 

Le(la) Data Scientist(e) joue donc un rôle clé de dialogue avec les métiers pour proposer et expliquer les conséquences des choix importants qui seront fait lors de la modélisation. Ensuite, même si les pipelines de données sont préparés par les Data Engineers, c’est le (la) Data Scientist(e) qui décide quelles données (internes et externes) utiliser, et qui va encadrer ce qu’on appelle le « feature engineering ». 

Le Feature Engineering a pour rôle essentiel de transformer et d’enrichir les données en entrée des modèles, et je ne parle pas ici que de la mise en qualité des données. Un modèle entrainé sur des données brutes ne vaut rien. Un modèle sera d’autant plus efficace que les données auront été soigneusement préparées, raffinées (un peu comme on raffine du pétrole en essence) et enrichies. On va recoder telle variable afin que sa distribution soit compatible avec le type d’algorithme utilisé. On va croiser tel prédicteur avec tel autre pour créer un indicateur plus pertinent en entrée de l’algorithme. C’est, je pense, là où l’impact du raisonnement humain sur le résultat final a le plus importance, et c’est principalement le soin apporté lors de cette phase qui va caractériser la compétence d’un(e) DataScientist(e). Mieux vaut un modèle plus simple avec des données mieux préparées qu’un modèle très sophistiqué avec des données mal préparées. 

Cela ne nécessite pas que des compétences algorithmiques, mais également des compétences statistiques et mathématiques extrêmement bien maitrisées. On peut voir cela de la façon suivante : le Big Data n’est rien d’autre qu’un très grand espace de données, qui doit être converti en ce que les mathématiciens appellent un « espace vectoriel » pour pouvoir être traité dans de bonnes conditions par des algorithmes. Il est essentiel que les Data Scientist(e)s soient capable de comprendre comment opérer cette transformation, et puissent réaliser à partir de cet espace vectoriel des opérations mathématiques et statistiques intelligentes pour apporter de la valeur métier. 

Je vous étonnerai peut-être si je vous dis que cette phase représente aujourd’hui la plus grosse partie du travail d’un(e) Data Scientist(e) par rapport au temps passé sur l’élaboration et le test du modèle. C’est l’étape clé qui fera la différence entre un bon et un mauvais modèle. 

Cette phase n’est pas automatisable « a priori ». C’est-à-dire qu’il faut l’avoir réalisé complètement manuellement une fois sur un nouveau jeu de données pour ensuite pouvoir l’automatiser. Il y a à cela plusieurs raisons, la première est que cette phase nécessite une démarche inductive et statistique, faite d’exploration des données, d’hypothèses et de tests statistiques. Bien qu’il existe des méthodes de recodage et de feature engineering, cette phase est tellement variable et dépendante des données qu’aucune plateforme d’IA automatisée n’a pu fournir à ce jour une réponse automatisée réellement satisfaisante à cette étape du process. A titre d’exemple, Il m’est arrivé de voir la précision d’un même algorithme multipliée par un facteur 2 en recodant une seule variable parmi plusieurs centaines, sans changer une virgule au modèle. 

Le Data Scientist professionnel saura grâce à son approche scientifique et son intuition quelles variables recoder pour obtenir les meilleurs résultats, la meilleure des IA en est aujourd’hui incapable seule. 

La fonction de Data Scientist (avec les outils et les technologies dont nous disposons aujourd’hui) est donc complètement indispensable, non seulement pour le choix des données, leur préparation, le feature engineering, la modélisation et le test, mais surtout pour faire le lien entre ce qui est fait d’un point de vue mathématique et les métiers. 

Cela requiert donc une double compétence mathématique/statistique et de communication. Il faut avant tout être bon en communication, en maths et en statistiques pour expliquer ce qui se passe et proposer les bonnes options aux métiers. 

La data science est aussi un travail d’équipe, les métiers, les data scientist(e)s, les data engineers et les opérations doivent travailler ensemble. Qu’il vienne à manquer un élément de la chaine et le modèle ne rentrera jamais en production et on peut alors dire adieu au R.O.I. 

Un autre argument (s’il en fallait un), est que jusqu’à présent, le principal débouché des mathématiques appliquées de haut niveau résidait dans les sciences physiques, les sciences de l’ingénieur et la finance. Or aujourd’hui la data science est une toute nouvelle autoroute possible, même si je crois que les liens avec les enseignements en mathématiques sont encore bien trop peu mis en avant. 

Pour conclure, je veux bien conjecturer que dans l’avenir, au-delà de son aspect pratique de tous les jours en entreprise, la data science débouchera sur des découvertes inattendues dans le monde des mathématiques, peut-être même dans les mathématiques théoriques, où je crois qu’il y a encore de la place pour de nouvelles découvertes majeures. 

Je souhaite donc longue vie à la fonction de DataScientist(e) !