نماذج اللغة2018متوسط10 دقيقة قراءة
التمثيلات السياقية العميقة للكلمات
Deep Contextualized Word Representations
Peters, M. E. · Neumann, M. · Iyyer, M. · Gardner, M. · Clark, C. · Lee, K. · Zettlemoyer, L. — NAACL
المشكلة
قبل ELMo، كانت تمثيلات الكلمات جامدة تماماً: Word2Vec وGloVe تُعطي كل كلمة متجهاً واحداً مُستخلَصاً من إحصاءات التواجد المشترك. كلمة «يلعب» تحمل ذاته سواء كان المقصود مسرحيةً أو رياضةً أو لهو أطفال. هذه التمثيلات الجامدة تترك للنموذج اللاحق وحده مهمة تمييز المعنى المقصود، رغم محدودية السياق المتاح له. أما نقل التعلّم في معالجة اللغة الطبيعية فكان سطحياً — يمكنك تهيئة نموذجك بتمثيلات مُدرَّبة مسبقاً، لكنها لا تحمل أي فهم على مستوى الجملة.
الإسهام
ELMo (تضمينات من نماذج اللغة): تمثيلات سياقية عميقة للكلمات، مُستخرَجة من الحالات الداخلية لنموذج لغوي ثنائي الاتجاه (biLM). يبدأ النظام لبناء تمثيل أوّلي مستقل عن السياق، ثم تمرّ هذه التمثيلات عبر شبكة biLSTM من طبقتين تقرأ الجملة في الاتجاهين. كل طبقة تلتقط خصائص لغوية مختلفة: البنية النحوية في الطبقات الدنيا، والمعنى في العليا. التمثيل النهائي هو تجميع خطي مُتعلَّم يُحدَّد لكل مهمة على حدة، بحيث تختار كل مهمة المزيج الأنسب لها من الطبقات. مجرد إضافة ELMo إلى نماذج قائمة حقّق نتائج غير مسبوقة على ستة معايير في معالجة اللغة الطبيعية، مع تقليص نسبي للخطأ يتراوح بين 6% و25%.
الأثر
أثبت ELMo أن الحالات الداخلية لنموذج لغوي مُدرَّب مسبقاً تُشكّل مصدراً غنياً من المعرفة اللغوية القابلة للنقل — وهذا كان تحوّلاً جذرياً عن نموذج التمثيلات الثابتة. ألهم مباشرةً BERT (الذي استبدل biLSTM بالمحوِّل واستخدم التقنيع بدل نمذجة اللغة) وULMFiT (الذي استكشف أساليب ). كما أرسى فكرة أن كل طبقة في الشبكة ترمّز مستوى لغوياً مختلفاً، وهي ملاحظة لا تزال محورية في تحليل نماذج المحوِّلات اليوم. باختصار، كان ELMo الجسر بين حقبة Word2Vec وثورة « ثم الضبط الدقيق».
تخيّل أن GloVe أشبه بـصورة جواز السفر: تلتقط ملامحك، لكنها تبدو واحدة سواء كنت تضحك في حفلة أو تركّز في العمل. الصورة هي أنت، لكنها لا تقول شيئاً عن اللحظة.
ELMo أشبه بـبثّ فيديو حيّ: يراك في سياقك — تعبيراتك تتبدّل بحسب مَن تُحادثه، وما سمعته للتوّ، وما ستقوله بعد لحظة. لقطتان لك في موقفين مختلفين تبدوان مختلفتين فعلاً.
والأهم أن ELMo لا يصوّر من زاوية واحدة، بل يُشغّل كاميرتين في الوقت ذاته — واحدة تتبع الجملة من أولها إلى آخرها، والأخرى من آخرها إلى أولها — ثم يدمج المشهدين ليحصل كل كلمة على صورة كاملة من جميع الجهات.
المشكلة: متجه واحد لكل كلمة لا يكفي
GloVe وWord2Vec كانتا خطوة كبيرة: حوّلتا الكلمات إلى متجهات تجعل الكلمات المتقاربة في المعنى قريبة من بعضها في . لكن المشكلة أن كل كلمة تحصل على متجه واحد فقط مهما تغيّر سياقها. خذ مثلاً:
- «جلس بجانب عين الماء» — ينبوع
- «أُصيب في عينه اليسرى» — عضو الإبصار
- «هو عين المنطق» — جوهر الشيء وذاته
GloVe تضغط هذه المعاني الثلاثة في نقطة واحدة في فضاء المتجهات. يبقى على النموذج اللاحق أن يُميّز المعنى المقصود وحده، وكل ما لديه هو هذا المتوسط الضبابي. أما المعاني النادرة فتكاد إشارتها تضيع تماماً.
البنية: نموذج لغوي ثنائي الاتجاه بطبقات عميقة
يبني ELMo الكلمات على ثلاث مراحل، كل واحدة تُضيف طبقة أغنى من المعلومات:
المرحلة الأولى: شبكة التفافية على مستوى الأحرف. بدلاً من أن يبحث عن الكلمة في جدول مفردات ثابت، يقرأ ELMo أحرف الكلمة حرفاً حرفاً عبر بـ 2048 ، تليها طبقتا highway وإسقاط إلى 512 بُعداً. الفائدة أن ELMo يستطيع التعامل مع أي كلمة — حتى الأخطاء الإملائية والمصطلحات النادرة — لأنه يبني التمثيل من الأحرف صعوداً، تماماً كما تستطيع أنت تهجئة كلمة لم تصادفها من قبل.
المرحلة الثانية: شبكة LSTM ثنائية الاتجاه بطبقتين. تنتقل تمثيلات الأحرف إلى شبكة biLSTM من طبقتين، كل طبقة فيها 4096 وحدة مع إسقاط إلى 512 بُعداً و بينهما. الشبكة الأمامية تقرأ الجملة من أولها إلى آخرها وتتنبأ بالكلمة التالية، والخلفية تقرأها بالعكس وتتنبأ بالكلمة السابقة. حصيلة الاتجاهين معاً: تمثيل يستوعب سياق الجملة الكامل.
المرحلة الثالثة: مزج . كل طبقة تلتقط شيئاً مختلفاً: الشبكة الالتفافية في الأسفل تُوفّر ملامح صرفية، الطبقة الأولى من biLSTM تلتقط الأنماط النحوية، والطبقة الثانية تلتقط المعنى الدلالي. بدلاً من الاكتفاء بالطبقة العليا، يأخذ ELMo متوسطاً موزوناً مُتعلَّماً من الطبقات الثلاث — والأوزان تُتعلَّم بشكل مستقل لكل مهمة لاحقة.
هدف التدريب: تنبَّأ بالكلمة التالية، في الاتجاهين
الأمامي يقرأ الجملة من أولها إلى آخرها، وعند كل موضع يحاول التنبؤ بالكلمة التالية اعتماداً على ما سبقها. النموذج الخلفي يفعل العكس تماماً — يتنبأ بكل كلمة سابقة من خلال ما يليها. في ELMo، يُدرَّب الاتجاهان معاً: الشبكة الالتفافية على الأحرف وطبقة softmax مشتركتان بين الاتجاهين، لكن LSTM تبقى منفصلة لكل اتجاه. هدف هو تعظيم مجموع لوغاريتم في الاتجاهين:
لتوضيح الفكرة: تخيّل أن الشبكة الأمامية قرأت «القطة جلست على» وتحاول التنبؤ بكلمة «الحصيرة». في المقابل، الشبكة الخلفية قرأت «الحصيرة على جلست» (بترتيب معكوس) وتحاول التنبؤ بكلمة «القطة». كل اتجاه يبني توقّعاً مختلفاً، والنتيجة أن كل كلمة تحصل على رؤية شاملة للجملة بأكملها.
الابتكار الجوهري: مزج الطبقات بما يناسب كل مهمة
في الأعمال السابقة، كان المعتاد استخدام الطبقة العليا فقط من الشبكة المُدرَّبة مسبقاً. الرؤية التي جاء بها ELMo مختلفة: كل طبقة تحمل معلومات قيّمة، والمهام المختلفة تحتاج طبقات مختلفة. مهمة مثل تستفيد أكثر من الطبقات السفلى لأنها تركّز على البنية النحوية، بينما مهمة مثل تستفيد من الطبقات العليا لأنها تحمل المعنى. بدلاً من اختيار طبقة واحدة، يتيح ELMo لكل مهمة أن تتعلّم وصفة المزج الخاصة بها:
استخدام ELMo: أضِفه إلى أي نموذج
من أبرز ما يميّز ELMo عملياً هو سهولة دمجه مع أي نموذج قائم. لا تحتاج إلى إعادة تصميم شيء، كل ما عليك:
- مرِّر جملتك عبر النموذج اللغوي المُدرَّب مسبقاً (مع تجميد أوزانه).
- احسب التجميع الموزون من الطبقات للحصول على متجه ELMo لكل .
- ألحِق متجه ELMo بـتضمين الكلمة الأصلي: .
- أدخِل هذا التمثيل المُثرَى إلى نموذجك كالمعتاد.
في بعض المهام مثل SQuAD وSNLI، وجد الباحثون أن إضافة متجهات ELMo عند مخرج شبكة RNN الخاصة بالمهمة — وليس عند مدخلها فحسب — يُحقّق تحسيناً إضافياً. هذا الأسلوب يعمل بشكل جيد خصوصاً حين يستخدم النموذج آلية ، لأن الانتباه يستطيع الاستعلام مباشرةً عن التمثيلات الداخلية للنموذج اللغوي.
ماذا تتعلّم كل طبقة؟
تضمّنت الورقة تحليلاً لافتاً: اختبر الباحثون ما تعرفه كل طبقة من طبقات biLSTM على حدة:
- الطبقة الأولى (السفلى) أقوى في النحو. حين تُستخدم وحدها لمهمة تصنيف أقسام الكلام، تتفوق على الطبقة الثانية. فهي تلتقط البنية النحوية — هل الكلمة اسم أم فعل، فاعل أم مفعول به.
- الطبقة الثانية (العليا) أقوى في الدلالة. حين تُستخدم وحدها لمهمة توضيح معنى الكلمة، تحقق دقة F1 تبلغ 69.0 — وهو أداء يُنافس أنظمة مُوجَّهة تعتمد على سمات مصنوعة يدوياً. فهي تلتقط المعنى في سياقه: أي معنى من معاني «عين» هو المقصود.
هذا الفصل بين الطبقات منطقي: لا بد أن تُحلَّل القواعد النحوية أولاً قبل فهم المعنى، فالطبقات السفلى تتعلم البنية والعليا تبني عليها لالتقاط الدلالة. الأمر أشبه بقارئ يُدرك أولاً أن «عين» اسم في هذه الجملة (نحو)، ثم يُقرّر أنها تعني ينبوعاً (دلالة).
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def elmo_representation(char_cnn_out, bilstm_layer1, bilstm_layer2,
task_weights, task_gamma):
"""
حساب متجه ELMo لرمز واحد.
char_cnn_out: (d,) — تمثيل على مستوى الأحرف (مستقل عن السياق)
bilstm_layer1: (d,) — مخرج الطبقة 1 من biLSTM (غني بالنحو)
bilstm_layer2: (d,) — مخرج الطبقة 2 من biLSTM (غني بالدلالة)
task_weights: (3,) — أوزان مُقيَّسة بـ softmax، تُتعلَّم لكل مهمة
task_gamma: عدد قياسي — يُتعلَّم لكل مهمة، يُحجِّم المتجه النهائي
"""
# تكديس كل الطبقات: [الشبكة الالتفافية، طبقة 1، طبقة 2]
layers = np.stack([char_cnn_out, bilstm_layer1, bilstm_layer2])
# مجموع موزون — كل مهمة تتعلم وصفة المزج الخاصة بها
elmo_vec = task_gamma * np.sum(task_weights[:, None] * layers, axis=0)
return elmo_vec # الشكل: (d,)
def add_elmo_to_model(word_embedding, elmo_vec):
"""ألحق متجه ELMo بالتضمين الموجود."""
return np.concatenate([word_embedding, elmo_vec])
# الشكل: (d_word + d_elmo,) — مرّره إلى نموذج مهمتكالنتائج: تصدُّر كل المعايير
أكثر ما يلفت في نتائج ELMo هو اتساعها. مجرد إضافة متجهات ELMo إلى نماذج قائمة — دون تغيير بنيتها — حقّق نتائج غير مسبوقة على ستة معايير مختلفة دفعةً واحدة:
- SQuAD (الإجابة عن الأسئلة): F1 ارتفع من 81.1 إلى 85.8 (بزيادة 4.7 نقطة، أي تقليص 24.9% من الخطأ)
- SNLI (الاستلزام النصي): الدقة من 88.0 إلى 88.7
- SRL (تصنيف الأدوار الدلالية): F1 من 81.4 إلى 84.6 (بزيادة 3.2)
- Coref (حلّ الإحالة المرجعية): F1 من 67.2 إلى 70.4 (بزيادة 3.2)
- NER (التعرّف على الكيانات المسمّاة): F1 من 90.15 إلى 92.22 (بزيادة 2.06)
- SST-5 (): الدقة من 51.4 إلى 54.7 (بزيادة 3.3)
التحسّن كان لافتاً بشكل خاص في SQuAD: الزيادة بمقدار 4.7 نقطة تجاوزت ضعف ما حققه CoVe (نهج سياقي أقدم مبني على الترجمة الآلية). والأهم من ذلك: باستخدام 1% فقط من بيانات تدريب SRL، وصل ELMo إلى أداء يعادل النموذج الأساسي الذي استخدم 10% من البيانات — دليل واضح على أن التمثيلات الأجود تُقلّل الحاجة إلى بيانات مُعنوَنة بشكل كبير.
لماذا كان مهماً: الجسر نحو BERT
لكن حدود ELMo كانت واضحة أيضاً: الاتجاهان الأمامي والخلفي يُلحَقان ببعضهما دون تفاعل حقيقي. شبكتا LSTM لا تتبادلان أي معلومات أثناء الترميز — كل واحدة تبني تمثيلها بمعزل عن الأخرى، ثم تُلصَق النتائج في النهاية. هذا شكل سطحي من ثنائية الاتجاه. بعد ستة أشهر فقط، حلّ BERT هذه المشكلة باستخدام محوِّل يتيح لكل رمز أن ينتبه إلى كل رمز آخر في الوقت ذاته — ثنائية اتجاه عميقة فعلاً. لكن الفكرة الجوهرية لـ BERT — أن تمثيلات النموذج اللغوي المُدرَّب مسبقاً قابلة للنقل بقوة — كانت فكرة ELMo في الأصل.
2013
Word2Vec
متجهات كلمات ثابتة مبنية على إحصاءات التواجد المشترك. معادلة «ملك - رجل + امرأة ≈ ملكة» كشفت عن بنية خطية كامنة في فضاء الكلمات، لكن كل كلمة تبقى محبوسة في متجه واحد.
2014
GloVe
دمج إحصاءات التواجد المشترك الشامل في المتجهات. تدريب أفضل، لكن القيد ذاته باقٍ: متجه ثابت واحد لكل كلمة.
2018
ELMo — تضمينات سياقية
أول تمثيلات سياقية تُتبنَّى على نطاق واسع. تعتمد على الحالات الداخلية لنموذج لغوي ثنائي الاتجاه مع مزج الطبقات، وتصدّرت 6 معايير. أثبتت أن التمثيلات المُدرَّبة مسبقاً قابلة للنقل فعلاً.
2018
ULMFiT
أظهر هوارد ورودر أن الضبط الدقيق لنموذج لغوي مُدرَّب مسبقاً — وليس مجرد استخلاص السمات منه — يعمل عبر مهام مختلفة حين يُقترن بجداول تعلّم مدروسة. ابتكار موازٍ لـ ELMo.
2018
BERT — ثنائية اتجاه عميقة
استبدل biLSTM بمرمِّز محوِّل، ونمذجة اللغة التقليدية بنمذجة اللغة المُقنَّعة. كل رمز يرى جميع الرموز الأخرى أثناء الترميز، مما يحل مشكلة الدمج السطحي في ELMo. وبهذا أصبح نهج «التدريب المسبق ثم الضبط الدقيق» هو المعيار.
2019
GPT-2 — التوسيع في الحجم
وسّعت OpenAI فاكّ ترميز المحوِّل إلى 1.5 مليار معامل، وأظهرت أن زيادة البيانات والمعاملات تُفضي إلى قدرات ناشئة. فكرة ELMo — أن النماذج اللغوية المُدرَّبة مسبقاً تنقل المعرفة — مأخوذة هنا إلى أقصى مدى.
المساهمة الأعمق لـ ELMo ليست بنيته — فشبكات biLSTM سرعان ما حلّ محلّها المحوِّل. المساهمة الحقيقية هي الفكرة: أن نموذجاً لغوياً مُدرَّباً على نصوص خام يبني تمثيلات داخلية غنية بما يكفي لتعزيز أي مهمة في معالجة اللغة الطبيعية، وأن الأسلوب الأمثل هو كشف جميع الطبقات وترك المهمة تختار ما يناسبها. كل نموذج مُدرَّب مسبقاً جاء بعد ذلك — BERT وGPT وT5 وClaude — يقف على هذا الأساس.
المرجعPeters, Neumann, Iyyer, Gardner, Clark, Lee, Zettlemoyer. Deep Contextualized Word Representations. NAACL, 2018.
مصطلحات هذه الورقة
- التضمين السياقيContextual Embedding
- النموذج اللغوي ثنائي الاتجاهBidirectional Language Model
- شبكة الذاكرة الطويلة قصيرة المدىLSTM
- شبكة التفافية على مستوى الأحرفCharacter-Level CNN
- التدريب المسبقPretraining
- الضبط الدقيقFine-Tuning
- إزالة غموض معاني الكلماتWord Sense Disambiguation
- نقل التعلمTransfer Learning
- استخلاص السماتFeature Extraction
- الوصلة التجاوزيةResidual Connection
- الشبكة الطُرُقيةHighway Network