Word2Vec
تعلم التضمينات بالتنبؤ بالسياق: نموذجا CBOW وSkip-gram وأخذ العينات السالبة.
مهمة التنبؤ
للجملة «تعلم الآلة فرع من الذكاء الاصطناعي» ونافذة بحجم 2 حول «فرع»:
- CBOW: \(\{\)تعلم، الآلة، من، الذكاء\(\}\) ← فرع
- Skip-gram: فرع ← كل كلمة من كلمات السياق
دالة الهدف مع العينات السالبة
لزوج حقيقي \((w, c)\) و\(k\) كلمات سالبة \(c_i^-\) مسحوبة عشوائياً:
$$\log \sigma(\mathbf{v}_c^\top \mathbf{v}_w) + \sum_{i=1}^{k} \log \sigma(-\mathbf{v}_{c_i^-}^\top \mathbf{v}_w)$$
يرفع النموذج تشابه الأزواج الحقيقية ويخفض تشابه الأزواج العشوائية.
التدريب باستخدام gensim
from gensim.models import Word2Vec
sentences = [
["تعلم", "الآلة", "فرع", "من", "الذكاء", "الاصطناعي"],
["التعلم", "العميق", "فرع", "من", "تعلم", "الآلة"],
# ... آلاف أو ملايين الجمل المقطعة والمطبعة
]
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1,
sg=1, negative=5, epochs=20, workers=4, seed=0)
print(model.wv.most_similar("الآلة", topn=3))
model.save("w2v_ar.model")مع بيانات صغيرة كهذه لن تكون النتائج ذات معنى؛ التضمينات الجيدة تحتاج إلى ملايين الكلمات.
المعاملات المهمة
| المعامل | الأثر |
|---|---|
vector_size | أبعاد التضمين (100–300 شائع) |
window | حجم السياق: صغير يلتقط علاقات نحوية، كبير يلتقط علاقات موضوعية |
sg | 1 لـ Skip-gram و0 لـ CBOW |
min_count | تجاهل الكلمات النادرة |
negative | عدد العينات السالبة |
التقييم
- داخلي: اختبارات التشابه والقياس.
- خارجي: أثر التضمينات على مهمة فعلية مثل التصنيف، وهو الأهم عملياً.
مصطلحات الدرس
- CBOW Continuous Bag of Words
- نموذج يتعلم التضمينات بالتنبؤ بالكلمة المركزية من متوسط تمثيلات كلمات سياقها.
- Skip-gram Skip-gram Model
- نموذج يتعلم التضمينات بالتنبؤ بكلمات السياق المحيطة انطلاقاً من الكلمة المركزية.
- أخذ العينات السالبة Negative Sampling
- تقريب يدرب النموذج على تمييز أزواج (كلمة، سياق) الحقيقية من أزواج عشوائية بدلاً من حساب softmax على كل المعجم.
الملخص
قدّم Mikolov وزملاؤه Word2Vec عام 2013 كطريقة فعالة لتعلم تضمينات الكلمات من نصوص ضخمة عبر مهمة تنبؤ بسيطة. نموذج CBOW يتنبأ بالكلمة من سياقها، ونموذج Skip-gram يتنبأ بكلمات السياق من الكلمة. يجعل أخذ العينات السالبة (Negative Sampling) التدريب سريعاً بتحويل المسألة إلى تصنيف ثنائي بين أزواج حقيقية وعشوائية. تتوفر تطبيقاته في مكتبة gensim.
أسئلة مراجعة
-
ما الفرق بين CBOW وSkip-gram؟
CBOW يتنبأ بالكلمة من سياقها، وSkip-gram يتنبأ بالسياق من الكلمة؛ وSkip-gram يعمل عادة أفضل مع الكلمات النادرة.
-
لماذا نحتاج إلى أخذ العينات السالبة؟
لأن حساب softmax على معجم من مئات آلاف الكلمات في كل خطوة مكلف جداً.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة