III. סיווג נאיבי בשיטת בייז
אחת מהיישומים השימושיים ביותר של כלל בייז היא שיטת הסיווג הנקראת “סיווג בייז הנאיבי”.
סיווג בייז הוא טכניקת למידת מכונה, שניתן להשתמש בה כדי לסווג אובייקטים כמו למשל מסמכי טקסט לשתי קטגוריות או יותר. הסיווג מתבצע לאחר אימון על סט נתונים, שבו כבר ניתנו מראש הקטגוריות הנכונות של כל דוגמה.
הסיווג הנאיבי בשיטת בייז משתמש בכלל בייז כדי לקבוע את ההסתברויות של הקטגוריות, בהתבסס על סדרה של תצפיות שונות. ההנחה במודל היא ש־משתני התצפית (המאפיינים) הם בלתי תלויים מותנית, בהינתן הקטגוריה.
(אנחנו לא נעמיק במושג הזה בקורס – לצרכים שלנו, מספיק לדעת איך לנצל את ההנחה הזו לבניית המסווג.)
יישום מהעולם האמיתי: מסנני ספאם
נשתמש בדוגמה של מסנן דוא”ל לספאם כדוגמה מתמשכת כדי להמחיש את הרעיון של המסווג הנאיבי בשיטת בייז. במקרה הזה, משתנה הקטגוריה מציין האם ההודעה היא ספאם או שהיא הודעה לגיטימית. המילים שבתוך ההודעה משמשות כ־משתני מאפיינים (features), כך שמספר המאפיינים במודל נקבע לפי אורך ההודעה.
? הערה:
למה אנחנו קוראים לזה “נאיבי”?
בדוגמה של מסנני ספאם, הרעיון הוא לחשוב על המילים כאילו הן נוצרות אחת אחרי השנייה, כאשר הבחירה של כל מילה תלויה רק בשאלה אם ההודעה היא ספאם או לא. זו כמובן הפשטה גסה מאוד של המציאות, כי היא מניחה שאין תלות בין מילים סמוכות, ושהסדר שלהן לא משנה בכלל. וזו בדיוק הסיבה לכך שהשיטה נקראת “נאיבית” .
מכיוון שהמודל מבוסס על הרעיון שהמילים ניתנות לעיבוד באופן עצמאי, אנחנו יכולים לזהות מילים מסוימות שמעידות על כך שההודעה היא ספאם (כמו “הזדמנות אחרונה”, “חינם”) או לגיטימית – כלומר, האם (כמו “פגישה”, “אלגוריתם”).

למרות הפשטנות שלה, שיטת בייז הנאיבית נוטה לעבוד מצוין בפועל. זו דוגמה מצוינת לפתגם הידוע מעולם הסטטיסטיקה: “כל המודלים שגויים – אבל חלקם שימושיים” (האמירה הזו מיוחסת לרוב לסטטיסטיקאי ג’ורג’ בוקס).
אומדן פרמטרים
כדי להתחיל, עלינו לקבוע את ההסתברות הפריורית לספאם (לעומת הודעות דוא"ל לגיטימיות). לשם פשטות, נניח שהיא 1:1, כלומר – בממוצע, מחצית מההודעות הנכנסות הן ספאם (במציאות, כנראה שהאחוז של הספאם גבוה בהרבה).
כדי לחשב את יחסי ההסתברויות, נצטרך שתי הסתברויות שונות עבור כל מילה: אחת עבור הופעתה בהודעות ספאם ואחת עבור הופעתה בהודעות לגיטימיות.
הדרך הטובה ביותר לאמוד את התפלגות המילים בכל אחת מהקטגוריות היא להשתמש בנתוני אימון אמיתיים, שמכילים גם ספאם וגם הודעות תקינות. הדרך הפשוטה ביותר היא פשוט לספור כמה פעמים כל מילה – למשל: אב, אבן,…, תרשיש – מופיעה בנתונים, ולחלק את המספר הזה בסך כל המילים.
כדי להמחיש את הרעיון, נניח שיש ברשותנו אוסף של הודעות ספאם ודוא"ל לגיטימי. אפשר להשיג כאלה בקלות על ידי שמירת אצווה מהדוא״ל האישי בשני קבצים נפרדים.
כעת נניח שחישבנו את מספר ההופעות של המילים הבאות (לצד כל שאר המילים) בשתי הקטגוריות של ההודעות:
| מילה | ספאם | האם |
|---|---|---|
| מיליון | 156 | 98 |
| דולר | 29 | 119 |
| לחיצה על מודעה | 51 | 0 |
| כנסים | 0 | 12 |
| סה״כ מילים | 95,791 | 306,438 |
כעת נוכל להעריך ש־ההסתברות שמילה בהודעת ספאם תהיה “מיליון” היא בערך 156 מתוך 95,791, שזה בקירוב 1 ל־614. באופן דומה, אנחנו מקבלים ש־98 מתוך 306,438 מילים בהודעות לגיטימיות הן “מיליון”, שזה בערך 1 ל־3,127. שתי ההסתברויות האלו קטנות מאוד (פחות מ־1 ל־500), אבל מה שיותר חשוב – שההסתברות בספאם גבוהה יותר:
1 ל־614 זה גבוה יותר מ־1 ל־3127.
כלומר, יחס ההסתברויות – שהוא פשוט השבר הראשון חלקי השבר השני – יהיה גדול מ־1.
ליתר דיוק:
5.1≈3127⁄614=(1⁄3127)÷(1⁄614)
(מעוגל לספרה אחת אחרי הנקודה).
זכרו, אם אתם מתקשים לעקוב אחרי החישובים שבפרק הזה – מומלץ לרענן את הידע בעבודה עם שברים.
?הערה:
אפס הוא צרה!
אחת הבעיות בהערכת הסתברויות ישירות מתוך הספירות היא שכשמילה לא מופיעה כלל (כלומר – מספר הופעותיה הוא אפס), גם ההסתברות שלה מוערכת כאפס. זה עלול להזיק מאוד לביצועים של המסווג, כי זה בקלות מוביל למצב שבו ההסתברות הפוסטריורית יוצאת 0/0 וזה כמובן חסר משמעות. הפתרון הפשוט ביותר הוא להשתמש ב־סף תחתון קטן עבור כל ההסתברויות. לדוגמה, ערך של 1⁄100000 מספק פתרון טוב לבעיה.
בהתאם להיגיון שתיארנו קודם, אנחנו יכולים לחשב את יחס ההסתברויות עבור כל מילה אפשרית, מבלי שנצטרך להשתמש באפס – ובכך אנו מקבלים את יחסי ההסתברויות הבאים:
| מילה | יחס הסתברויות |
|---|---|
| מיליון | 5.1 |
| דולר | 0.8 |
| לחיצה על מודעה | 53.2 |
| כנסים | 0.3 |
כעת אנחנו מוכנים ליישם את השיטה כדי לסווג הודעות חדשות.
דוגמה: האם זו הודעת ספאם או דוא"ל לגיטימית?
ברגע שיש לנו את ההסתברות הפריורית ואת יחסי ההסתברויות מחושבים, אנחנו מוכנים ליישם את כלל בייז – בדיוק כפי שתרגלנו קודם בדוגמה של אבחנה רפואית.
ההיגיון נשאר אותו היגיון: אנחנו מעדכנים את ההסתברות לספאם על ידי כפל ביחס ההסתברויות.
כדי לרענן את התהליך, נתחיל עם הודעה שכוללת מילה אחת בלבד. ולגבי ההסתברות הפריורית – כפי שהוסכם קודם – נשתמש ב־יחס של 1:1.
תרגילים!!!!!!!!
? יש לך במה להתגאות!
כעת רכשת שליטה באחת מהשיטות העוצמתיות ביותר שנמצאות בשימוש יומיומי במגוון יישומי בינה מלאכותית מהעולם האמיתי – המסווג הנאיבי של בייז. גם אם דילגת על חלק מהפרטים הטכניים – חשוב לוודא שהבנת את העקרונות הבסיסיים: איך משתמשים בהסתברויות כדי לעדכן אמונות על סמך מידע חדש. כפי שציינו בתחילת הפרק, היתרון המרכזי של חשיבה הסתברותית הוא היכולת להתמודד עם מידע לא ודאי או סותר.
באמצעות הדוגמאות של אבחון רפואי ו־סינון הודעות ספאם, הראינו כיצד זה עובד בפועל – ומה הכוח שיש לגישה הזו בקבלת החלטות חכמה בעולם אמיתי.