Metrik Evaluasi dalam Pemrosesan Bahasa Alami — BLEU

Nov 27 2022
Dalam rangkaian posting ini, kita akan membahas metrik evaluasi yang khusus untuk kasus penggunaan di bidang Pemrosesan Bahasa Alami. Tugas paling umum di NLP adalah peringkasan otomatis, menjawab pertanyaan, terjemahan mesin.

Dalam rangkaian posting ini, kita akan membahas metrik evaluasi yang khusus untuk kasus penggunaan di bidang Pemrosesan Bahasa Alami. Tugas paling umum di NLP adalah peringkasan otomatis, menjawab pertanyaan, terjemahan mesin. Tujuan dari metrik ini adalah untuk mengidentifikasi kualitas teks prediksi yang diberikan teks masukan. Teks yang diprediksi disebut sebagai Kandidat dan kemungkinan teks yang benar atau target disebut Referensi.

Metrik ini didasarkan pada beberapa metrik dasar seperti Recall, Precision, dan F1-Score. Jika Anda tidak mengetahui metrik ini, lihat artikel ini yang membahasnya: Recall, Precision, F1-Score . Konsep n-gram juga penting untuk perhitungan dan pemahaman metrik ini.

Metrik di bawah ini biasanya digunakan untuk Terjemahan Mesin atau Peringkasan Otomatis, tetapi dapat diterapkan ke tugas lain yang melibatkan pasangan input dan teks target. Seiring dengan evaluasi model, metrik ini juga dapat digunakan untuk penyetelan hyperparameter model Machine Learning. Pada postingan pertama, kita akan membahas metrik BLEU yang sering digunakan untuk mengevaluasi Machine Translation.

Mahasiswa Evaluasi Bilingual (BLEU)

Skor BLEU mengukur kualitas teks yang diprediksi, disebut sebagai kandidat, dibandingkan dengan sekumpulan referensi. Mungkin ada lebih dari satu koreksi/referensi untuk satu kandidat dalam tugas Urutan ke Urutan. Oleh karena itu, penting bahwa referensi dipilih dengan hati-hati dan semua referensi yang mungkin disertakan. Skor BLEU adalah ukuran berbasis presisi dan berkisar dari 0 hingga 1. Semakin dekat nilainya dengan 1, semakin baik prediksi. Tidak mungkin mencapai nilai 1 dan biasanya nilai yang lebih tinggi dari 0,3 dianggap sebagai nilai yang baik.

Pada bagian selanjutnya, kita melihat perhitungan BLEU pada satu prediksi kalimat untuk ilustrasi diikuti dengan perhitungan korpus.

Presisi

Jika kita ingat (pun not intended) definisi presisi dari posting kami sebelumnya, itu adalah True Positives/(True Positives + False Positives). Dalam konteks ini, True Positives adalah semua n-gram yang cocok antara kandidat dan referensi. Positif Palsu di sini dapat dilihat sebagai n-gram yang muncul di kandidat tetapi tidak ada di referensi. Ini berarti presisi dapat diperoleh dengan membagi jumlah n-gram yang cocok dengan jumlah total n-gram pada kandidat.

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

Presisi Modifikasi (MP)

Untuk menghitung Presisi Modifikasi, hitungan n-gram dipotong berdasarkan jumlah maksimum kemunculannya dalam referensi. Itu dilambangkan dengan Max_Ref_Count dalam rumus yang ditunjukkan di bawah ini.

Rumus Hitung Terpotong dari kertas BLEU

Dalam contoh kita di bagian sebelumnya, Transformers muncul hanya sekali di referensi dan 4 kali di kandidat. min (4, 1) dipertimbangkan dan presisi yang dimodifikasi sekarang adalah 1/4 = 0,25. Nilai ini lebih rendah dan karenanya memberi kami perkiraan kualitas prediksi yang lebih baik.

Untuk menggeneralisasi, rumus MP diberikan di bawah ini. Untuk semua kandidat dalam korpus, jumlah n-gram yang cocok dengan referensi dihitung dan dijumlahkan. Ini dibagi dengan jumlah hitungan semua n-gram dalam referensi.

Formula untuk Modifikasi Presisi dari kertas BLEU

Penalti Singkat (BP)

Kadang-kadang, untuk kalimat yang lebih panjang, kandidat mungkin berukuran sangat kecil dan kehilangan informasi penting terkait referensi. Perhatikan contoh di bawah ini:

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

Masukkan, Penalti Singkat (BP). Istilah ini digunakan untuk menghukum prediksi yang terlalu pendek jika dibandingkan dengan referensi. Ini adalah 1 jika panjang kandidat lebih besar dari panjang referensi. Jika panjang kandidat kurang dari acuan berarti r/c > 1, (1 — (r/c)) lebih rendah dan terjadi peluruhan eksponensial.

Rata-rata geometris dari semua presisi yang dimodifikasi hingga N dihitung dan dikalikan dengan BP untuk mendapatkan skor akhir BLEU. Di sini N adalah urutan n-gram yang akan digunakan untuk perhitungan. Secara umum, itu adalah 4 yaitu, uni, bi, tri dan tetra gram semuanya dipertimbangkan untuk perhitungan. Mereka ditimbang dengan bobot yang dilambangkan dengan w_1, w_2,… yang menambahkan hingga 1 berdasarkan N. Untuk N = 4, mereka adalah w_1 = w_2 = w_3 = w_4 = 1/4.

Formula untuk BP dan BLEU dari kertas BLEU

Untuk contoh kalimat di atas, kita dapat melihat bahwa BP dihitung sebagai exp(1 — (reference_length/translation_length)) = exp(1 — (6/12)) = 0.37. Nilai ini dikalikan dengan MP(1, karena kita hanya menggunakan unigram) memberikan skor BLEU yang jauh lebih rendah yaitu 0,37 daripada 1, yang menyebabkan hilangnya n-gram.

Dalam posting ini, kami telah menggunakan unigram untuk kemudahan perhitungan. Namun seringkali tidak cukup untuk mengevaluasi kandidat karena urutan kata diabaikan di sini. Misalnya, kandidat “Transformer Efisien membuat prediksi cepat” mengubah arti kalimat tetapi memberikan skor MP tinggi (0,6) karena ada kata yang cocok dalam referensi. Untuk menghindarinya, lebih baik menilai skor dengan 2–4 gram.

Korpus BLEU

Untuk memudahkan pemahaman, kami telah menggunakan pasangan teks tunggal sampai sekarang tetapi skor BLEU biasanya dihitung untuk seluruh korpus dengan satu atau lebih referensi untuk setiap kandidat.

Mari kita hitung skor BLEU untuk korpus di bawah ini. Asumsikan bahwa kandidat adalah hasil dari sistem terjemahan.

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}

Demikian pula, hitung presisi yang dimodifikasi dengan bigram yang merupakan nilai kedua dalam larik presisi di output.

Bobot di sini adalah w_1, w_2 adalah 1/2 karena orde maksimalnya hanya 2. Rata-rata geometris dari nilai presisi kemudian dikalikan dengan BP untuk mendapatkan skor akhir. Untuk menghitung BP, total panjang kandidat adalah 14(c) dan panjang acuan efektif adalah 17(r). Panjang referensi efektif dihitung dengan menjumlahkan n-gram dalam referensi yang lebih dekat dengan kandidat. Di sini, untuk Referensi — 1 kalimat pertama dipilih dengan 8 token, Referensi-2 dan 3 memiliki 2 dan 7 token dalam kalimat keduanya.

Perhitungan BLEU akhir,

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. Skor BLEU mudah dihitung dan digunakan secara luas.
  2. Skor BLEU terlihat memiliki korelasi yang tinggi dengan penilaian manusia terhadap kualitas prediksi.
  1. Sinonim dari n-gram tidak dianggap sampai dan kecuali mereka hadir sebagai salah satu referensi. Ini karena makna n-gram tidak diperhitungkan. Misalnya, “Transformer cepat dan efisien” dan “Transformer memiliki waktu eksekusi yang cepat” memiliki arti yang sama tetapi skor BLEU-1 hanya 0,2.
  2. Masalah urutan kata tidak dapat diselesaikan hanya dengan n-gram tingkat tinggi. Misalnya, kandidat “Transformer cepat dan efisien” dengan referensi “Transformer cepat dan efisien” memberikan skor BLEU-2 yang tinggi (0,87) tetapi terjemahannya tidak dapat dianggap benar.
  3. Skor BLEU sangat bervariasi berdasarkan faktor-faktor seperti jumlah referensi, teknik normalisasi dan tokenisasi, dll. Karena alasan ini, sulit untuk menggunakannya untuk perbandingan antar kumpulan data yang menggunakan teknik berbeda.

Referensi

Saya seorang mahasiswa Magister Ilmu Data @ TU Dortmund. Jangan ragu untuk terhubung dengan saya di LinkedIn untuk umpan balik pada posting saya atau komunikasi profesional apa pun.