مستوى المقال: مبتدئ
لو سألت ChatGPT بكلمة "هرّة" وفهم على طول إنك بتسأل عن قطة، أو دوّرت في متجر إلكتروني على "موبايل" وطلعتلك نتائج فيها "هاتف" و "تليفون"، اللي بيحصل تحت الكابوت اسمه Embeddings. الفكرة بسيطة جدًا في جوهرها لكن بتحرّك تريليون دولار من سوق الـ AI حاليًا. المقال ده هيخليك تفهمها بشكل كامل في 8 دقائق.
المشكلة باختصار: الكمبيوتر بيشوف أرقام، مش كلام
الكمبيوتر في النهاية ماكينة حسابية. مبيعرفش "قطة" ولا "هرّة" ولا "cat". بيعرف 0 و 1 بس. لو حابب تعمل بحث ذكي يفهم إن المعنى واحد، محتاج تحوّل الكلام لشكل رقمي. الطريقة القديمة كانت بتدّي كل كلمة رقم عشوائي: قطة=1، هرّة=2، كلب=3. المشكلة؟ الأرقام دي مالهاش أي علاقة بالمعنى. الرقم 1 و 2 قريبين من بعض رقميًا، بس ده مش بيقولك إن "قطة" و "هرّة" متشابهين دلاليًا.
Embeddings بتحل المشكلة دي بطريقة عبقرية: بدل ما تدّي كل كلمة رقم واحد، بتدّيها قائمة طويلة من الأرقام (متجه - vector) بتحدّد موقعها في فضاء وهمي متعدد الأبعاد. الكلمات المتقاربة في المعنى بتبقى متقاربة في المكان.
مثال مبسط جدًا: خرايط جوجل للكلمات
تخيّل إنك بتفتح خريطة جوجل. القاهرة والإسكندرية قريبين من بعض على الخريطة لأنهم في نفس الدولة. طوكيو بعيدة جدًا لأنها في قارة تانية. إحداثيات كل مدينة (latitude, longitude) بتقولك مكانها بالظبط.
Embeddings بتعمل نفس الكلام، بس مع الكلمات. كل كلمة بتاخد إحداثيات في "خريطة المعاني". الفرق إن الخريطة دي مش بُعدين زي الجغرافيا، دي 384 بُعد أو 1024 بُعد أو 1536 بُعد حسب الموديل. بشري عادي مش هيقدر يتخيّل ده، بس الحاسبات بتشتغل عليه عادي جدًا.
- قطة → [0.21, -0.45, 0.88, ..., 0.13] (1536 رقم)
- هرّة → [0.22, -0.43, 0.89, ..., 0.12] (1536 رقم قريبة جدًا من اللي فوق)
- سيارة → [-0.71, 0.32, -0.15, ..., 0.66] (1536 رقم بعيدة تمامًا)
الكلمتين الأولانيتين قريبين في الفضاء لأن المعنى واحد. الكلمة التالتة بعيدة لأن المعنى مختلف. كل اللي الكمبيوتر بيعمله إنه بيقيس المسافة بين النقط دي.
التعريف العلمي الدقيق
بعد ما فهمنا الفكرة بالمثال، نرجع للتعريف العلمي. الـ Embedding هو تمثيل متجه (vector representation) في فضاء متعدد الأبعاد عالي الكثافة (dense, high-dimensional space)، بيتم توليده عبر شبكة عصبية اتدرّبت على كميات هائلة من النصوص. الشبكة بتتعلم تحط الكلمات اللي بتظهر في سياقات متشابهة في مواقع متجاورة، بناءً على فرضية اسمها Distributional Hypothesis اللي قالها اللغوي John Rupert Firth سنة 1957: "ستعرف الكلمة من رفقتها" (You shall know a word by the company it keeps).
المسافة بين متجهين بتتحسب عادةً بـ cosine similarity: قيمة بين -1 و 1. لو القيمة قريبة من 1، الكلمتين متشابهتين دلاليًا. لو قريبة من 0، مالهومش علاقة. لو قريبة من -1، عكس بعض.