16 Novembre 2018
Hôtel Marriott Rive Gauche
Paris 14ème
Apprentissage actif pour la détection des
catégories dans des champs textuels
Qui sommes-nous ?
Marc JUILLARD, Romuald ELIE,
Directeur du DataLab de Société Professeur de Mathématiques à l’UPEM et
Générale Assurances professeur associé à l’ENSAE
François HU,
Doctorant CIFRE à la Société Générale
Assurances et à l’ENSAE
Sommaire
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Contexte et objectif
Objectif ?
Intégrer les retours des Clients chez Société Générale Assurances.
Problème
1. Impossibilité pour les experts humain d’analyser toutes ces quantités
2. Données non labellisées
Solution
1. Volume : application d’algorithme d’IA
2. Labels : active Learning
Avantages de l’active learning
L’active learning – Sélectionner les meilleurs données à faire labelliser
c’est quoi ?
– Diminue le volume de données nécessaire
Pourquoi faire de
l’active learning ? – Diminue le temps demandé aux experts
– Cadre de rentabilité pour chaque nouvelle donnée
Exemple de données textuelles
Les données Net Promoter Score (NPS)
➢ Collection de verbatims des assurés afin de mesurer la satisfaction client
➢ Environ 100 000 verbatims
0 1 2 3 4 5 6 7 8 9 10
Détracteurs passifs Promoteurs
Processus d’apprentissage NLP
Construire un dictionnaire Encoder les données textuelles Construire un classifieur
Le dictionnaire permet de définir le corpus de mot sur lequel sera bâti notre algorithme prédictif. Il est
donc nécessaire en phase d’apprentissage mais surtout pour le déploiement du modèle.
- Tokenization : processus qui sépare une séquence (les textes) en une liste de tokens (mots)
- Nettoyer si besoin le corpus (faut d’orthographe, synonyme, stop-words,..)
Exemple :
“Je suis très satisfait par le service rendu. [Je, être, satisfait, par, le ,service,
Dictionnaire de
Conseiller très agrébale,……” rendu,…., conseiller, très, agréable,…]
taille 𝐷
Processus d’apprentissage NLP
Construire un dictionnaire Encoder les données textuelles Construire un classifieur
Les modèles de machine learning travaillant avec des nombres il est nécessaire d’encoder les données
textuelles. Plusieurs approches sont envisageables :
- Encodage binaire
- Encodage fréquentiel
- Encodage TF-IDF
- Encodage par méthodes « embedding »
Exemple :
“Je suis très satisfait par le service rendu. [Je, être, satisfait, par, le ,service,
Dictionnaire de
Conseiller très agrébale,……” rendu,…., conseiller, très, agréable,…]
taille 𝐷
Exemple représentation binaire
agréable avoir conseiller cible … très train satisfait
On crée 𝐷 variables (une pour chaque mot du X = [1, 0, 1, 0, …, 1, 0, 1]
dictionnaire).
Chaque document est alors représenté par le
simple comptage des mots présents
Vecteur de taille 𝐷
Processus d’apprentissage NLP
Construire un dictionnaire Encoder les données textuelles Construire un classifieur
Construire et entraîner notre modèle d’apprentissage :
- Modèles de Machine Learning « classique » (arbre, xgboost, …)
- Modèles de Deep Learning (CNN, RNN, …)
BESOIN DES DONNEES ANNOTEES
Approche non-supervisée
Problème : pas de données labellisées et labellisation à la main impossible
Idée : appliquer une démarche non supervisée :
▪ Encodage des différents verbatims par doc2vev. Principale avantage : permet
d’appliquer une distance entre les documents
▪ Application de méthodologies non supervisées (Kmeans et/ou CAH). Si la première est
plus rapide, la deuxième permet de distinguer thèmes et sous-thèmes.
▪ Labellisation automatique des 1% les plus proches des clusters.
Approche non-supervisée
Approche non-supervisée
Sommaire
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Introduction à l’apprentissage actif
Apprentissage actif (Active Learning en anglais) :
Construire un modèle de Machine Learning plus performant si nous avons la possibilité
de choisir les données à étiqueter / entraîner
Passive Learning Active Learning
Quelques notations et une itération classique d’apprentissage actif
𝑳 𝜽 𝑼
Données Données non
annotées Modèle annotées
Quelques notations et une itération classique d’apprentissage actif
À l’itération t
Données Données non
annotées Modèle annotées
Quelques notations et une itération classique d’apprentissage actif
À l’itération t
Données Entraînement
Données non
annotées Modèle annotées
Quelques notations et une itération classique d’apprentissage actif
À l’itération t
Données Sélection
Modèle Données non
annotées
annotées
Quelques notations et une itération classique d’apprentissage actif
À l’itération t
Données
Modèle Données non
annotées
annotées
Étiquetage des données
Quelques notations et une itération classique d’apprentissage actif
À l’itération t
Données Modèle Données non
annotées annotées
Enrichissement
Quelques notations et une itération classique d’apprentissage actif
À l’itération t+1 …
1 Sélection
Données Modèle Données non
annotées annotées
4 3
Sommaire
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Différentes stratégies d’Active Learning
Échantillonnage incertain
Requête par votes
Changement de modèle prévu
Méthode de densité pondérée
Échantillonnage incertain Questions :
➢ comment choisir la
région d’incertitude ?
Les sous-stratégies :
➢ Échantillonnage
« Least Confident »
➢ Échantillonnage
avec marge
➢ Échantillonnage
Crédit : Prateek Jain, Sudheendra Vijayanarasimhan et Kristen Grauman par entropie
Échantillonnage incertain
Échantillonnage « Least Confident »
∗
𝑥𝐿𝐶 = arg max 1 − 𝑃𝜃 𝑦ො | 𝑥
𝑥
où 𝑦ො = arg max{𝑃𝜃 𝑦| 𝑥 } est la classe la plus probable sous le modèle
𝑦
Échantillonnage incertain
Échantillonnage « Least Confident »
∗
𝑥𝐿𝐶 = arg max 1 − 𝑃𝜃 𝑦ො | 𝑥
𝑥
où 𝑦ො = arg max{𝑃𝜃 𝑦| 𝑥 } est la classe la plus probable sous le modèle
𝑦
Échantillonnage incertain
Échantillonnage « Least Confident »
∗
𝑥𝐿𝐶 = arg max 1 − 𝑃𝜃 𝑦ො | 𝑥
𝑥
➢ Problème : nous regardons seulement la distribution d’un seul label
Échantillonnage incertain
Échantillonnage avec marge
∗
𝑥𝑀 = arg max 𝑃𝜃 𝑦ො1 | 𝑥 − 𝑃𝜃 𝑦ො2 | 𝑥
𝑥
où 𝑦ො𝑖 est la classe la i-ème plus probable sous le modèle
Échantillonnage incertain
Échantillonnage avec marge
∗
𝑥𝑀 = arg max 𝑃𝜃 𝑦ො1 | 𝑥 − 𝑃𝜃 𝑦ො2 | 𝑥
𝑥
➢ Problème : nous continuons à ignorer la distribution des sorties pour les classes restantes
Échantillonnage incertain
Échantillonnage par entropie
➢ Stratégie d’échantillonnage incertain plus générale (Shannon, 1948) utilise l’entropie comme mesure d’incertitude
𝑥𝐻∗ = arg max − 𝑃𝜃 𝑦𝑖 | 𝑥 log 𝑃𝜃 𝑦𝑖 | 𝑥
𝑥
𝑖
Requête par votes ➢ Sélectionner l’instance où les
modèles sont le plus en désaccord
Requête par votes ➢ Sélectionner l’instance où les
modèles sont le plus en désaccord
Questions :
1. Quel comité de modèles choisir ?
2. Quelle mesure de désaccord choisir ?
Requête par votes ➢ Sélectionner l’instance où les
modèles sont le plus en désaccord
Questions :
1. Quel comité de modèles choisir ?
2. Quelle mesure de désaccord choisir ?
Solutions possibles :
Nombre de vote
1. Une méthode par bagging pour la classe
2.
Taille de la comité
Changement de modèle prévu ➢ Sélectionner l’instance qui, si nous
connaissons son label, présente le plus
grand impact sur les paramètres de
notre modèle
Changement de modèle prévu ➢ Sélectionner l’instance qui, si nous
connaissons son label, présente le plus
grand impact sur les paramètres de
notre modèle
Exemple de stratégie :
➢ Longueur prévue du gradient :
Fonction objectif
Changement de modèle prévu ➢ Sélectionner l’instance qui, si nous
connaissons son label, présente le plus
grand impact sur les paramètres de
notre modèle
Exemple de stratégie :
➢ Longueur prévue du gradient :
Fonction objectif
➢ Problème 1 : coûteux en calcul
➢ Problème 2 : peu efficace si une des
dimensions a une magnitude supérieure
aux autres car le gradient peut
surestimer les légères variations de
cette dimension
Méthode de densité pondérée ➢ Il est parfois intéressant de connaître le
label d’une donnée plus représentative
de la distribution sous-jacente
Méthode de densité pondérée ➢ Il est parfois intéressant de connaître le
label d’une donnée plus représentative
de la distribution sous-jacente
➢ Sélectionner l’instance qui est :
➢ À la fois incertaine pour le modèle (cf.
échantillonnage incertain [Link].)
➢ À la fois proche d’une région dense
Méthode de densité pondérée ➢ Il est parfois intéressant de connaître le
label d’une donnée plus représentative
de la distribution sous-jacente
➢ Sélectionner l’instance qui est :
➢ À la fois incertaine pour le modèle (cf.
échantillonnage incertain [Link].)
➢ À la fois proche d’une région dense
Exemple de stratégie (Settles et al, 2008) :
Fonction de similarité
Quantité d’information de x en
fonction d’une stratégie A
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Processus d’apprentissage actif par mini-batch
Algorithme de sélection : tant que nous n’avons pas atteint une condition d’arrêt
1. Entraîner notre modèle 𝜃 sur le train-set 𝐿 et évaluer sa performance sur le test-set 𝑇
2. Sélectionner les k échantillons 𝑥1∗ , 𝑥2∗ , … , 𝑥𝑘∗ les plus informatifs du pool-set 𝑈
3. Mettre à jour 𝑈 ← 𝑈 − {𝑥1∗ , 𝑥2∗ , … , 𝑥𝑘∗ }
4. Mettre à jour 𝐿 ← 𝐿 ∪ {𝑥1∗ , 𝑥2∗ , … , 𝑥𝑘∗ }
1 Sélection
Données Modèle Données non
annotées annotées
4 3
Échantillonnage aléatoire
➢ Modèle(s) :
▪ XGBoost
➢ Stratégie(s) : Échantillonnage
▪ Aléatoire
➢ Taille des données annotées
initiales (L) / d’un mini-batch (k) :
▪ 200 / 100
➢ Condition d’arrêt :
▪ 25 000
Échantillonnage aléatoire VS par entropie
➢ Modèle(s) :
▪ XGBoost
➢ Stratégie(s) : Échantillonnage
▪ Aléatoire
▪ par entropie
➢ Taille des données annotées
initiales (L) / d’un mini-batch (k) :
▪ 800 / 100
➢ Condition d’arrêt :
▪ 25 000
Différentes stratégies d’apprentissage actif
➢ Modèle(s) :
▪ XGBoost
➢ Stratégie(s) : Échantillonnage
▪ Aléatoire
▪ Par entropie
▪ Avec mage
▪ Par requête de votes
▪ Par densité pondérée avec
l’échantillonnage par entropie
➢ Taille des données annotées
initiales (L) / d’un mini-batch (k) :
▪ 800 / 200
➢ Condition d’arrêt :
▪ 6 000
Échantillonnage par entropie + différentes tailles de mini-batch
➢ Modèle(s) :
▪ XGBoost
➢ Stratégie(s) : Échantillonnage
▪ Aléatoire
▪ Par entropie
➢ Taille des données annotées
initiales (L) / d’un mini-batch (k) :
▪ 800 / (50, 100, 200)
➢ Condition d’arrêt :
▪ 6 000
Échantillonnage par entropie + différentes tailles de mini-batch
➢ Modèle(s) :
▪ XGBoost
➢ Stratégie(s) : Échantillonnage
▪ par entropie
➢ Taille des données annotées
initiales (L) / d’un mini-batch (k) :
▪ 1 000 / (200, 2 000)
➢ Condition d’arrêt :
▪ 13 000
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Conclusion
➢ Possibilité de catégoriser automatiquement les données textuelles si nous avons
la possibilité d’avoir une base de données annotées
➢ Possibilité de réduire considérablement le coût d’annotation avec l’apprentissage
actif. Cela est vraie pour :
➢ Des données suivant la loi gaussienne
➢ Des données réelles assurantielles (type NPS)
➢ Section suivante : des améliorations possibles pour ces stratégies d’apprentissage
actif
1. Introduction
2. Apprentissage automatique sur les données textuelles
3. Apprentissage actif
4. Différentes stratégies d’apprentissage actif
5. Expérimentations
6. Conclusion
7. Prochaines étapes
Prochaines étapes
Quelques problèmes à soulever :
➢ Des approches Deep Learning :
▪ Quel est l’apport des modèles séquentiels (RNN, LSTM, …) dans la performance de notre
modèle ?
➢ Générer artificiellement des données textuelles :
▪ Quel est l’apport des méthodes génératives (GAN par exemple) dans la performance de
notre modèle ?
➢ Cas des bases très déséquilibrées :
▪ A l’initialisation, comment peut-on détecter rapidement les catégories très rares (<< 1%) ?
▪ Est-ce que les méthodes d’apprentissage actif présentées ci-dessus marchent toujours ?
➢ Accélération du temps de traitement :
▪ Séquentiellement, au lieu de faire de l’apprentissage « hors-ligne », peut-on faire de
l’apprentissage « en ligne » ?