Codification automatique de l’APE avec de l’apprentissage statistique

BCEAO - Jour 3

27 septembre 2023

Contexte

Context

  • Plusieurs changements majeurs:

    • Interne: Refonte du répertoire Sirene 4.
    • Externe: Mise en place d’un guichet unique pour déclarer les créations d’entreprises.
  • Constat: Sicore n’est plus l’outil adapté ➨ seulement 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 million 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

Feature extraction

  • Plongements lexicaux: méthode de vectorisation.
  • Plongements pré-entrainé disponibles en open-source.
  • Nous apprenons nos propres plongements de mots.
  • Mais aussi des plogements de :
    • n-grams de mots et de 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.

Le modèle fastText

  • fastText: Modèle de type “bag of n-grams” très simple et rapide (C++).

Prise en compte des variables catégorielles

  • Concaténation du libellé avec les noms et valeurs des variables annexes :
Text 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 Text description
Input 3 D: La Deratisation - La Desinsectisation - La Desinfection
Lower-case conversion 3 d: la deratisation - la desinsectisation - la desinfection
Punctuations removal 3 d la deratisation la desinsectisation la desinfection

Preprocessing

Transformation Libellé
Input 3 D: La Deratisation - La Desinsectisation - La Desinfection
Numbers removal d la deratisation la desinsectisation la desinfection
One-letter word removal la deratisation la desinsectisation la desinfection
Stopwords removal deratisation desinsectisation desinfection

Preprocessing

Transformation Libellé
Input 3 D: La Deratisation - La Desinsectisation - La Desinfection
NaN removal deratisation desinsectisation desinfection
Stemming deratis desinsectis desinfect

Résultats

Une bonne performance globale

Figure 1: 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.

Fludifier le processus de codification manuel

Figure 2: 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.

Construction d’un indice de confiance

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

Améliorer l’efficacité de la reprise manuelle

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

  • Optimisation de la reprise manuelle ➨ gain de performance.

De l’expérimentation à la mise en production

La notion de mise en production

  • Mettre en production : faire vivre une application dans l’espace de ses utilisateurs
    • Notion simple mais mise en oeuvre compliquée !
  • Dépasser le stade de l’expérimentation
    • Bonnes pratiques de développement
    • Techniques informatiques d’industrialisation
  • Enjeu : pouvoir jouer le rôle d’interface entre métier et équipes techniques

Retour d’expérience à l’Insee

  1. Contrainte temporelle forte :
  • Mise en place du Guichet Unique + refonte Sirene 4
  • Équipe en charge de la codification surchargée
  1. Infrastructure de production rigide :
  • Un seul langage disponible, Java
  • Pas de modèle de ML en production
  1. Confiance des équipes à acquérir :
  • Appréhension concernant la performance du modèle une fois en production
  • Objectif : Déployer un modèle à la fois rapidement et progressivement

Organisation actuelle avant la mise en production

  • 3 parties prenantes

Organisation actuelle une fois le modèle déployé en production

Inefficacité organisationelle

  • Problèmes rencontrés :
    • Méconnaissance des problèmes métier côté Lab pour la maintenance
    • Contrôle de version et transmission des modèles
    • Organisation inefficace entre les parties prenantes
  • Défis à anticiper :
    • Surveillance du modèle en temps réel
    • Ré-entrainement régulier
  • Conséquence : Besoin d’adopter les bonnes pratiques d’un point de vue technique (MLOps) et organisationel

Organisation visée à l’Insee