scb-mt-en-th-2020: ก้าวแรกสู่สังเวียน Machine Translation นานาชาติกับชุดข้อมูล Open Data คู่ภาษาอังกฤษ-ไทย

ความร่วมมือระหว่าง SCB และ AIResearch เพื่อ AI ไทย สู่ AI โลก

onarinn
11 min readAug 21, 2020

สิ่งที่สำคัญที่สุดในการสร้างโมเดลแปลภาษาหรือ machine translation คือชุดข้อมูลข้อความคู่ขนานที่มีขนาดเพียงพอให้โมเดลได้เรียนรู้ เช่น ชุดข้อมูล paracrawl หรือ europarl ที่ถูกจัดทำขึ้นสำหรับการแปลระหว่างภาษาอังกฤษและภาษาอื่นๆในยุโรป เป็นที่น่าเสียดายที่ภาษาไทยของเรานั้นนับเป็นภาษาที่มีทรัพยากรน้อย หากจะกล่าวว่าคู่ประโยคภาษาไทยเป็นสิ่งที่หาได้ยากอันดับต้นๆของโลกคงไม่เกินไปนัก ยิ่งเป็นชุดข้อมูลที่ open data สามารถนำไปใช้ได้

แม้แต่งานสัมมนาด้านการทำโมเดลแปลภาษาชั้นนำอย่าง WMT ที่จัดขึ้นปี 2020 เป็นครั้งที่ 5 แล้ว มีโจทย์การแปลภาษาหลากหลายคู่ภาษาจากทั่วโลก ผู้จัดก็ยังไม่เคยจัดหาคู่ภาษาอังกฤษ-ไทยมาเป็นโจทย์ได้เลย (หมายเหตุ 1.) มีเพียง IWSLT2015 นี่นำข้อมูล TED Subtitles ปี 2010–2013 (ประมาณ 200,000 ประโยคภาษาอังกฤษ; ลิขสิทธิ์เป็นของ TED) มาตัดคำด้วยเกณฑ์ของ InterBEST2009 เพื่อตั้งโจทย์แปลไทย-อังกฤษเท่านั้น (หมายเหตุ 2.)

อย่างไรก็ตาม ทางธนาคารไทยพาณิชย์ (SCB) ได้เห็นถึงความสำคัญของการมีชุดข้อมูลสำหรับวิจัยและพัฒนา ด้าน machine translation จึงได้ร่วมมือกับ AIResearch ในการพัฒนาชุดข้อมูลคู่ภาษาอังกฤษ-ไทยที่ใหญ่และมีคุณภาพทัดเทียมสากล เพื่อส่งเสริมให้นักวิจัยและนักพัฒนา AI ไทยสามารถสร้างสรรค์ผลงานที่วัดผลได้ในระดับสากล โดยทาง SCB ได้บริจาค ชุดข้อมูลนี้ให้แก่สาธารณะเพื่อนำไปพัฒนา AI กันโดยไม่มีค่าใช้จ่ายภายใต้ CC-BY-SA 4.0 (ยกเว้น common voice ที่แจกจ่ายเป็น CC-0)

ใหญ่แค่ไหนเรียกว่า *ใหญ่*

ก่อนอื่นหากเรามองไปถึงคู่ภาษาที่มีข้อมูลมากที่สุดในโลกเช่นภาษายุโรปอย่าง อังกฤษ-เยอรมัน หรืออังกฤษ-ฝรั่งเศส จะเห็นได้ว่างานวิจัย state-of-the-art ได้ใช้ประโยชน์จากฐานข้อมูล paracrawl และ europarl จนมีคู่ประโยคที่ใช้เทรน (หลังการทำความสะอาด) ในระดับ 4-26 ล้านคู่ (Edunov et al, 2018; Ding et al, 2019; Ng et al, 2019; Ye et al, 2019; Zhao et al, 2019)

หากเราลองเปรียบเทียบจำนวนประโยค (หมายเหตุ 3.) ของชุดข้อมูลที่ใช้สำหรับการทำวิจัยหรืองานสัมมนาจะพบว่าจำนวนประโยคของเรายังอยู่ในระดับที่ “น้อย” เมื่อเทียบกับประเทศขาประจำของ WMT หรือ IWSLT และยังน้อยกว่าประเทศเพื่อนบ้านอย่างเวียดนามถึงเท่าตัว (หมายเหตุ 4.)

แต่หากเปรียบเทียบจำนวนคู่ประโยคต่อคนพูดภาษานั้นๆ (Campbell, 2008) จะเห็นได้ว่าเราไม่ได้แย่กว่าภาษาหลักอย่างจีนมากนัก แต่ก็ควรทำให้ดีได้อย่างน้อยเท่าประเทศเวียดนามในอนาคต

มี OPUS อยู่แล้วจะทำเพิ่มทำไม

แต่เดี๋ยวก่อน ชุดข้อมูลข้อความคู่ขนานไม่ได้มีแต่จากงานวิจัยหรืองานสัมมนาเท่านั้น ยังมีผู้จัดทำชุดข้อมูล open data รายอื่นเช่น Open Parallel Corpus (OPUS) ที่เก็บรวบรวมข้อมูลจากแหล่งข้อมูลที่ผู้จัดทำเชื่อว่าเป็น open data สำหรับคู่ประโยคอังกฤษ-ไทยนั้นมีมากถึง 5.4 ล้านคู่ประโยค

แน่นอนว่าในทางทฤษฎีแล้วเราสามารถเทรนโมเดลจาก OPUS ได้โดยไม่มีปัญหาหากเราเชื่อมั่นในคำอ้างที่ค่อนข้างสมเหตุสมผลของผู้จัดทำว่าข้อมูลเป็น open data ปัญหาจะเกิดเมื่อมีความสงสัยในคำอ้างนั้น เช่น OpenSubtitles v2018 ซึ่งนับเป็น 3.5 ล้านประโยคจากทั้งหมด 5.4 ล้านประโยคนั้นก็ไม่แน่เสมอไปว่าจะถูกบริษัทภาพยนต์อ้างลิขสิทธิ์ นี่อาจจะเป็นเหตุผลหนึ่งที่เราแทบไม่เคยเห็น OPUS ถูกใช้ในงานวิจัยที่ถือเป็น state-of-the-art เท่าใดนัก (อาจจะเป็นเพราะแค่ europarl กับ paracrawl ก็มากพอแล้วด้วยก็ได้)

อีกปัญหาที่อาจจะเกิดขึ้นคือ ความหลากหลายของข้อความ เช่น

  • JW300 v1 , bible-uedin v1 , และ Tanzil v1 นั้นคือข้อความทางศาสนาของ Jehovah's Witness, คริสต์ และอิสลามตามลำดับ (รวมประมาณ 1 ล้านคู่ประโยค)
  • GNOME v1 , KDE4 v2, และ Ubuntu v14.10 นั้นคือวิธีการใช้งานซอฟท์แวร์ (รวมประมาณ 6 แสนคู่ประโยค)

ในการใช้งานจริง หากมีข้อกังวลเรื่องลิขสิทธิ์ไม่สามารถใช้ OpenSubtitles v2018 ได้แต่จำเป็นต้องสร้างโมเดลแปลภาษาสำหรับร้านค้า ร้านอาหาร หรือบริการทั่วไป จะเห็นได้ว่าแทบเป็นไปไม่ได้เลยที่เราจะเทรนโมเดลที่แปลข้อความในบริบทนั้นๆได้อย่างเป็นธรรมชาติด้วยข้อมูลที่เหลือ

ชุดข้อมูลเพื่อเติมเต็ม Open Data อังกฤษ-ไทย

ชุดข้อมูล scb-mt-en-th-2020 มีขนาดประมาณ 1 ล้านคู่ประโยคอังกฤษ-ไทยที่จัดทำขึ้นมาเพื่อให้

  1. เป็นชุดข้อมูล open data ที่ใหญ่ที่สุดของคู่ภาษาอังกฤษ-ไทยภายใต้ CC-BY-SA 4.0
  2. มีบริบทหลากหลายเหมาะกับการใช้งานจริงทั้งในงานวิจัยและในอุตสาหกรรม
  3. สามารถนำไปเทรนโมเดลแปลภาษาได้อย่างมีประสิทธิภาพ
  4. สามารถนำชุดข้อมูลบางส่วนไปทำ task ที่ภาษาไทยมีน้อยหรือไม่เคยมีได้ เช่น sentence segmentation, text classification, translation quality estimation, seq2seq dialog model, paraphrase และ bilingual language model

ผลจากการรวบรวมและจัดการข้อมูลได้เป็นชุดข้อมูลย่อย 12 ชุดจากบริบทรีวิวสินค้า (438,125 ประโยค), บทสนทนา (300,280 ประโยค), เว็บไซต์ (180,319 ประโยค), สารานุกรม (33,756 ประโยค), เอกสารราชการและกฎหมายไทย (25,398 ประโยค) และข่าว (23,874 ประโยค)

Fantastic (Open) Data and Where to Find Them

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

แปลชุดข้อมูล Open Data ที่มีอยู่แล้ว: task_master_1, nus_sms, mozilla common voice, msr_paraphrase

แหล่งชุดข้อมูล open data ที่ง่ายที่สุดก็คือชุดข้อมูล open data ที่มีอยู่แล้ว เราอาศัยการแปลโดยนักแปลมืออาชีพและการแปลผ่านระบบ crowdsource ให้มือสมัครเล่นมาช่วยแปล ชุดข้อมูลแต่ละชุดที่เราเลือกมามีจุดเด่นที่สามารถหวังผลนำไปใช้กับ monolingual task ภาษาไทยได้ดังนี้

  1. task_master_1 เป็นชุดข้อมูลการพูดคุยระหว่างลูกค้าและพนักงาน โดยชุดข้อมูลนั้นนำมาจาก 6 สายงานคือ สั่งพิซซ่า, นัดช่างซ่อมรถยนต์, จองรถ, ซื้อตั๋วหนัง, สั่งกาแฟ และจองร้านอาหาร ซึ่งทั้งหมดมีจำนวน 13,215 บทสนทนา (ประมาณ 2 แสนประโยค) นับเป็นชุดข้อมูลบทสนทนาที่ใหญ่ที่สุดในภาษาไทย อีกทั้งยังถูกแปลโดยนักแปลมืออาชีพทั้งหมด ทำให้สามารถนำไปต่อยอดทำแชตบอทด้วยโมเดล seq2seq ได้อย่างเต็มประสิทธิภาพ

2.nus_sms เป็นชุดข้อมูล SMS จำนวน 67,039 ข้อความเก็บโดย University of Singapore ข้อความส่วนใหญ่เป็นข้อความจากนักศึกษาสิงคโปร์ นับว่าเป็นชุดข้อมูลคู่ภาษา Singlish-Thai ชุดแรกและชุดเดียวในขณะนี้

3.mozilla common voice เป็นชุดข้อมูลเสียงพูดที่ถูกรวบรวมมาจากทั่วโลก เราได้นำข้อความภาษาอังกฤษที่ถูกถอดเสียงออกมาแล้วมาแปลโดยระบบ crowdsource นอกจากจะเป็นชุดข้อมูลคู่ประโยคสนทนาที่ดีแล้ว ยังสามารถนำไปใช้สร้างชุดข้อมูลฝึกสอนโมเดล automatic speech recognition (ASR) ได้อีกด้วย

4.msr_paraphrase เป็นชุดข้อมูลที่ทาง Microsoft สร้างขึ้นเพื่อเทรนโมเดลการถ่ายความ (paraphrase) ชุดข้อมูลที่ถูกแปลนี้ก็เป็นชุดข้อมูลการถ่ายความแรกในภาษาไทยอีกเช่นกัน

Scrape จากเว็บไซต์สองภาษา: thai_websites, paracrawl , apdf

ชุดข้อมูลคู่ประโยคส่วนใหญ่ในภาษายุโรปถูกสร้างขึ้นจากการ scrape ข้อมูลเว็บไซต์ภาษาคู่ขนาน เช่น europarl และ paracrawl สิ่งแรกๆที่เราทำจึงเป็นการพยามเลียนแบบวิธีการรวบรวมข้อมูลของ paracrawl ที่เป็น open source (หมายเหตุ 5.)

  1. เราเริ่มจากการใช้ domain จากทุกภาษาที่มีอยู่ใน paracrawl v5 รวมทั้งหมด 208,349 แห่ง
  2. จากนั้นเลือกเฉพาะ domain ที่มี url ตรงกับ language code ภาษาไทย (/th/, /tha/, /thai/) เหลือ 85,019 แห่ง
  3. ทำการเช็ค response status ว่า domain นั้นยังมีอยู่จริงหรือไม่ เหลือ 17,763 แห่ง
  4. ตรวจสอบว่า domain นั้นมีตัวอักษรภาษาไทยหรือไม่ และกรองเว็บไซต์อนาจารออกเหลือเพียง 1,047 แห่ง

เท่านั้นยังไม่พอ เมื่อเราทำการ scrape url ภายใน domain ที่เหลือนั้นเรายังพบว่ามีหน้าเว็บไซต์ที่มีภาษาไทยเพียง 27,178 หน้า ในขณะที่มีหน้าเว็บไซต์ภาษาอังกฤษถึง 462,690 หน้า นั่นหมายความว่าเราสามารถมี “คู่หน้าเว็บไซต์อังกฤษ-ไทย” เพียง 23,528 คู่จาก 455 โดนเมนเท่านั้น

ขั้นต่อไปคือการนำประโยคที่อยู่ในคู่หน้าเว็บไซต์เหล่านั้นมาจับคู่กัน สำหรับภาษาอังกฤษนั้นไม่ใช่เรื่องยากนักเพราะมี . เป็นตัวบอกขอบเขตประโยค การต้องทำงานกับภาษาไทยทำให้เราสร้างโมเดลการตัดประโยคขึ้นมาเองง่ายๆด้วย Conditional Random Fields และชุดข้อมูล TED Subtitles (อ่านต่อที่ CRFCut)

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

ยกตัวอย่าง
จับคู่ประโยค ฉันกินข้าว กับ I eat food
ฉันกินข้าว —ตัดคำ→ ฉัน, กิน, ข้าว —แปลทีละคำด้วยพจนานุกรม→ I, eat, rice
หาก I, eat, rice คล้ายกับ I, eat, food พอก็จะได้รับคะแนนการจับคู่ที่สูง

วิธีนี้ดูสมเหตุสมผลและใช้ได้ผลกับ paracrawl แต่จากการทดลองกับภาษาไทยโดยสุ่ม 100 คู่ประโยคมาจากคู่ที่มีคะแนน hunalign ในช่วงต่างๆแล้วพบว่าแม้จะเป็นช่วง decile ที่ดีที่สุดประโยคที่ถูกจับคู่ได้อย่างถูกต้องตามใจผู้ใช้ภาษาจริงมีเพียงแค่ 67 จาก 100 คู่ประโยคเท่านั้น

เราสันนิษฐานว่าสาเหตุหลักคือการจับคู่แบบพจนานุกรมนั้นไม่สามารถเข้าใจบริบทของข้อความได้อย่างเพียงพอ อีกทั้งยังมีโอกาสจับคู่ประโยคที่ไม่ครบแต่มีจำนวน keyword ครบอีกด้วย เช่น ฉันไปโรงเรียน กับ I go to school on weekdays อาจจะถูกจับคู่กันทั้งที่ใจความภาษาไทยอธิบายภาษาอังกฤษได้ไม่ครบถ้วน

เราจึงจำเป็นต้องใช้โมเดลเข้ามาช่วยคือ Multilingual Universal Sentence Encoder (v3 base; Yang et al, 2019) ของ Google ที่ถูกเทรนด้วยข้อความ 16 ภาษารวมทั้งอังกฤษและไทย โมเดลนี้สามารถเปลี่ยนประโยค 1 ประโยคเป็นตัวเลขจำนวน 512 ตัวเพื่อแทน “ความหมายทางภาษา” ของประโยคนั้นๆ เราจึงสามารถหาความ “คล้าย” ของประโยคอังกฤษและประโยคไทยที่มีอยู่ได้ หลังจากนั้นเราคัดเลือกให้เหลือเพียงคู่ประโยคที่ “ความหมายทางภาษา” คล้ายกันเกิน 70% เป็นอันเสร็จสิ้นการกรองคู่ประโยคคุณภาพ

คู่ประโยคที่มีค่า similarity ระหว่าง 0.0 ถึง 0.1

en: “It didn’t take her very long to realize it is not worth the money.”
th: “พอได้มาแล้วก็เห็นว่าแบตที่ชาร์จเต็มแล้วใช้ได้แค่ 15 นาที”
similarity: 0.099

en: “If you are on one side of the campground and another person uses their feet during winter by digging out the ground, you’ll need this hose.”
th: “คิดว่าคนที่ให้คะแนนน้อยอาจจะไม่เข้าใจวิธีใช้ดีเท่าไหร่”
similarity: 0.009

คู่ประโยคที่มีค่า similarity ระหว่าง 0.2 ถึง 0.3

en: “These are not the same ones you find in stores.”
th: “หูฟังที่ได้มาไม่เหมือนหูฟังหน้าร้านค่ะ ถ้าจะโฆษณาซะขนาดนั้นก็ควรผลิตให้ได้เหมือนสินค้าทดลองหน้าร้านนะคะ “
similarity: 0.226

en: “Not as pretty as pictured.”
th: “และถ้าเลือกได้คงเลือกสีอื่นเพราะมันไม่สวยเหมือนในรูป”
similarity: 0.273

คู่ประโยคที่มีค่า similarity ระหว่าง 0.45 ถึง 0.55

en: “The jar lasts me almost 2 months.”
th: “โดยโหลนี้ก็อยู่ได้เกือบ 2 เดือน”
similarity: 0.496

en: “This is an excellent substitute if you’re having trouble with weight.”
th: “รู้สึกอ้วนน้อยกว่า ถือว่าเป็นของทดแทนที่ดีถ้ากำลังมีปัญหาเรื่องความอ้วน” similarity: 0.531

คู่ประโยคที่มีค่า similarity ระหว่าง 0.65 ถึง 0.75

en: “The only reason I rate it 4 stars instead of 5, (and the only problem I’ve found), is that this timer can ONLY be set in 12-hour intervals.”
th: “เหตุผลเดียวที่ฉันให้ 4 คะแนน แทนที่จะเป็น 5 คะแนน (และเป็นปัญหาเดียวที่ฉันพบ) คือสามารถตั้งเวลาได้ห่างกัน 12 ชั่วโมงเท่านั้น”
similarity: 0.650

en: “The special effects might make sense in a movie set a thousand years ago, but it’s fun see what they can do when we want to live on Mars.”
th: “สเปเชียลเอฟเฟคต์อาจจะสมเหตุสมผลในชุดหนังเมื่อพันปีที่แล้ว แต่มันก็สนุกที่ได้ดูสิ่งที่พวกเขาทำได้เวลาอาศัยอยู่บนดาวอังคาร “
similarity: 0.717

คู่ประโยคที่มีค่า similarity ระหว่าง 0.85 ถึง 0.95

en: “I recently got a copy of this book for free in exchange for an honest review from the publisher on my blog through The M/M Romance Group at Goodreads.This is not your typical romance.”
th: “เพิ่งได้หนังสือนี่มาฟรีจากสำนักพิมพ์จากการเขียนรีวิวในบล็อกทาง M/M Romance Group ของ Goodreads ค่ะ นี่ไม่ใช่นิยายโรแมนติกทั่วๆไปค่ะ” similarity: 0.822

en: “These pumps come with two hoses in case you need to replace the pump or run additional line just connect that hose end to pipe end.”
th: “ปั๊มเหล่านี้มาพร้อมสองท่อในกรณีที่คุณต้องการเปลี่ยนปั๊มหรือเอาไลน์เพิ่มเติมเพื่อเชื่อมต่อปลายท่อนั้นกับปลายท่อ”
similarity: 0.903

สกัดข้อความออกจากเอกสาร PDF: assorted government

แหล่งข้อมูลคู่ภาษาที่ถูกแปลอย่างเป็นทางการที่ใหญ่ที่สุดในประเทศไทยคือเอกสารราชการและกฏหมายไทย เรารวบรวมเอกสารจาก เช่น

  • แผนพัฒนาเศรษฐกิจและสังคมแห่งชาติ
  • รายงานภาวะเศรษฐกิจรายไตรมาสและแน้วโน้มเศรษฐกิจไทย
  • รายงานภาวะสังคมไทยรายไตรมาสและภาพรวมประจำปี
  • แผนพัฒนากำลังผลิตไฟฟ้าของประเทศไทย
  • แผนอนุรักษ์พลังงาน
  • แผนพัฒนาพลังงานทดแทนและพลังงานทางเลือก
  • แผนบริหารจัดการน้ำมันเชื้อเพลิง
  • แผนจัดหาก๊าซธรรมชาติ
  • ประมวลกฎหมายแพ่งและพาณิชย์
  • ประมวลกฏหมายอาญา

รวมแล้วกว่า 200 รายงานกว่า 5,000 หน้าในรูปแบบ PDF จุดเริ่มต้นของความท้าทายในการนำข้อมูลคุณภาพดีมหาศาลนี้มาใช้คือปัญหาที่อยู่กับวงการประมวลผลภาษาไทยมาอย่างช้านานคือ “สระลอย” เมื่อแปลงเอกสาร PDF เป็น plain text

เราแก้ปัญหาเฉพาะหน้าโดยการใช้ Apache Tika อ่าน PDF และแก้สระลอยด้วยกฎ regular expression (หมายเหตุ 7.) เพื่อจัดการเรื่อง “สระลอย” บางส่วน แต่ก็ยังไม่สามารถแก้ปัญหา เช่น อ่อน — ออ่น ได้ ทางแก้วิธีเดียวที่เราเห็นคือชุดข้อมูลสำหรับแก้คำผิดและโมเดลที่จัดการได้ในระดับตัวอักษร

แปลรีวิวสินค้าที่เพิ่งสร้าง: generated_reviews_*

การแปลรีวิวสินค้าเป็นสิ่งที่เราคิดว่าโมเดลแปลภาษาจะถูกใช้เป็นอันดับต้นๆในอุตสาหกรรม ความท้าทายหลักคือไม่มีชุดข้อมูลรีวิวสินค้าไหนเลยที่เป็น open data อย่างที่เราหวัง

ถ้าไม่มีก็สร้างมันขึ้นมาเองเลย เราใช้วิธีการสร้างข้อมูลรีวิวสินค้าจากโมเดล Conditional Transformer Language Model (CTRL) ของ Salesforce (Keskar et al, 2019) ซึ่งเป็น language model ที่ถูกเทรนจากข้อมูลขนาดใหญ่จากหลากหลายบริบท สามารถสร้างข้อความตามบริบทนั้นๆได้ตามแต่เราจะเลือก (หมายเหตุ 8.)

เราสามารถสร้างข้อมูลรีวิวสินค้าไร้ลิขสิทธิ์ (เพราะไม่มีคนเขียนมันขึ้นมาจริงๆ) ได้อย่างไม่จำกัด ข้อมูล generated_reviews_* ยังถูกแปลโดยวิธีการที่หลากหลายเพื่อเปรียบเทียบคุณภาพการแปลได้อีกด้วย

จับคู่บทความวิกิพีเดียอังกฤษ-ไทย: wikipedia

Wikipedia เป็นแหล่งข้อความภาษาไทยที่ถูกใช้มาอย่างยาวนานตั้งแต่การเทรน language model อย่าง thai2fit มันคงจะดีไม่น้อยถ้าเราสามารถใช้ข้อความจาก Wikipedia ที่ไม่มีลิขสิทธิ์มาเทรนโมเดลแปลภาษาของเรา น่าเสียดายที่โลกแห่งความจริงไม่ได้ง่ายดายเช่นนั้น

Wikipedia ภาษาอังกฤษมีจำนวนบทความกว่า 6 ล้านบทความในขณะที่ไทยมีเพียงประมาณ 130,000 บทความ เป็นเรื่องปกติที่ประเทศที่พูดภาษาอังกฤษจะมีความสนใจไม่ตรงกับประเทศที่พูดภาษาไทย แต่ก็สะท้อนให้เห็นว่าเรามีคลังข้อความน้อยกว่านานาชาติถึง 46 เท่า

เราเริ่มต้นการสร้างคู่ประโยคจาก Wikipedia โดยการจับคู่ชื่อบทความ เราใช้ประโยชน์จากเทคนิค Multilingual Universal Sentence Encoder อีกครั้งด้วยการหาบทความที่ชื่อภาษาไทยและภาษาอังกฤษ “คล้ายกัน” เพียงพอได้ประมาณ 13,000 บทความ หลังจากนั้นเราทำการจับคู่ประโยคในรูปแบบเดียวกับเว็บไซต์ที่เรา scrape มาทำให้ได้คู่ประโยคจาก Wikipedia มา 33,756 คู่

แปลยังไงให้ดี-เร็ว-ถูก

เราแบ่งวิธีการแปลเป็นสามประเภทหลัก เรียงจากควบคุมคุณภาพได้ง่ายไปยากคือ

  1. แปลโดยนักแปลมืออาชีพ เป็นวิธีการแปลที่ควบคุมคุณภาพได้ดีที่สุดและแน่นอนว่ามีค่าใช้จ่ายสูงที่สุดด้วย เราจึงจำเป็นต้องสงวนไว้สำหรับบางชุดข้อมูลที่คุณภาพการแปลมีผลโดยตรงต่อโมเดล เช่น task_master_1 ที่ใช้นักแปลจำนวน 25 ท่านในการช่วยแปล
  2. แปลโดยระบบ crowdsource ข้อจำกัดด้านเวลาและค่าใช้จ่ายทำให้เราไม่สามารถจ้างนักแปลมืออาชีพมาแปลชุดข้อมูลทั้งหมดได้ หนึ่งในวิธีที่ได้รับความนิยมในกรณีเช่นนี้คือการเปิดให้บุคคลทั่วไปมาช่วยแปล การควบคุมคุณภาพย่อมทำได้ยากกว่าเราจึงเลือกใช้กับชุดข้อมูลที่การแปลผิดพลาดไม่ได้มีผลกระทบต่อโมเดลเท่า เช่น nus_sms หรือ mozilla_common_voice
  3. แปลโดย Google Translate API แล้วตรวจสอบโดยเจ้าของภาษา เนื่องจากเราต้องการข้อมูลคู่ประโยคในปริมาณค่อนข้างมาก จำนวนนักแปลมืออาชีพและบุคคลทั่วไปที่จะมาช่วยแปลไม่เพียงพอต่อความต้องการ เราจึงใช้ Google Translate API แปล generated_reviews_yn แล้วให้บุคคลทั่วไปที่ใช้ภาษาไทยเป็นภาษาแม่มาคัดเลือกว่า "แปลเหมือนคนแปลหรือไม่" วิธีนี้นอกจากจะประหยัดเวลาแล้วยังช่วยให้เรามีชุดข้อมูลสำหรับทำโมเดล translation quality estimation อีกด้วย
  4. ไม่แปลเลย-เชื่อในคู่ประโยคต้นทาง คู่ประโยคส่วนใหญ่ของ paracrawl เกิดจากการ scrape ข้อมูลจากเว็บไซต์ที่มีสองภาษาอยู่แล้ว แม้จะหวังจำนวนคู่ประโยคได้เยอะ แต่ปัญหาที่เห็นได้ชัดคือคุณภาพการแปลไม่สามารถควบคุมได้เลย ตอนเริ่มโครงการเราคิดว่าคู่ประโยคส่วนใหญ่ของเราจะได้มาจากวิธีนี้ แต่สุดท้ายแล้วคู่ประโยคที่มีคุณภาพจากการแปล(โดยไม่แปล)นี้คิดเป็นเพียง 25% ของชุดข้อมูลทั้งหมด

ควบคุมคุณภาพเพื่อชุดข้อมูล Model-Ready

หากใครเคยใช้ชุดข้อมูล paracrawl จะเห็นว่าแม้จะมีจำนวนคู่ประโยคมหาศาล ชุดข้อมูลนี้ก็ไม่ได้ "สะอาด" เท่าใดนัก ปัญหาทั่วไปที่พบได้ เช่น ประโยคซ้ำ ประโยคเกือบซ้ำ (คำอธิบายสินค้าที่ทุกอย่างเหมือนกันยกเว้นชื่อรุ่น-สีของสินค้า) รวมไปถึงประโยคที่สั้นหรือยาวเกินไป

เราคิดว่า scb-mt-en-th-2020 ควรเป็นชุดข้อมูลที่ model-ready คือผู้ใช้ไม่ต้องคอยกังวัลเกี่ยวกับการทำความสะอาดข้อมูล จึงเป็นที่มาของวิธีควบคุมคุณภาพอย่างเข้มข้น แบ่งเป็นการใช้กฎที่ตั้งขึ้น เช่นเดียวกับงานวิจัยหลายชิ้นก่อนหน้า (Edunov et al, 2018; Ding et al, 2019; Ng et al, 2019; Ye et al, 2019; Zhao et al, 2019) คือ

  1. [ตัวอย่างข้อความอังกฤษที่หลุดมาในช่องไทย หรือข้อความไทยที่หลุดมาในช่องอังกฤษ]

2.กำหนดจำนวน “คำ” ในแต่ละภาษามีสูงสุดได้กี่คำ ข้อนี้สำคัญในการเทรนโมเดลที่ส่วนใหญ่จะตัดข้อมูลให้เหลือแต่ประโยคที่ยาวสูงสุด 150–250 คำ

ตัวอย่างของประโยคที่ยาวเกินไป

th: “การให้ความช่วยเหลือผู้ผลิตและ ผู้ส่งออกที่ได้รับผลกระทบจากมาตรการกีดกันทางการค้าทั้งทางตรงและทางอ้อม (2) การสนับสนุนการขยายตัวของภาคการท่องเที่ยว โดยให้ความสำคัญกับ (i) การฟื้นฟูภาพลักษณ์ด้านความปลอดภัยในการท่องเที่ยว และการให้ความสำคัญกับการรักษาความปลอดภัยในแหล่งท่องเที่ยวสำคัญ ๆ อย่างต่อเนื่อง (ii) การส่งเสริมการขายในตลาดนักท่องเที่ยวระยะไกล และ ( iii) การลดความแออัดของนักท่องเที่ยว ในแหล่งท่องเที่ยวสำคัญ ๆ และการกระจายรายได้จากการท่องเที่ยวลงสู่เมืองรองและชุมชน และ (3) การสนับสนุนการขยายตัวของการลงทุนภาคเอกชน โดย (i) การอำนวยความสะดวกและกระตุ้นโครงการลงทุนที่ ได้รับการอนุมัติส่ง เสริมการลงทุนในช่วงครึ่งปีแรกให้มีการลงทุนจริงโดยเร็ว (ii) การขับเคลื่อนโครงการลงทุนของภาครัฐให้เป็นไปตามเป้าหมายที่กำหนดไว้ ( iii) การจูงใจนักลงทุน ในสาขาและพื้นที่เป้าหมาย รวมทั้งชักจูงนักลงทุนในต่างประเทศที่ได้รับผลกระทบจากมาตรการกีดกัน ทางการค้าให้มาลงทุนในประเทศไทยมากขึ้น และ ( iv) การสร้างความมั่นใจให้กับนักลงทุนเกี่ยวกับ ความต่อเนื่องของโครงการลงทุน รวมทั้งมาตรการและนโยบายที่สำคัญ ๆ ในช่วงหลังการเปลี่ยนผ่านเข้าสู่การเลือกตั้ง 2) การดแูลเกษตรกรและผูม้รีายไดน้อ้ย และการสรา้งความเขม้แขง็ใหก้บัวิสาหกจิขนาดกลางและขนาดยอ่ม และเศรษฐกิจฐานราก โดย (1) การผลิตภาคเกษตรและรายได้เกษตรกร ประกอบด้วย (i) การฟื้นฟูเกษตรกรที่ได้รับผลกระทบจากปัญหาอุทกภัยให้สามารถฟื้นตัวได้โดยเร็วควบคู่ไปกับการเตรียมมาตรการป้องกัน ลดผลกระทบ และฟื้นฟูเกษตรกรที่อาจได้รับผลกระทบจากปัญหาอุทกภัยเพิ่มเติมในช่วงที่เหลือของปี (ii) การแก้ไขปัญหาราคาสินค้าและการช่วยเหลือเกษตรกรผู้ผลิตสินค้าเกษตรบางรายการที่ราคา ยังมีข้อจำกัดในการฟื้นตัว ( iii) การเตรียมมาตรการรองรับผลผลิตภาคเกษตรที่มีแนวโน้มออกสู่ตลาด ในเกณฑ์สูง (iv) การขับเคลื่อนการส่งออกสินค้าเกษตรโดยให้ความสำคัญเพิ่มเติมกับตลาดจีนในกลุ่มสินค้าเกษตรที่มีการปรับเพิ่มภาษีนำเข้าจากสหรัฐฯ และ (v) การขับเคลื่อนโครงการส่งเสริมการเกษตร แบบแปลงใหญ่ควบคู่ไปกับการเพิ่มส่วนแบ่งรายได้จากการจำหน่ายผลผลิตให้แก่เกษตรกร (2) การดูแล ผู้มีรายได้น้อย เศรษฐกิจฐานราก และ SMEs ประกอบด้วย การดำเนินการตามโครงการบัตรสวัสดิการ”

en: “However, the economy during the rest of 2018 tends to slow down, on a year-on-year basis, due to a high base in the second half of 2017 and the fact that agricultural production is prone to flooding conditions amid higher volatility in the global economy and financial system as well as more intensified trade retaliation which will become risk factors to the recovery of world commodity prices and the global economy. Given these conditions, the macroeconomic policy management should emphasize on: 1) Supporting the expansion of key economic sectors, especially by: (1) Fostering export expansion to meet the target growth rate, as well as emphasizing on: (i) monitoring and preventing the possible negative impacts as well as seeking for opportunities from trade diversion as the trade protectionisms in the global market have become more intended; and (ii) operating foreign trade policies to be closely under the world trade rules, as well as key trading partners’ regulations and guidelines; (2) Sustaining the expansion of tourism sector, especially by: (i) restoring tourists’ perception on security and tightening tourist safety in key tourist destinations; (ii) promoting tourism packages targeted at high-income and long-distance tourists; and (iii) reducing congestion in major tourist attractions together with improving distribution of tourism revenue to secondary cities and local communities; and (3) Encouraging private investment by: (i) facilitating and encouraging newly approved projects from the first half of 2018 to be materialized and start operations at the soonest; (ii) steering public infrastructure projects to be implemented as planned; (iii) encouraging investors to invest in target industries and areas; and (iv) ensuring investors regarding the continuity of the government’s key policies, and key investment projects after the transition period to the general election, in order to build investors’ confidence. 2) Supporting small farmers, low income groups, and strengthening the SMEs, local enterprises, and local economies, by: (1) agricultural production and farm income, including: (i) relieving farmers impacted by the recent flood coupled with preventing, mitigating impacts of, and preparing to relieve farmers from possible flood during the rest of the year; (ii) solving problems on agricultural products whose prices remain under constraints and unable to recover; (iii) preparing preemptive measures to accommodate the rising agricultural supply; (iv) promoting exports of agricultural products to further expand in particular those products to China that might be affected from the US tariff measure; and (v) supporting a large-scale farming and enhancing farmers’ income share in retail prices; (2) supporting the low income and local economies as well as SMEs, by pursuing the ongoing social welfare smart card project, together with credit provision measures aiming to attenuate their debt burdens and lessen constraints on fund accessibility for small farmers, low income groups, local enterprises, and SMEs, particularly those affected from repeated flood and those vulnerable to the uptrend in commodity prices and interest rates; and (3) assisting and developing SMEs affected by changes in business patterns, disruptive technologies, consumer preferences, and demography, as well as foreign exchange volatility, by: (i) encouraging SMEs to fully utilize benefits from government’s measures on financial credit provisioning, currency appreciation impact mitigation, and SMEs promotion and development; (ii) encouraging SMEs to improve their process particularly on production, managerial, and marketing development towards more advance technology, as well as developing their products and services to match with the market demand; and (iii) establishing linkages between SMEs and larger-scale businesses.”

Number of tokens (en) :560

3.อัตราส่วนของคำอังกฤษต่อคำไทย เราสามารถตรวจสอบความผิดพลาดของการแปล เช่น แปลไม่ครบ แปลเกิน ได้ง่ายๆหากประโยคภาษาอังกฤษมี 100 คำ แต่ไทยมีแค่ 5 คำก็ไม่ควรนำมาใช้ในชุดข้อมูล

4.ลบคู่ประโยคที่ซ้ำกันทั้งที่ซ้ำกันตรงๆและต่างกันเล็กน้อย เช่น คำอธิบายรองเท้ารุ่นเดียวกันต่างกันแค่สี เป็นต้น เราใช้ edit distance ในการกรองประโยคซ้ำเหล่านี้ออก (Fun Fact: thai_websites เคยมีขนาดเป็น 2 เท่าของปัจจุบันก่อนการกรองด้วย edit distance)

นอกจากนั้นเรายังใช้ Multilingual Universal Sentence Encoder (v3 base; Yang et al, 2019) ในทำนองเดียวกับการจับคู่ประโยคของชุดข้อมูลที่ถูก scrape มาเพื่อตรวจสอบคุณภาพของชุดข้อมูลอื่นอีกต่อด้วย (หมายเหตุ 9.)

ก้าวต่อไปของ Machine Translation ไทย

scb-mt-en-th-2020 นับเป็นชุดข้อมูล open data คู่ภาษาอังกฤษ-ไทยขนาดใหญ่แบบ model-ready ชุดแรกของโลก ที่นอกจากจะสามารถนำไปใช้ทำโมเดลแปลภาษได้แล้วยังสามารถนำไปทำโมเดล:

  1. ตัดประโยคด้วย generated_reviews_yn; See CRFCut
  2. ทำนายดาวรีวิวสินค้าด้วย generated_reviews_yn; See Text Classification
  3. ทำนายคุณภาพการแปลด้วย generated_reviews_yn; See Text Classification
  4. สนทนาแบบ seq2seq ด้วย task_master_1
  5. ถ่ายความด้วย msr_paraphrase
  6. Language model อังกฤษ-ไทยด้วยข้อมูลคู่ประโยคทั้งหมด

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

หมายเหตุ

  1. ในงาน WMT20 (ครั้งที่ 5) มีเวิร์คชอปแปลภาษากัมพูชา-อังกฤษแล้ว
  2. ชุดข้อมูลไทย-อังกฤษของ IWSLT2015: https://sites.google.com/site/iwsltevaluation2015/mt-track
  3. เราเรียกคู่ข้อความในชุดข้อมูลอย่างอะลุ่มอะล่วยว่า “ประโยค” ถึงแม้ในภาษาไทยจะไม่มีนิยามขอบเขตประโยคอย่างชัดเจนก็ตาม (Aroonmanakun, 2017) “ประโยค” ในที่นี้จึงหมายถึงกลุ่มของประโยคที่อาจจะมีมากหรือน้อยกว่า 1 ประโยคตามนิยามทางภาษาศาสตร์
  4. ชุดข้อมูลแปลภาษาและแหล่งที่มา (หน่วย: ล้านคู่ประโยค)
  5. วิธีการทำ paracrawl กับคู่ประโยคอังกฤษ-ไทย: https://github.com/vistec-AI/paracrawl-en-th
  6. วิธีการ scrape เว็บไซต์ top 500 ของไทย: https://github.com/vistec-AI/thai_websites_crawler
  7. วิธีการแปลงเอกสาร PDF เป็นคู่ประโยค: https://github.com/vistec-AI/pdf2parallel
  8. วิธีการใช้ CTRL สร้างรีวิวสินค้า: https://github.com/vistec-AI/fake_reviews
  9. วิธีการกรองคุณภาพคู่ประโยค: https://github.com/vistec-AI/thai2nmt

อ้างอิง

Aroonmanakun, W. (2007, December). Thoughts on word and sentence segmentation in Thai. In Proceedings of the Seventh Symposium on Natural language Processing, Pattaya, Thailand, December 13–15 (pp. 85–90).

Campbell, L. (2008). Ethnologue: Languages of the world.

Ding, L., & Tao, D. (2019). The University of Sydney’s Machine Translation System for WMT19. arXiv preprint arXiv:1907.00494.

Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding back-translation at scale. arXiv preprint arXiv:1808.09381.

Esplà-Gomis, M., Forcada, M. L., Ramírez-Sánchez, G., & Hoang, H. (2019). ParaCrawl: Web-scale parallel corpora for the languages of the EU. In Proceedings of Machine Translation Summit XVII Volume 2: Translator, Project and User Tracks (pp. 118–119).

Keskar, N. S., McCann, B., Varshney, L. R., Xiong, C., & Socher, R. (2019). Ctrl: A conditional transformer language model for controllable generation. arXiv preprint arXiv:1909.05858.

Koehn, P. (2005, September). Europarl: A parallel corpus for statistical machine translation. In MT summit (Vol. 5, pp. 79–86).

Morishita, M., Suzuki, J., & Nagata, M. (2019, November). NTT Neural Machine Translation Systems at WAT 2019. In Proceedings of the 6th Workshop on Asian Translation (pp. 99–105).

Ng, N., Yee, K., Baevski, A., Ott, M., Auli, M., & Edunov, S. (2019). Facebook FAIR’s WMT19 News Translation Task Submission. arXiv preprint arXiv:1907.06616.

Ngo, Q. H., Winiwarter, W., & Wloka, B. (2013, October). EVBCorpus-a multi-layer English-Vietnamese bilingual corpus for studying tasks in comparative linguistics. In Proceedings of the 11th Workshop on Asian Language Resources (pp. 1–9).

Riza, H., Budiono, A. P., & Henky, M. (2008). I/ETS: Indonesian-english machine translation system using collaborative P2P corpus. Agency for the Assessment and Application of Technology (BPPT), Indonesia, University of North Texas.

Wu, F., Fan, A., Baevski, A., Dauphin, Y. N., & Auli, M. (2019). Pay less attention with lightweight and dynamic convolutions. arXiv preprint arXiv:1901.10430.

Yang, Y., Cer, D., Ahmad, A., Guo, M., Law, J., Constant, N., … & Strope, B. (2019). Multilingual universal sentence encoder for semantic retrieval. arXiv preprint arXiv:1907.04307.

Ye, Z., Guo, Q., Gan, Q., Qiu, X., & Zhang, Z. (2019). BP-Transformer: Modelling Long-Range Context via Binary Partitioning. arXiv preprint arXiv:1911.04070.

Zhao, G., Sun, X., Xu, J., Zhang, Z., & Luo, L. (2019). MUSE: Parallel Multi-Scale Attention for Sequence to Sequence Learning. arXiv preprint arXiv:1911.09483.

Written by
Charin Polpanumas (Lead Data Scientist, Central Group)
Pined Laohapiengsak (Research Manager, VISTEC)
Lalita Lowphansirikul (Researcher , VISTEC)

--

--