Machine Translation for Thai: จุดเริ่มต้นเล็กๆ ของการพัฒนาและวิจัยระบบแปลภาษาอังกฤษ-ไทย

Lalita Lowphansirikul
AIResearch.in.th
Published in
6 min readSep 1, 2020

ภาษานั้นถือว่าเป็นรากฐานสำคัญของอารยธรรมมนุษย์ เพราะว่าภาษาถือว่าเป็นสื่อกลางในการส่งต่อข้อมูล ในกลุ่ม หากขาดภาษาไปก็จะอยากต่อการถ่ายทอดองค์ความรู้ต่างๆจากรุ่นสู่รุ่น จากนั้นเมื่อแต่ละอารยธรรมมนุษย์เริ่มขยายตัวก็มีการติดต่อการกลุ่มคนในชาติต่างๆที่ใช้ภาษาต่างกัน เพื่อการค้าขายหรือเจรจาทางการฑูต การสื่อสารกันระหว่างคนที่ใช้ภาษาต่างกันต้องอาศัยการแปลภาษา การที่จะถ่ายทอดเรื่องราวใดๆ กับผู้ที่ไม่ได้ใช้ภาษาเดียวกัน โดยปกติก็จะอาศัยการแปลผู้ที่มีความสามารถในการสื่อสารในคู่ภาษานั้นๆ เช่นการแปลข่าว หรือหนังสือ ซึ่งก็ต้องอาศัยระยะเวลาและค่าใช้จ่ายที่มาก สำหรับการแปลเอกสารที่มีจำนวนมาก

การแปลภาษาโดยอัตโนมัติ (Machine Translation) ถือว่าเป็นโจทย์ด้าน Natural Language Processiog (NLP) ที่ท้าทาย สำหรับโจทย์ Machine Translation ได้มีการพัฒนาและวิจัยตั้งแต่ทศวรรษที่ 1950

สำหรับการนำระบบ Machine Translation มาใช้งานนั้น เช่น การแปลภาษา สำหรับระบบแชทในแอปพลิเคชัน Grab ที่ช่วยให้ไรเดอร์ สื่อสารกับผู้ใช้บริการที่ไม่ได้พูดภาษาเดียวกันใช้ หรือระบบการแปลอัตโนมัติจาก Post หรือ Comment จากผู้ใช้ใน Facebook ที่เป็นช่องทางหนึ่งที่จะช่วยทำให้กำแพงทางด้านภาษาระหว่างผู้ใช้ทั่วโลกลดลงได้

รูป 1: การแปลโดยอัตโนมัติจาก chat ของผู้ใข้ในแอปพลิเคชัน Grab จาก https://grabdriverth.com/newfeatures/2018/2/27/grabchat-
รูป 2: การแปลโดยอัตโนมัติจาก comment ของผู้ใข้ใน Facebook; ภาพจาก https://engineering.fb.com/ml-applications/expanding-automatic-machine-translation-to-more-languages/

หรือ TranslateFX.com ซึ่งเป็น Platform สำหรับการในการแปลเอกสารทางกฎหมาย หรือเอกสารทางด้านการเงิน ซึ่งจะมีรูปแบบภาษาที่ทางการและรัดกุม โดยเป็นการทำงานร่วมกัน Machine Translation System ที่แปลเอกสารโดยเบื้องต้น และนักแปลที่ทำการตรวจทานและแก้ไขคำแปลบางส่วน ซึ่งจะช่วยให้นักแปลมืออาชีพทำงานแปลเอกสารได้เร็วขึ้น

ในปัจจุบันได้ระบบการแปลภาษาสำหรับภาษาไทย ได้มีการพัฒนาและนำให้คนทั่วไปได้ใช้งาน จากบริษัทขนาดใหญ่ เช่น Google, Microsoft หรือ Facebook แต่ถึงอย่างนั้นข้อมูลที่ใช้ในการฝึกฝนโมเดล เป็นข้อมูลปิด

จึงเป็นเรื่องยากที่เราจะปรับแต่งระบบแปลภาษา ให้เหมาะกับประเภทของโจทย์การแปลภาษา เช่น การแปลจากข้อความบทสนทนา การแปลจากเนื้อหาจากข่าว ซึ่งในแต่ละบริบทจะมีรูปแบบการใช้คำที่แตกต่างกัน หรือการแก้ไขข้อผิดพลากจากระบบแปลภาษา โดยที่ชุดข้อมูลเหล่านั้นไม่ได้ถูกส่งไปให้แก่ third-party

ทางทีมวิจัยจาก VISTEC-depa AI Research Institute of Thailand ด้วยความสนับสนุนจาก SCB และ depa จึงได้พัฒนาชุดข้อมูลคู่ประโยคภาษาอังกฤษ-ไทย เป็นจำนวนกว่า 1 ล้านคู่ประโยคและโมเดลแปลภาษาที่ได้เทรนจากชุดข้อมูลนี้ โดยชุดข้อมูลและโมเดลได้เผยแพร่สู่สารธารณะ สำหรับการวิจัยและพัฒนาระบบแปลภาษา

Machine Translation System

Machine Translation System เป็นระบบอัตโนมัติที่รับข้อความจากภาษาหนึ่ง เรียกว่า ภาษาต้นทาง (source language) แล้วทำการแปลข้อความนั้นไปยังอีกภาษาหนึ่ง เรียกว่า ภาษาปลายทาง (target language) ซึ่งข้อความที่ถูกแปลนั้นจะมีควาหมายเดียวกันกับข้อความที่ได้รับ เช่น จากข้อความในภาษาต้นทางภาษไทยว่า”ขอสั่งเป็น ลาเต้เย็นแก้วเล็ก 1 แก้วค่ะ” แปลไปเป็นภาษาปลายทางภาษาอังกฤษได้ว่า “I’d like to order a tall iced latte.”

ในปัจจุบันด้วยความก้าวหน้า Deep Learning ทำให้ Neural Networks และเทคนิค Supervised Learning ได้รับความนิยม เพราะอาศัยเพียงการเรียนรู้จากข้อมูลนำเข้า (Input features) และการกำกับข้อมูลเท่านั้น (Label) จึงมีการนำ Neural netword มาใช้สำหรับโจทย์การแปลภาษา ซึ่งโมเดลแปลภาษาประเภทนี้ว่า Neural Machine Translation (NMT) โดยความสามารถในการแปลภาษาของโมเดลในรูปแบบนี้ โมเดลจะเรียนรู้มาจากตัวอย่างคู่ประโยคที่ถูกแปลแล้ว ยิ่งประโยคมีความหลากหลายและมีจำนวนตัวอย่างที่มาก ก็จะทำให้โมเดลมีความสามารถในการแปลภาษาได้ใกล้เคียงกับ native speaker มากขึ้น

รูป 1: Encoder-Decoder framework ซึ่งถูกนำมาใช้สำหรับโมเดล Neural Machine Translation

โดยหลักการทำงานของ Neural Machine Translation จะเรียกอีกอย่างว่า Sequence-to-Sequence modelling กล่าวคือ โมเดลจะแบ่งออกเป็นสองส่วนคือ Encoder และ Decoder โดย Encoder จะทำหน้าที่ รับข้อมูลนำเข้าเป็น ประโยคนำเข้า (input sequence) ซึ่งจะประกอบไปด้วย คำ (token) เพื่อสร้าง representation ของประโยคนำเข้า ซึ่งอาจจะอยู่ในรูปของ fixed-dimensional vector แล้วจึงนำ representation ส่งไปยัง decoder เพื่อทำการ generate ประโยคใหม่ ซึ่งในบริบทของ Machine Translation จะเป็นการแปลประโยค โดยกำหนดให้ representation เป็นข้อมูลอ้างอิงว่า ควรจะ generate ประโยคใหม่ ในภาษาปลายทางอย่างไร ให้มีความใกล้เคียงกับ ชุดข้อมูลคู่ประโยค ที่ได้เตรียมไว้สำหรับการเทรนโมเดล

Transformer

Transformer [1] เป็นโมเดลประเภท Sequence-to-seqeunce ที่ออกแบบสำหรับการสร้างโมเดลแปลภาษา ซึ่ง Transformer Big ด้วยจำนวนพารามิเตอร์รวมกว่า 210 ล้านพารามิเตอร์ นั้นถือว่ามี BLEU Score สูงที่สุด ในปัจจุบัน (ปี 2020) อ้างอิงจาก benchmark MT Dataset WMT2014 ในคู่ภาษา อังกฤษ→เยอรมัน

รูป 2 การวัดผลโมเดลแปลภาษาด้วย BLEU score ใน architecture ต่างๆ บน benchmark MT dataset จากงานประชุมวิชาการ WMT ในคู่ภาษา อังกฤษ→เยอรมัน (WMT2014 en-de) ในช่วงระหว่างปี 2016–2020 (ภาพจาก paperwithcode.com)

สำหรับรายละเอียดในหลักการทำงานของโมเดลประเภท Sequence-to-seqnece สำรหรับการแปลภาษาสามารถอ่านเพิ่มเติมได้บทความเรื่อง “Neural Machine Translation และ Attention Mechanism: เล่าคร่าวๆด้วยรูปภาพ” จาก AIResearch

การเตรียมชุดข้อมูล

ทีมวิจัยได้ใช้ dataset ที่สร้างขึ้นสำหรับ Machine Translation โดยเฉพาะ และ dataset นี้ได้เผยแพร่สู่สาธารณะ โดยข้อมูลชุดนี้ อาศัยข้อมูลการแปลจากหลายแหล่ง ทั้งการแปลโดยอาศัย crowdsoucing platform, การจ้างนักแปลโดยเฉพาะ และ การรวบรวมข้อมูลจากหน้าเว็บไซต์และเอกสารต่างๆที่มีข้อมูลทั้งภาษาไทยและภาษาอังกฤษ เช่น เว็บไซต์ข่าว เว็บไซต์สำหรับองค์กรหรือสถาบันการศึกษา เว็บไซต์แนะนำการท่องเที่ยว หรือ บทความจากวิกิพีเดีย จากนั้นจึงใช้เทคนิคด้านการประมวลผลภาษาธรรมาติ (Natural Language Processing) เพื่อทำการจับคู่ประโยคในภาษาไทยและอังกฤษ โดยจำนวนคู่ประโยคทั้งหมดมีจำนวนทั้งสิ้น 1,001,752 คู่ประโยค

ตาราง 1: จำนวนคู่ประโยคในภาษาอังกฤษ-ไทย แบ่งตาม แหล่งที่มาของข้อมูลและวิธีการจับคู่ประโยค รวมจำนวนคู่ประโยคทั้งหมดคือ 1,001,752 คู่ประโยค

การเตรียมข้อมูลเบื้องต้น (pre-processing) ก่อนนำไป เทรนโมเดลแปลภาษานั้น คือ การตัดแบ่งคำ (tokenization) ในการทดลองของทีมวิจัยนั้น ได้ใช้วิธีการ tokenization ในรูปแบบคือ ระดับคำ (word) และ ระดับหน่วยย่อยของคำ (subword) [2]

ตัวอย่างเช่นจากประโยค

“การจัดตั้งโรงงานต้นแบบไบโอรีไฟเนอรีในเขต EECi”

subword tokenizer อาจจะตัดแบ่งคำได้เป็น

“การจัดตั้ง|โรงงาน|ต้นแบบ|ไบ|โอ|รี|ไฟ|เนอ|รี|ในเขต|E|EC|i”

โดยการตัดแบ่งคำจะอิงจากค่าสถิติของตัวอักษรที่อยู่คู่กันในชุดข้อมูล โดยไม่ได้อิงขอบเขตของคำจากคำนิยามทางภาษาศาสตร์

สำหรับวิธีการ tokenization ในระดับคำ ทีมวิจัยได้ใช้ การตัดคำจาก PyThaiNLP สำหรับการตัดแบ่งคำสำหรับประโยคภาษาไทย ซึ่ง PyThaiNLP เป็น open-sourced library ในภาษา Python สำหรับงานการประมวลผลภาษาธรรมชาติ ในภาษาไทยโดยเฉพาะ สำหรับการตัดแบ่งคำของภาษาอังกฤษนั้น ได้ใข้เป็น Moses Tokenizer ซึ่งเป็น Toolkit สำหรับงาน preprocessing สำหรับ Machine Translation โดยเฉพาะ และสำหรับวิธีการ tokenization ในระดับหน่วยย่อยของคำ หรือ subword นั้นทางทีมวิจัยได้ใช้ SentencePiece ซึ่งเป็น libray ที่พัฒนาโดย Taku Kudo [3] สำหรับการสร้างโมเดลตัดแบ่งคำระดับ subword

การเทรนโมเดล Transformer

ทางทีมวิจัยจึงได้เลือกใช้ Transformer ในการทดลองเทรนโมเดล baseline สำหรับการแปลจาก ไทย→อังกฤษ และ อังกฤษ→ไทย การเทรนโมเดลนั้น เราได้ใช้ NVIDIA DGX-1 ซึ่งเป็น Cluster ของ GPU NVIDIA V100 ที่มีการ optimize ในระดับ hardware และ software ให้เหมาะหรับการเทรนโมเดล Neural Netowrk ทำให้การทีมวิจัยเทรนโมเดลที่มีความซับซ้อนและชุดข้อมูลที่มีปริมาณมาก ใช้ระยะเวลาที่น้อยลงมาก และได้ใช้ Fairseq Toolkit ในการเทรนโมเดล

ตัวอย่างต่อไปนี้เป็น NLL Plot บน Train และ Validation set ของโมเดล Transformer Base ที่เทรนกับชุดข้อมูล scb-mt-en-th-2020 และประเภทของคำเป็น Subword โดย Vocabulary มีจำนวน 29,207 tokens (เป็นการนำ vocabulary จากฝั่งภาษาไทยและอังกฤษมารวมกัน) โมเดลนี้ได้เทรนบน 1x V100 GPU โดยเป็นการเทรนแบบ mixed-precision และมี Gradient Accumulation เป็นจำนวน 16 steps มีกำหนดจำนวน Tokens สูงสุดต่อ mini-batch เป็น 9,750 tokens ใช้ระยะเวลารวม 20 ชั่วโมง 40 นาที

รูป 3: Negative Log-likelihood plot ของ Train และ Validation set บนชุดข้อมูล scb-mt-en-th-2020 จากโมเดล Transformer Base สำหรับการแปลจากภาษาไทย➝อังกฤษ และประเภทของคำเป็น Subword➝Subword

ผลลัพธ์จากการเทรนโมเดลแปลภาษา บนชุดข้อมูล scb-mt-en-th-2020

นอกจากการทดสอบประสิทธิภาพของโมเดลแปลภาษาบนชุดทดสอบแล้ว ทางทีมวิจัยได้ทำการเปรียบเทียบผลการแปลของโมเดลที่เทรนจากชุดข้อมูล scb-mt-en-th-2020 (SCB_1M), ชุดข้อมูลจาก The Open Parallel Corpus [4] (MT_OPUS) , ชุดข้อมูล SCB_1M และ MT_OPUS รวมกัน, ผลการแปลจาก Google Translation API และจาก AI for Thai (ได้ทดสอบและวัดผลใน เดือนพฤษภาคม 2020) กับชุดข้อมูลคู่ประโยคทดสอบ จาก Transcription จาก TED Talk ซึ่งชุดข้อมูลนี้เป็นส่วนหนึ่งจากงานประชุมทางวิชาการ The IWSLT 2015 Evaluation Campaign (MT Track) โดยชุดข้อมูลที่ใช้ทดสอบประกอบด้วยคู่ประโยค ไทย-อังกฤษ จำนวน 4,242 คู่ประโยค ได้จากการถอดเสียงพูดจากวิดีโอ TED Talk ในภาษาอังกฤษ และแปลเป็นภาษาไทยจากนักแปลอาสาสมัครในโครงการ TED Translators

สำหรับเกณฑ์ในการวัดผลคือ ฺBLEU Score โดย BLEU Score นั้นเป็นเกณฑ์ที่ใช้กันการวัดความคล้ายกันของคำในประโยคสองประโยค สำหรับโจทย์การแปลภาษานั้น จะเป็นการวัดจำนวน n-gram ในระดับคำ (unigram, bigram, trigram และ 4-gram) ที่ตรงกันระหว่างผลการแปลจากโมเดล (hypothesis) และ ประโยคในภาษาปลายทางที่แปลโดยมนุษย์ (reference) ยิ่งโมเดลแปลภาษา แล้วมีคำที่ตรงกันมากเท่าไหร่ ก็จะส่งให้ได้คะแนนสูงขึ้น โดย BLEU Score จะมีค่าระหว่าง 0 ถึง 100

ตาราง 2: ผลจากชุดข้อมูลทดสอบจาก Thai-English IWSLT 2015 โดยเป็น TED Talk transcription ระหว่างปี 2010–2013. โดยใช่ SacreBLEU [5] (cased / uncased) สำหรับภาษาอังกฤษเป็น target language และ BLEU4 [6] สำหรับภาษาไทยเป็น target language

ตัวอย่างในการเปรียบเทียบประสิทธิภาพโมเดลด้วย BLEU Score เช่น ผลการแปล (hypothesis) จาก 2 โมเดล A และ B เป็น ดังนี้

Hypothesis A: Jane may go to school

Hypothesis B: Jan went to the airport

Reference: Jane went to the airport

ในตัวอย่างนี้ Hypothesis B จะมีคะแนนสูงกว่าเนื่องจากมี

  • unigram ที่ตรงกัน คือ “went”, “to”, “the”, “airport”
  • bigram ที่ตรงกัน คือ “went to”, “to the”, “the airport”
  • trigram ที่ตรงกัน คือ “went to the”, “to the airport”
  • 4-gram ที่ตรงกัน คือ “went to the airport”

ในขณะ Hypothesis A มีเพียงคำที่ตรงกันในระดับ unigram จำนวน 2 คำคือ “Jane” และ “to”

ตัวอย่างผลการแปลจากโมเดล baseline สำหรับไทย→อังกฤษ และ อังกฤษ→ไทย

ไทย→อังกฤษ

Source: งั้นเอาเป็นเวนติ แบล็คแอนด์ไวท์มอคค่าใส่นมสด กับวิปครีม จากสตาร์บัคส์สาขาห้างเบิร์ชวิลล์นะคะ

Reference: So that’s a venti black and white mocha with whole milk and whipped cream from the starbucks in the birchville mall.

Translation: so a venti black and white mocha with whole milk and whipped cream from the starbucks at the birchville mall.

Source: ขอโทษด้วยจริง ๆ ค่ะ ที่ร้านมีที่สําหรับ 3 ท่านว่างแค่ตอย 9:00 น. และ 14:00 น. ค่ะ ที่เป็นแบบระเบียงนอกร้าน

Reference: So sorry, they only have 9:00, and 2:00 available for three on the patio.

Translation : I’m so sorry, they only have a table for 3 available at 9:00 p.m. and 1 p.m. with outdoor patio seating.

อังกฤษ→ไทย

Source: The centre was based at the Munich Fairgrounds, in what was formally Munich Airport. The building is now known as the Munich Exhibition Centre.

Reference: ศูนย์ดังกล่าวตั้งอยู่ที่ “มิวนิกแฟร์” (Munich Fair) ซึ่งก่อสร้างขึ้นในบริเวณของท่าอากาศยานมิวนิก ปัจจุบันอาคารแห่งนี้เป็นที่รู้จักในชื่อ “ศูนย์แสดงสินค้ามิวนิก” (Munich Exhibition Centre)

Translation: ศูนย์จัดแสดงสินค้ามิวนิกตั้งอยู่ที่ “มิวนิกแฟร์กราวด์” ในเมืองมิวนิก ปัจจุบันอาคารแห่งนี้เป็นที่รู้จักในชื่อ “ศูนย์แสดงนิทรรศการมิวนิก”

Source: I want the Almond Milk, and if they are out of that I would like the Coconut Milk

Translation : เอานมอัลมอนด์ค่ะ แล้วก็ถ้ากะทิหมดก็ขอเป็นกะทินะคะ

Reference: เอานมอัลมอนด์ค่ะ ถ้าไม่มีเอานมมะพร้าว

สำหรับผู้ที่สนใจสามารถดาวน์โหลด โมเดล baseline สำหรับการทำ Machine Translation ในรูปแบบ ไทย→อังกฤษ และ อังกฤษ→ไทย ที่ทางทีมวิจัยได้ทำการเทรนโมเดลไว้แล้ว และชุดข้อมูลที่ใช้ให้การเทรนโมเดล ผ่านทาง GitHub Release ดังนี้

นอกจากนี้ทางเราได้เขียน Jupyter Notebook สำหรับการรันโมเดล Machine Translation ได้โดยทันที ผ่าน Google Colaboratory

ในปัจจุบันระบบแปลภาษาอัตโนมัติ สำหรับภาษาไทย ถือว่ายังมีจุดที่จะวิจัยและพัฒนา ถ้าหากเปรียบเทียบกับชุดข้อมูลจากภาษษที่มีผู้ใช้จำนวนมากเช่น ภาษาอังกฤษ ฝรั่งเศล เยอรมัน รัสเชีย หรือจีน ชุดข้อมูลที่ทางศูนย์วิจัยได้เผยแพร่นั้นถือเป็นจุดเริ่มต้นเล็กๆในการพัฒนาและวิจัยระบบแปลภาษาสำหรับคนไทย เพื่อให้ระบบมีการแปล ที่คล้ายผู้ใช้ภาษาจริงมากขึ้น รองรับการรูปแบบเนื้อหาที่และหลาย และลด bias หรือข้อผิดพลาดต่างๆในการแปล

บทความนี้จัดทำโดยสถาบันวิจัยปัญญาประดิษฐ์ประเทศไทย (AIResearch)

Facebook & Medium: AIResearch.in.th

References

  1. Vaswani, Ashish & Shazeer, Noam & Parmar, Niki & Uszkoreit, Jakob & Jones, Llion & Gomez, Aidan & Kaiser, Lukasz & Polosukhin, Illia. (2017). Attention Is All You Need.
  2. Sennrich, Rico, Barry Haddow, and Alexandra Birch. “Neural Machine Translation of Rare Words with Subword Units.” Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (2016): n. pag. Crossref. Web.
  3. Kudo, Taku. “Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates.” Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (2018): n. pag. Crossref. Web.
  4. J. Tiedemann, 2012, Parallel Data, Tools and Interfaces in OPUS. In Proceedings of the 8th International Conference on Language Resources and Evaluation (LREC 2012)
  5. Papineni, K., Roukos, S., Ward, T., & Zhu, W. J. (2002, July). BLEU: a method for automatic evaluation of machine translation. In Proceedings of the 40th annual meeting on association for computational linguistics (pp. 311–318). Association for Computational Linguistics.
  6. Post, Matt. (2018). A Call for Clarity in Reporting BLEU Scores.

--

--