בדף הקודם הוסבר איך לשלב שכבת softmax, רשת נוירונים חוזרת (RNN) למערכת המלצות. הדף הזה מתייחס לעומק של לנתוני האימון של המערכת הזאת.
נתוני אימון
נתוני האימון של softmax כוללים את תכונות השאילתה \(x\) וקטור של פריטים שהמשתמש יצר איתם אינטראקציה (מיוצג בתור את התפלגות הסבירות \(p\)). האירועים האלה מסומנים בכחול ב- לפי האיור הבא. המשתנים של המודל הם המשקולות בשכבות השונות. הם מסומנים בכתום בניסוחים הבאים דמות. המודל מאומן בדרך כלל באמצעות כל וריאציה של ירידה סטוכסטית הדרגתית.
דגימה שלילית
מכיוון שפונקציית האובדן משווה בין שני וקטורי הסתברות \(p, \hat p(x) \in \mathbb R^n\) (העקרונות הבסיסיים הפלט של המודל, בהתאמה), שדרגת ההפסד (בשאילתה אחת, \(x\)) יכול להיות יקר מאוד אם גודל הקורפוס \(n\) גדול מדי.
אפשר להגדיר מערכת לחישוב הדרגתיות רק על הפריטים החיוביים (פריטים שפעילים בווקטור נתוני הבסיס). אבל אם המערכת בזמן אימון על זוגות חיוביים בלבד, המודל עלול לסבול מתקפלות, כפי שמוסבר בהמשך.
המודל יכול ללמוד איך למקם את הטמעות השאילתה/הפריטים של רכיב נתון צבעים אחד ביחס לשני (לכלול בצורה נכונה את הדמיון ביניהם בצבע), אבל הטמעות בצבעים שונים עשויות להגיע לאותו אזור של מרחב ההטמעה, תופעה זו, בתור קיפול, עלול להוביל להמלצות שקריות: בזמן השאילתה, המודל עלול לחזות באופן שגוי ציון גבוה לפריט קבוצה אחרת.
דוגמאות שליליות: פריטים עם התווית 'לא רלוונטי' לשאילתה נתונה. הצגת הדוגמאות השליליות של המודל במהלך האימון מלמדת את המודל והטמעות של קבוצות שונות צריך לדחוף אחת מהשנייה.
במקום להשתמש בכל הפריטים כדי לחשב את השיפוע (שיכול להיות גם יקר) או להשתמש רק בפריטים חיוביים (וכתוצאה מכך המודל נוטה מתקפלות), אפשר להשתמש בדגימה שלילית. ליתר דיוק, אתם מחשבים שיפוע משוער, באמצעות הפריטים הבאים:
- כל הפריטים החיוביים (אלה שמופיעים בתווית היעד)
- דוגמה של פריטים שליליים (\(j\) ב- \({1, …, n}\))
קיימות אסטרטגיות שונות לדגימת פריטים שליליים:
- אפשר לדגום את התבנית באופן אחיד.
- אפשר לתת הסתברות גבוהה יותר לפריטים j עם ערך גבוה יותר \(\psi(x) . V_j\). באופן אינטואיטיבי, אלה דוגמאות שתורמים הכי הרבה להדרגתית); הדוגמאות האלה לעיתים קרובות שנקראים מילות מפתח שליליות קשות.
פירוק לגורמים של מטריצות לעומת softmax
מודלים של DNN פותרים מגבלות רבות של פירוק לגורמים של מטריצות, אבל בדרך כלל יקר יותר לאימון ולהרצת שאילתות. הטבלה שבהמשך מסכמת חלק מהשינויים על ההבדלים החשובים בין שני המודלים.
פירוק לגורמים | Softmax DNN | |
---|---|---|
תכונות השאילתה | לא קל לכלול את המאפיין. | אפשר לכלול את הקובץ. |
הפעלה במצב התחלתי (cold start) | לא עובד בקלות עם אוצר מילים שאילתות או פריטים. ניתן להשתמש בשיטות היוריסטיקה מסוימות (לדוגמה, שאילתה חדשה, ממוצע הטמעות של שאילתות דומות). | טיפול קל בשאילתות חדשות. |
קיפול | אפשר להפחית את כמות החלקים המתקפלים בקלות על ידי שינוי המשקל שלא נצפה ב-WALS. | נטייה לקיפול. נדרשת לשימוש שיטות כמו דגימה שלילית או כוח כבידה. |
מדרגיות של האימון | ניתן להתאמה בקלות לסביבות גדולות מאוד לפחות מאות מיליוני פריטים או יותר, אבל רק אם מטריצת הקלט דלילה. | קשה יותר להתאים לעומס (scaling) עד גדול מאוד וגם את קורפורה. אפשר להשתמש בשיטות מסוימות כמו גיבוב (hashing), דגימה שלילית וכו'. |
מדרגיות של הצגת מודעות | ההטמעות U, V הן סטטיות, ועל קבוצה של מועמדים אפשר לחשב מראש ולשמור אותם. | הטמעות פריטים V הן סטטיות
ואפשר לשמור אותם.
הטמעת השאילתה בדרך כלל וצריך לחשב את המודל בזמן השאילתה, כך שהמודל יקר יותר להציג. |
לסיכום:
- פירוק לגורמים של מטריצות בדרך כלל הוא הבחירה הטובה יותר עבור תאגידים גדולים. קל יותר לבצע התאמה לעומס (scaling), זול יותר לשאילתות ופחות יתקפלו.
- מודלים של DNN יכולים לתעד העדפות מותאמות אישית בצורה טובה יותר, אבל קשה יותר לבצע אימון ויקר יותר לשאילתות. רצוי להשתמש במודלים של DNN פירוק לגורמים של מטריצות לצורך הציון כי מודלים של DNN יכולים להשתמש תכונות נוספות כדי להשיג יותר רלוונטיות. כמו כן, בדרך כלל למודלים של DNN, כי אכפת לך בעיקר לדרג קבוצת מועמדים מסוננת מראש, שנחשבת שהם רלוונטיים.