הטמעות: קבלת הטמעות

יש כמה דרכים לקבל הטמעה, כולל אלגוריתם משוכלל שנוצר ב-Google.

שיטות סטנדרטיות להפחתת מאפיינים

יש שיטות מתמטיות רבות לתיעוד המבנה החשוב של מרחב רב-מימדי בשטח עם מאפיינים נמוכים. מבחינה תיאורטית, כל אחת מהשיטות האלה יכולה לשמש ליצירת הטמעה של מערכת ללמידת מכונה.

לדוגמה, ניתוח רכיבים ראשי (PCA) שימש ליצירת הטמעות של מילים. בהינתן קבוצה של מקרים כמו וקטור מילים, PCA מנסה למצוא מאפיינים בעלי קשרים גבוהים מאוד שניתן לכווץ למאפיין אחד.

Word2vec

Word2vec הוא אלגוריתם שהומצא ב-Google לאימון של הטמעת מילים. Word2vec מסתמך על השערת ההפצה למיפוי מילים דומות מבחינה סמנטית כדי לסגור וקטורים גיאומטריים מוטמעים.

השערת ההפצה קובעת שמילים שמבטאות לעיתים קרובות את אותן המילים הסמוכות נוטות להיות דומות מבחינה סמנטית. "dog" and "cat" מופיע לעתים קרובות בקרבת המילה "וטרינרים" ועובדה זו משקפת את הדמיון הסמנטי שלהם. הבלשן ג'ון פירת הגדיר זאת ב-1957, "אתם תכירו מילה של החברה שהחברה משמרת.

Word2Vec מנצל מידע הקשרי כזה באמצעות אימון של רשת נוירונים כדי להבחין בין קבוצות של מילים לבין מילים שמקובצות באקראי. שכבת הקלט מספקת ייצוג דליל של מילת יעד יחד עם מילת הקשר אחת או יותר. הקלט הזה מתחבר לשכבה נסתרת אחת וקטנה יותר.

בגרסה אחת של האלגוריתם, המערכת יוצרת דוגמה שלילית על ידי החלפת מילת רעש אקראית עבור מילת היעד. לפי הדוגמה החיובית " המטוס טס" המערכת עשויה להתחלף ב "jogging" כדי ליצור את הדוגמה השלילית עם הניגודיות &"ג'וגינג טס&&;

הגרסה השנייה של האלגוריתם יוצרת דוגמאות שליליות על ידי התאמת מילת המפתח האמיתית למילות מפתח שנבחרו באופן אקראי. הן יכולות לכלול את הדוגמאות החיוביות (הטיסה, המטוס), (הטיסה, המטוס) והדוגמאות השליליות (המורכבת, המטוס), (מי המטוס) ולמידה לזהות אילו זוגות מופיעים בפועל בטקסט.

עם זאת, המסווג אינו היעד האמיתי של אף אחת מהגרסאות של המערכת. לאחר אימון המודל, יש לכם הטמעה. ניתן להשתמש במשקלים שמקשרים את שכבת הקלט לשכבה המוסתרת כדי למפות ייצוגים של מילים לווקטורים קטנים יותר. ניתן לעשות שימוש חוזר בהטמעה הזו בסיווגים אחרים.

למידע נוסף על word2vec, צפו במדריך בנושא tenorflow.org

הדרכת הטמעה כחלק ממודל גדול יותר

תוכלו גם ללמוד הטמעה כחלק מרשת הנוירונים של משימת היעד. הגישה הזו מאפשרת לכם להטמיע אותה בהתאם למערכת שבה אתם משתמשים, אבל לפעמים התהליך עשוי להימשך זמן רב יותר.

באופן כללי, אם יש לכם נתונים מעטים (או נתונים צפופים שאתם רוצים להטמיע), תוכלו ליצור יחידת הטמעה שהיא רק סוג מיוחד של יחידה מוסתרת בגודל d. ניתן לשלב את שכבת ההטמעה הזו עם תכונות אחרות ושכבות נסתרות. כמו בכל DNN, השכבה הסופית תהיה ההפסד מהאופטימיזציה. לדוגמה, נניח שאנחנו מבצעים סינון שיתופי, כאשר המטרה היא לחזות את תחומי העניין של משתמשים. ניתן להגדיר זאת כבעיה של למידה מבוקרת על ידי הקצאת אקראי (או לחיצה ארוכה) על חלק קטן מהסרטים שהמשתמש צפה בהם כתוויות חיוביות, ולאחר מכן אופטימיזציה של אובדן רך.

איור 5. ארכיטקטורת DNN לדוגמה ללמידה של הטמעת סרטים מנתוני סינון משותפים.

דוגמה נוספת: אם רוצים ליצור שכבת הטמעה למילים שבמודעה אמיתית, כחלק מ-DNN, כדי לחזות מחירי דיור, לאחר מכן מבצעים אופטימיזציה של ה-L2 באמצעות מחיר המכר הידוע של בתים בנתוני האימון בתור התווית.

כשאתם מטמיעים מימד D, כל פריט ממופה לנקודה במרחב עם מאפיין d כך שהפריטים הדומים יהיו בקרבת מקום במרחב המשותף. איור 6 עוזר להמחיש את הקשר בין המשקלים שנלמדו בשכבת ההטמעה לבין התצוגה הגיאומטרית. משקולות הקצה בין צומת הקלט לצמתים בשכבת המימד d תואמים לערכי הקואורדינטות של כל ציר d.

איור הממחיש את הקשר בין המשקלים של שכבת ההטמעה לבין התצוגה הגיאומטרית של ההטמעה.

איור 6. תצוגה גיאומטרית של המשקלים בשכבת ההטמעה.