בקטע הזה נסביר על שתי שיטות נפוצות להטמעה:
- צמצום ממדים
- חילוץ הטמעה (embedding) ממודל גדול יותר של רשת נוירונים
שיטות לצמצום המאפיינים
יש שיטות מתמטיות רבות לתיאור המבנה החשוב של מרחב בעל ממדים גבוהים במרחב בעל ממדים נמוכים. באופן תיאורטי, אפשר להשתמש בכל אחת מהשיטות האלה כדי ליצור הטמעה למערכת של למידת מכונה.
לדוגמה, ניתוח רכיבים ראשיים (PCA) שימש ליצירת הטמעות מילים. בהינתן קבוצה של מכונות כמו וקטורים של שקית מילים, PCA מנסה למצוא מאפיינים בהתאמת נתונים גבוהה שאפשר לכווץ למאפיין אחד.
אימון הטמעה (embedding) כחלק מרשת נוירונים
אפשר ליצור הטמעה בזמן אימון של רשת נוירונים למשימה היעד. הגישה הזו מאפשרת לכם לקבל הטמעה מותאמת אישית במיוחד למערכת שלכם, אבל ייתכן שהיא תימשך יותר זמן מאשר אימון ההטמעה בנפרד.
באופן כללי, אפשר ליצור שכבה מוסתרת בגודל d ברשת העצבית, שתיקרא שכבת הטמעה. הערך d מייצג גם את מספר הצמתים בשכבה המוסתרת וגם את מספר המאפיינים במרחב הטמעה. אפשר לשלב את שכבת ההטמעה הזו עם כל התכונות והשכבות המוסתרות האחרות. כמו בכל רשת עצבית עמוקה, הפרמטרים יותאמו במהלך האימון כדי למזער את האובדן בצמתים בשכבת הפלט של הרשת.
נחזור לדוגמה להמלצה על אוכל. המטרה שלנו היא לחזות ארוחות חדשות שהמשתמשים יאהבו על סמך הארוחות האהובות עליהם כרגע. ראשית, נוכל לאסוף נתונים נוספים על חמשת סוגי המזון המועדפים על המשתמשים. לאחר מכן נוכל לבנות מודל של המשימה הזו כבעיית למידה בפיקוח. הגדרנו ארבעה מתוך חמשת המזונות המובילים האלה כנתוני מאפיינים, ואז הקצינו באופן אקראי את המזון החמישי בתור התווית החיובית שהמודל שלנו שואף לחזות, וביצענו אופטימיזציה של התחזיות של המודל באמצעות פונקציית אובדן מסוג softmax.
במהלך האימון, מודל רשת העצבים ילמד את המשקלים האופטימליים של הצמתים בשכבה החבויה הראשונה, שמשמש כשכבת הטמעה (embedding). לדוגמה, אם המודל מכיל שלושה צמתים בשכבה החבויה הראשונה, הוא עשוי לקבוע ששלושת המאפיינים הרלוונטיים ביותר של מוצרי מזון הם 'סנדוויץ', 'קינוח' ו'נוזל'. באיור 12 מוצג ערך הקלט המקודד ב-one-hot של 'נקניק', שהומר וקיבל צורה של וקטור תלת-ממדי.
במהלך האימון, המשקלים של שכבת ההטמעה יעברו אופטימיזציה כך שוקטור ההטמעה של דוגמאות דומות יהיו קרובים יותר זה לזה. המאפיינים הנפרדים של שכבת ההטמעה (מה שכל צומת בשכבת ההטמעה מייצג) מובאים רק לעיתים רחוקות כמו 'קינוחים' או 'נזילות'. לפעמים אפשר להסיק את המשמעות שלהם, אבל זה לא תמיד נכון.
אפשרויות ההטמעה בדרך כלל יהיו ספציפיות למשימה, ויהיו שונות אחת מהשנייה כשהמשימה שונה. לדוגמה, להטמעות שנוצרו על ידי מודל סיווג צמחוני לעומת לא צמחוני עשויות להיות שני מימדים: תוכן בשר ותוכן חלב. לעומת זאת, למיפויים שנוצרים על ידי סיווג של ארוחת בוקר לעומת ארוחת ערב במטבח אמריקאי עשויים להיות מאפיינים שונים במקצת: תוכן קלוריות, תוכן דגנים ותוכן בשר. יכול להיות שהמילים 'קורנפלקס' ו'כריך ביצה ובקון' יהיו קרובות זו לזו במרחב הטמעת הנתונים של סיווג לארוחת בוקר לעומת סיווג לארוחת ערב, אבל רחוקות זו מזו במרחב הטמעת הנתונים של סיווג לאוכל צמחוני לעומת סיווג לאוכל לא צמחוני.
אימון של הטמעת מילה
בקטע הקודם, הוצגה לכם ויזואליזציה של קשרים סמנטיים במרחב הטמעת הנתונים (embedding) של word2vec.
Word2vec הוא אחד מהאלגוריתמים הרבים שמשמשים לאימון של הטמעות מילים. הוא מסתמך על השערת ההתפלגות כדי למפות מילים דומות מבחינה סמנטית לווקטורים של הטמעה (embedding) שקרובים מבחינה גיאומטרית. ההשערה הסטטיסטית קובעת שמילים שיש להן לעיתים קרובות את אותן מילים שכנות נוטות להיות דומות מבחינה סמנטית. המילים 'כלב' ו'חתול' מופיעות לעיתים קרובות ליד המילה 'וטרינרי', והעובדה הזו משקפת את הדמיון הסמנטי ביניהן. כפי שניסח זאת ב-1957 הלינגויסט ג'ון פירת' (John Firth), "החברה שבה המילה נמצאת היא זו שמגדירה אותה".
בסרטון הבא מוסבר על שיטה אחרת ליצירת הטמעת מילים כחלק מתהליך האימון של רשת עצבית, באמצעות מודל פשוט יותר:
הטמעות סטטיות לעומת הטמעות לפי הקשר
אחת מהמגבלות של הטמעת מילים, כמו זו שנדונה בסרטון שלמעלה, היא שהן סטטיות. כל מילה מיוצגת בנקודה אחת במרחב וקטורים, למרות שלמילה יכולות להיות משמעויות שונות בהתאם לאופן שבו היא משמשת במשפט. בתרגיל הקודם, גילינו את הקושי במיפוי של דמיון סמנטי למילה orange,שיכולה לציין צבע או סוג של פרי.
הטמעות הקשריות פותחו כדי לטפל בחסרונות האלה. הטמעות לפי הקשר מאפשרות ליצור כמה ייצוגים של אותה מילה, כאשר כל ייצוג כולל מידע על ההקשר שבו המילה נמצאת בשימוש. בהטמעה לפי הקשר, למילה כתום יש שני ייצוגים נפרדים: אחד לייצוג השימוש ה"צבע" במילה, כמו במשפטים כמו "בסוודר האהוב עלי יש פסים כתומים", והשני לייצוג השימוש במילה "פרי", כמו במשפטים כמו "התפוז נשלף מהעץ לפני שהוא הבשיל לגמרי".