Original Title: Neural Transfer Learning for Natural Language Processing
Source: nlp.fast.ai
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការរៀនផ្ទេរចំណេះដឹងតាមបណ្ដាញសរសៃប្រសាទសម្រាប់ការកែច្នៃភាសាធម្មជាតិ

ចំណងជើងដើម៖ Neural Transfer Learning for Natural Language Processing

អ្នកនិពន្ធ៖ Sebastian Ruder

ឆ្នាំបោះពុម្ព៖ 2019, National University of Ireland, Galway

វិស័យសិក្សា៖ Natural Language Processing

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ឯកសារនេះដោះស្រាយបញ្ហាកង្វះខាតទិន្នន័យ និងភាពផុយស្រួយនៃម៉ូដែលនៅក្នុងការកែច្នៃភាសាធម្មជាតិ (NLP) ដោយស្នើឡើងនូវបច្ចេកទេសរៀនផ្ទេរចំណេះដឹង (Transfer Learning) ដើម្បីទាញយកប្រយោជន៍ពីចំណេះដឹងពាក់ព័ន្ធនឹងកិច្ចការ ដែន ឬភាសាផ្សេងៗ ដើម្បីធ្វើឲ្យប្រសើរឡើងនូវសមត្ថភាពទូទៅនៃម៉ូដែល។

វិធីសាស្ត្រ (The Methodology)៖ ការស្រាវជ្រាវនេះស្នើឡើង និងវាយតម្លៃនូវស្ថាបត្យកម្មបណ្ដាញសរសៃប្រសាទជ្រៅ (Deep Neural Network) ព្រមទាំងអាល់កូរីតថ្មីៗចំនួនបួនផ្នែកសំខាន់ៗនៃការរៀនផ្ទេរចំណេះដឹងក្នុង NLP។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
ULMFiT (Universal Language Model Fine-tuning)
ការកែសម្រួលលម្អិតម៉ូដែលភាសាជាសកល
ត្រូវការទិន្នន័យមានស្លាកតិចតួចបំផុត (ត្រឹម ១០០ គំរូ) អាចជម្នះបញ្ហាភ្លេចចំណេះដឹងចាស់ (Catastrophic forgetting) និងងាយស្រួលអនុវត្តលើកិច្ចការ NLP ផ្សេងៗ។ ទាមទារការហ្វឹកហាត់ជាមុន (Pretraining) លើទិន្នន័យអត្ថបទធំៗ (ឧ. Wikipedia) ដែលស៊ីពេលនិងទាមទារសមត្ថភាពកុំព្យូទ័រខ្ពស់។ កាត់បន្ថយអត្រាកំហុសពី ១៨ ទៅ ២៤% លើសំណុំទិន្នន័យចំណាត់ថ្នាក់អត្ថបទភាគច្រើន និងយកឈ្នះការហ្វឹកហាត់ពីចំណុចសូន្យទោះប្រើទិន្នន័យតិចជាង ១០០ ដងក៏ដោយ។
Multi-task Tri-training (MT-Tri)
ការហ្វឹកហាត់កិច្ចការច្រើនបែបត្រីកោណ
កាត់បន្ថយទំហំផ្ទុកនិងពេលវេលាហ្វឹកហាត់ប្រហែល ៥ ទៅ ៦ ដង បើធៀបនឹង Tri-training ធម្មតា ហើយមានប្រសិទ្ធភាពក្នុងការទាញយកចំណេះដឹងពីទិន្នន័យគ្មានស្លាក។ ទាមទារការកំណត់ Hyperparameters ច្រើន ហើយប្រសិទ្ធភាពនៅមានកម្រិតទាបជាង Tri-training បែបប្រពៃណីនៅលើកិច្ចការខ្លះដូចជា ការកាត់ស្លាក POS។ បង្កើតស្តង់ដារថ្មី (State-of-the-art) សម្រាប់ការបន្ស៊ាំដែនដោយគ្មានការគ្រប់គ្រង (Unsupervised domain adaptation) លើការវិភាគមនោសញ្ចេតនា (Sentiment analysis)។
Latent-Variable Model for BDI
ម៉ូដែលអថេរកំបាំងសម្រាប់ការបង្កើតវចនានុក្រមទ្វេភាសា
ដំណើរការបានយ៉ាងល្អសម្រាប់ភាសាដែលមានធនធានតិច ដោយប្រើប្រាស់ Prior នៃការចាប់គូ ១:១ ដែលជួយកាត់បន្ថយបញ្ហាវ៉ិចទ័រត្រួតគ្នា (Hubness problem)។ នៅតែជួបការលំបាកជាមួយភាសាដែលមានទម្រង់វេយ្យាករណ៍និងសទ្ទានុក្រមខុសគ្នាខ្លាំងពីភាសាដើម ប្រសិនបើគ្មានទិន្នន័យអត្ថបទរួមគ្នាគ្រប់គ្រាន់។ ទទួលបានលទ្ធផលល្អជាងមុនលើការចាប់គូភាសាទាំង ៦ ជាពិសេសលើភាសាដែលមានធនធានតិចតួចបំផុត ដោយយកឈ្នះម៉ូដែល Unsupervised ទាំងស្រុង។
Sluice Networks
បណ្ដាញសរសៃប្រសាទ Sluice សម្រាប់ការរៀនកិច្ចការច្រើន
អាចរៀនដោយស្វ័យប្រវត្តិថាតើស្រទាប់បណ្ដាញណាខ្លះគួរសហការគ្នា (Share) និងស្រទាប់ណាគួរនៅដាច់ដោយឡែក ដែលផ្ដល់ភាពបត់បែនខ្ពស់ជាង Hard parameter sharing។ បន្ថែមប៉ារ៉ាម៉ែត្រមួយចំនួន (Alpha និង Beta) ដែលធ្វើឱ្យម៉ូដែលកាន់តែស្មុគស្មាញ និងទាមទារទិន្នន័យចម្រុះដើម្បីឲ្យវាដឹងពីការបែងចែក។ យកឈ្នះលើម៉ូដែលកិច្ចការទោល (Single-task) និងម៉ូដែលកិច្ចការច្រើនបែបប្រពៃណី ដោយកាត់បន្ថយអត្រាកំហុសជាមធ្យម ១៥%។

ការចំណាយលើធនធាន (Resource Cost)៖ ការស្រាវជ្រាវនេះទាមទារធនធានកុំព្យូទ័រខ្ពស់សម្រាប់ការហ្វឹកហាត់ម៉ូដែលភាសាធំៗ ប៉ុន្តែចំណាយធនធានតិចតួចនៅពេលយកទៅកែសម្រួលសម្រាប់កិច្ចការជាក់លាក់។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះផ្ដោតសំខាន់លើភាសាអង់គ្លេស និងភាសាអឺរ៉ុបដែលមានរចនាសម្ព័ន្ធស្រដៀងគ្នា រួមជាមួយភាសាអាស៊ីមួយចំនួន។ វាមិនទាន់បានធ្វើតេស្តលើភាសាដែលមានវេយ្យាករណ៍កាត់ត ឬសាំញ៉ាំខ្លាំងដូចជាភាសាខ្មែរឡើយ ដែលអាចធ្វើឲ្យលទ្ធផលនៃការផ្ទេរចំណេះដឹងដោយផ្ទាល់មានការប្រែប្រួល។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

ទោះបីជាមានបញ្ហាគម្លាតទម្រង់ភាសា វិធីសាស្ត្រនៃការរៀនផ្ទេរចំណេះដឹងនេះគឺជាដំណោះស្រាយដ៏ល្អបំផុតសម្រាប់អភិវឌ្ឍវិស័យ NLP នៅកម្ពុជា ដែលកំពុងខ្វះខាតទិន្នន័យ។

ជារួម ការប្រើប្រាស់បច្ចេកទេសទាំងនេះអាចជួយអ្នកស្រាវជ្រាវ និងក្រុមហ៊ុននៅកម្ពុជាសន្សំសំចៃធនធាននិងថវិកាបានយ៉ាងច្រើន ជំនួសឲ្យការបង្កើតទិន្នន័យមានស្លាករាប់ម៉ឺនដោយដៃ។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. ជំហានទី១៖ សិក្សាមូលដ្ឋានគ្រឹះនៃម៉ូដែលភាសា: និស្សិតគួរចាប់ផ្ដើមដោយការសិក្សាពីស្ថាបត្យកម្ម RNN, LSTM និង Word Embeddings (Word2Vec, FastText) ដោយប្រើប្រាស់មេរៀនពី fast.aiDeepLearning.AI
  2. ជំហានទី២៖ ប្រមូលទិន្នន័យនិងហ្វឹកហាត់ Language Model: ប្រមូលទិន្នន័យអត្ថបទភាសាខ្មែរដែលគ្មានស្លាកពី Khmer Wikipedia ឬគេហទំព័រព័ត៌មាន រួចប្រើប្រាស់ PyTorchFastai library ដើម្បីហ្វឹកហាត់ម៉ូដែលភាសាខ្មែរជាមូលដ្ឋាន។
  3. ជំហានទី៣៖ អនុវត្តការកែសម្រួលលម្អិតជាមួយ ULMFiT: យកម៉ូដែលភាសាខ្មែរដែលបានហ្វឹកហាត់រួច មកកែសម្រួល (Fine-tune) សម្រាប់កិច្ចការជាក់លាក់មួយ (ឧទាហរណ៍ ការរកព័ត៌មានក្លែងក្លាយ) ដោយប្រើបច្ចេកទេស Gradual unfreezing និង Slanted triangular learning rates
  4. ជំហានទី៤៖ សាកល្បងបច្ចេកទេសបន្ស៊ាំឆ្លងភាសា: ប្រើប្រាស់វិធីសាស្ត្រវ៉ិចទ័រឆ្លងភាសាដោយប្រើ Procrustes analysis ដើម្បីភ្ជាប់ English word embeddings ទៅនឹងទិន្នន័យខ្មែរ ដើម្បីទាញយកប្រយោជន៍ពីចំណេះដឹងភាសាអង់គ្លេសមកជំនួយដល់ម៉ូដែលខ្មែរ។
  5. ជំហានទី៥៖ សាកល្បងជាមួយកិច្ចការច្រើនមុខរួមគ្នា (Multi-task): បង្កើតគម្រោងមួយដែលទាមទារកិច្ចការ២ ឧទាហរណ៍ការកាត់ពាក្យ (Word segmentation) រួមជាមួយការរកឈ្មោះ (NER) ដោយប្រើប្រាស់ Hard parameter sharing ក្នុងបណ្ដាញសរសៃប្រសាទ ដើម្បីប្រៀបធៀបលទ្ធផល។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Transfer Learning ជាដំណើរការដែលម៉ូដែលបញ្ញាសិប្បនិម្មិតយកចំណេះដឹងឬបទពិសោធន៍ដែលវាធ្លាប់បានរៀនពីកិច្ចការមួយ ទៅអនុវត្តលើកិច្ចការមួយទៀតដែលស្រដៀងគ្នា ដើម្បីកាត់បន្ថយតម្រូវការទិន្នន័យនិងកាត់បន្ថយពេលវេលាហ្វឹកហាត់។ ដូចជាមនុស្សដែលចេះជិះកង់រួចហើយ យកជំនាញរក្សាតុល្យភាពនោះទៅរៀនជិះម៉ូតូដោយមិនបាច់ចាប់ផ្តើមរៀនពីចំណុចសូន្យ។
Language Modeling ជាបច្ចេកទេសបង្រៀនកុំព្យូទ័រឱ្យទាយពាក្យបន្ទាប់នៅក្នុងប្រយោគ ដែលបង្ខំឱ្យម៉ូដែលយល់ពីវេយ្យាករណ៍ បរិបទ និងអត្ថន័យនៃភាសាដោយស្វ័យប្រវត្តិពីអត្ថបទធម្មតា។ ដូចជាមុខងារទាយពាក្យបន្ទាប់ (Auto-complete) នៅលើក្ដារចុចទូរសព្ទដៃរបស់អ្នកដែលដឹងថាអ្នកចង់សរសេរអ្វីបន្ត។
Catastrophic Forgetting ជាបាតុភូតដែលបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិតបាត់បង់ចំណេះដឹងចាស់ទាំងស្រុង នៅពេលដែលវាត្រូវបានគេយកទៅបង្រៀនឱ្យរៀនពីទិន្នន័យថ្មីឬកិច្ចការថ្មី (ក្នុងដំណាក់កាល Fine-tuning)។ ដូចជាសិស្សដែលរៀនមេរៀនថ្មី ហើយភ្លេចមេរៀនចាស់ដែលធ្លាប់ចងចាំយ៉ាងច្បាស់កាលពីសប្តាហ៍មុន។
Fine-tuning ជាការយកម៉ូដែលដែលបានហ្វឹកហាត់រួចជាស្រេច (Pretrained model) មកកែតម្រូវប៉ារ៉ាម៉ែត្ររបស់វាបន្តិចបន្តួចដោយប្រុងប្រយ័ត្ន ដើម្បីឲ្យវាមានភាពជាក់លាក់និងស៊ីសង្វាក់ជាមួយកិច្ចការថ្មីមួយទៀត។ ដូចជាជាងឈើដែលប្រើកាំបិតធំដើម្បីចាំងឈើជារាងទូទៅ រួចប្រើកាំបិតតូចដើម្បីឆ្លាក់ក្បូរក្បាច់លម្អិតនៅដំណាក់កាលចុងក្រោយ។
Multi-task Learning ជាការបង្រៀនម៉ូដែលតែមួយឱ្យចេះធ្វើកិច្ចការច្រើនក្នុងពេលតែមួយ ដើម្បីឱ្យវាអាចទាញយកអត្ថប្រយោជន៍ពីព័ត៌មានដែលទាក់ទងគ្នា និងមានសមត្ថភាពទូទៅខ្លាំងជាងមុន។ ដូចជាការរៀនគណិតវិទ្យា និងរូបវិទ្យាក្នុងពេលតែមួយ ដែលការយល់ដឹងពីមុខវិជ្ជាមួយជួយពង្រឹងសមត្ថភាពលើមុខវិជ្ជាមួយទៀត។
Domain Adaptation ជាការកែច្នៃម៉ូដែលដែលធ្លាប់ដំណើរការល្អលើប្រភេទអត្ថបទមួយ (ឧទាហរណ៍ អត្ថបទសារព័ត៌មាន) ឱ្យមានសមត្ថភាពអាចដំណើរការល្អនៅលើប្រភេទអត្ថបទមួយផ្សេងទៀតដែលមានរចនាបថខុសគ្នា (ឧទាហរណ៍ សារបណ្ដាញសង្គម)។ ដូចជាអ្នកដែលធ្លាប់តែនិយាយភាសាផ្លូវការនៅកន្លែងធ្វើការ ព្យាយាមស្វែងយល់និងប្រើប្រាស់ភាសានិយាយលេងសើចជាមួយមិត្តភក្តិ។
Cross-lingual Word Embeddings ជាការបំប្លែងពាក្យពីភាសាពីរផ្សេងគ្នាឱ្យទៅជាតួលេខវ៉ិចទ័រក្នុងលំហតែមួយ ដែលធ្វើឱ្យពាក្យដែលមានអត្ថន័យដូចគ្នា (ឧទាហរណ៍ 'cat' និង 'ឆ្មា') ស្ថិតនៅកៀកគ្នា ដែលជួយដល់កម្មវិធីបកប្រែ។ ដូចជាការរៀបចំសៀវភៅក្នុងបណ្ណាល័យ ដោយដាក់សៀវភៅប្រវត្តិសាស្ត្រខ្មែរ និងសៀវភៅប្រវត្តិសាស្ត្របរទេសនៅធ្នើរជាប់គ្នាព្រោះវាមានអត្ថន័យស្រដៀងគ្នា។
Hard Parameter Sharing ជាការកំណត់ឱ្យកិច្ចការខុសៗគ្នាប្រើប្រាស់ស្រទាប់កណ្តាលនៃម៉ូដែល (Hidden layers) រួមគ្នាទាំងស្រុង ដើម្បីបង្ខំឱ្យម៉ូដែលរក្សាទុកតែព័ត៌មានដែលប្រើការបានសម្រាប់កិច្ចការទាំងអស់។ ដូចជាបុគ្គលិកផ្នែកលក់ និងផ្នែកទីផ្សារប្រើប្រាស់ឃ្លាំងផ្ទុកទិន្នន័យរួមគ្នាតែមួយ ប៉ុន្តែយកទិន្នន័យនោះមកវិភាគដើម្បីគោលដៅរៀងៗខ្លួន។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖