l’interprétabilité et la confiance des systèmes de data science).
Il y a trois limites à cette pratique :
Solution 3 : Mesurer des prédictions idéales partielles
Même si la prédiction est faite à 1 mois, il est possible d’avoir une partie de la prédiction idéale plus tôt.
Sur notre exemple d’achat de voiture, il y a certains prospects qui vont acheter dès la première semaine. On pourra donc avoir une mesure partielle du nombre d’acheteurs à un mois. En utilisant la métrique de précision, nous avons représenté les performances en production sur la figure 2.
FIgure 2 : Evaluation de la performance en termes de précision au cours du temps.
En phase de construction, il est possible d’évaluer la performance du modèle entraîné à un mois sur différents horizons : 1 semaine, 2 semaines, … (représentée par des lignes en oranges sur la figure 2). Ces performances à différents horizons nous donnent une référence pour la performance obtenue en production.
On peut donc voir, sur la figure 2, que la performance sur les prédictions du 13/04 sont au-dessus de la référence, et celles du 20/04 en dessous.
Les principes qui nous ont guidés pour ces problèmes à fort horizon temporel sont :
Le problème :
Les systèmes de data science qui utilisent des images, des séries temporelles ou du texte ont souvent une cible qui est issue d’annotations (c.à.d. on demande à des experts de fournir les labels).
NB : L’annotation est utilisée lorsque les labels ne sont pas stockés ou lorsque l’on met en place un nouveau processus. Cette annotation est un proxy des labels idéaux puisqu’elle revient à demander à un expert de donner son avis a posteriori.
L'annotation est, à tort, limitée à la construction du système pour entraîner un modèle de machine learning. Ne pas avoir d’annotations en production empêche de monitorer le système.
Exemple : Un système de détection de défauts par inspection visuelle.
Le système prend des photos d’une pièce, prédit s’il y a présence de défauts et les indique à un opérateur pour qu’il les corrige.
Pour construire un tel système, nous avons entraîné un modèle de machine learning sur un ensemble d’images annotées. Ces annotations ont été faites par des qualiticiens.
N’ayant pas prévu d’annotations pour la phase de production, nous ne savons pas comment se comporte le système. Les seuls retours que l’on a sont ponctuellement des exemples d’images pour lesquelles le système s’est trompé. Ces retours sont difficiles à exploiter.
Solutions :
Les trois solutions que l’on propose ci-dessous font toujours appel au principe qui vise à penser les annotations en mode flux plutôt que comme une tâche ponctuelle.
Solution 1 : Faire annoter une portion des situations de production chaque jour
Cette solution consiste à faire annoter régulièrement un pourcentage des variables explicatives (image, texte ou série temporelle) afin d’obtenir un feedback sur celles-ci. Il y’a un équilibre à trouver sur le nombre de situations à annoter : suffisamment peu pour que cela ne coûte pas trop cher, suffisamment pour que ce soit représentatif.
Figure 3 : Exemple d’ordre de grandeur d’images (1 image / minute, 5 % d’annotations)
Sur notre exemple de détection de défauts par inspection visuelle, on peut choisir d’envoyer tous les jours 5% des images à une taskforce d’annotations. Grâce à ces annotations, nous pourrons évaluer la performance réelle du système.
Cette annotation continue doit être pensée tôt pour mesurer la performance dès le début de la phase de production. Il faut alors prévenir les annotateurs, prévoir un budget et construire un outillage pour annoter efficacement. Cela est d’autant plus important que le métier d’annotateur n’existe généralement pas dans les entreprises, il faut alors demander à des personnes / experts de dégager du temps ou faire appel à un sous-traitant.
NB : Comme pour les labels, l’annotation est un proxy de la prédiction idéale. La prédiction idéale est “tous les défauts qui aurait posés problèmes ultérieurement” alors que l’annotation est “tous les défauts que l’annotateur a vu”.
Solution 2 : Prendre du feedback des parties prenantes
L’idée est, comme dans le cas du délai pour obtenir la prédiction idéale, de demander du feedback sur la prédiction.
Sur notre système de détection de défauts par inspection visuelle, on peut fournir une tablette à notre technicien sur laquelle il clique pour indiquer le défaut qu’il est en train de traiter. Un défaut sur lequel il n’a pas cliqué est donc soit un défaut qu’il n’a pas corrigé, soit une fausse prédiction.
Les mêmes limitations que citées plus haut s’appliquent : Il faut que la personne ait une expérience sur le sujet.; Il faut qu’elle voit un intérêt à donner son feedback; Son feedback peut-être biaisé en fonction de ses intérêts et ce n’est qu’un proxy.
Solution 3 : Gamifier l’annotation
Comme nous avons besoin d’annotation tout au long de la vie du système, une technique à laquelle les GAFA sont rodés, c’est la gamification de l’annotation.
Un exemple est l’ajout de tag ou de personnes sur des photos proposé par Instagram. Ils développent des modèles de recommandation de contenu. Le problème est donc de savoir à qui recommander cette photo qui vient d’être postée. En ajoutant un tag ou le nom d’une personne, vous leur indiquez une partie de la prédiction idéale : cette personne, ou les personnes aimant ce tag seront probablement intéressées par votre photo.
Les principes qui nous ont guidés pour récupérer la prédiction idéale sur des systèmes construits avec des annotations sont donc :
Le problème :
Lorsque l’on utilise du machine learning supervisé, l'objectif est souvent non seulement d’identifier des situations mais aussi d’agir dessus.
L’action que l’on apporte a pour objectif de modifier la situation, il devient alors difficile de savoir si la situation a été correctement prédite.
Dans ce cas la prédiction idéale et la ground truth sont différentes.
Exemple : Un système de maintenance prédictive.
Le système prédit l'occurrence d’une panne est utilisé pour faire de la maintenance prédictive. Lors d’une prédiction de panne, un technicien intervient pour entretenir de manière préventive la machine. Si le technicien fait bien son travail, alors la machine ne tombera pas en panne.
Solution 1 : Le groupe témoin
“Dans une expérience scientifique, un groupe contrôle, ou groupe témoin, est un groupe d'individus qui ne reçoit pas le traitement testé. À l'issue de l'expérience, comparer les individus du groupe témoin à ceux du groupe traité (ou groupe expérimental) permet d'évaluer l'effet du traitement.” (Source wikipedia)
Les groupes témoins sont très utilisés en médecine ou en marketing sous la dénomination A/B testing. Ils sont particulièrement utiles lorsqu’il y a une dimension temporelle dans le problème à résoudre (c.à.d. du prédictif).
L’objectif est de mesurer l’apport du système par rapport à son absence. Il y a deux façons de faire: soit ne pas traiter des cas identifiés, soit ne pas prédire sur une partie de la population.
Dans notre exemple, il s’agirait soit de ne pas prédire sur une partie des machines et mesurer combien sont tombées en panne par rapport aux machines traitées, soit de ne pas signaler au technicien un pourcentage de pannes prédites et mesurer combien ont donné effectivement des pannes.
Figure 4 : Représentation de deux façons de faire des groupes témoins.
Les utilisateurs sont parfois réticents à cette pratique car elle est coûteuse. Dans notre cas, des pannes qui auraient pu être anticipées et traitées ont effectivement lieu. Comme pour les annotations il faut trouver un équilibre sur le nombre de situations non traités entre le besoin de mesurer la performance et la perte causée par ce non traitement.
NB : A nouveau, cette technique doit-être mise en place sous l’angle des flux : il faut avoir un groupe témoin dans le temps, et non pas en mode one-shot.
Solution 2 : Obtenir la prédiction idéale avant modification
Cette technique consiste à constater si la situation prédite est présente avant de mener une action.
Cette technique est particulièrement applicable dans le cas où il n’y a pas de dimension temporelle dans le problème à résoudre (c.à.d. ce n’est pas du prédictif).
Sur notre exemple de prédiction de panne, on peut demander au technicien de confirmer qu’il y a effectivement une usure ou un problème qui va causer une panne avant d’entretenir la machine.
Cette technique revient à prendre un proxy de la prédiction idéale : au lieu d’avoir “la machine va effectivement tomber en panne” on a “le technicien a identifié un problème qui aurait causé une panne”.
Les principes qui nous ont guidés pour récupérer la prédiction idéale sur des systèmes dont l’impact empêche d’observer la prédiction idéale sont donc :
Notre première motivation pour récupérer la prédiction idéale était de pouvoir mesurer la performance en phase de production. Ce sera une brique importante du monitoring de votre système en production. Pour aller plus loin vous pouvez regarder cette conférence qui donne une vue démystifiée et pragmatique du monitoring de data science.
Il est possible de tirer d’autres bénéfices de ce flux de prédictions idéales. Nous allons en voir trois.
Tout d’abord, il est possible d’utiliser cette prédiction idéale pour réentraîner le modèle de machine learning. Cela est intéressant uniquement lorsque les performances du modèle se dégradent significativement ou lorsque l’on a significativement plus de données. Il convient également d’être prudent, ce n’est pas toujours la prédiction idéale qui doit servir de label pour le réentraînement, parfois c’est la ground truth.
Ensuite, on peut utiliser le flux de prédictions idéales mis en place pour essayer des modélisations plus avancées telles que l’apprentissage par renforcement, l’active learning, ou l’online learning
Finalement, il est possible d’utiliser cette prédiction idéale pour construire un cas d’usage plus généraliste. Lorsque vous modifiez le texte de la suggestion de réponse de Gmail, vous permettez à Gmail de collecter du feedback sur la formulation de réponses. Ils pourront ensuite construire un cas d’usage de génération automatique d’email complexes. L’idée est donc de commencer avec des cas d’usages simples pour collecter plus de données qui permettront de faire des cas d’usages plus complexes.
Il est acquis par les data scientists qu’il faut évaluer un système de data science au moment de l’entraînement. On a parfois tendance à oublier qu’il faut évaluer le système en phase de production.
L’évaluation en phase de production peut être compliquée par la difficulté à récupérer la prédiction idéale. Nous avons vu au cours de cet article les différents freins. Nous avons également vu qu’aucun n’était insurmontable.
Les principes suivants vous permettront de faciliter la récupération de la prédiction idéale :
Le premier usage de la récupération régulière de la prédiction idéale est bien entendu le monitoring du système. Nous avons également vu qu’il existe de nombreux autres usages tels : préparer le réentraînement, collecter des données pour d’autres cas d’usages.