ROUGE vos résultats PNL !

Nov 27 2022
La prochaine métrique discutée dans cette série d'articles sur les métriques utilisées dans le traitement du langage naturel est la sous-étude orientée rappel pour l'évaluation Gisting (ROUGE). ROUGE est une métrique d'évaluation utilisée pour évaluer la qualité des tâches NLP telles que le résumé de texte et la traduction automatique.

La prochaine métrique discutée dans cette série d'articles sur les métriques utilisées dans le traitement du langage naturel est la sous-étude orientée rappel pour l'évaluation Gisting (ROUGE).

ROUGE est une métrique d'évaluation utilisée pour évaluer la qualité des tâches NLP telles que le résumé de texte et la traduction automatique. Contrairement à BLEU , le ROUGE utilise à la fois le rappel et la précision pour comparer des résumés générés par des modèles appelés candidats à un ensemble de résumés générés par l'homme appelés références. Il mesure combien de n-grammes dans les références se trouvent dans le candidat prédit.

Tout d'abord, calculons le rappel = vrais positifs/(vrais positifs + faux négatifs). Ici, les vrais positifs sont les n-grammes correspondants entre les références et les candidats. Les faux négatifs peuvent être considérés comme les n-grammes qui se trouvent dans les phrases réelles (références) mais pas dans le candidat. Les Faux Positifs sont alors les n-grammes qui sont présents dans le Candidat mais pas dans les Références. Consultez cet article de blog Rappel, précision, score F1 si vous avez besoin d'un rappel sur des concepts tels que les vrais positifs, les faux positifs, le rappel et la précision, etc.,

Par conséquent, le rappel et la précision peuvent être obtenus comme indiqué ci-dessous :

Le rappel et la précision peuvent parfois être complémentaires et il est donc nécessaire de combiner les deux pour atteindre un équilibre. Pour cette raison, le ROUGE est calculé comme un score F1 en Python. La valeur varie de 0 à 1 et plus la valeur est proche de 1, meilleure est la qualité de la prédiction.

ROUGE-N

Utilisons le module d'évaluation du package "evaluate" de Huggingface et vérifions les calculs étape par étape. Supposons que le corpus suivant avec 2 références pour chaque candidat a été obtenu à partir des résultats d'un modèle de synthèse.

!pip install evaluate
!pip install rouge-score
import evaluate
rouge = evaluate.load('rouge')
predictions = ["Transformers Transformers are fast plus efficient", 
               "Good Morning", "I am waiting for new Transformers"]
references = [
              ["HuggingFace Transformers are fast efficient plus 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 = rouge.compute(predictions=predictions, references=references)
print(results)

{'rouge1': 0.6659340659340659, 'rouge2': 0.45454545454545453, 
'rougeL': 0.6146520146520146, 'rougeLsum': 0.6146520146520146}

Candidate 1: Transformers Transformers are fast plus efficient
Reference 1: HuggingFace Transformers are fast efficient plus awesome
Reference 2: Transformers are awesome because they are fast to execute

Recall = 5/7 = 0.7142857
Precision = 5/6 = 0.8333333
F1-Score =  2 * (0.7142857) * (0.8333333)/(0.7142857 + 0.8333333) = 0.7692307

Candidate 2 and the respective Reference 1: 0.8
Candidate 3 and the respective Reference 1: 0.4285714
Mean F1-Score = (0.7692307 + 0.8 + 0.4285714)/3 = 0.665934

ROUGE-L

Ici, L signifie la plus longue sous-séquence commune (LCS). LCS est défini comme la plus longue sous-séquence qui se produit à la fois dans la référence et dans le candidat. La sous-séquence ici n'a pas besoin d'être continue. Au lieu de compter le nombre de n-grammes correspondants, nous mesurons ici la longueur de LCS. L'avantage de cette approche est que l'ordre des mots dans la phrase est pris en compte au lieu de rechercher uniquement les n-grammes correspondants qui peuvent apparaître dans n'importe quel ordre. De plus, nous n'avons pas non plus besoin de fournir l'ordre (n) de n-grammes à utiliser pour le calcul.

Formule ROUGE-L du papier ROUGE

Dans la formule ci-dessus, X et Y sont la référence et le candidat avec des longueurs m et n respectivement. La version bêta est utilisée pour contrôler ce qui est le plus important - le rappel ou la précision. Quand c'est 1, le F_lcs est juste la moyenne harmonique de Recall(R_lcs) et Precision(P_lcs). Parfois, nous pourrions vouloir donner la priorité au rappel, c'est-à-dire qu'il est plus important que la plupart des n-grammes dans les références soient présents chez les candidats. Ceci peut être réalisé en augmentant le bêta à une valeur > 1.

Voyons maintenant cette formule en action. Le LCS pour chaque ensemble de référence candidat est indiqué ci-dessous :

C1-R1: Transformers are fast plus 
C1-R2: Transformers are fast

C2-R1: Good Morning
C2-R2: Morning

C3-R1: waiting for new
C3-R2: new Transformers

Tout comme dans le ROUGE-N, nous considérons la référence avec la longueur maximale entre les deux références pour chaque candidat. Par conséquent, nous calculons le score F1 pour la paire C1-R1 avec une longueur LCS de 4. Les scores des candidats 2 et 3 sont les mêmes que ceux de ROUGE-1. En effet, la longueur du SCL entre les références est la même que l'unigramme correspondant compte pour 2 et 3. L'ensemble du calcul se résume alors comme suit :

C1-R1:
Recall = 4/7
Precision = 4/6
ROUGE-L F1 = 2 * (4/7) * (4/6)/((4/6) + (4/7)) = 0.6153846

C2-R1 ROUGE-L F1 = 0.8
C3-R1 ROUGE-L F1 = 0.4285714

Final ROUGE-L F1 = (0.6153846 + 0.8 + 0.4285714)/3 = 0.614652

Avantages

  1. Facile à calculer et à comprendre et est généralement utilisé pour évaluer les systèmes de synthèse de texte.
  2. ROUGE et ses variantes ont bien fonctionné pour résumer des documents uniques et des textes courts.
  1. ROUGE a le même problème que BLEU concernant les synonymes. La signification des n-grammes n'est pas prise en compte et donc "rapide" et "rapide" ne seront pas considérés comme similaires.
  2. Le score dépend fortement du choix des mots et de la structure des références choisies pour l'évaluation.

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.