כדי לטפל במגבלות מסוימות של סינון מבוסס-תוכן, הסינון המשותף מאפשר להשתמש בדמיון בין המשתמשים לבין הפריטים בו-זמנית כדי לספק את ההמלצות. זה מאפשר המלצות בוטות. כלומר, מודלים של סינון משותפים יכולים להמליץ על פריט למשתמש א' בהתאם לתחומי עניין של משתמש דומה ב'. בנוסף, ניתן ללמוד את ההטמעות באופן אוטומטי, בלי להסתמך על הנדסה ידנית של תכונות.
דוגמה להמלצה על סרט
נניח שיש לכם מערכת להמלצות על סרטים, שבה נתוני האימון כוללים מטריצת משוב שבה:
- כל שורה מייצגת משתמש.
- כל עמודה מייצגת פריט (סרט).
המשוב על הסרטים מתחלק לאחת משתי קטגוריות:
- תוכן בוטה – המשתמשים מציינים עד כמה הם אהבו סרט מסוים לפי דירוג מספרי.
- מרומז – אם משתמש צופה בסרט, המערכת מסיקה שהמשתמש מתעניין.
כדי לפשט את התהליך, נניח שמטריצת המשוב היא בינארית. כלומר, ערך של 1 מעיד על עניין בסרט.
כשמשתמש מבקר בדף הבית, המערכת צריכה להמליץ על סרטים על סמך:
- דמיון לסרטים שהמשתמש סימן בעבר
- סרטים שמשתמשים דומים אהבו
לצורך ההדגמה, נפעיל הנדסה ידנית של מספר תכונות לסרטים המתוארים בטבלה הבאה:
סרט | דירוג | תיאור |
---|---|---|
זריקות פרש כהה | ההורים מוזהרים, חלק מהסרטים אינם מתאימים לצפייה מתחת לגיל 13 | אתגר "באטמן" נועד להציל את גות'אם סיטי כתוצאה מטניחה גרעינית בסרט ההמשך הזה לניר האפל, המוגדר ביקום של הקומיקס DC. |
הארי פוטר והסלע'ס | PG | ילד יתום מגלה שהוא מכשף ורשום בבית הספר הוגוורטס לכישלון וקסמים, שבו הוא נוקט את הקרב הראשון שלו נגד לורד וולדורט הרע. |
שרק | PG | מפלצת חביבה והצד הרוען יוצא לדרך כדי להציל את הנסיכה פיונה, שנכונה בטירה על ידי דרקון. |
טריפלים של בלוויל | ההורים מוזהרים, חלק מהסרטים אינם מתאימים לצפייה מתחת לגיל 13 | כאשר אלוף הרכיבה המקצועי חטוף במהלך טור דה פראנס, מסעו של סבתו וכלב עודף משקל בחו"ל כדי להציל אותו, בעזרת שלושה זמרי ג'אז מבוגרים. |
מנטו | R | חניכה נוקטת מאמץ נורא לפתור את רצח אשתו על ידי קעקועים של גופות. |
הטמעה בתלת-ממד
נניח שאנחנו מקצים לכל סרט סקאלר \([-1, 1]\) שמתאר אם הסרט מיועד לילדים (ערכים שליליים) או למבוגרים (ערכים חיוביים). נניח שאנחנו גם מקצים סקלר לכל משתמש ב- \([-1, 1]\) , שמתאר את תחומי העניין של המשתמש בסרטים של ילדים (קרוב יותר ל-1-) או סרטים למבוגרים (קרוב יותר ל-1+). המוצר המוטמע של הסרט והטמעת המשתמש צריך להיות גבוה יותר (יותר מ-1) עבור סרטים שאנחנו מצפים מהמשתמש לאהוב.
בתרשים הבא, כל סימן וי מזהה סרט שמשתמש מסוים צפה בו. למשתמש השלישי ולמשתמש הרביעי יש העדפות שמוסברות היטב על ידי התכונה הזו – המשתמש השלישי מעדיף סרטים לילדים, והמשתמש הרביעי מעדיף סרטים למבוגרים. עם זאת, ההעדפות של המשתמש הראשון והשנייה' התכונה הזו לא מוסברות היטב.
הטמעה דו-ממדית
תכונה אחת לא הספיקה כדי להסביר את ההעדפות של כל המשתמשים. כדי להתגבר על הבעיה הזו, בואו נוסיף תכונה שנייה: המידה שבה כל סרט הוא שובר קופות או סרט אומנותי. תכונה נוספת מאפשרת לנו עכשיו לייצג כל סרט באמצעות ההטמעה הדו-מימדית הבאה:
אנחנו שוב מציבים את המשתמשים שלנו באותו שטח הטמעה כדי להסביר באופן הטוב ביותר את מטריצת המשוב: לכל צמד (משתמש, פריט) , אנחנו רוצים שמוצר הנקודה של הטמעת המשתמש יהיה קרוב ל-1 והמשתמש יצפה ל-1 כשהוא יצפה בסרט, ו-0 שוב.
בדוגמה זו, הטמענו את ההטמעות באופן ידני. בפועל, ניתן ללמוד את ההטמעות באופן אוטומטי, שהוא העוצמה של מודלים של סינון שיתופי. בשני הקטעים הבאים נדון במודלים השונים כדי ללמוד את הה לקבלות האלה ואיך ללמד אותן.
הגישה המשותפת של הגישה הזו נראית לעין כאשר המודל לומד את ההטמעות. נניח שהוקטורים להטמעה של הסרטים קבועים. לאחר מכן, המודל יכול ללמוד וקטור הטמעה כדי שהמשתמשים יוכלו להסביר בצורה הטובה ביותר את ההעדפות שלהם. כתוצאה מכך, הטמעות של משתמשים עם העדפות דומות יהיו דומות זו לזו. באופן דומה, אם ההטמעה של המשתמשים תתוקן, נוכל ללמוד את הטמעת הסרטים כדי להסביר בצורה הטובה ביותר את מטריצת המשוב. כתוצאה מכך, הטמעות של סרטים שאהבתי משתמשים דומים יהיו קרובות במרחב ההטמעה.