Metryki oceny w przetwarzaniu języka naturalnego — BLEU

Nov 27 2022
W tej serii postów omówimy metryki oceny, które są specyficzne dla przypadków użycia w obszarze przetwarzania języka naturalnego. Najczęstsze zadania w NLP to automatyczne podsumowywanie, odpowiadanie na pytania, tłumaczenie maszynowe.

W tej serii postów omówimy metryki oceny, które są specyficzne dla przypadków użycia w obszarze przetwarzania języka naturalnego. Najczęstsze zadania w NLP to automatyczne podsumowywanie, odpowiadanie na pytania, tłumaczenie maszynowe. Celem tych metryk jest określenie jakości przewidywanego tekstu na podstawie tekstu wejściowego. Przewidywany tekst jest określany jako Kandydat, a możliwe poprawne lub docelowe teksty nazywane są Odniesieniami.

Te wskaźniki są oparte na niektórych podstawowych wskaźnikach, takich jak Recall, Precision i F1-Score. Jeśli nie znasz tych wskaźników, zapoznaj się z tym artykułem, który je omawia: Recall, Precision, F1-Score . Pojęcie n-gramów jest również niezbędne do obliczenia i zrozumienia tych wskaźników.

Poniższe wskaźniki są zwykle używane do tłumaczenia maszynowego lub automatycznego podsumowania, ale można je zastosować do każdego innego zadania, które obejmuje pary tekstu wejściowego i docelowego. Wraz z oceną modeli te metryki mogą być również używane do dostrajania hiperparametrów modeli uczenia maszynowego. W pierwszym poście omówimy metrykę BLEU, która jest często używana do oceny tłumaczenia maszynowego.

Dwujęzyczny dubler oceny (BLEU)

Wynik BLEU mierzy jakość przewidywanego tekstu, zwanego kandydatem, w porównaniu z zestawem odniesień. Może istnieć więcej niż jedna poprawna/referencja dla jednego kandydata w zadaniach Sekwencja do Sekwencji. Dlatego ważne jest staranne dobieranie odniesień i uwzględnienie wszystkich możliwych odniesień. Wynik BLEU jest miarą opartą na precyzji i mieści się w zakresie od 0 do 1. Im wartość jest bliższa 1, tym lepsza prognoza. Nie jest możliwe osiągnięcie wartości 1 i zwykle za dobry wynik uważa się wartość wyższą niż 0,3.

W następnej sekcji widzimy obliczenie BLEU dla pojedynczego przewidywanego zdania dla ilustracji, po którym następuje obliczenie dla korpusu.

Precyzja

Jeśli przypomnimy sobie (gra słów niezamierzona) definicję precyzji z naszego poprzedniego postu, jest to Prawdziwie pozytywy/(Prawdziwie pozytywy + fałszywe pozytywy). W tym kontekście Prawdziwie Pozytywne to wszystkie pasujące n-gramy między kandydatem a referencją. Fałszywe pozytywy tutaj można postrzegać jako n-gramy, które pojawiają się u kandydata, ale nie są obecne w referencjach. Oznacza to, że precyzję można uzyskać, dzieląc liczbę pasujących n-gramów przez całkowitą liczbę n-gramów w kandydacie.

Reference: "Transformers make everything quick and efficient"
Candidate: "Transformers Transformers Transformers Transformers"

Zmodyfikowana precyzja (MP)

W celu obliczenia zmodyfikowanej precyzji liczba n-gramów jest obcinana na podstawie maksymalnej liczby wystąpień w odniesieniach. Jest oznaczony przez Max_Ref_Count we wzorze pokazanym poniżej.

Formuła obciętego liczenia z artykułu BLEU

W naszym przykładzie w poprzedniej sekcji Transformers pojawia się tylko raz w referencjach i 4 razy w kandydacie. min (4, 1) jest brane pod uwagę, a zmodyfikowana precyzja wynosi teraz 1/4 = 0,25. Ta wartość jest niższa, a zatem daje nam lepsze oszacowanie jakości predykcji.

Aby uogólnić, wzór na MP podano poniżej. Dla wszystkich kandydatów w korpusie liczba dopasowanych n-gramów z referencjami jest liczona i sumowana. Jest to podzielone przez sumę zliczeń wszystkich n-gramów w odnośnikach.

Wzór na zmodyfikowaną precyzję z papieru BLEU

Kara za zwięzłość (BP)

Czasami w przypadku dłuższych zdań kandydaci mogą być bardzo mali i brakuje im ważnych informacji w odniesieniu do referencji. Rozważ poniższy przykład:

Reference: "Transformers make everything quick and efficient through 
            parallel computation of self-attention heads"
Candidate: "Transformers make everything quick and efficient"

Enter, kara za zwięzłość (BP). Termin ten jest używany do karania prognoz, które są zbyt krótkie w porównaniu z referencjami. Jest to 1, jeśli długość kandydująca jest większa niż długość odniesienia. Jeśli kandydująca długość jest mniejsza niż sugeruje odniesienie r/c > 1, (1 — (r/c)) jest mniejsze i następuje wykładniczy spadek.

Średnia geometryczna wszystkich zmodyfikowanych precyzji aż do N jest obliczana i mnożona przez BP, aby uzyskać ostateczny wynik BLEU. Tutaj N jest kolejnością n-gramów, która ma być użyta do obliczeń. Ogólnie rzecz biorąc, jest to 4, tj. Uni, bi, tri i tetragramy są brane pod uwagę w obliczeniach. Są one ważone za pomocą wag oznaczonych przez w_1, w_2,… które sumują się do 1 w oparciu o N. Dla N = 4 są to w_1 = w_2 = w_3 = w_4 = 1/4.

Wzór na BP i BLEU z papieru BLEU

W powyższym przykładowym zdaniu widzimy, że BP jest obliczane jako exp(1 — (długość_referencji/długość_translacji)) = exp(1 — (6/12)) = 0,37. Ta wartość pomnożona przez MP(1, ponieważ używamy tylko unigramów) daje znacznie niższy wynik BLEU wynoszący 0,37 zamiast 1, co odpowiada za brakujące n-gramy.

W tym poście użyliśmy unigramów dla ułatwienia obliczeń. Jednak często nie wystarczają one do oceny kandydatów, ponieważ kolejność słów jest tutaj ignorowana. Na przykład kandydat „Wydajne transformatory dokonują szybkich prognoz” zmienia znaczenie zdania, ale daje wysoki wynik MP (0,6), ponieważ w odnośniku znajdują się pasujące słowa. Aby tego uniknąć, lepiej jest oceniać wyniki za pomocą 2–4 gramów.

Corpus BLEU

Aby ułatwić zrozumienie, do tej pory używaliśmy pojedynczej pary tekstów, ale wynik BLEU jest zwykle obliczany dla całego korpusu z jednym lub kilkoma odniesieniami dla każdego kandydata.

Obliczmy teraz wynik BLEU dla poniższego korpusu. Załóżmy, że kandydaci są wynikami systemu translacji.

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}

Podobnie oblicz zmodyfikowaną precyzję za pomocą bigramów, która jest drugą wartością w tablicy precyzji na wyjściu.

Wagi tutaj to w_1, w_2 to 1/2, ponieważ maksymalna kolejność to tylko 2. Średnia geometryczna wartości precyzji jest następnie mnożona przez BP, aby uzyskać końcowy wynik. Aby obliczyć BP, całkowita kandydująca długość wynosi 14(c), a efektywna długość odniesienia to 17(r). Efektywna długość referencyjna jest obliczana przez zsumowanie n-gramów w referencjach, które są bliżej kandydata. Tutaj, dla odniesienia — 1 pierwsze zdanie jest wybrane z 8 żetonami, Odniesienia-2 i 3 mają 2 i 7 żetonów w swoich drugich zdaniach.

Końcowe obliczenie 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

  1. Wynik BLEU jest łatwy do obliczenia i jest szeroko stosowany.
  2. Zaobserwowano, że wynik BLEU ma wysoką korelację z ludzką oceną jakości prognozy.
  1. Synonimy n-gramów nie są brane pod uwagę, dopóki nie są obecne jako jedno z odniesień. Dzieje się tak dlatego, że znaczenie n-gramów nie jest brane pod uwagę. Na przykład „Transformatory są szybkie i wydajne” oraz „Transformatory mają szybki czas realizacji” mają podobne znaczenie, ale wynik BLEU-1 wynosi tylko 0,2.
  2. Problemu kolejności słów nie można rozwiązać za pomocą samych n-gramów wyższego rzędu. Na przykład kandydat „transformatory są szybkie i wydajne” z odniesieniem „Transformatory są szybkie i wydajne” daje wysoki wynik BLEU-2 (0,87), ale tłumaczenia nie można uznać za prawidłowe.
  3. Wynik BLEU różni się znacznie w zależności od czynników, takich jak liczba odniesień, techniki normalizacji i tokenizacji itp. Z tego powodu trudno jest używać ich do porównywania zestawów danych wykorzystujących różne techniki.

Bibliografia

Jestem studentem Masters in Data Science @ TU Dortmund. Zapraszam do kontaktu ze mną na LinkedIn w celu uzyskania opinii na temat moich postów lub profesjonalnej komunikacji.