Métriques d'évaluation dans le traitement du langage naturel — BLEU

Dans cette série d'articles, nous allons discuter des mesures d'évaluation spécifiques aux cas d'utilisation dans le domaine du traitement du langage naturel. Les tâches les plus courantes en PNL sont le résumé automatique, la réponse aux questions et la traduction automatique. L'objectif de ces métriques est d'identifier la qualité du texte prédit en fonction du texte d'entrée. Le texte prédit est appelé Candidat et les éventuels textes corrects ou cibles sont appelés Références.
Ces métriques sont basées sur certaines des métriques de base comme le rappel, la précision et le F1-Score. Si vous n'êtes pas au courant de ces métriques, consultez cet article qui les couvre : Rappel, Précision, F1-Score . Le concept de n-grammes est également essentiel pour le calcul et la compréhension de ces métriques.
Les mesures ci-dessous sont généralement utilisées pour la traduction automatique ou la synthèse automatique, mais elles peuvent être appliquées à toute autre tâche impliquant des paires de texte d'entrée et cible. Parallèlement à l'évaluation des modèles, ces métriques peuvent également être utilisées pour le réglage des hyperparamètres des modèles d'apprentissage automatique. Dans le premier article, nous discuterons de la métrique BLEU qui est souvent utilisée pour évaluer la traduction automatique.
Stage d'évaluation bilingue (BLEU)
Le score BLEU mesure la qualité du texte prédit, appelé candidat, par rapport à un ensemble de références. Il peut y avoir plus d'une réponse correcte/référence pour un candidat dans les tâches de séquence à séquence. Par conséquent, il est important que les références soient choisies avec soin et que toutes les références possibles soient incluses. Le score BLEU est une mesure basée sur la précision et il varie de 0 à 1. Plus la valeur est proche de 1, meilleure est la prédiction. Il n'est pas possible d'atteindre une valeur de 1 et généralement une valeur supérieure à 0,3 est considérée comme un bon score.
Dans la section suivante, nous voyons le calcul de BLEU sur une seule phrase prédite à titre d'illustration suivi du calcul pour un corpus.
Précision
Si nous rappelons (jeu de mots non intentionnel) la définition de la précision de notre article précédent, il s'agit de vrais positifs/(vrais positifs + faux positifs). Dans ce contexte, les vrais positifs sont tous les n-grammes correspondants entre le candidat et la référence. Les faux positifs ici peuvent être considérés comme les n-grammes qui apparaissent dans le candidat mais ne sont pas présents dans la référence. Cela signifie que la précision peut être obtenue en divisant le nombre de n-grammes correspondants par le nombre total de n-grammes dans le candidat.
Reference: "Transformers make everything quick and efficient"
Candidate: "Transformers Transformers Transformers Transformers"
Précision modifiée (MP)
Pour calculer la précision modifiée, le nombre d'un n-gramme est tronqué en fonction du nombre maximal de fois qu'il apparaît dans les références. Il est désigné par Max_Ref_Count dans la formule ci-dessous.

Dans notre exemple de la section précédente, Transformers apparaît une seule fois dans les références et 4 fois dans le candidat. min (4, 1) est pris en compte et la précision modifiée est maintenant de 1/4 = 0,25. Cette valeur est plus faible et nous donne donc une meilleure estimation de la qualité de la prédiction.
Pour généraliser, la formule de MP est donnée ci-dessous. Pour tous les candidats du corpus, le nombre de n-grammes appariés avec les références est compté et additionné. Ceci est divisé par la somme des comptages de tous les n-grammes dans les références.

Pénalité de brièveté (BP)
Parfois, pour les phrases plus longues, les candidats peuvent être très petits et manquer d'informations importantes relatives à la référence. Considérez l'exemple ci-dessous :
Reference: "Transformers make everything quick and efficient through
parallel computation of self-attention heads"
Candidate: "Transformers make everything quick and efficient"
Entrez, Pénalité de brièveté (BP). Ce terme est utilisé pour pénaliser les prédictions trop courtes par rapport aux références. C'est 1 si la longueur candidate est supérieure à la longueur de référence. Si la longueur candidate est inférieure à la référence implique r/c > 1, (1 — (r/c)) est inférieur et il y a une décroissance exponentielle.
La moyenne géométrique de toutes les précisions modifiées jusqu'à N est calculée et multipliée par BP pour obtenir le score BLEU final. Ici N est l'ordre n-gramme qui doit être utilisé pour le calcul. En général, il est de 4, c'est-à-dire que les grammes uni, bi, tri et tétra sont tous pris en compte pour le calcul. Ils sont pondérés par les poids notés w_1, w_2,… qui totalisent 1 en fonction de N. Pour N = 4, ils sont w_1 = w_2 = w_3 = w_4 = 1/4.

Pour l'exemple de phrase ci-dessus, nous pouvons voir que le BP est calculé comme exp(1 — (reference_length/translation_length)) = exp(1 — (6/12)) = 0,37. Cette valeur multipliée par le MP (1, puisque nous n'utilisons que des unigrammes) donne un score BLEU beaucoup plus faible de 0,37 au lieu de 1, qui tient compte des n-grammes manquants.
Dans cet article, nous avons utilisé des unigrammes pour faciliter le calcul. Cependant, ils ne suffisent souvent pas à évaluer les candidats car l'ordre des mots est ici ignoré. Par exemple, le candidat "Les transformateurs efficaces font des prédictions rapides" change le sens de la phrase mais donne un score MP élevé (0,6) car il y a des mots correspondants dans la référence. Pour éviter cela, il est préférable d'évaluer les scores avec 2 à 4 grammes.
Corpus BLEU
Pour faciliter la compréhension, nous avons utilisé jusqu'à présent une seule paire de textes mais le score BLEU est généralement calculé pour l'ensemble du corpus avec une ou plusieurs référence(s) pour chaque candidat.
Calculons maintenant le score BLEU pour le corpus ci-dessous. Supposons que les candidats sont les résultats d'un système de traduction.
import evaluate
bleu = evaluate.load('bleu')
predictions = ["Transformers Transformers are fast plus efficient",
"Good Morning", "I am waiting for new Transformers"]
references = [
["HuggingFace Transformers are quick, efficient and awesome",
"Transformers are awesome because they are fast to execute"],
["Good Morning Transformers", "Morning Transformers"],
["People are eagerly waiting for new Transformer models",
"People are very excited about new Transformers"]
]
results = bleu.compute(predictions=predictions, references=references,
max_order = 2)
print(results)
{'bleu': 0.5037930378757725,
'precisions': [0.7142857142857143, 0.5454545454545454],
'brevity_penalty': 0.8071177470053892, 'length_ratio': 0.8235294117647058,
'translation_length': 14, 'reference_length': 17}
De même, calculez la précision modifiée avec des bigrammes qui est la deuxième valeur du tableau précisions dans la sortie.
Les poids ici sont w_1, w_2 sont 1/2 car l'ordre maximum n'est que de 2. La moyenne géométrique des valeurs de précision est ensuite multipliée par le BP pour obtenir le score final. Pour calculer BP, la longueur totale du candidat est de 14(c) et la longueur de référence effective est de 17(r). La longueur de référence effective est calculée en additionnant les n-grammes dans les références les plus proches du candidat. Ici, pour Référence - 1 première phrase est sélectionnée avec 8 jetons, Référence-2 et 3 ont 2 et 7 jetons dans leurs deuxièmes phrases.
Calcul final BLEU,
Total MP = (0.7142857142857143)^0.5 * (0.5454545454545454)^0.5
Total MP = 0.6241878
Since c < r,
BP = exp(1 - (17/14)) = 0.8071177
BLEU = BP * Total MP = 0.8071177 * 0.6241878 = 0.503793
Rounded BLEU score = 0.5
- Le score BLEU est facile à calculer et largement utilisé.
- Il a été constaté que le score BLEU avait une forte corrélation avec le jugement humain sur la qualité de la prédiction.
- Les synonymes des n-grammes ne sont pas pris en compte tant qu'ils ne sont pas présents comme l'une des références. En effet, la signification des n-grammes n'est pas prise en compte. Par exemple, « Les transformateurs sont rapides et efficaces » et « Les transformateurs ont un temps d'exécution rapide » ont une signification similaire, mais le score BLEU-1 n'est que de 0,2.
- Le problème de l'ordre des mots ne peut pas être résolu en utilisant uniquement des n-grammes d'ordre supérieur. Par exemple, le candidat « Les transformateurs sont rapides et efficaces » avec pour référence « Les transformateurs sont rapides et efficaces » donne un score BLEU-2 élevé (0,87) mais la traduction ne peut pas être considérée comme correcte.
- Le score BLEU varie fortement en fonction de facteurs tels que le nombre de références, les techniques de normalisation et de tokenisation, etc. Pour cette raison, il est difficile de les utiliser pour comparer des ensembles de données utilisant différentes techniques.
Les références
Je suis étudiant en Master en Data Science @ TU Dortmund. N'hésitez pas à me contacter sur LinkedIn pour tout retour sur mes publications ou toute communication professionnelle.