Metriche di valutazione nell'elaborazione del linguaggio naturale - BLEU
In questa serie di post, discuteremo le metriche di valutazione specifiche per i casi d'uso nell'area dell'elaborazione del linguaggio naturale. Le attività più comuni in PNL sono il riepilogo automatico, la risposta alle domande, la traduzione automatica. L'obiettivo di queste metriche è identificare la qualità del testo previsto dato il testo di input. Il testo previsto è indicato come Candidato e gli eventuali testi corretti o target sono chiamati Riferimenti.
Queste metriche si basano su alcune delle metriche di base come Recall, Precision e F1-Score. Se non sei a conoscenza di queste metriche, dai un'occhiata a questo articolo che le tratta: Recall, Precision, F1-Score . Anche il concetto di n-grammi è essenziale per il calcolo e la comprensione di queste metriche.
Le metriche riportate di seguito vengono generalmente utilizzate per la traduzione automatica o il riepilogo automatico, ma possono essere applicate a qualsiasi altra attività che prevede coppie di input e testo di destinazione. Insieme alla valutazione dei modelli, queste metriche possono essere utilizzate anche per l'ottimizzazione degli iperparametri dei modelli di Machine Learning. Nel primo post discuteremo la metrica BLEU che viene spesso utilizzata per valutare la traduzione automatica.
Understudy di valutazione bilingue (BLEU)
Il punteggio BLEU misura la qualità del testo previsto, denominato candidato, rispetto a una serie di riferimenti. Ci può essere più di un corretto/riferimento per un candidato nelle attività Sequence to Sequence. Pertanto, è importante che i riferimenti siano scelti con cura e che siano inclusi tutti i riferimenti possibili. Il punteggio BLEU è una misura basata sulla precisione e varia da 0 a 1. Più il valore è vicino a 1, migliore è la previsione. Non è possibile ottenere un valore pari a 1 e solitamente un valore superiore a 0,3 è considerato un buon punteggio.
Nella sezione successiva, vediamo il calcolo di BLEU su una singola frase prevista per illustrazione seguito dal calcolo per un corpus.
Precisione
Se ricordiamo (gioco di parole non voluto) la definizione di precisione del nostro post precedente, è True Positives/(True Positives + False Positives). In questo contesto, i Veri Positivi sono tutti gli n-grammi corrispondenti tra il candidato e il riferimento. I falsi positivi qui possono essere visti come gli n-grammi che compaiono nel candidato ma non sono presenti nel riferimento. Ciò significa che la precisione può essere ottenuta dividendo il numero di n-grammi corrispondenti per il numero totale di n-grammi nel candidato.
Reference: "Transformers make everything quick and efficient"
Candidate: "Transformers Transformers Transformers Transformers"
Precisione modificata (MP)
Per il calcolo della precisione modificata, il conteggio di un n-grammo viene ritagliato in base al numero massimo di volte in cui appare nei riferimenti. È indicato da Max_Ref_Count nella formula mostrata di seguito.
Nel nostro esempio nella sezione precedente, Transformers appare solo una volta nei riferimenti e 4 volte nel candidato. min (4, 1) viene considerato e la precisione modificata ora è 1/4 = 0,25. Questo valore è inferiore e quindi ci fornisce una stima migliore della qualità della previsione.
Per generalizzare, la formula per MP è riportata di seguito. Per tutti i candidati del corpus vengono conteggiati e sommati il numero di n-grammi abbinati alle referenze. Questo è diviso per la somma dei conteggi di tutti gli n-grammi nei riferimenti.
Penalità di brevità (BP)
A volte, per frasi più lunghe i candidati potrebbero essere molto piccoli e mancare di informazioni importanti relative al riferimento. Considera l'esempio seguente:
Reference: "Transformers make everything quick and efficient through
parallel computation of self-attention heads"
Candidate: "Transformers make everything quick and efficient"
Entra, Penalità di brevità (BP). Questo termine viene utilizzato per penalizzare le previsioni troppo corte rispetto ai riferimenti. Questo è 1 se la lunghezza candidata è maggiore della lunghezza di riferimento. Se la lunghezza candidata è minore del riferimento implica r/c > 1, (1 — (r/c)) è minore e c'è un decadimento esponenziale.
La media geometrica di tutte le precisioni modificate fino a N viene calcolata e moltiplicata per BP per ottenere il punteggio BLEU finale. Qui N è l'ordine di n-grammi da utilizzare per il calcolo. In generale, è 4 cioè, uni, bi, tri e tetragrammi sono tutti considerati per il calcolo. Sono pesati dai pesi indicati da w_1, w_2,... che sommati danno 1 in base a N. Per N = 4, sono w_1 = w_2 = w_3 = w_4 = 1/4.
Per la frase di esempio precedente, possiamo vedere che il BP è calcolato come exp(1 — (lunghezza_riferimento/lunghezza_traduzione)) = exp(1 — (6/12)) = 0,37. Questo valore moltiplicato per MP(1, poiché stiamo usando solo unigrammi) fornisce un punteggio BLEU molto più basso di 0,37 invece di 1, che tiene conto degli n-grammi mancanti.
In questo post, abbiamo utilizzato unigrammi per facilità di calcolo. Tuttavia spesso non sono sufficienti per valutare i candidati in quanto qui l'ordine delle parole viene ignorato. Ad esempio, il candidato "I trasformatori efficienti fanno previsioni rapide" cambia il significato della frase ma assegna un punteggio MP elevato (0,6) in quanto vi sono parole corrispondenti nel riferimento. Per evitare ciò, è meglio valutare i punteggi con 2-4 grammi.
Corpus BLEU
Per facilità di comprensione, fino ad ora abbiamo utilizzato un'unica coppia di testi, ma il punteggio BLEU viene solitamente calcolato per l'intero corpus con uno o più riferimenti per ciascun candidato.
Calcoliamo ora il punteggio BLEU per il corpus sottostante. Assumiamo che i candidati siano il risultato di un sistema di traduzione.
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}
Allo stesso modo, calcola la precisione modificata con bigrammi che è il secondo valore nell'array precisions nell'output.
I pesi qui sono w_1, w_2 sono 1/2 poiché l'ordine massimo è solo 2. La media geometrica dei valori di precisione viene quindi moltiplicata per il BP per ottenere il punteggio finale. Per calcolare BP, la lunghezza totale candidata è 14(c) e la lunghezza effettiva di riferimento è 17(r). La lunghezza di riferimento effettiva viene calcolata sommando gli n-grammi nelle referenze più vicine al candidato. Qui, per Riferimento: 1 prima frase è selezionata con 8 token, Riferimento-2 e 3 hanno 2 e 7 token nella seconda frase.
Calcolo finale 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
- Il punteggio BLEU è facile da calcolare ed è ampiamente utilizzato.
- È stato riscontrato che il punteggio BLEU ha un'alta correlazione con il giudizio umano sulla qualità della previsione.
- I sinonimi degli n-grammi non sono considerati fino a quando ea meno che non siano presenti come uno dei riferimenti. Questo perché il significato degli n-grammi non viene preso in considerazione. Ad esempio, "I trasformatori sono rapidi ed efficienti" e "I trasformatori hanno tempi di esecuzione rapidi" hanno un significato simile ma il punteggio BLEU-1 è solo 0,2.
- Il problema dell'ordine delle parole non può essere risolto utilizzando solo n-grammi di ordine superiore. Ad esempio, il candidato "I trasformatori sono veloci ed efficienti" con riferimento "I trasformatori sono veloci ed efficienti" dà un punteggio BLEU-2 elevato (0,87) ma la traduzione non può essere considerata corretta.
- Il punteggio BLEU varia notevolmente in base a fattori come il numero di riferimenti, le tecniche di normalizzazione e tokenizzazione ecc., per questo motivo è difficile utilizzarli per il confronto tra set di dati che utilizzano tecniche diverse.
Riferimenti
Sono uno studente di Master in Data Science @ TU Dortmund. Sentiti libero di connetterti con me su LinkedIn per qualsiasi feedback sui miei post o qualsiasi comunicazione professionale.