סינון שיתופי

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

דוגמה להמלצה על סרט

נניח שיש לכם מערכת להמלצות על סרטים, שבה נתוני האימון כוללים מטריצת משוב שבה:

  • כל שורה מייצגת משתמש.
  • כל עמודה מייצגת פריט (סרט).

המשוב על הסרטים מתחלק לאחת משתי קטגוריות:

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

כדי לפשט את התהליך, נניח שמטריצת המשוב היא בינארית. כלומר, ערך של 1 מעיד על עניין בסרט.

כשמשתמש מבקר בדף הבית, המערכת צריכה להמליץ על סרטים על סמך:

  • דמיון לסרטים שהמשתמש סימן בעבר
  • סרטים שמשתמשים דומים אהבו

לצורך ההדגמה, נפעיל הנדסה ידנית של מספר תכונות לסרטים המתוארים בטבלה הבאה:

סרט דירוג תיאור
זריקות פרש כהה ההורים מוזהרים, חלק מהסרטים אינם מתאימים לצפייה מתחת לגיל 13 אתגר "באטמן" נועד להציל את גות'אם סיטי כתוצאה מטניחה גרעינית בסרט ההמשך הזה לניר האפל, המוגדר ביקום של הקומיקס DC.
הארי פוטר והסלע'ס PG ילד יתום מגלה שהוא מכשף ורשום בבית הספר הוגוורטס לכישלון וקסמים, שבו הוא נוקט את הקרב הראשון שלו נגד לורד וולדורט הרע.
שרק PG מפלצת חביבה והצד הרוען יוצא לדרך כדי להציל את הנסיכה פיונה, שנכונה בטירה על ידי דרקון.
טריפלים של בלוויל ההורים מוזהרים, חלק מהסרטים אינם מתאימים לצפייה מתחת לגיל 13 כאשר אלוף הרכיבה המקצועי חטוף במהלך טור דה פראנס, מסעו של סבתו וכלב עודף משקל בחו"ל כדי להציל אותו, בעזרת שלושה זמרי ג'אז מבוגרים.
מנטו R חניכה נוקטת מאמץ נורא לפתור את רצח אשתו על ידי קעקועים של גופות.

הטמעה בתלת-ממד

נניח שאנחנו מקצים לכל סרט סקאלר \([-1, 1]\) שמתאר אם הסרט מיועד לילדים (ערכים שליליים) או למבוגרים (ערכים חיוביים). נניח שאנחנו גם מקצים סקלר לכל משתמש ב- \([-1, 1]\) , שמתאר את תחומי העניין של המשתמש בסרטים של ילדים (קרוב יותר ל-1-) או סרטים למבוגרים (קרוב יותר ל-1+). המוצר המוטמע של הסרט והטמעת המשתמש צריך להיות גבוה יותר (יותר מ-1) עבור סרטים שאנחנו מצפים מהמשתמש לאהוב.

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

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

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

הטמעה דו-ממדית

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

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

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

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

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

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

בחינת ההבנה שלכם

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