Codification automatique de l’APE dans le cadre du projet Sirene 4

Séminaire DMS

7 octobre 2022

Introduction

Contexte

  • Plusieurs changements majeurs :

    • Interne : Refonte du répertoire Sirene 4.
    • Externe : Mise en place d’un guichet unique.
  • Constat : Sicore n’est plus l’outil adapté ➨ 30% de codification automatique.

  • Conséquence : moment idéal pour proposer une nouvelle méthodologie de codification automatique de l’APE.

Données

  • \(\approx\) 10 millions de liasses d’entreprises issues de Sirene 3 couvrant la période 2014-2022.
  • Données labellisées par Sicore ou par un gestionnaire.
  • Une observation consiste en :
    • un descriptif textuel de l’activité
    • la nature de l’activitéNAT (23 modalités)
    • le type de la liasseTYP (15 modalités)
    • le type d’évènementEVT (24 modalités)
    • la surface (\(m^2\))SUR (4 modalités)

La nomenclature hiérarchique de l’APE

Niveau Code Libellé Taille
Section H Transports et entreposage 21
Division 52 Entreposage et services auxiliaires des transports 88
Groupe 522 Services auxiliaires des transports 272
Classe 5224 Manutention 615
Sous-classe 5224A Manutention portuaire 732

Méthodologie

Vectorisation des libellés

  • Plongements lexicaux : méthode de vectorisation.
  • Plongements pré-entraînés disponibles en open-source.
  • On apprend nos propres plongements de mots.
  • Mais aussi des plongements pour :
    • Les n-grams de mots et n-grams de caractères.

Classifieur linéaire

  • 2 méthodes pour la classification :
    • Softmax : un unique classifieur multiclasse.
    • One-vs-all : de multiples classifieurs binaires.
  • Optimisation : algorithme de type descente de gradient stochastique.
  • Fonction de perte : entropie croisée.

Classification à partir de plongements lexicaux

Implémentation, entraînement

  • fastText : librairie rapide (C++) et facilement utilisable.
  • Optimisation des paramètres d’entraînement et hyperparamètres avec mlflow.

Prise en compte des variables catégorielles

  • Concaténation du libellé avec les noms et valeurs des variables annexes :
Libellé NAT TYP EVT SUR
Cours de musique NaN X 01P NaN
🢃

“Cours de musique NAT_NaN TYP_X EVT_01P SUR_NaN

  • Méthode imparfaite : 3-grams “AT_” ou “T_0” utilisés.

Prétraitements effectués

  • Nettoyage indispensable pour l’analyse textuelle.
  • Contrainte : simple, léger et facilement reproductible en Java.
Transformation Libellé
Entrée 3 D : La Deratisation - La Desinsectisation - La Desinfection
Passage en minuscule 3 d : la deratisation - la desinsectisation - la desinfection
Suppression des ponctuations 3 d la deratisation la desinsectisation la desinfection

Prétraitements effectués

Transformation Libellé
Entrée 3 D : La Deratisation - La Desinsectisation - La Desinfection
Suppression des chiffres d la deratisation la desinsectisation la desinfection
Suppression des mots à une lettre la deratisation la desinsectisation la desinfection
Suppression des stopwords deratisation desinsectisation desinfection

Prétraitements effectués

Transformation Libellé
Entrée 3 D : La Deratisation - La Desinsectisation - La Desinfection
Suppression des NaN deratisation desinsectisation desinfection
Racinisation des mots deratis desinsectis desinfect

Évaluation de la performance

  • Évaluation sur 2 jeux de données :
    • un jeu de test, 20% des données soit \(\approx\) 2.5 millions observations
    • un jeu issue du guichet unique \(\approx\) 15 000 observations

Figure 1: Précision en fonction du taux de reprise manuelle effectuée.

Évaluation de la performance

  • 4 métriques pour l’analyse de la performance :
    • Le taux de précision : taux global de liasses bien prédites (accuracy).
    • Le rappel : taux de bonnes prédictions de la classe K parmi les vraies valeurs K.
    • La précision : taux de bonnes prédictions de la classe K parmi les prédictions K.
    • Le score F1 : Moyenne harmonique du rappel et de la précision.

Principaux résultats

Une bonne performance globale

Figure 2: Taux de précision pour chaque niveau de la nomenclature du code APE.

  • Près de 80% des libellés issus du guichet unique sont correctement codifiés.
  • Erreurs de prédiction proches dans la nomenclature.

Une aide à la reprise manuelle

Figure 3: Top-K Accuracy pour chaque jeu de données.

  • Connaissance des probabilités pour chaque classe.
  • Dans 94% des cas, la bonne classification se trouve dans les 5 prédictions les plus probables.

Une performance hétérogène en fonction des classes

Figure 4: Distribution du F1-score en fonction de la fréquence des classes.

  • Performance mitigée sur plusieurs classes peu fréquentes.

Indice de confiance et reprise manuelle

Construction d’un indice de confiance

Figure 5: Distribution de l’indice de confiance en fonction du résultat de la prédiction.

  • Objectif : discriminer les mauvaises des bonnes prédictions.
  • Indice de confiance retenu : différence entre les deux probabilités les plus élevées.

Efficacité de la reprise manuelle

Figure 6: Précision en fonction du taux de reprise manuelle effectuée.

  • Optimisation de la reprise manuelle ➨ gain de performance.

Enjeux liés à la mise en production

Organisation prévue

  • Intégration dans Sirene 4 pour coder le guichet unique.
  • Module de codification : API construite sur JFastText.
  • Définition du contenu des logs pour contrôle futur.
  • Double rôle du SSP Lab à moyen terme :
    • Livraison des modèles entraînés.
    • Contrôle qualité.

À clarifier

  1. Identification des liasses non-codables.
  2. Utilisation du module comme aide à la reprise manuelle.

Organisation à terme ?

Problématiques pour la codification en production

  • Gestion des versions des modèles en production ?
  • Contrôle du modèle en production : quoi et à quelle fréquence ?
  • Contrôle des entrées à coder ?
  • Réentraînement d’un modèle : comment et à quelle fréquence ?
  • Utilisation et maintenance des différents modules ?
  • Gestion des changements de nomenclature ?