เมตริกการประเมินผลในการประมวลผลภาษาธรรมชาติ — BLEU

Nov 27 2022
ในบทความชุดนี้ เราจะหารือเกี่ยวกับเมตริกการประเมินที่เฉพาะเจาะจงกับกรณีการใช้งานในด้านการประมวลผลภาษาธรรมชาติ งานที่พบบ่อยที่สุดใน NLP คือการสรุปอัตโนมัติ การตอบคำถาม การแปลด้วยเครื่อง

ในบทความชุดนี้ เราจะหารือเกี่ยวกับเมตริกการประเมินที่เฉพาะเจาะจงกับกรณีการใช้งานในด้านการประมวลผลภาษาธรรมชาติ งานที่พบบ่อยที่สุดใน NLP คือการสรุปอัตโนมัติ การตอบคำถาม การแปลด้วยเครื่อง เป้าหมายของเมตริกเหล่านี้คือการระบุคุณภาพของข้อความที่คาดคะเนจากข้อความที่ป้อน ข้อความคาดการณ์จะเรียกว่า Candidate และข้อความที่ถูกต้องหรือเป้าหมายที่เป็นไปได้เรียกว่า References

เมตริกเหล่านี้อ้างอิงจากเมตริกพื้นฐานบางอย่าง เช่น การเรียกคืน ความแม่นยำ และคะแนน F1 หากคุณไม่ทราบเมตริกเหล่านี้ โปรดดูบทความนี้ซึ่งครอบคลุมเกี่ยวกับเมตริกเหล่านี้: Recall , Precision, F1-Score แนวคิดของn-gramsก็มีความสำคัญเช่นกันสำหรับการคำนวณและการทำความเข้าใจเมตริกเหล่านี้

เมตริกด้านล่างมักใช้สำหรับการแปลด้วยคอมพิวเตอร์หรือการสรุปอัตโนมัติ แต่สามารถนำไปใช้กับงานอื่นๆ ที่เกี่ยวข้องกับคู่อินพุตและข้อความเป้าหมาย นอกจากการประเมินโมเดลแล้ว เมตริกเหล่านี้ยังสามารถใช้สำหรับการปรับไฮเปอร์พารามิเตอร์ของโมเดลแมชชีนเลิร์นนิงได้อีกด้วย ในโพสต์แรก เราจะพูดถึงเมตริก BLEU ที่มักใช้ในการประเมินการแปลด้วยคอมพิวเตอร์

การประเมินการประเมินสองภาษา (BLEU)

คะแนน BLEU วัดคุณภาพของข้อความที่คาดคะเน ซึ่งเรียกว่าผู้สมัคร เปรียบเทียบกับชุดของการอ้างอิง สามารถมีมากกว่าหนึ่งรายการที่ถูกต้อง/อ้างอิงสำหรับผู้สมัครหนึ่งคนในงาน Sequence to Sequence ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องเลือกข้อมูลอ้างอิงอย่างระมัดระวังและรวมข้อมูลอ้างอิงที่เป็นไปได้ทั้งหมดไว้ด้วย คะแนน BLEU เป็นตัววัดที่มีความแม่นยำและมีค่าตั้งแต่ 0 ถึง 1 ยิ่งค่าเข้าใกล้ 1 มากเท่าไหร่ การทำนายก็จะยิ่งดีขึ้นเท่านั้น ไม่สามารถบรรลุค่า 1 และโดยปกติแล้วค่าที่สูงกว่า 0.3 จะถือว่าเป็นคะแนนที่ดี

ในส่วนถัดไป เราจะเห็นการคำนวณ BLEU ในประโยคที่คาดการณ์ไว้เพียงประโยคเดียวสำหรับภาพประกอบ ตามด้วยการคำนวณสำหรับคลังข้อมูล

ความแม่นยำ

หากเราจำได้ (ไม่ได้ตั้งใจเล่นสำนวน) คำจำกัดความของความแม่นยำจากโพสต์ก่อนหน้าของเรา มันคือ True Positives/(True Positives + False Positives) ในบริบทนี้ True Positives คือ n-grams ที่ตรงกันทั้งหมดระหว่างตัวเลือกและการอ้างอิง False Positives ที่นี่สามารถเห็นได้ว่าเป็น n-grams ที่ปรากฏในตัวเลือก แต่ไม่มีอยู่ในข้อมูลอ้างอิง ซึ่งหมายความว่าสามารถหาค่าความแม่นยำได้โดยการหารจำนวนของ n-grams ที่ตรงกันด้วยจำนวน n-grams ทั้งหมดในตัวเลือก

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

ความแม่นยำที่แก้ไข (MP)

สำหรับการคำนวณ Modified Precision การนับ n-gram จะถูกตัดตามจำนวนครั้งสูงสุดที่ปรากฏในข้อมูลอ้างอิง ซึ่งแสดงโดย Max_Ref_Count ในสูตรที่แสดงด้านล่าง

สูตรสำหรับการนับที่ตัดจากกระดาษ BLEU

ในตัวอย่างของเราในส่วนที่แล้ว Transformers ปรากฏเพียงครั้งเดียวในเอกสารอ้างอิงและ 4 ครั้งในตัวเลือก นาที (4, 1) ได้รับการพิจารณาและความแม่นยำที่แก้ไขแล้วตอนนี้คือ 1/4 = 0.25 ค่านี้จะต่ำกว่า จึงทำให้เราประเมินคุณภาพของการคาดคะเนได้ดีขึ้น

สรุป สูตรสำหรับ MP แสดงไว้ด้านล่าง สำหรับผู้สมัครทั้งหมดในคลังข้อมูล จำนวนของ n-grams ที่ตรงกับการอ้างอิงจะถูกนับและสรุปผล ซึ่งหารด้วยผลรวมของจำนวน n-กรัมทั้งหมดในข้อมูลอ้างอิง

สูตรสำหรับ Modified Precision จากกระดาษ BLEU

บทลงโทษสั้น ๆ (BP)

บางครั้ง สำหรับประโยคที่ยาวขึ้น ผู้สมัครอาจมีข้อมูลน้อยมากและขาดข้อมูลสำคัญที่เกี่ยวข้องกับการอ้างอิง พิจารณาตัวอย่างด้านล่าง:

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

เข้าสู่ โทษสั้น (BP) คำนี้ใช้เพื่อลงโทษคำทำนายที่สั้นเกินไปเมื่อเทียบกับการอ้างอิง ค่านี้เป็น 1 หากความยาวของตัวเลือกมากกว่าความยาวอ้างอิง หากความยาวของตัวเลือกน้อยกว่าการอ้างอิงแสดงว่า r/c > 1, (1 — (r/c)) จะต่ำกว่าและมีการสลายตัวแบบเอกซ์โปเนนเชียล

ค่าเฉลี่ยเรขาคณิตของความแม่นยำที่แก้ไขทั้งหมดจนถึง N ถูกคำนวณและคูณด้วย BP เพื่อให้ได้คะแนน BLEU สุดท้าย โดยที่ N คือลำดับ n-gram ที่จะใช้ในการคำนวณ โดยทั่วไปจะเป็น 4 คือ uni, bi, tri และ tetra กรัม ล้วนนำมาคำนวณ พวกมันถูกถ่วงน้ำหนักด้วยน้ำหนักที่แสดงด้วย w_1, w_2,… ซึ่งรวมกันได้ 1 ตาม N สำหรับ N = 4 พวกมันคือ w_1 = w_2 = w_3 = w_4 = 1/4

สูตรสำหรับ BP และ BLEU จากกระดาษ BLEU

สำหรับประโยคตัวอย่างข้างต้น เราจะเห็นว่า BP คำนวณเป็น exp(1 — (reference_length/translation_length)) = exp(1 — (6/12)) = 0.37 ค่านี้คูณด้วย MP(1 เนื่องจากเราใช้เพียงหน่วยเดียว) ให้คะแนน BLEU ที่ต่ำกว่ามากที่ 0.37 แทนที่จะเป็น 1 ซึ่งคิดเป็น n-grams ที่ขาดหายไป

ในโพสต์นี้ เราใช้หน่วยยูนิแกรมเพื่อความสะดวกในการคำนวณ อย่างไรก็ตาม พวกเขามักจะไม่เพียงพอที่จะประเมินผู้สมัครเนื่องจากลำดับคำถูกละเว้นที่นี่ ตัวอย่างเช่น ผู้สมัคร “Efficient Transformers make quick Predictions” เปลี่ยนความหมายของประโยค แต่ให้คะแนน MP สูง (0.6) เนื่องจากมีคำที่ตรงกันในการอ้างอิง เพื่อหลีกเลี่ยงปัญหานี้ ควรประเมินคะแนนด้วย 2-4 กรัม

คอร์ปัส BLEU

เพื่อความง่ายในการทำความเข้าใจ เราได้ใช้คู่ข้อความเดียวจนถึงขณะนี้ แต่โดยปกติแล้วคะแนน BLEU จะคำนวณสำหรับคลังข้อมูลทั้งหมดโดยมีการอ้างอิงอย่างน้อยหนึ่งรายการสำหรับผู้สมัครแต่ละคน

ให้เราคำนวณคะแนน BLEU สำหรับคลังข้อมูลด้านล่าง สมมติว่าผู้สมัครเป็นผลลัพธ์ของระบบการแปล

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}

ในทำนองเดียวกัน ให้คำนวณความแม่นยำที่แก้ไขด้วยบิ๊กแกรมซึ่งเป็นค่าที่สองในอาร์เรย์ความแม่นยำในเอาต์พุต

น้ำหนักในที่นี้คือ w_1, w_2 คือ 1/2 เนื่องจากลำดับสูงสุดคือ 2 เท่านั้น ค่าเฉลี่ยเรขาคณิตของค่าความแม่นยำจะถูกคูณด้วย BP เพื่อให้ได้คะแนนสุดท้าย ในการคำนวณ BP ความยาวรวมของตัวเลือกคือ 14(c) และความยาวอ้างอิงที่มีผลคือ 17(r) ความยาวอ้างอิงที่มีประสิทธิภาพคำนวณโดยการรวม n-grams ในการอ้างอิงที่ใกล้กับตัวเลือก ที่นี่ สำหรับการอ้างอิง — 1 ประโยคแรกถูกเลือกด้วย 8 โทเค็น การอ้างอิง-2 และ 3 มี 2 และ 7 โทเค็นในประโยคที่สอง

การคำนวณ 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. คะแนน BLEU นั้นง่ายต่อการคำนวณและใช้กันอย่างแพร่หลาย
  2. คะแนน BLEU มีความสัมพันธ์สูงกับการตัดสินของมนุษย์เกี่ยวกับคุณภาพการทำนาย
  1. คำพ้องความหมายของ n-grams จะไม่ได้รับการพิจารณาจนกว่าและเว้นแต่ว่าจะมีอยู่ในการอ้างอิงอย่างใดอย่างหนึ่ง เนื่องจากไม่ได้คำนึงถึงความหมายของ n-grams ตัวอย่างเช่น “Transformers are quick and efficiency” และ “Transformers has fast operation time” มีความหมายคล้ายกัน แต่คะแนน BLEU-1 มีค่าเพียง 0.2
  2. ปัญหาของการเรียงลำดับคำไม่สามารถแก้ไขได้โดยใช้ n-grams ที่มีลำดับสูงกว่าเพียงอย่างเดียว ตัวอย่างเช่น ผู้สมัคร "Transformers รวดเร็วและมีประสิทธิภาพ" โดยมีการอ้างอิงว่า "Transformers are quick and efformers" ให้คะแนน BLEU-2 สูง (0.87) แต่การแปลนั้นไม่ถือว่าถูกต้อง
  3. คะแนน BLEU แตกต่างกันอย่างมากตามปัจจัยต่างๆ เช่น จำนวนการอ้างอิง การทำให้เป็นมาตรฐานและเทคนิคการทำโทเค็น เป็นต้น ด้วยเหตุนี้ จึงเป็นเรื่องยากที่จะใช้คะแนนเหล่านี้เพื่อเปรียบเทียบระหว่างชุดข้อมูลที่ใช้เทคนิคต่างๆ

อ้างอิง

ฉันเป็นนักศึกษาปริญญาโทสาขา Data Science @ TU Dortmund อย่าลังเลที่จะติดต่อกับฉันบนLinkedInสำหรับข้อเสนอแนะใด ๆ เกี่ยวกับโพสต์ของฉันหรือการสื่อสารระดับมืออาชีพ