Original Title: Survey on Recurrent Neural Network in Natural Language Processing
Source: www.ijettjournal.org
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការស្ទង់មតិស្តីពីបណ្តាញសរសៃប្រសាទវិលជុំ (Recurrent Neural Network) នៅក្នុងដំណើរការភាសាធម្មជាតិ (Natural Language Processing)

ចំណងជើងដើម៖ Survey on Recurrent Neural Network in Natural Language Processing

អ្នកនិពន្ធ៖ Kanchan M. Tarwani (Assistant Professor, Department of Information Technology, Chaitanya Bharathi Institute of Technology), Swathi Edem (Assistant Professor, Department of Computer Science and Engineering, Chaitanya Bharathi Institute of Technology)

ឆ្នាំបោះពុម្ព៖ 2017 International Journal of Engineering Trends and Technology (IJETT)

វិស័យសិក្សា៖ Computer Science / Artificial Intelligence

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

បញ្ហា (The Problem)៖ ឯកសារនេះធ្វើការស្ទង់មតិ និងវិភាគអំពីការអនុវត្ត ព្រមទាំងប្រសិទ្ធភាពនៃបណ្តាញសរសៃប្រសាទវិលជុំ (Recurrent Neural Networks - RNN) និងម៉ូដែលអង្គចងចាំរយៈពេលខ្លី-វែង (Long Short-Term Memory - LSTM) នៅក្នុងកិច្ចការដំណើរការភាសាធម្មជាតិ (Natural Language Processing - NLP)។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះរៀបរាប់អំពីទ្រឹស្តី និងស្ថាបត្យកម្មទូទៅរបស់បណ្តាញ RNN ដោយផ្តោតលើដំណើរការបំបែកលំហូរនៃបណ្តាញ ការកែតម្រូវកំហុស និងការប្រើប្រាស់អង្គចងចាំសម្រាប់វិភាគទិន្នន័យជាស៊េរី។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Feed Forward Neural Networks (FFNN)
បណ្តាញសរសៃប្រសាទបញ្ជូនទៅមុខធម្មតា
ងាយស្រួលយល់ និងអនុវត្តសម្រាប់ការងារចំណាត់ថ្នាក់ទិន្នន័យទូទៅដែលមិនមានទំនាក់ទំនងគ្នាជាស៊េរី។ មិនមានអង្គចងចាំ និងមិនអាចវិភាគទិន្នន័យដែលទាក់ទងគ្នាជាបន្តបន្ទាប់ (Sequential data) ដូចជាប្រយោគបានល្អទេ។ ចាត់ទុកធាតុចូលនិងធាតុចេញទាំងអស់ដាច់ដោយឡែកពីគ្នា ធ្វើឱ្យវាមានកម្រិតទាបសម្រាប់ការងារ NLP ។
Standard Recurrent Neural Network (RNN)
បណ្តាញសរសៃប្រសាទវិលជុំស្តង់ដារ
មានរង្វិលជុំ (Loops) និងអង្គចងចាំខាងក្នុងដែលអាចចាប់យកបរិបទនៃពាក្យមុនៗដើម្បីទស្សន៍ទាយពាក្យបន្ទាប់បាន។ មានការលំបាកក្នុងការចងចាំព័ត៌មានពីប្រយោគវែងៗ ពោលគឺវាអាចមើលថយក្រោយបានត្រឹមតែពីរបីជំហានប៉ុណ្ណោះ។ មានប្រសិទ្ធភាពក្នុងការទស្សន៍ទាយពាក្យបន្ទាប់ តែមិនសូវច្បាស់លាស់សម្រាប់ប្រយោគវែងខ្លាំងដោយសារការបាត់បង់ព័ត៌មាន។
Long Short-Term Memory (LSTM) based RNN
បណ្តាញ RNN ផ្អែកលើអង្គចងចាំរយៈពេលខ្លី-វែង
មានកោសិកាអង្គចងចាំ (Memory cell) ដែលអាចរក្សាទុកព័ត៌មាននិងបរិបទពីដើមទីនៃប្រយោគវែងៗបានយ៉ាងល្អ។ ត្រូវការថាមពលកុំព្យូទ័រច្រើនក្នុងការគណនាដោយសារស្ថាបត្យកម្មបណ្តាញមានភាពស្មុគស្មាញ និងទាមទារទិន្នន័យបង្ហាត់ច្រើន។ ផ្តល់លទ្ធផលសុក្រឹតខ្ពស់បំផុតសម្រាប់ការងារ NLP ដូចជាការបកប្រែភាសាដោយម៉ាស៊ីន និងការសម្គាល់សម្លេង។

ការចំណាយលើធនធាន (Resource Cost)៖ ឯកសារនេះបានបញ្ជាក់ថាការវិវឌ្ឍនៃ RNN និង LSTM ទាមទារឱ្យមានការប្រើប្រាស់ថាមពលកុំព្យូទ័រខ្ពស់ ជាពិសេសអង្គគណនាក្រាហ្វិក (GPU) រួមទាំងសំណុំទិន្នន័យធំៗដើម្បីបង្ហាត់ម៉ូដែលឱ្យមានប្រសិទ្ធភាព។

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

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

ការសិក្សានេះច្រើនផ្តោតលើសំណុំទិន្នន័យភាសាអង់គ្លេស និងបារាំង (ឧ. កំណាព្យ Shakespeare, ការបកប្រែអង់គ្លេស-បារាំង)។ សម្រាប់ប្រទេសកម្ពុជា ការខ្វះខាតសំណុំទិន្នន័យភាសាខ្មែរ (Khmer Text Corpus) ដែលមានគុណភាព និងទំហំធំ គឺជាឧបសគ្គចម្បងក្នុងការអភិវឌ្ឍម៉ូដែល NLP ឱ្យបានល្អនិងច្បាស់លាស់។

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

បច្ចេកវិទ្យា RNN និង LSTM មានសារៈសំខាន់ និងមានសក្តានុពលខ្ពស់ក្នុងការអភិវឌ្ឍប្រព័ន្ធឌីជីថលនៅកម្ពុជា ជាពិសេសលើការវិភាគភាសាជាតិ។

ជារួម បើទោះបីជាការចាប់ផ្តើមទាមទារការប្រមូលទិន្នន័យច្រើន ប៉ុន្តែការយកបច្ចេកវិទ្យានេះមកអនុវត្តនឹងជួយជំរុញស្វ័យប្រវត្តិកម្ម និងនវានុវត្តន៍បច្ចេកវិទ្យាភាសាខ្មែរយ៉ាងគំហុក។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃដំណើរការភាសាធម្មជាតិ (NLP): និស្សិតគួរចាប់ផ្តើមសិក្សាពីទ្រឹស្តីមូលដ្ឋាន ដោយប្រើប្រាស់ភាសា Python និងបណ្ណាល័យ NLTKspaCy ដើម្បីអនុវត្តការកាត់ពាក្យ (Tokenization) លើអត្ថបទសាមញ្ញ។
  2. អនុវត្តការបំប្លែងពាក្យទៅជាវ៉ិចទ័រ (Word Embeddings): សាកល្បងបង្កើតម៉ូដែលតំណាងពាក្យដោយប្រើ Word2VecGloVe ដើម្បីស្វែងយល់ពីរបៀបដែលម៉ាស៊ីនវាស់ស្ទង់ភាពស្រដៀងគ្នានៃពាក្យនីមួយៗក្នុងបរិបទប្រយោគ។
  3. សាងសង់ម៉ូដែល RNN និង LSTM ខ្នាតតូច: ប្រើប្រាស់ Frameworks ពេញនិយមដូចជា TensorFlow/KerasPyTorch ដើម្បីសរសេរកូដបង្កើតម៉ូដែលទស្សន៍ទាយពាក្យបន្ទាប់ (Next word prediction) ដោយសាកល្បងជាមួយទិន្នន័យអត្ថបទភាសាអង់គ្លេស ឬខ្មែរតិចតួច។
  4. ចូលរួមចងក្រងសំណុំទិន្នន័យភាសាខ្មែរ (Khmer Dataset Contribution): ចូលរួមជាមួយសហគមន៍ស្រាវជ្រាវក្នុងស្រុក (ដូចជា Khmer Natural Language Processing - KNLP) ដើម្បីជួយប្រមូល សម្អាត និងរៀបចំទិន្នន័យអត្ថបទភាសាខ្មែរសម្រាប់ប្រើប្រាស់ក្នុងការបង្ហាត់ម៉ូដែលស្មុគស្មាញ។
  5. អភិវឌ្ឍគម្រោងជាក់ស្តែង (Capstone Project): អនុវត្តការប្រើប្រាស់ស្ថាបត្យកម្ម Sequence-to-Sequence (Encoder-Decoder) ដើម្បីបង្កើតកម្មវិធី Chatbot ឬប្រព័ន្ធឆ្លើយសំណួរស្វ័យប្រវត្តិសាមញ្ញជាភាសាខ្មែរសម្រាប់ដោះស្រាយបញ្ហាក្នុងសាកលវិទ្យាល័យ។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Recurrent Neural Network (RNN) ជាប្រភេទបណ្តាញសរសៃប្រសាទសិប្បនិម្មិតដែលមានរង្វិលជុំ (Loops) អនុញ្ញាតឱ្យវាអាចរក្សាទុកព័ត៌មានពីមុនៗទុកជា 'អង្គចងចាំ' ដើម្បីយកមកវិភាគទិន្នន័យដែលមកជាបន្តបន្ទាប់គ្នា (ដូចជាពាក្យក្នុងប្រយោគ) ធ្វើឱ្យវាអាចយល់ពីបរិបទប្រយោគទាំងមូលបាន។ វាដូចជាការអានសៀវភៅរឿង ដែលអ្នកយល់អត្ថន័យនៃពាក្យនីមួយៗនៅទំព័រនេះ ដោយផ្អែកលើការចងចាំសាច់រឿងពីទំព័រមុនៗ។
Long Short Term Memory (LSTM) ជាកោសិកាអង្គចងចាំពិសេសដែលត្រូវដំឡើងបន្ថែមក្នុងបណ្តាញ RNN ដើម្បីជួយឱ្យម៉ាស៊ីនអាចចងចាំព័ត៌មាននិងបរិបទពីអតីតកាលបានយូរ (ឧទាហរណ៍ ពាក្យដើមប្រយោគនៃប្រយោគដ៏វែង) ដោយការពារកុំឱ្យបាត់បង់ឬភ្លេចព័ត៌មានសំខាន់ៗពេលកំពុងធ្វើការវិភាគ។ វាប្រៀបដូចជាការកត់ត្រាចំណុចសំខាន់ៗដាក់ក្នុងសៀវភៅកំណត់ហេតុ ដើម្បីកុំឱ្យភ្លេចនៅពេលដែលអ្នកត្រូវធ្វើការងារស្មុគស្មាញរយៈពេលយូរ។
Back Propagation Through Time (BPTT) ជាបច្ចេកទេសសម្រាប់បង្រៀនបណ្តាញ RNN ឱ្យឆ្លាតជាងមុន តាមរយៈការពន្លាបណ្តាញជាស្រទាប់តាមពេលវេលា រួចគណនាស្វែងរកកំហុសត្រឡប់ថយក្រោយវិញ ដើម្បីកែតម្រូវកម្រិតទម្ងន់ទិន្នន័យ (Weights) ធ្វើឱ្យការទស្សន៍ទាយលើកក្រោយកាន់តែត្រឹមត្រូវ។ វាប្រៀបដូចជាពេលអ្នកធ្វើលំហាត់គណិតវិទ្យាខុស ហើយអ្នកត្រូវពិនិត្យមើលថយក្រោយមួយជំហានម្តងៗ ដើម្បីរកមើលថាតើអ្នកគិតខុសនៅត្រង់ចំណុចណា ទើបអាចកែតម្រូវបាន។
Word embedding layer ជាដំណើរការបំប្លែងពាក្យពេចន៍ទៅជាតារាងលេខ (ម៉ាទ្រីសទម្ងន់) នៅក្នុងលំហគណិតវិទ្យា ដោយរៀបចំឱ្យពាក្យដែលមានអត្ថន័យស្រដៀងគ្នា ឬប្រើក្នុងបរិបទដូចគ្នា មានទីតាំងនៅក្បែរគ្នា ដើម្បីឱ្យម៉ាស៊ីនកុំព្យូទ័រងាយស្រួលយល់ពីទំនាក់ទំនងនៃពាក្យទាំងនោះ។ ប្រៀបដូចជាការរៀបចំសៀវភៅក្នុងបណ្ណាល័យ ដោយដាក់សៀវភៅដែលមានប្រធានបទស្រដៀងគ្នានៅលើធ្នើរជិតៗគ្នា ដើម្បីងាយស្រួលស្វែងរក។
Encoder Decoder model ជាទម្រង់ស្ថាបត្យកម្មដែលប្រើប្រាស់បណ្តាញ RNN ពីរស្របគ្នា ដោយផ្នែកទីមួយ (Encoder) មានតួនាទីអាននិងក្ដោបអត្ថន័យនៃប្រយោគដើម ហើយបញ្ជូនទៅផ្នែកទីពីរ (Decoder) ដើម្បីបំប្លែងអត្ថន័យនោះបង្កើតជាប្រយោគថ្មីមួយទៀត ដែលភាគច្រើនប្រើសម្រាប់ការបកប្រែភាសា។ ដូចជាការស្តាប់នរណាម្នាក់និយាយជាភាសាចិន (Encoder យល់ន័យ) រួចអ្នកបកប្រែប្រាប់ព័ត៌មាននោះទៅមិត្តភក្តិរបស់អ្នកជាភាសាខ្មែរវិញ (Decoder បង្កើតប្រយោគថ្មី)។
Natural Language Processing (NLP) គឺជាសាខាមួយនៃបញ្ញាសិប្បនិម្មិត (AI) ដែលផ្តល់លទ្ធភាពឱ្យកុំព្យូទ័រអាចអាន យល់ វិភាគ និងទាញយកអត្ថន័យពីភាសារបស់មនុស្ស មិនថាជាទម្រង់អត្ថបទ ឬសម្លេង ដើម្បីអនុវត្តកិច្ចការនានាដោយស្វ័យប្រវត្តិ។ វាប្រៀបដូចជាការបង្រៀនកុមារតូចម្នាក់ឱ្យចេះស្តាប់សំឡេង ចេះអានសៀវភៅ និងយល់ពីអត្ថន័យនៃពាក្យពេចន៍ដែលមនុស្សចាស់និយាយប្រាស្រ័យទាក់ទងគ្នា។
one-hot vector ជាវិធីសាស្ត្រសាមញ្ញបំផុតក្នុងការតំណាងពាក្យទៅជាលេខកូដ ដែលពាក្យនីមួយៗត្រូវបានតំណាងដោយវ៉ិចទ័រមួយដែលមានលេខ 1 តែមួយគត់នៅទីតាំងរបស់វា ហើយមានលេខ 0 នៅគ្រប់ទីតាំងផ្សេងទៀតទាំងអស់ក្នុងវចនានុក្រមរបស់ម៉ាស៊ីន។ ដូចជាការហៅឈ្មោះសិស្សក្នុងថ្នាក់ដែលមានសិស្ស៥០នាក់ បើសិនជាគ្រូហៅចំឈ្មោះអ្នក អ្នកនឹងលើកដៃតំណាងឱ្យលេខ ១ ចំណែកសិស្ស៤៩នាក់ទៀតអង្គុយស្ងៀមតំណាងឱ្យលេខ ០។

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

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

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