ROUGE Hasil NLP Anda!

Nov 27 2022
Metrik selanjutnya yang sedang dibahas dalam rangkaian postingan tentang metrik yang digunakan dalam Natural Language Processing ini adalah Recall-Oriented Understudy for Gisting Evaluation(ROUGE). ROUGE adalah metrik evaluasi yang digunakan untuk menilai kualitas tugas NLP seperti peringkasan teks dan terjemahan mesin.

Metrik selanjutnya yang sedang dibahas dalam rangkaian postingan tentang metrik yang digunakan dalam Natural Language Processing ini adalah Recall-Oriented Understudy for Gisting Evaluation(ROUGE).

ROUGE adalah metrik evaluasi yang digunakan untuk menilai kualitas tugas NLP seperti peringkasan teks dan terjemahan mesin. Tidak seperti BLEU , ROUGE menggunakan daya ingat dan presisi untuk membandingkan ringkasan yang dihasilkan model yang dikenal sebagai kandidat dengan sekumpulan ringkasan yang dihasilkan manusia yang dikenal sebagai referensi. Ini mengukur berapa banyak n-gram dalam referensi yang ada di kandidat yang diprediksi.

Pertama, mari kita hitung ingatan = True Positives/(True Positives + False Negatives). Di sini, True Positives adalah n-gram yang cocok antara Referensi dan Kandidat. Negatif Palsu dapat dianggap sebagai n-gram yang ada di kalimat sebenarnya (referensi) tetapi tidak di kandidat. Positif Palsu adalah n-gram yang ada di Kandidat tetapi tidak ada di Referensi. Lihat entri blog ini Ingat, Presisi, Skor-F1 jika Anda memerlukan penyegaran pada konsep-konsep seperti True Positives, False Positives, Recall and Precision, dll.,

Oleh karena itu, perolehan dan presisi dapat diperoleh seperti yang ditunjukkan di bawah ini:

Recall dan Precision kadang-kadang bisa saling melengkapi dan karenanya perlu menggabungkan keduanya untuk mencapai keseimbangan. Untuk alasan ini, ROUGE dihitung sebagai skor F1 dengan Python. Nilainya berkisar antara 0 sampai 1 dan semakin dekat nilainya dengan 1 maka semakin baik kualitas prediksinya.

ROUGE-N

Mari kita gunakan modul evaluasi dari paket "evaluasi" Huggingface dan verifikasi perhitungan langkah demi langkah. Asumsikan korpus berikut dengan 2 referensi untuk setiap kandidat telah diperoleh dari hasil model peringkasan.

!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

Di sini, L adalah singkatan dari Longest Common Subsequence (LCS). LCS didefinisikan sebagai urutan terpanjang yang terjadi pada referensi dan kandidat. Selanjutnya di sini tidak perlu terus menerus. Alih-alih menghitung jumlah n-gram yang cocok, kami mengukur panjang LCS di sini. Keuntungan dengan pendekatan ini adalah urutan kata dalam kalimat dipertimbangkan daripada hanya mencari n-gram yang cocok yang mungkin muncul dalam urutan apa pun. Selain itu, kita juga tidak perlu memberikan urutan(n) n-gram yang akan digunakan untuk perhitungan.

Formula ROUGE-L dari kertas ROUGE

Dalam rumus di atas, X dan Y adalah referensi dan kandidat dengan panjang masing-masing m dan n. Beta digunakan untuk mengontrol mana yang lebih penting — ingatan atau presisi. Saat nilainya 1, F_lcs hanyalah rata-rata harmonik dari Recall(R_lcs) dan Precision(P_lcs). Kadang-kadang, kita mungkin ingin memprioritaskan mengingat yaitu, lebih penting bagi sebagian besar n-gram dalam referensi untuk hadir dalam kandidat. Ini dapat dicapai dengan meningkatkan beta ke nilai > 1.

Sekarang, Mari kita lihat formula ini beraksi. LCS untuk setiap rangkaian referensi kandidat ditunjukkan di bawah ini:

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

Sama seperti di ROUGE-N kami mempertimbangkan referensi dengan panjang maksimum antara dua referensi untuk setiap kandidat. Oleh karena itu, kami menghitung F1-Score untuk pasangan C1-R1 dengan panjang LCS 4. Skor untuk Kandidat 2 dan 3 sama dengan ROUGE-1. Ini karena panjang LCS antara referensi sama dengan jumlah unigram yang cocok untuk 2 dan 3. Seluruh perhitungan kemudian diringkas sebagai:

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

Keuntungan

  1. Mudah dihitung dan dipahami dan biasanya digunakan untuk mengevaluasi sistem peringkasan teks.
  2. ROUGE dan variannya telah bekerja dengan baik untuk meringkas dokumen tunggal dan teks pendek.
  1. ROUGE memiliki masalah yang sama dengan BLEU terkait sinonimnya. Arti n-gram tidak dianggap dan karenanya "cepat" dan "cepat" tidak akan dianggap serupa.
  2. Skor sangat tergantung pada pilihan kata dan struktur referensi yang dipilih untuk evaluasi.

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.