نماذج اللغة2003تأسيسي10 دقيقة قراءة

نموذج لغوي عصبي احتمالي

A Neural Probabilistic Language Model

Bengio, Y. · Ducharme, R. · Vincent, P. · Jauvin, C. — JMLR

المشكلة

في نماذج n-gram التقليدية، كل كلمة ما هي إلا رمز مُعتم لا يحمل أي معلومات عن معناه. لو كان القاموس يحتوي 100,000 كلمة، فإن عدد الثلاثيات الممكنة يصل إلى 10¹⁵ — الأغلبية الساحقة منها لن تظهر في أي بيانات تدريب مهما كبُرت. حتى لو شاهد جملة «القطة تمشي في الغرفة»، فلن يتعلّم شيئاً يساعده على فهم «الكلب يركض في الحجرة»، رغم التشابه الواضح بين الجملتين. هذه هي : عدد تتابعات الكلمات الممكنة يتضخّم بشكل أُسّي، بينما بيانات المتاحة محدودة دائماً.

الإسهام

الفكرة الجوهرية هي استبدال جدول الكلمات المنفصل بفضاء متّجهي متّصل يتعلّمه النموذج من البيانات. كل كلمة تُربَط كثيف من خلال جدول بحث مشترك C. عند التنبؤ بالكلمة التالية، تُؤخذ تضمينات الكلمات n−1 السابقة وتُدمج في متّجه واحد، ثم تُمرَّر عبر شبكة عصبية أمامية تحتوي طبقة خفية بدالة tanh يليها softmax على كامل المفردات. الشبكة وجدول التضمينات يُدرَّبان معاً بتعظيم لوغاريتم الأرجحية باستخدام الانحدار التدريجي. النتيجة: الكلمات المتشابهة في المعنى تحصل على متّجهات متقاربة، فيصبح النموذج قادراً على التعامل مع تتابعات لم يرها أثناء التدريب.

الأثر

هذه الورقة هي التي أسّست مفهوم تضمينات الكلمات المُتعلَّمة — وهي الفكرة التي غيّرت مسار الحقل بأكمله. كل ما جاء بعدها من Word2Vec وGloVe وFastText وصولاً إلى طبقات التضمين في كل محوِّل حديث يعود في جذوره إلى هذه الورقة. أثبتت أن الشبكات العصبية قادرة على التفوّق على نماذج n-gram في نمذجة اللغة، وأرست أساس تعلّم التمثيلات في معالجة اللغة الطبيعية، وألهمت بشكل مباشر نماذج التتابع ونماذج التدريب المسبق التي تشكّل عصب الذكاء الاصطناعي اليوم.

تخيّل أن نموذج n-gram يعمل مثل دليل هاتف ورقي: يعرف أن «أحمد محمد» رقمه 0123، لكن لو سألته عن «أحمد محمود» — جاره في البيت المجاور — لن يجد أي نتيجة. كل اسم مدخل منفصل تماماً عن غيره، ولا توجد أي علاقة بين المُدخلات.

ما فعله بنجيو هو استبدال دليل الهاتف بـخريطة للحيّ: الأشخاص الذين يسكنون بالقرب من بعضهم تتشابه مواقعهم على الخريطة. لو عرفت أين يسكن أحمد، تستطيع تخمين مكان محمود لأنهما جيران. هذه الخريطة تمثّل فضاء التضمين، والقرب على الخريطة يعكس القرب في المعنى.

المشكلة: لعنة الأبعاد في اللغة

قبل عام 2003، كانت تُبنى بالكامل على مبدأ العدّ. نموذج الثلاثيات مثلاً يُقدّر P(wtwt1,wt2)P(w_t \mid w_{t-1}, w_{t-2}) بأن يحسب كم مرة ظهرت هذه الثلاثية في بيانات التدريب. المشكلة هنا هي الانفجار التوافقي: إذا كان حجم V|V|، فإن عدد الثلاثيات الممكنة يصل إلى V3|V|^3. حين يكون V=100,000|V| = 100{,}000، نحصل على 101510^{15} تركيبة — وهذا رقم أكبر بكثير من أي بيانات تدريب متاحة. النتيجة أن أغلب تتابعات الكلمات المعقولة لغوياً لن يراها النموذج أبداً، وسيمنحها صفر.

تقنيات التمهيد مثل Kneser-Ney وGood-Turing تحاول توزيع جزء صغير من كتلة الاحتمالية على الثلاثيات الغائبة، لكنها في النهاية ترقيع على تمثيل منفصل بطبيعته. النموذج لا يملك أي إحساس بالتشابه بين الكلمات: لا يستطيع أن يستفيد من كون «كلب» و«قطة» كلاهما حيوان لينقل ما تعلّمه من سياق إلى آخر. كل كلمة بالنسبة له مجرد رمز مُعتم — خانة رقم 4721 في جدول، لا أكثر.

افتح في المختبر
راقب كيف ينفجر عدد الثلاثيات الممكنة مع زيادة حجم القاموس أو طول السياق. معظم الخانات تبقى فارغة لأن النموذج لم يرها قط ولا يستطيع تقييمها.
تستيقظ التجربة عند وصولك…

الفكرة: أعطِ كل كلمة موقعاً على خريطة

فكرة بنجيو تقوم على ركيزتين أساسيتين:

1. للكلمات. الفكرة هي ربط كل كلمة ww في القاموس بـ حقيقي القيم C(w)RmC(w) \in \mathbb{R}^m. عملياً هذا جدول بحث — مصفوفة أبعادها V×m|V| \times m — تتعلّم صفوفها عبر الانتشار العكسي. بدلاً من أن يرى النموذج كلمة «كلب» كرمز مُعتم رقمه 4721، يصبح لديه وصف رقمي لها: [0.32,0.15,0.87,][0.32, -0.15, 0.87, \ldots]. الكلمات المتشابهة في الاستخدام ينتهي بها المطاف بمتّجهات متقاربة، لأن تكافئ النموذج حين يُعطي احتمالات متقاربة لسياقات متشابهة.

2. دالة احتمالية عصبية. بدلاً من العدّ، نستخدم لحساب P(wtwt1,,wtn+1)P(w_t \mid w_{t-1}, \ldots, w_{t-n+1}). تُؤخذ تضمينات كلمات السياق وتُدمج في متّجه واحد طويل، ثم يُمرَّر عبر لإنتاج توزيع احتمالي على كامل المفردات.

هنا تكمن قوة الفكرة: إذا كان لكلمتَي «كلب» و«قطة» تضمينات متقاربة، فإن النموذج حين يتعلّم أن «كلب يركض في الغرفة» جملة محتملة، يصبح تلقائياً يعرف أن «قطة تركض في الغرفة» محتملة أيضاً — دون أن يرى الجملة الثانية في التدريب. هنا يحدث عبر البنية الهندسية المتّصلة لفضاء التضمين، لا عبر الحفظ.

افتح في المختبر
اسحب الكلمات لترى كيف يُمكّن القرب في فضاء التضمين من التعميم. الكلمات المتشابهة في المعنى تتجمّع بالقرب من بعضها.
تستيقظ التجربة عند وصولك…

البنية: بحث → دمج → طبقة خفية → softmax

يعمل النموذج عبر أربع مراحل متتالية. لنفترض أن لدينا كلمات السياق wtn+1,,wt1w_{t-n+1}, \ldots, w_{t-1} ونريد التنبؤ بالكلمة التالية:

المرحلة 1 — بحث التضمين. نأخذ كل كلمة من كلمات السياق ونبحث عنها في المصفوفة المشتركة CC لنحصل على متّجه سماتها C(wti)RmC(w_{t-i}) \in \mathbb{R}^m. الجدول واحد لجميع المواقع، أي أن النموذج يتعلّم تمثيلاً واحداً لكل كلمة يستخدمه في كل السياقات.

المرحلة 2 — الدمج. تُدمج متّجهات السمات الـ n1n{-}1 في متّجه واحد xR(n1)mx \in \mathbb{R}^{(n-1) \cdot m}. يمكن تخيّل الأمر كأن النموذج يصفّ بطاقات الكلمات جنباً إلى جنب ليرى سياقه كاملاً في نظرة واحدة.

المرحلة 3 — الطبقة الخفية. يُحوَّل المتّجه xx عبر طبقة خفية: h=tanh(Hx+d)h = \tanh(Hx + d). دالة tanh تضغط القيم إلى المجال [1,1][-1, 1] وتُدخل اللاخطّية الضرورية حتى يتمكّن النموذج من التقاط أنماط معقدة في اللغة.

المرحلة 4 — طبقة المخرجات. مصفوفة UU تحوّل hh إلى متّجه من V|V| درجة، درجة واحدة لكل كلمة في القاموس. ثم تُطبّق دالة لتحويل هذه الدرجات إلى توزيع احتمالي. يوجد أيضاً مسار مباشر اختياري من xx إلى المخرجات يتخطّى الطبقة الخفية: y=b+Wx+Utanh(Hx+d)y = b + Wx + U\tanh(Hx+d).

افتح في المختبر
تنقّل بين المراحل الأربع خطوة بخطوة. لاحظ كيف يتدفّق تضمين كل كلمة سياقية عبر الشبكة حتى يُنتج توزيعاً احتمالياً في النهاية.
تستيقظ التجربة عند وصولك…
P(wtwt1,,wtn+1)=eywti=1VeyiP(w_t \mid w_{t-1}, \ldots, w_{t-n+1}) = \frac{e^{y_{w_t}}}{\sum_{i=1}^{|V|} e^{y_i}}
احتمالية softmax للكلمة التاليةالمخرج yy هو متّجه من الدرجات الخام (logits)، درجة واحدة لكل كلمة في القاموس. تأخذ دالة softmax كل درجة وترفعها أُسّياً، ثم تقسم على مجموع جميع القيم المرفوعة، فنحصل على توزيع احتمالي صحيح. الكلمة التي تحصل على أعلى احتمالية هي التنبّؤ الأفضل للنموذج.
y=b+Wx+Utanh(Hx+d)y = b + Wx + U\tanh(Hx + d)
المخرج الكامل للشبكة (مع الاتصال المباشر الاختياري)تبدأ العملية بتمرير التضمينات المُدمَجة عبر الطبقة الخفية التي تتعلّم أنماطاً وعلاقات مفيدة بين الكلمات. بعد ذلك تتحوّل هذه التمثيلات إلى درجات لكل كلمة محتملة في المخرجات. الاتصال المباشر الإضافي يسمح لبعض المعلومات من التضمينات الأصلية بالوصول إلى المخرجات مباشرةً دون المرور بالطبقة الخفية، مما يُسهّل انسياب المعلومات ويُسرّع التعلّم.

التدريب: كل شيء يتعلّم معاً

هدف التدريب هو تعظيم لوغاريتم أرجحية بيانات التدريب. في كل موضع tt من النص، يحسب النموذج logP(wtwt1,,wtn+1)\log P(w_t \mid w_{t-1}, \ldots, w_{t-n+1})، والخسارة الإجمالية هي متوسط مُضافاً إليه حدّ من نوع .

النقطة الجوهرية هنا: لا تتوقف عند أوزان الشبكة، بل تتدفّق راجعةً عبر طبقة المخرجات، ثم عبر الطبقة الخفية، وصولاً إلى مصفوفة التضمين CC نفسها. هذا يعني أن كل مثال تدريبي لا يُحسّن أوزان الشبكة فحسب، بل يُعدّل أيضاً متّجهات السمات لكلمات السياق. مع مرور الوقت، الكلمات التي تظهر في سياقات متشابهة تتقارب تدريجياً في فضاء التضمين. هذا هو التعلّم المشترك: التمثيلات ودالة التنبؤ تتطوّران معاً في آنٍ واحد.

في تجارب 2003، استُخدم على مجموعة Brown (1.18 مليون كلمة، قاموس 16,383 كلمة) ومجموعة AP News (14 مليون كلمة، قاموس 17,964 كلمة). نافذة سياق بحجم n=5n=5 مع بُعد تضمين m=3060m=30\text{–}60 وحجم طبقة خفية h=50100h=50\text{–}100 كانت الإعدادات المعتادة. التدريب استغرق أياماً على عتاد تلك الفترة — لأن عنق زجاجة softmax وحده (حساب درجة لكل كلمة في القاموس في كل خطوة) كان يستهلك 99.7% من إجمالي الحساب.

L=1Tt=1TlogP(wtwt1,,wtn+1)+λθ2L = -\frac{1}{T}\sum_{t=1}^{T}\log P(w_t \mid w_{t-1}, \ldots, w_{t-n+1}) + \lambda \|\theta\|^2
هدف التدريب — سالب لوغاريتم الأرجحية مع التنظيمهدف التدريب يجمع بين غايتين: الأولى دفع النموذج لإعطاء احتمالية عالية للكلمة الصحيحة التالية في بيانات التدريب. والثانية معاقبة القيم الكبيرة جداً في المعاملات من خلال التنظيم. هذا التوازن يساعد النموذج على التعميم بشكل أفضل على نصوص لم يرها، ويحدّ من خطر فرط التخصيص.

لماذا ينجح النموذج: هندسة التعميم

لفهم قوة هذا النموذج، لنقارن عدد المُعامِلات. جدول n-gram لنموذج ثلاثي مع V=100,000|V| = 100{,}000 يحتاج إلى 101510^{15} مُدخل. نموذج بنجيو يحتاج تقريباً V×m+(n1)mh+hV|V| \times m + (n{-}1) \cdot m \cdot h + h \cdot |V| مُعامِل. في تجربة AP News (V=17,964|V| = 17{,}964، m=60m = 60، h=100h = 100، n=6n = 6) يبلغ المجموع نحو 2.9 مليون — أي أقل بمراتب ضخمة.

لكن الأمر لا يتعلق بقلّة المُعامِلات فقط. الفكرة الأعمق أن فضاء التضمين المتّصل يُنشئ بنية هندسية يكون فيها التعميم مدمجاً بشكل طبيعي. حين يرى النموذج «القطة جلست على السجادة»، يُعدّل التدرّج تضمينات «قطة» بحيث تصبح السياقات المحتوية على «قطة» أكثر احتمالاً. إذا كانت «كلب» تمتلك تضميناً قريباً بالفعل، فإن كتلة الاحتمالية تنتقل تلقائياً إلى سياقات «كلب» أيضاً — بلا قاعدة صريحة ولا تدخّل يدوي. هذا نقل للمعرفة يحدث عبر الهندسة الداخلية لفضاء التضمين.

أظهرت الورقة تحسّناً في بنسبة 10–20% مقارنةً بأفضل نماذج الثلاثيات المُمهَّدة على مجموعتَي Brown وAP News. والأهم من ذلك أن دمج النموذج العصبي مع نموذج ثلاثيات أعطى نتائج أفضل من كليهما منفردَين، مما يدلّ على أن النموذجَين يلتقطان أنماطاً مختلفة ومتكاملة.

افتح في المختبر
استكشف كيف تهيمن طبقة المخرجات على الحساب. جرّب تغيير حجم القاموس وبُعد الطبقة الخفية لترى كيف ينفجر عدد المُعامِلات.
تستيقظ التجربة عند وصولك…

النموذج في شيفرة برمجية

نموذج بنجيو اللغوي العصبي بلغة PyTorchpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch import torch.nn as nn
class NeuralLM(nn.Module):
    def __init__(self, vocab_size, embed_dim, context_len, hidden_dim):
        super().__init__()
        # المرحلة 1: جدول بحث التضمين المشترك C
        self.C = nn.Embedding(vocab_size, embed_dim)
        # المرحلة 3: الطبقة الخفية H
        self.hidden = nn.Linear(context_len * embed_dim, hidden_dim)
        # المرحلة 4: طبقة المخرجات U
        self.output = nn.Linear(hidden_dim, vocab_size)
        # الاتصال المباشر الاختياري W
        self.direct = nn.Linear(context_len * embed_dim, vocab_size, bias=False)

    def forward(self, context_ids):
        # المرحلة 1: بحث التضمينات
        x = self.C(context_ids)              # (batch, n-1, m)
        # المرحلة 2: الدمج
        x = x.view(x.size(0), -1)            # (batch, (n-1)*m)
        # المرحلة 3: الطبقة الخفية مع tanh
        h = torch.tanh(self.hidden(x))        # (batch, h)
        # المرحلة 4: درجات المخرجات + المسار المباشر
        logits = self.output(h) + self.direct(x)  # (batch, |V|)
        return logits  # طبّق softmax أو Cross-Entropy Loss

الإرث: من التضمينات إلى كل شيء

أثر هذه الورقة لا يقتصر على ما قدّمته مباشرةً، بل يمتد إلى ثلاث أفكار أساسية أصبحت ركائز للذكاء الاصطناعي الحديث:

تمثيلات مُتعلَّمة بدلاً من سمات مصنوعة يدوياً. قبل بنجيو، كانت سمات معالجة اللغة الطبيعية تُصمَّم يدوياً (وسوم الأقسام النحوية، أشجار الإعراب، المعاجم). بعد بنجيو، أصبح النموذج يتعلّم سماته بنفسه من البيانات — وتبيّن أن هذه السمات المُتعلَّمة أفضل بكثير. هذا المبدأ يقود اليوم كل نظام .

تدريب مشترك للتمثيلات والمهمة. جدول التضمين وشبكة التنبؤ يتشاركان دالة الخسارة نفسها. فكرة التعلّم من طرف إلى طرف هذه — حيث يتشكّل التمثيل بحسب ما يحتاج النموذج للتنبؤ به — هي الأساس الذي بُني عليه GPT وكل نموذج لغوي حديث.

الفضاءات المتّصلة تمكّن التعميم التوافقي. الرمز المنفصل لا يحمل إلا هويته ذاتها — لا علاقة له بأي رمز آخر. لكن نقطة في فضاء متّصل ترث خصائص من جيرانها بشكل طبيعي. هذا الإدراك الهندسي هو ما يجعل المحوِّلات قادرة على التعميم — فكل رأس يعمل في فضاء متّصل يعود في أصله إلى طبقة تضمين بنجيو.

  1. 2003

    بنجيو — النموذج اللغوي العصبي الاحتمالي

    قدّم تضمينات الكلمات المُتعلَّمة وأثبت أن الشبكات العصبية قادرة على التفوّق على نماذج n-gram في نمذجة اللغة، وأرسى أساس تعلّم التمثيلات في معالجة اللغة الطبيعية.

  2. 2008

    كولوبير ووستون — بنية موحّدة لمعالجة اللغة

    أثبتا أن بنية عصبية واحدة مزوّدة بتضمينات مُدرَّبة مسبقاً تستطيع التعامل مع مهام لغوية متعدّدة في آنٍ واحد — موسِّعَين فكرة تضمينات بنجيو نحو التعلّم متعدّد المهام.

  3. 2013

    Word2Vec — تضمينات على نطاق واسع

    جرّد ميكولوف وزملاؤه بنية بنجيو إلى جوهرها (بإزالة الطبقة الخفية أو تبسيطها) ودرّبوها على مليارات الكلمات. حوّلوا تضمينات الكلمات من فكرة بحثية إلى أداة عملية لكل تطبيقات معالجة اللغة.

  4. 2014

    Seq2Seq — التضمينات تقود الترجمة الآلية

    استخدم ساتسكيفر وفينيالز ولي تضمينات مُتعلَّمة داخل شبكات تكرارية بنمط مُرمِّز-فاكّ ترميز للترجمة الآلية — في امتداد مباشر لفكرة التدريب المشترك التي طرحها بنجيو.

  5. 2018

    ULMFiT — التضمينات تتحوّل إلى تدريب مسبق

    أثبت هوارد ورودر أن نموذجاً لغوياً مُدرَّباً مسبقاً على نصوص عامة يمكن ضبطه بدقّة لمهام التصنيف باستخدام بيانات مُعنوَنة قليلة جداً — وهو نموذج «التدريب المسبق ثم الضبط الدقيق» الذي نبت من بذرة بنجيو.

  6. 2017

    المحوِّل — التضمينات تلتقي بالانتباه

    كل محوِّل يبدأ بطبقة تضمين تربط الرموز بمتّجهات كثيفة — الفكرة ذاتها التي قدّمها بنجيو عام 2003، لكنها الآن تُغذّي آلية الانتباه الذاتي بدلاً من طبقة خفية أمامية.

كل نموذج لغوي حديث — GPT وClaude وGemini وLLaMA — يبدأ بجدول تضمين مُتعلَّم. ذلك الجدول هو مصفوفة بنجيو CC بعد تكبيرها. ورقة 2003 لم تقترح مجرّد نموذج، بل اقترحت طريقة تفكير: أن التمثيل الصحيح المُتعلَّم من البيانات أقوى من أي قدر من الهندسة اليدوية.

المرجعBengio, Ducharme, Vincent, Jauvin. A Neural Probabilistic Language Model. JMLR, 2003.

مصطلحات هذه الورقة