סינון שיתופי

250px|ממוזער|תמונה זו ממחישה את הסינון השיתופי ויכולתה לחזות את העדפות המשתמש. תחילה, משתמשים שונים מדרגים פריטים שונים (כמו קטעי וידאו, תמונות, משחקים). לאחר מכן, המערכת חוזה את דירוג המשתמש לפריט, שעדין לא דורג על ידו. תחזית זו מבוססת על הדירוגים הקיימים של משתמשים אחרים, שיש להם דירוגים הדומים לאלו של המשתמש הפעיל. לדוגמה, במקרה שלנו המערכת חוזה שהמשתמש הפעיל לא יאהב את הווידאו.**סינון שיתופי**  (באנגלית: **Collaborative Filtering**) מתאר תהליך של סינון מידע באמצעות שיתוף פעולה בין משתמשי מחשב שונים או בין סוכנים אוטומטים שונים. מטרתו של הסינון השיתופי היא להקל על משתמשים למצוא מוצרים או ידע על ידי מציאת הדמיון ביניהם לבין היסטוריית הגלישה והצריכה של משתמשים אחרים בעלי אפיון דומה. הנחת היסוד של גישת הסינון השיתופי היא שאם לפלוני יש העדפות הדומות לאלה של אלמוני בנושא מסוים או מוצר, אזי קיים סיכוי שהעדפותיהם יהיו דומות גם בנושאים אחרים ובמוצרים אחרים. 

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

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

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

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

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

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

### דוגמה
ניתן להציג את צורת ההמלצה של המערכת בדוגמה הבאה:

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

שאלה: האם כדאי להמליץ לקרן על סרטי מלודרמה? האם כדאי להמליץ לאורית על סרטי אסונות?

הסינון השיתופי יענה על השאלה על פי המידע:

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

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

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

התשובה לאורית תשתנה לפי האלגוריתם שהמערכת בנויה עליו.

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

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

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

שיטה זו פופולרית ומיושמת רבות באתרי אינטרנט.

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

האלגוריתם עובד על סמך שלושה מודלים סטטיסטיים:
מרכז|ממוזער|553x553 פיקסלים
# הרשת הבייסיאנית (Bayesian Network Model): מודל סטטיסטי המייצג סט של משתנים אקראיים ואת העצמאות המותנה ביניהם. הרשת לוקחת כל אחד מן המוצרים / תכנים ובונה עבורו "עץ החלטות" שנראה כך:
#מודל האשכול (Cluster Models): הרעיון בבסיס מודל זה הוא לאסוף משתמשים שיש להם אפיון דומה או מכנה משותף סביב נושא מסוים ולהכניס אותם לאותה קטגוריה או מעמד. המודל לוקח בחשבון גם משתנים סמויים או משתנים חבויים וזה החידוש שלו. ברגע שמשתמש נכנס לקטגוריה מסוימת או למעמד מסוים המודל יודע להציע לאותו משתמש את ההמלצות בהתאם למשתנים של אותו מעמד. מודל זה ידוע כמודל תערובת המולטינום.
# מערכת מבוססת כללים (Rule Based system): מודל זה לוקח משתנים עם קשר אסוציאטיבי ומחשב זאת עד המלצת קניה. קשר בין שני מוצרים או יותר מחושב הן על סמך אסוציאציה בין המוצרים והן על סמך הקשר השימוש.

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

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

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

להלן טבלה מסכמת את היתרונות והחסרונות של כל אחד מהסוגים:

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

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

## ראו גם
* מערכות המלצה
* פרטיות ברשת / הזכות לפרטיות
* כריית נתונים
*פרדוקס הבחירה

## הערות שוליים

קטגוריה:שיווק
קטגוריה:מסחר