Cross-lingual Transfer: Transfer Learning ข้ามภาษา โดยเลือกภาษาแบบ learning-to-rank

Can Udomcharoenchaikit
AIResearch.in.th
Published in
2 min readSep 20, 2020

ติดตามข่าวสารและบทความ NLP ในภาษาไทยได้ที่ เพจ อ่าน #NLProc และ เพจ AIResearch.in.th

สำหรับภาษาที่มีทรัพยากรน้อย วิธีนึงที่ช่วยเพิ่มประสิทธิภาพได้ก็คือการทำ Transfer Learning ข้ามภาษา หรือ cross-lingual transfer โดยนำภาษาที่มีทรัพยากรเยอะมาช่วยเพิ่มความแม่นยำของภาษาที่มีทรัพยากรน้อยกว่า ซึ่งการเลือกภาษามาทำ cross-lingual transfer มักจะใช้ประสบการณ์หรือความรู้สึกในการเลือก โดยมักจะเลือกจากภาษาในตระกูลภาษาเดียวกัน หรือดูความห่างของภาษาในแผนภูมิต้นไม้ (language family tree) แต่ปัญหาก็คือภาษาในตระกูลเดียวกันก็ไม่จำเป็นที่จะมีคุณลักษณะเหมือนกัน อีกวิธีก็คือดูจาก typological properties ต่าง ๆ ท่ีตรงกับงานที่จะนำไปใช้ เช่นการเรียงคำ (เช่น ประธาน กริยา กรรม (SVO), ประธาน กรรม กริยา (SOV)) สำหรับเอาไปใช้ในงาน parsing ปัญหาคือปัจจัยที่ใช้ตัดสินใจมันมีจำนวนมาก แม้แต่คนที่มีประการณ์สูงก็ยังดูปัจจัยพวกนี้ได้ไม่หมด

ในเปเปอร์ Choosing Transfer Languages for Cross-Lingual Learning ของ Yu-Hsiang Lin และคณะได้เสนอวิธีเลือกภาษาสำหรับการทำ Cross-lingual Transfer โดยมองว่ามันเป็นโจทย์การจัดลำดับ (Ranking) เพื่อที่จะตอบโจทย์ที่ว่าถ้าเกิดเรามีงานของภาษาที่มีทรัพยากรน้อย เราควรจะเลือกภาษาอะไรมาทำ cross-lingual transfer ดี ?

ในภาพด้านบน L_tk คือภาษาเป้าหมายที่มีทรัพยากรน้อยซึ่งเราต้องการนำไปใช้งาน โดยที่เราจะเพิ่มประสิทธิภาพจากการทำ Transfer Learning จากภาษา transfer language (L_tf) ซึ่ง transfer language มันมีตัวเลือกมากมาย และเราก็อยากหาภาษาที่เมื่อทำ transfer learning แล้วโมเดลที่สำหรับงานบนภาษาเป้าหมายของเราจะเก่งขึ้นมากที่สุด วิธีนึงที่เราจะหา transfer language ที่ดีที่สุดได้ก็คือต้องลองเทรนโมเดลโดยใช้เทคนิค cross-lingual transfer บนทุกภาษา ซึ่งในทางปฏิบัติมันทำได้ยาก สมมุติว่าเรามีข้อมูลจากทุกภาษามันก็ค่อนข้างลำบากและใช้เวลาเยอะมากกว่าที่เราจะลองเทรนโมเดลจากทุกคู่ภาษาได้ทั้งหมดบนโลกนี้ และถ้าเราไม่ได้มีข้อมูลทุกภาษามันก็ลำบากที่จะรวบรวมข้อมูลเหล่านี้เอง ดังนั้นเราจึงควรที่จะใช้ machine learning ในการจัดลำดับภาษาที่จะมาใช้ทำ cross-lingual transfer

ซึ่งอย่างแรกที่เขาทำก็คือการสร้าง training set เพื่อที่ใช้ในการเลือก transfer language (L_tf) ที่ดีที่สุด โดยการเทรนโมเดลแบบ cross-lingual transfer แล้วเก็บผลการทดลอง สำหรับแต่ละภาษาเป้าหมาย (L_tk) เขาจะเทรนโมเดลแบบ cross-lingual transfer คู่กับหลายๆ ภาษา transfer language (L_tf) {<L_tf_1,L_tk >;<L_tf_2,L_tk >;…….<L_tf_n,L_tk >} เพื่อดูคะแนนของแต่ละคู่ {score(L_tf_1,L_tk);score(L_tf_2,L_tk);….score(L_tf_n,L_tk)} เพื่อที่จะเอาไปเป็นเฉลยสำหรับการเทรนโมเดล learning-to-rank เพื่อจัดลำดับภาษา transfer language ซึ่งลำดับที่จัดออกมาลำดับควรจะคล้ายกับลำดับคะแนนจริงมากที่สุด ซึ่งเขาเรียกโมเดลนี้ว่า LangRank

สิ่งที่น่าสนใจคือ feature ที่เขาเอามาใช้เทรนโมเดล LangRank ที่เขาแบ่งเป็นสองประเภท:

  1. Feature ที่ขึ้นอยู่กับชุดข้อมูล เช่น (1) ขนาดของชุดข้อมูล อัตราส่วนระหว่างชุดข้อมูลของแต่ละภาษา (2) อัตราส่วนระหว่างคำที่แตกต่าง (unique words) และจำนวนคำทั้งหมดในชุดข้อมูล เพื่อดูความหลากหลายของคำ และระยะห่างของอัตราส่วนนี้ระหว่างสองภาษา (3) จำนวนคำที่ซ้ำและจำนวน subword ที่ซ้ำระหว่างชุดข้อมูลสองภาษา ข้อเสียของ Feature ที่ขึ้นอยู่กับชุดข้อมูล คือสำหรับภาษาที่เราไม่มีชุดข้อมูลเราก็จะเอาไปใช้ไม่ได้
  2. Feature ที่ไม่ขึ้นอยู่กับชุดข้อมูล เขาดู feature จากความแตกต่างของภาษาบน URIEL Typological Database เช่นความแตกต่างของภูมิศาสตร์, ตำแหน่งในlangauge family tree, การออกเสียง, วากยสัมพันธ์

เขาได้ลองสร้าง LangRank มาสามแบบโดยใช้ feature ที่แตกต่างกัน LangRank (all) ใช้ feature ทั้งหมด LangRank (dataset) ใช้เฉพาะ feature ที่ขึ้นอยู่กับชุดข้อมูล และ LangRank (URIEL)ใช้เฉพาะ feature ที่ไม่ขึ้นอยู่กับชุดข้อมูล โดยที่เขาเทียบโมเดลเหล่านี้กับ baseline ที่ดูจาก feature เดี่ยวๆ หรือความแตกต่างของแต่ละ feature ทั้งแบบขึ้นอยู่กับชุดข้อมูล (นิยมใช้ในการเลือกข้อมูลสำหรับทำ cross-domain transfer)และไม่ขึ้นอยู่กับชุดข้อมูล (นิยมใช้ในการเลือก transfer language) โดยวัดบนงานสี่แบบ Machine Translation (MT), Entity Linking (EL), Part-of-Speech tagging (PoS), Dependency Parsing (DEP)

เขาวัดค่าโดย Normalized Discounted Cumulative Gain (NDCG) ซึ่งเป็นมาตรสำหรับเอาไว้ประเมินโมเดลจัดอันดับ ผลการทดลองที่ออกมาแบบที่เห็นในตาราง LangRank ทั้งสามแบบสามารถชนะแบบทิ้งห่าง baseline ได้เกือบทุกอัน โดยที่ feature ที่ขึ้นอยู่กับชุดข้อมูล จะสามารถเพิ่มความสามารถของ LangRank ได้อย่างดี โดยLangRank (all) ที่ใช้ feature ทั้งสองแบบได้คะแนนเยอะสุดจากสามในสี่แบบ ส่วน LangRank (dataset) อย่างเดียวก็ได้คะแนนเยอะสุดสองในสี่งาน ที่น่าสนใจคือ LangRank (URIEL) ที่ใช้เฉพาะ feature ที่ไม่ขึ้นอยู่กับชุดข้อมูล โดยดูจากความแตกต่างของแบบลักษณ์ของภาษา สามารถเอาชนะ baseline ได้ทุกอัน นั่นหมายความว่า LangRank ก็จะมีประโยชน์ถึงแม้ว่าภาษานั้นจะไม่เคยมีการเก็บหรือทำชุดข้อมูลมาก่อน

บทความนี้สนับสนุนโดย:

--

--