וורד2פק - ייצוג מילים כמספרים
Word2Vec
תומאס מיקולוב ואחרים (Google) · Efficient Estimation of Word Representations in Vector Space
2 דק' קריאה
הרקע: הבעיה שלפני
מחשבים לא מבינים מילים; הם מבינים מספרים. כדי לעבד שפה טבעית, היה צורך לייצג מילים בצורה מספרית. השיטה הנפוצה (one-hot encoding) הפכה כל מילה לווקטור שבו נמצא 1 במקום אחד ואפס בכל השאר. אבל הייצוג הזה היה ריק מתוכן: המילים "מלך" ו"מלכה" לא היו קשורות במספרים - כל מילה הייתה לווקטור שונה לחלוטין ובאורך עצום (גודל של מיליוני אוצר מילים). חסר מיץ סמנטי: לא היתה שום דרך למדוד אם שתי מילים דומות במשמעות.
הרעיון המרכזי: מילים קרובות בטקסט קרובות במרחב
הרעיון של Word2Vec מבוסס על ההנחה של "מילים שמופיעות בהקשרים דומים הן דומות במשמעות" - פילוסופיה שנהגתה על ידי בלשנים הרבה קודם. במילים אחרות, אפשר ללמוד את המשמעות של מילה על ידי הסביבה שלה במשפטים.
האנלוגיה: כמו שאפשר להכיר אדם לפי החברים שהוא מסתובב איתם, כך אפשר להכיר מילה לפי המילים שמופיעות סביבו. המטרה הסופית היא לייצר מרחב מרובה-ממדים (למשל 300 ממדים) שבו כל מילה מקבלת נקודה, ומילים דומות נמצאות קרובות.
התוצאה המרהיבה: אפשר לבצע חישובים על מילים. "מלך" - "גבר" + "אישה" מקבל תוצאה קרובה ל"מלכה". הממדיות הזו פתחה עולם שלם של הבנת שפה.
איך זה עובד: ללמוד לווקטורים
Word2Vec בא בגרסה עיקרית: Skip-gram, שבה אנו מקבלים מילה מרכזית ומנבאים את המילים שסביבה, ו-CBOW, שבה מקבלים את המילים שמסביב ומנבאים את המילה המרכזית. בשני המקרים, במהלך האימון על טקסט ענק (מיליארדי מילים), הרשת לומדת לכל מילה וקטור.
המנגנון הבסיסי: על כל מילה מרכזית מופיעה הסתברות למילה שמסביב בהינתן הווקטורים. פונקציית הסופטמקס מחשבת את ההסתברות שמתחלקת בין כל המילים:
מכיוון שחישוב הסופטמקס על כל מיליוני המילים בכל צעד הוא יקר, המחברים השתמשו בטכניקה של דגימה שלילית (negative sampling): במקום לחשב על כל אוצר המילים, הדגימו רק מילים מעטות "לא נכונות" כדי ללמוד את ההבדל בחכמה. זה הפך את האימון למהיר מספיק כדי לעבוד על קבצי טקסט ענקיים.
התוצאות המרכזיות: יחסים סמנטיים במספרים
Word2Vec רשם יכולת חסרת תקדים ללכוד יחסים סמנטיים ודקדוקיים בפעולות אריתметиיות על הווקטורים. מבחני האנלוגיה שהמחברים הדגימו - "מלך פחות גבר ועוד אישה שווה מלכה" - הפכו למפורסמים. זה הוכיח שהווקטורים לוכדים לא רק דמיון אלא גם יחסים מופשטים.
מבחינה כמותית, הווקטורים שיפרו מאוד את הביצועים של משימות NLP עוקבות, משיכבות טקסט ועד לסיווג סנטימנט.
המורשת והחשיבות: יסודות הייצוג המילולי
Word2Vec הפך את הרעיון של embeddings (ייצוג דחוס של ישות במרחב) למוצר מרכזי ב-NLP. הווקטורים שלו שימשו בהרחבה כקלט לרשתות עוקבות, והניחו את היסוד לגישת ה"טבילה מלומדת" (learned embeddings) שבבסיס כל המודלים הלשוניים המודרניים.
ההיסטוריה הזו, של שינוי קטן לכאורה (ייצוג מספרי חכם), הפכה להיות הבסיס עליו נבנה ה-Transformer והמודלים כמו BERT ו-GPT.
מגבלות ושאלות פתוחות
לווקטורים הלומדים מטקסט יש מגבלות מהותיות: הם אינם מבינים הקשר (מילה כמו "מגדל" מופיעה כנקודה אחת בין בניין ובמשמעות העלייה); הפעולה האריתметиית לא תמיד חדה בעולם האמיתי; והווקטורים מוגבלים למילה יחידה, לא לביטויים. בעיית "מילה אחת / משמעויות רבות" (polysemy) נותרה פתוחה, ועם הזמן הוחלף ההקשר החד-משמעי הזה בגישות הקשריות (כמו BERT).
סיכום נקודות מפתח
- Word2Vec מתמט מיליות לווקטורים מספריים עמוקים ומרווחים.
- ההנחה הליבה: מילים בהקשרים דומים דומות במשמעות.
- אנלוגיות סמנטיות נפתרות על ידי פעולות פשוטות על הווקטורים.
- זהו היסוד של כל ייצוגי השפה המודרניים.