← Back to Atlas LLM Course
Chapter 1: What is a Word? Mathematically?

1.3 Embeddings - A More Powerful Representation

Embeddings

فلارتيكل اللول والثاني شفنا جوج ديال الrepresentations: One-Hot encoding و Bag of Words (BoW). بجوج عندهم بزاف دالعيوب والمشاكل لي غايخليونا قبل مانقلبو على representation اخرى, نديرو واحد الليستة نكتبو فيها شنو الحوايج لي كنتسناو من representation؟ بعبارة اخرى: شناهي representation مزيانة؟

أول حاجة,خاص الكلمات لي عندهم معنى قريب فاللغة تكون عندهم representation قريبة. مثلا فاش شفنا الBoW لاحظنا بلي جوج كلمات قراب فالمعنى بحال 'طابلة' و 'ميدة' مغاتكون تاعلاقة مابين الrepresentations ديالهم.

ثاني حاجة, غادي نبقاو فالrepresentations لي على شكل vectors (تقدر تخايلو ليست ديال النوامر). ولكن محتاجين هاد الvectors يكونو dense و low dimensional. ايلا تبعتي مزيان فلارتيكل ديال الBoW, غاتكون شفتي بلي الvectors لي كاتعطينا كايكونو كبار بزاف (الvocab size لي كيقدر يفوت 50 ألف) وهادشي بلا تا فايدة حيت الأغلبية ديال هاد النوامر تايكونو غير زيروات لي مكيعيطيوش معلومة كبيرة (دكشي لاش كنسميوها sparse representation). حنا محتاجين vectors يكونو ماطوالش بزاف باش منحتاجوش بزاف دالmemory فين نخزنوهم, ومكرهناش يكونو عامرين بنوامر لي عندهم معنى وميكونوش خاويين بحال الvectors ديال الBoW. خاص بالخصوص الsize ديال هاد الvectors تكون هي نفسها عند كاع الكلمات ومتكونش كتdependi لشحال من كلمة عندنا فالvocab.

ثالث حاجة, خاص هاد الrepresentation تكون خازنة وسطها المعنى دالعلاقات لي كتجمع بين الكلمات. مثلا ايلا خدينا هاد الكلمات: 'أمير', 'رجل', 'مرا', 'أميرة'. خاص الvectors ديالهم يحققو هاد العلاقة:

vec(أمير) - vec(رجل) + vec(امرا) = vec(أميرة)

بمعنى ايلا خدينا الvector ديال 'أمير' ونقصنا منها الvector ديال 'راجل' وزدنا عليهم الvector ديال 'مرا' خاص نلقاو الvector ديال 'أميرة'. فالحقيقة مغانلقاوش الvector بالضبط ديال 'أميرة' ولكن شي حاجة قريبة ليه بزاف.

هادو ثلاثة ديال الproperties لي خاص يكونو فواحد representation باش نقولو عليها representation مزيانة. ايلا بانو ليك حوايج اخرين تاهوما خاصهم يكونو, كون هاني, غانوصلو ليهم تاهوما من بعد.

ندوزو دبا لهاد representation لي كتحقق هاد الثلاثة دالحوايج لي هضرنا عليهم: Embeddings.

واخا, ولكن شناهو هاد Embedding

قبل مانهضرو على شناهو Embedding بالضبط. تخايل بلي لاعبين نتا والعشران واحد اللعبة: واحد فيكم, نسميوه خالد, كيفكر فشي لاعب دالمنتخب بلا مايقول سميتو, والبقية خاصهم يعرفو فآشمن لاعب كيفكر. وباش يوصلو لسميتو عندهم الحق يطرحو الأسئلة لي بغاو, ولكن خالد عندو الحق يجاوب غير بالنوامر وماشي بالكلمات.

واحد فيكم سول: من 0 ال 100 شحال تقريبا السكور ديال الvitesse ديال هاد اللعاب؟ خالد جاوب 80%.

واحد آخر سول: واش هاد اللاعب تزاد فالمغرب؟ خالد جاوب ب 0 (بمعنى لا).

سولتي نتا: شحال من ماتش لعب هاد اللاعب مع المنتخب؟ خالد قالك 42.

ايلا كنتو كاتقيدو الأجوبة ديال خالد على كاع الأسئلة لي سولتوه. أتكونو فالحقيقة صايبتو representation لهاد اللاعب.

figure1

كل نمرة فهاد الليستة لي قيدتو كاتجاوب على شي سؤال من دوك الأسئلة لي سولتو. كل حاجة عندها معنى. الvector كامل غاتكون الsize ديالو قد العدد دالأسئلة لي سولتو (محال تسولو 50 ألف سؤال). وغايكون كايخزّن بزاف دالمعلومات على هاد اللاعب ديالنا.

الEmbedding كايخدم بنفس الطريقة. بكل بساطة, الEmbeding هو واحد الvector لي فيه نوامر لي كيخزنو معلومات على الكلمة ديالنا. ولكن عكس الvector لي صايبتي نتا وخالد والعشران. منقدروش نعرفو كل نمرة على آشمن سؤال كتجاوب. غير نمرة وصافي, لي فيها شي معلومة على الكلمة. هاد المثال كايبقا غير تقريب باش نفهمو شناهو Embedding. فالحقيقة معرفناش أصلا واش دوك النوامر كايجاوبو على شي سؤال أصلا. ولكن الحاجة لي متأكدين منها على الأقل هو أن ايلا كانو هاد الEmbeddings تصاوبو على حقهم وطريقهم, غايكونو كايحققو دوك ثلاثة ديال الproperties لي هضرنا عليهم فاللول.

ناخدو مثلا حقيقي ديال شي Embedding. مثلا ايلا generina الembedding ديال 'Morocco' ب BERT. (غانهضرو على BERT من بعد, دبا ممكن تفهمو كModel لي كايصايب لينا Embeddings)

figure2

أشنو كنلاحظو؟

أولا, الsize ديال هاد الvector هي 768. يعني عندنا 768 نمرة فهاد الليست. هاد الليست ماقصيراش بزاف بحال هاديك لي صايبتي مع عشرانك, وفنفس الوقت ماطويلاش بزاف بحال الvectors ديال Bag of Words.

ثاني حاجة: الأغلبية ديال الأعداد لي كاينين فهاد الليستة ماشي أعداد صحيحة طبيعية (ماشي بحال 42, 3, 20 و 9 لي عندك فالليستة ديال خالد). مثلا لاخدينا العدد اللول لي زومينا عليه: -5.8691e-01 (لي هو 0.58691-). عدد سالب, صغر من واحد, وفيه بزاف دالنوامر مورا الفاصلة. غانعرفو فليزارتيكل الجايين علاش هاد الأعداد دايرين هاكا ولكن الفكرة لي بغيت نوصليك دبا هي أن هاد الأعداد مكنقدروش نعرفو شكيعنيو ولا على آشمن سؤال كيجابو (ماشي بحال الليستة لي درتي مع صحابك).

ثالث حاجة: مابايناش فالvisual ديالنا ولكن هاد الEmbedding لي لقينا دبا, لي هو representation ديال كلمة 'Morocco'. ماشي unique. بمعنى مكاينش Embedding واحد ديال كلمة 'Morocco' فالعالم كامل. الEmbedding لي كنلقاو غايdependi على كيفاش بالضبط صايبناه (الطريقة, الModel). ولكن لي مهم عندنا, هو ايلا خدمنا بنفس الطريقة وبنفس الModel خاص يكونو كلمات بحال 'Morocco' و 'Moroccan' عندهم vectors كيتشابهو بزاف حيتاش هاد جوج كلمات متقاربين بزاف فاللغة.

ولكن كيفاش كنصايبو هاد الEmbeddings؟ هدشي لي غادي نجاوبو عليه فالآرتيكل الجاي فاش غاندويو على الword2vec.