19/03/2026
Embeddings & Vector Databases - 2 (How Embedding Models Actually Work)
ရှေ့က Article မှာ Embeddings & Vector Databases အကြောင်းကို
Introduction အနေနဲ့ ပြောပြပေးပြီးပြီဆိုတော့ ဒီ Post မှာ
Embedding Model တွေ ဘယ်လိုအလုပ်လုပ်လဲဆိုတဲ့
အကြောင်းကို ပိုပြီး ရှင်းပြပေးသွားပါမယ်။
ပထမဆုံး အနေနဲ့ ဒီ Embedding Model တွေ မပေါ်ခင်တုန်းက
Text တွေကို Machine တွေ နားလည်မယ့် Numerical Vectors တွေအဖြစ်
ဘယ်လိုပြောင်းလဲခဲ့တဲ့ နည်းလမ်းတွေကို အရင်သွားကြည့်ရအောင်ပါ
Bag of Words (BoW) ဆိုတာကတော့ Document တစ်ခုထဲမှာရှိတဲ့
စာလုံးတစ်လုံးချင်းစီ (Word) ရဲ့ အကြိမ်အရေအတွက်နဲ့
Represent လုပ်တာပဲ ဖြစ်ပါတယ်။
အဲဒီ Frequency ကို Count လုပ်ခြင်းအားဖြင့် Corpus ထဲမှာရှိတဲ့
Unique words တွေ ရရှိပါတယ်။
ဥပမာ အနေနဲ့ ကျွန်တော်တို့မှာ "AI is fast" နဲ့ "AI is smart" ဆိုတဲ့
စာကြောင်းနှစ်ကြောင်း ရှိတယ်ဆိုပါစို့။
BoW က စာလုံးတွေကို [AI, is, fast, smart] ဆိုပြီး စာရင်းလုပ်လိုက်ပါမယ်။
ပထမစာကြောင်းအတွက် Vector က [1, 1, 1, 0] ဖြစ်သွားပြီး၊
ဒုတိယစာကြောင်းအတွက်ကတော့ [1, 1, 0, 1] ဖြစ်သွားမှာပါ။
ဒါပေမဲ့ သူ့ရဲ့ Limitation ကတော့ သူက Word တွေအားလုံးဟာ
Independent ဖြစ်တယ်လို့ ယူဆပြီး
Grammar, Context နဲ့ Word Level တွေကို Ignore လုပ်ပါတယ်။
တစ်နည်းပြောရရင် စာလုံးတွေရဲ့ အစီအစဉ်ကို ထည့်မတွက်ဘဲ
အိတ်တစ်ခုထဲ စုထည့်ထားသလိုမျိုး ဖြစ်နေတာပါ။
နောက်တစ်ခုကတော့ TF-IDF လို့ခေါ်တဲ့
Term Frequency-Inverse Document Frequency ပါ။
Term Frequency ဆိုတာကတော့ ခုနက BoW နဲ့ အလားတူပဲ
Document တစ်ခုမှာ Word တစ်ခုချင်းစီဟာ
ဘယ်လောက်ကြိမ်ရေပါသလဲဆိုတာပါပဲ။
ဒါပေမဲ့ TF-IDF မှာကျတော့ Weight ပါ ပါလာပါတယ်။
IDF ကျတော့ Word တစ်ခုချင်းစီဟာ Corpus တစ်ခုလုံးမှာ
ဘယ်လောက် Rare ဖြစ်သလဲဆိုတာကို ပြောတာပါ။
ဥပမာ အနေနဲ့ "The", "Is", "And" တို့လို စာလုံးတွေက
Document တိုင်းမှာ ခဏခဏ ပါနေတတ်ပါတယ်။
TF-IDF က ဒီလိုစာလုံးတွေကို အရေးမကြီးဘူးလို့ သတ်မှတ်ပြီး
Weight လျှော့ချပစ်ပါတယ်။
တစ်ဖက်မှာတော့ "Deep Learning" ဒါမှမဟုတ် "Transformer" လိုမျိုး
Document အနည်းငယ်မှာပဲ ထူးထူးခြားခြား ပါတတ်တဲ့ စာလုံးတွေကိုကျတော့ Weight ပိုပေးပြီး
ဒါဟာ ဒီ Document ရဲ့ အဓိက Key ဖြစ်တယ်လို့ မှတ်ယူတာမျိုးပါ။
Word2Vec ဆိုတာကတော့ Neural Network ကို
အခြေခံထားတဲ့ အစောပိုင်း Word Embedding နည်းလမ်းတစ်ခုပါပဲ။
သူက စာလုံးတွေရဲ့ ဆက်စပ်မှုကို Vector Space ပေါ်မှာ
အကွာအဝေးနဲ့ တိုင်းတာနိုင်အောင် စတင်လုပ်ဆောင်ပေးခဲ့တာပါ။
ဒါပေမဲ့ ဒီနေရာမှာ ကျွန်တော်တို့ သိထားရမှာက Embedding တွေကို
Static နဲ့ Dynamic ဆိုပြီး နှစ်မျိုး ခွဲခြားနိုင်တာပါပဲ။
Static Embedding (ဥပမာ - Word2Vec, GloVe)
Static Embedding ဆိုတာကတော့ စာလုံးတစ်လုံးကို
Vector တစ်ခုတည်းအဖြစ်ပဲ ပုံသေ သတ်မှတ်ထားတာမျိုးပါ။
တစ်နည်းပြောရရင် စာလုံးတစ်လုံးဟာ ဘယ်စာကြောင်းထဲမှာပဲ ပါပါ၊
သူ့ရဲ့ Vector တန်ဖိုးက အမြဲတမ်း တူညီနေပါတယ်။
သူ့ရဲ့ အဓိက Limitation ကတော့ Context မရှိတာပါပဲ။
ဥပမာဆိုရရင် "I am eating an apple." (ပန်းသီး) နဲ့ "I just bought an apple iPhone." (Apple ကုမ္ပဏီ)
ဒီနေရာမှာ "Apple" ဆိုတဲ့ စာလုံးက အဓိပ္ပာယ် နှစ်မျိုး ဖြစ်နေပေမဲ့
Static Embedding မှာကျတော့ သူတို့ကို ခွဲခြားနိုင်စွမ်း မရှိပါဘူး။
Apple ဆိုတာနဲ့ Vector တစ်မျိုးတည်းကိုပဲ ထုတ်ပေးတာဖြစ်လို့
စာလုံးရဲ့ အဓိပ္ပာယ် အစစ်အမှန်ကို ယူရတာ ခက်ခဲစေပါတယ်။
Dynamic (Contextual) Embedding (ဥပမာ - BERT, RoBERTa)
ဒီနေရာမှာ Dynamic Embedding ကျတော့ Context ကိုပါ
နားလည်အောင် လုပ်ပေးနိုင်ပါတယ်။
သူက စာလုံးတစ်လုံးတည်းကိုပဲ ပတ်ဝန်းကျင်မှာရှိတဲ့
တခြားစာလုံးတွေနဲ့ နှိုင်းယှဉ်ပြီး မတူညီတဲ့ Vector တွေကို ထုတ်ပေးတာပါ။
ဒါကို Transformer Architecture ထဲက Attention Mechanism ကို
သုံးပြီး လုပ်ဆောင်တာ ဖြစ်ပါတယ်။
ခုနက "Apple" ဥပမာကိုပဲ ပြန်ကြည့်ရင် Dynamic Embedding (BERT လို Model မျိုး) က
“Eating" ဆိုတဲ့ စာလုံးပါရင် ဒါဟာ "အသီး" ဖြစ်တယ်လို့ သိပြီး Vector တစ်မျိုး ထုတ်ပေးပါတယ်။ "iPhone" ဆိုတဲ့ စာလုံးနဲ့ တွဲပါလာရင်တော့ ဒါဟာ "Company" ဖြစ်တယ်ဆိုတာကို သိပြီး နောက်ထပ် Vector တစ်မျိုး ပြောင်းလဲထုတ်ပေးတာမျိုးပါ။
ဒါကြောင့်မို့လို့ Dynamic Embedding တွေဟာ စာလုံးတစ်လုံးတည်းရဲ့ မတူညီတဲ့ အဓိပ္ပာယ် (Polysemy) တွေကို ပိုပြီး တိတိကျကျ ဖော်ပြနိုင်လာတာ ဖြစ်ပါတယ်။
ဒီနေရာမှာ Attention Mechanism ဆိုတာလေးကို နည်းနည်းလေးပိုပြီး ရှင်းပြပေးချင်ပါတယ်။
Attention ဆိုတာကတော့ အခုလက်ရှိခေတ်စားနေတဲ့ Large Language Model တွေရဲ့ အဓိက core ပဲဖြစ်ပါတယ်
ဒီ Attention Mechanism ကြောင့် Model တွေဟာ
Sentence တခုတည်းမှာရှိတဲ့ Word တခုချင်းစီဟာ
တခြားသော Word တွေနဲ့ ဘယ်လိုဆက်နွယ်နေလဲဆိုတဲ့
Information ကိုပေးပါတယ်။
တနည်းအားဖြင့် သူတို့ဟာ Context ကို
နားလည်တယ်လို့ပြောချင်တာပါ။
မြန်မာမှာ “လူတွေ ဆုံးပါးသွားတဲ့ အခါ သေသည်၊ ဆုံးသည်လို့သုံးပြီး
ဘုန်းကြီးတွေဆုံးပါးသွားတဲ့အခါကျ ပျံလွန်တော်မူသည်” ဆိုပြီး
သုံးနှုန်းကျသလိုပါပဲ။
သူတို့ဟာ Context အပေါ်မူတည်ပြီး Word တွေကို
Processing လုပ်နိုင်စွမ်းရှိပါတယ်။
Attention Mechanism ကိုမှ Self-Attention Mechanism နဲ့ Multi-Head Attention Mechanism ကို နည်းနည်းပိုရှင်းပြချင်ပါတယ်။
Self-Attention Mechanism
Transformer လို့ခေါ်တဲ့ Attention Mechanism based model တစ်ခုဟာ Word တစ်ခုချင်းစီကို Vector ၃ ခု ပေးပါတယ်။
သူတို့တွေကတော့ Q, K, V ပါ။
Query (Q): ဒီစာလုံးက ဘာကို ရှာနေတာလဲ?
Key (K): တခြားစာလုံးတွေမှာ ဘယ်လို Information တွေ ရှိသလဲ?
Value (V): ဒီစာလုံးမှာ ရှိနေတဲ့ တကယ့် အနှစ်သာရက ဘာလဲ?
ဥပမာအနေနဲ့ မြင်အောင်ပြောရမယ်ဆိုရင် စာအုပ်တစ်အုပ်ရဲ့ Page Number တွေဟာ Key ဖြစ်ပြီး အဲဒီ Page Number ထဲက Content ကတော့ Value ဖြစ်ပါတယ်။ Query ဆိုတာကတော့ ကျွန်တော်တို့ ရှာနေတဲ့ Information ပေါ့။
Self-Attention ဆိုတာကတော့ စာကြောင်းတစ်ကြောင်းထဲမှာရှိတဲ့
စာလုံးတစ်လုံးချင်းစီဟာ ကျန်တဲ့စာလုံးတွေနဲ့ ဘယ်လောက်အထိ
အဓိပ္ပာယ်သက်ရောက်မှု ရှိသလဲဆိုတာကို တွက်ချက်တာပါ။
ခုနက ပြောခဲ့တဲ့ Q, K, V ကို သုံးပြီး Machine က ဘယ်လိုတွက်လဲဆိုရင်
Machine က Q နဲ့ K ကို မြှောက်လိုက်တဲ့အခါ
(Dot Product) Attention Score ဆိုတာ ရလာပါတယ်။
အဲဒီ Score က "ဒီစာလုံးနှစ်လုံးဟာ တစ်လုံးနဲ့တစ်လုံး
ဘယ်လောက် အရေးကြီးလဲ" ဆိုတာကို ပြောပြတာပါ။
အဲဒီ Score အတိုင်း Value (V) ကို Weight ပေးပြီး
ပေါင်းလိုက်တဲ့အခါမှာတော့ Context ကို
နားလည်တဲ့ Vector တစ်ခု ထွက်လာတာ ဖြစ်ပါတယ်။
Multi-Head Attention Mechanism
ဒါဆိုရင် Multi-Head Attention ကရော ဘာလဲ?
အလွယ်ပြောရရင်တော့ Self-Attention တွေကို
အပြိုင် (Parallel) အများကြီး လုပ်ဆောင်တာပါပဲ။
ဘာဖြစ်လို့ အများကြီး လုပ်ဖို့ လိုတာလဲဆိုရင်
စာလုံးတစ်လုံးတည်းကိုပဲ မတူညီတဲ့ ရှုထောင့်တွေကနေ
နားလည်ချင်လို့ပါ။
ဥပမာ -
Head 1: က သဒ္ဒါ (Grammar) ဆက်စပ်မှုကို ကြည့်နေမယ်။
Head 2: က အဓိပ္ပာယ် (Meaning) ဆက်စပ်မှုကို ကြည့်နေမယ်။
Head 3: ကတော့ အချိန်ကာလ (Tense) ဆက်စပ်မှုကို ကြည့်နေမယ်။
"The animal didn't cross the street because it was too tired."
ဒီနေရာမှာ "it" ဆိုတာ "Animal" ကို ပြောတာလား၊ "Street" ကို ပြောတာလား?
Head တစ်ခု ကနေ ကြည့်ရင် "it" နဲ့ "Animal" ရဲ့ ဆက်စပ်မှုကို မိသွားမယ်။
နောက် Head တစ်ခု ကနေ ကြည့်ရင် "Tired" ဖြစ်နေတာဟာ
"Animal" ပဲ ဖြစ်နိုင်တယ်ဆိုတဲ့ အဓိပ္ပာယ်ကို မိသွားပါမယ်။
ဒီလိုမျိုး Head အများကြီးကနေ ရလာတဲ့ Information တွေကို
ပြန်ပေါင်းလိုက်တဲ့အခါမှာတော့ Model က
စာကြောင်းတစ်ကြောင်းလုံးရဲ့ အဓိပ္ပာယ်ကို
ရှုထောင့်ပေါင်းစုံကနေ ကျယ်ကျယ်ပြန့်ပြန့်
နားလည်သွားတာ ဖြစ်ပါတယ်။
ဒီလိုမျိုး Context ကို နားလည်သွားတဲ့ Vector တွေဟာ
Latent Space လို့ခေါ်တဲ့ အတိုင်းအဆမဲ့ ကိန်းဂဏန်း ကမ္ဘာထဲမှာ
သွားပြီး နေရာယူကြပါတယ်။
ကျွန်တော်တို့ ရှေ့မှာ ပြောခဲ့သလို Embedding ဆိုတာ
Text တွေကို နံပါတ်တွေအဖြစ် ပြောင်းလိုက်တာပါ။
ဒါပေမဲ့ အဲဒီ နံပါတ်တွေက တစ်လုံး၊ နှစ်လုံးတည်း မဟုတ်ပါဘူး။
ဥပမာအားဖြင့်:
768 dimensions (BERT base model တွေမှာ သုံးလေ့ရှိတယ်)
1536 dimensions (OpenAI ရဲ့ text-embedding-3-small မှာ သုံးလေ့ရှိတယ်)
ဒီ Dimensions ဆိုတာကို အလွယ်ပြောရရင်
စာလုံးတစ်လုံးရဲ့ "စရိုက်လက္ခဏာ" တွေလို့ မှတ်ယူလို့ ရပါတယ်။
စာလုံးတစ်လုံးမှာ dimension တွေ များလေလေ၊ သူ့ရဲ့ အဓိပ္ပာယ်ကို
ပိုပြီး အသေးစိတ် ဖော်ပြနိုင်လေလေပါပဲ။
ဒီ Latent Space ထဲမှာ:
အဓိပ္ပာယ်တူတဲ့အရာတွေ က Vector Space ထဲမှာ
တစ်ခုနဲ့တစ်ခု နီးကပ်စွာ ရှိနေကြပြီး၊
အဓိပ္ပာယ်မတူတဲ့အရာတွေ ကတော့
တစ်ခုနဲ့တစ်ခု ဝေးကွာနေမှာ ဖြစ်ပါတယ်။
ဒီနေရာမှာ "Bank" ဥပမာကိုပဲ Deep Dive ပြန်ကြည့်ရအောင်။
ကျွန်တော်တို့မှာ "Bank" ဆိုတဲ့ စာလုံး ရှိမယ်။
Dynamic Embedding Model ကနေ ဖြတ်လိုက်တဲ့အခါ:
၁။ အကယ်၍ Context က Finance (ငွေကြေး) ဖြစ်နေရင်
အဲဒီ "Bank" ရဲ့ Vector ဟာ Space ထဲမှာ
Money, Loan, Deposit စတဲ့ စာလုံးတွေ ရှိရာဘက်ကို
စုကပ် သွားပါတယ်။
၂။ အကယ်၍ Context က Nature (မြစ်ကမ်းပါး) ဖြစ်နေရင်
အဲဒီ "Bank" ရဲ့ Vector က Water, Shore, River စတဲ့ စာလုံးတွေ
ရှိရာဘက်ကို ပြောင်းပြီး စုကပ်သွားမှာပါ။
ဒါဟာ "Apple" (အသီး) နဲ့ "Apple" (Company) အတွက်လည်း အတူတူပါပဲ။
ဒါကြောင့်မို့လို့ Vector Database တွေမှာ Vector Similarity Search (ဥပမာ - Cosine Similarity) ကို သုံးပြီး ရှာလိုက်တဲ့အခါ စာသားချင်း မတူရင်တောင် အဓိပ္ပာယ်တူတာကို Model က ရှာပေးနိုင်တာ ဖြစ်ပါတယ်။
နိဂုံးချုပ်အနေနဲ့ ပြောရရင် Embedding Model တွေဟာ စာသားတွေကို နံပါတ်တွေအဖြစ် ပြောင်းပေးရုံတင် မဟုတ်ဘဲ၊ လူသားတွေရဲ့ ဘာသာစကားထဲက နက်ရှိုင်းလှတဲ့ Context တွေ၊ ဆက်စပ်မှုတွေကို Latent Space ထဲမှာ သင်္ချာနည်းအရ နေရာချပေးလိုက်တာပဲ ဖြစ်ပါတယ်။
ကျွန်တော်တို့ အပေါ်မှာ ပြောခဲ့တာတွေက Text Embedding တွေ အကြောင်းပါ။ ဒါပေမဲ့ အခုခေတ်မှာတော့ Multimodal Embedding တွေကြောင့် တခြား Data Type တွေကိုပါ Vector ပြောင်းပြီး Latent Space ထဲမှာ အတူတူ နေရာချလို့ ရလာပါပြီ။
Files & Documents: PDF တွေ၊ Word File တွေကို
စာမျက်နှာအလိုက် ဒါမှမဟုတ် အဓိပ္ပာယ်အလိုက် အပိုင်းပိုင်းဖြတ်
(Chunking) ပြီး Vector ပြောင်းလိုက်တာပါ။
ဒါမှသာ ကျွန်တော်တို့က "ဒီ File ထဲမှာ ဘယ်အကြောင်းအရာ ပါလဲ?"
ဆိုတာကို AI ကို မေးလို့ရမှာ ဖြစ်ပါတယ်။
Audio Embedding: အသံလှိုင်း (Sound waves) တွေကို
Numerical Features တွေအဖြစ် ပြောင်းလိုက်တာပါ။
ဒါကြောင့် Model တွေက စကားပြောသံတင်မကဘဲ
နောက်ခံဆူညံသံ ဒါမှမဟုတ် သီချင်းတစ်ပုဒ်ရဲ့ အမျိုးအစား (Genre) ကိုပါ
ခွဲခြားနိုင်လာတာ ဖြစ်ပါတယ်။
Video Embedding: ဗီဒီယိုဆိုတာ တကယ်တော့ Frames တွေ
အများကြီးကို အစီအစဉ်အလိုက် ပြထားတာပါ။
Model က Frame တစ်ခုချင်းစီရဲ့ အဓိပ္ပာယ်နဲ့
အဲဒီ Frame တွေကြားက ဆက်စပ်မှု (Movement) ကိုပါ
Vector ပြောင်းလိုက်ပါတယ်။
ဒါကြောင့် "ဗီဒီယိုထဲမှာ ခွေးလေး ပြေးနေတဲ့ အပိုင်းကို ရှာပေးပါ"
ဆိုတာမျိုးတွေ လုပ်လို့ရလာတာပါ။
အခုဆိုရင် Embedding Model တွေ
ဘယ်လို အလုပ်လုပ်လဲဆိုတာကို Traditional နည်းလမ်းတွေကနေ
အခုခေတ် Attention Mechanism တွေအထိ
နှံ့နှံ့စပ်စပ် သိသွားကြပြီလို့ မျှော်လင့်ပါတယ်။
ဒီ Article ကို အနှစ်ချုပ်ရမယ်ဆိုရင်:
BoW နဲ့ TF-IDF တို့လို ရိုးရာနည်းလမ်းတွေဟာ
စာလုံးအရေအတွက် (Frequency) ကိုပဲ ကြည့်နိုင်ပေမဲ့၊
Embedding Model တွေကတော့ စာလုံးတွေရဲ့ အဓိပ္ပာယ်နဲ့
ဆက်စပ်မှု (Context) ကိုပါ နားလည်လာကြပါတယ်။
Transformer Architecture ထဲက
Self-Attention နဲ့ Multi-Head Attention တို့ကြောင့်
စာလုံးတစ်လုံးတည်းကိုပဲ ရှုထောင့်ပေါင်းစုံကနေ ကြည့်ပြီး
ပိုမို တိကျတဲ့ Vector တွေ ထုတ်ပေးနိုင်တာ ဖြစ်ပါတယ်။
Embedding တွေဟာ မြင့်မားတဲ့ Dimension တွေရှိတဲ့
Latent Space ထဲမှာ နေရာယူကြပါတယ်။
အဓိပ္ပာယ်တူရင် နီးကပ်ပြီး၊ အဓိပ္ပာယ်ကွဲလွဲရင်
ဝေးကွာသွားတဲ့ သဘောတရားကို အသုံးပြုထားတာပါ။
အခုခေတ်မှာ Text တင်မကဘဲ Audio, Video နဲ့ Files တွေကိုပါ
Vector ပြောင်းလဲပြီး AI က Processing လုပ်နိုင်နေပြီ ဖြစ်ပါတယ်။
နောက်တစ်ပတ်မှာတော့ 'Vector Similarity: How AI Finds Meaningful Information' ဆိုတဲ့ ခေါင်းစဉ်နဲ့အတူ Vector တွေကြားက
အကွာအဝေးကို တိုင်းတာတဲ့ Cosine Similarity, Euclidean Distance, Manhattan Distance တို့အပြင်၊ အချက်အလက်တွေ
အများကြီးထဲကနေ မြန်မြန်ဆန်ဆန် ရှာပေးနိုင်တဲ့
ANN (Approximate Nearest Neighbor) အကြောင်းတွေကို
အသေးစိတ် ဆက်လက် ရှင်းပြပေးသွားပါဦးမယ်။