Conciliator Expert extrait automatiquement toutes les informations pertinentes issues de factures électroniques (PDF, images…), cela semble très simple à l'utilisation, mais pour que Conciliator Expert puisse lire des factures de fournisseurs qu'il n'a jamais vus, l'histoire est tout autre.

Pour y arriver, nous employons des algorithmes de Machine Learning pour prédire et déterminer pour chaque mot s’il s’agit d’un montant total HT, d’un montant total TTC, d’un numéro de facture etc… Un des challenge de la mise en oeuvre d’un tel algorithme est d’estimer quel sera son niveau de performance avant qu’il soit effectivement en production.

Cet article permet d’initier le lecteur aux techniques basiques de mesure de performance et de voir comment nous les utilisons dans le cadre de la lecture de factures.

Qu’est qu’un indicateur de performance ?


Tout d'abord, de quoi parle-t-on exactement ? En Machine Learning, les indicateurs de performance sont des indicateurs qui permettent de mesurer le comportement d’un algorithme en répondant à la question : est-ce que les décisions prises sont conformes à l’attendu.

Ces indicateurs doivent être définis en fonction de la problématique que l’algorithme est censé résoudre et sont donc très liés au métier. Il en résulte que chaque projet doit avoir son propre indicateur de performance (ou plusieurs) qui mesurera le taux de réussite de l’algorithme. La clé est donc de passer du temps à définir ce que l’on souhaite mesurer, et cette tâche qui parait simple n’est pas toujours triviale.

Par exemple, dans le cas d’un algorithme de diagnostic médical, mesurer uniquement le taux de bonnes prédictions n’est pas suffisant. En effet les conséquences de non détection d’une maladie ne sont pas les mêmes qu’une détection à tort. Il est donc nécessaire d’adapter l’indicateur de performance en prenant en compte cette information.

Pourquoi est-ce important ?


Les mesures de performance interviennent dans différentes phase du projet : lors de la phase de réalisation et lors de la phase de suivi de la production.

Pendant la construction d’un modèle de Machine Learning elles permettent d’estimer si ce dernier réalise de bonnes prédictions sur des données qu’il n’a encore jamais vues (à savoir s’il est “généralisable”). Il est donc ainsi possible de comparer différents modèles et de sélectionner le plus performant.

Pendant la phase de monitoring de la production les mesures de performance permettent de réaliser un suivi du comportement l’algorithme. En fonction des résultats, comportement en phase ou non avec les mesures faites au préalable, des actions peuvent alors être prises : étude des cas en erreur, modification ou non du jeu d’entraînement, modification ou non de l’algorithme en tant que tel etc…

Les indicateurs de performances sont donc des informations primordiales pour construire un modèle fiable et répondant aux besoins.

Notions de training set et test set

Une fois le ou les indicateurs de performances définis, tout l’enjeu est de s’assurer que les mesures qui sont effectuées lors de l'entraînement d’un modèle sont conformes avec la réalité c’est-à-dire avec les nouvelles données qu’il devra traiter.

Les algorithmes de Machine Learning peuvent avoir tendance à “apprendre par coeur” les résultats des données sur lesquels ils sont entraînés. Cela signifie que si l’on mesure la performance sur le jeu d'entraînement, il est alors possible que ces résultats soient bien meilleurs que ceux constatés sur l’environnement de production (i.e. sur de nouvelles données qu’il n’a jamais vues).

La bonne pratique est donc de mesurer la performance sur des données que l’algorithme n’a encore jamais vues, et qui soient suffisamment représentatives de ce que l’on pourra retrouver en production.On parle alors de “training set” pour le jeu d'entraînement et de “test set” pour le jeu de données que l’algorithme ne connaît pas.Des stratégies plus avancées comme la validation croisée, ou la définition d’un 3ème jeu de données (le “validation set”) permettent de fiabiliser les mesures de performances réalisées lors de l'entraînement d’un modèle.

Notions de précision et de rappel

Pour aller plus loin, mesurer uniquement le taux global de bonnes prédictions n’est pas suffisant, il faut mesurer ce que l’on appelle la précision et le rappel.

Ces indicateurs sont utilisés pour les tâches de classification, la classification consistant à prédire à quelle classe appartiennent les données (par exemple : prédire si un image représente un chat ou un chien, les deux classes étant chat et chien). Ces indicateurs sont calculées pour chacune des classes :

  • La précision est le nombre de données correctement attribuées à la classe divisé par le nombre de données attribuées à la classe.
  • Le rappel est le nombre de données correctement attribuées à la classe divisé par  le nombre de données appartenant à la classe.

La mesure de performance dans Conciliator Expert

Lors de la phase d'entraînement de nos modèles de reconnaissance de factures nous mesurons à la fois des indicateurs métiers mais aussi des indicateurs techniques. Notre indicateur métier est le pourcentage de factures pour lesquelles toutes les informations sont correctement extraites. La dimension de cet indicateur est donc la facture.

Nos indicateurs techniques sont au niveau du mot et non de la facture. Nous mesurons le taux de bonnes prédictions pour chacun des mots de la facture : l’algorithme prédit pour chaque mot s’il s’agit d’un montant total, d’un montant ligne, d’un numéro de facture etc…

Plus précisément nous mesurons :

  • la précision
  • le rappel
  • le f1-score : la moyenne harmonique de la précision et du rappel

Les projets de Machine Learning se démocratisant, de plus en plus d’acteurs proposent des solutions pour comparer simplement les performances obtenues entre différents modèles. On peut notamment citer Tensorboard, Weights & Biases, Comet, Losswise… Nous utilisons ce type d’outil pour partager simplement les résultats et pour conserver une trace de chacun des tests effectués.

Conclusion

Mesurer les performances d’un algorithme de Machine Learning est une étape indispensable et extrêmement importante pour produire un algorithme de qualité et qui réponde aux attentes métiers.

Les indicateurs doivent être suivis sur l’ensemble du cycle de vie du projet : phase d’étude, phase de réalisation, et phase de maintenance. C'est une composante indispensable à la réussite de tout projet de Machine Learning.