معالجة اللغات الطبيعية متوسط · Intermediate 10 دقيقة

GloVe

GloVe (Global Vectors)

تضمينات من إحصاءات التواجد المشترك العامة: الفكرة والصيغة والمقارنة مع Word2Vec.

تقدّمك في المسار0%

الفكرة

النسب بين احتمالات التواجد المشترك تحمل المعنى. مثلاً «جليد» يظهر مع «صلب» أكثر من «بخار»، و«بخار» يظهر مع «غاز» أكثر، بينما يظهر الاثنان بنسبة متقاربة مع «ماء». GloVe يصمم التضمينات بحيث تعكس هذه النسب.

دالة الهدف

$$J = \sum_{i,j} f(X_{ij})\left(\mathbf{w}_i^\top \tilde{\mathbf{w}}_j + b_i + \tilde{b}_j – \log X_{ij}\right)^2$$

حيث \(X_{ij}\) عدد مرات تواجد الكلمتين معاً، و\(f\) دالة وزن تحد من أثر الأزواج النادرة والشائعة جداً.

استخدام متجهات جاهزة

ملفات GloVe نصية: كل سطر كلمة متبوعة بقيم المتجه.

import numpy as np
def load_glove(path, limit=None):
    vecs = {}
    with open(path, encoding="utf-8") as f:
        for i, line in enumerate(f):
            if limit and i >= limit:
                break
            word, *vals = line.rstrip().split(" ")
            vecs[word] = np.asarray(vals, dtype=np.float32)
    return vecs
# glove = load_glove("glove.6B.100d.txt")   # بعد تنزيله من صفحة المشروع

المتجهات الرسمية المنشورة إنجليزية. للعربية تتوفر متجهات fastText مدربة على ويكيبيديا وCommon Crawl بلغات كثيرة منها العربية، ويمكن أيضاً تدريب GloVe أو Word2Vec على مجموعة عربية خاصة.

مقارنة

Word2VecGloVefastText
المصدرنوافذ محليةإحصاءات عامةنوافذ محلية + n-grams حرفية
الكلمات خارج المعجملالانعم (من أجزائها)
مناسبة للعربيةجيدةجيدةمناسبة جداً للصرف الغني

الموقع اليوم

التضمينات الثابتة خفيفة وسريعة ومفيدة للموارد المحدودة، لكن التضمينات السياقية من المحوّلات تتفوق عليها في معظم مهام الفهم.

مصطلحات الدرس

GloVe Global Vectors for Word Representation
طريقة لتعلم تضمينات الكلمات بمطابقة الضرب النقطي للمتجهات مع لوغاريتم إحصاءات التواجد المشترك.
مصفوفة التواجد المشترك Co-occurrence Matrix
مصفوفة تسجل عدد مرات ظهور كل زوج من الكلمات معاً ضمن نافذة سياق في المجموعة النصية.

الملخص

GloVe الذي قدمه Pennington وSocher وManning عام 2014 يتعلم تضمينات الكلمات من مصفوفة التواجد المشترك العامة للمجموعة النصية، بحيث يقترب الضرب النقطي لمتجهي كلمتين من لوغاريتم عدد مرات تواجدهما معاً. يجمع بين مزايا طرق تحليل المصفوفات العامة وطرق النوافذ المحلية مثل Word2Vec، وتتوفر له متجهات مدربة مسبقاً على مجموعات إنجليزية كبيرة.

أسئلة مراجعة

  1. ما الفرق الجوهري بين GloVe وWord2Vec؟

    GloVe يتعلم من إحصاءات التواجد المشترك العامة المحسوبة مسبقاً، وWord2Vec يتعلم من نوافذ سياق محلية بالتنبؤ.

  2. لماذا تُستخدم دالة وزن في هدف GloVe؟

    لتقليل أثر الأزواج النادرة جداً المليئة بالضوضاء ومنع الأزواج الشائعة جداً من الهيمنة.

المصادر والمراجع

  1. Pennington, Socher & Manning (2014) GloVe: Global Vectors for Word Representation — EMNLP
  2. GloVe project page — Stanford NLP
  3. Bojanowski et al. (2016) Enriching Word Vectors with Subword Information (fastText) — arXiv

إكمال الدرس