דלג לתוכן

סחיפת מושג (Concept Drift)

יסודות בינה מלאכותית

הגדרה

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

💡 דוגמה

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

הקוד לא השתנה. העולם השתנה.

העולם זז, המודל נשאר במקום

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

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

סחיפה אמיתית מול שינוי בקלט בלבד

סקירה מקיפה של ז'ואאו גאמה ושותפיו, שפורסמה ב-2014 בכתב העת ACM Computing Surveys, מבחינה בין שני דברים שנוטים לערבב. "סחיפת מושג אמיתית" היא שינוי בקשר בין הקלט לתשובה הנכונה — וזה יכול לקרות גם כשהקלט עצמו נראה בדיוק אותו דבר. הדוגמה שלהם: משתמש שעוקב אחרי זרם חדשות באינטרנט. הידיעות שמגיעות יכולות להישאר דומות, אבל מה שמעניין את המשתמש השתנה, ולכן אותה ידיעה שפעם הייתה "מעניינת" היא עכשיו "לא מעניינת".

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

ארבע צורות של שינוי

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

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

דוגמאות מהשטח

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

מקרה בולט הגיע עם הקורונה. ב-11 במאי 2020 תיאר ויל דאגלס הייבן ב-MIT Technology Review איך בשבוע של 12–18 באפריל 2020 הוחלפו עשרת החיפושים המובילים באמזון — ממוצרים כמו כיסויי טלפון ולגו לנייר טואלט, מסכות פנים, ג'ל לחיטוי ידיים ומגבונים לניקוי. חברה שמספקת רטבים ותבלינים לקמעונאים בהודו ראתה את מערכת ניהול המלאי האוטומטית שלה משתבשת מול הזמנות בכמויות חריגות; כפי שאמר ראג'יב שארמה מחברת הייעוץ Pactera Edge, היא "מעולם לא אומנה על זינוק כזה". לא כל המערכות קרסו: מערכות זיהוי ההונאות של חברת Featurespace עמדו בשינוי יחסית טוב, ולפי הכתבה הצוות נדרש להתערב רק כדי לכוונן אותן לקניות חריגות של ציוד גינה וכלי עבודה חשמליים.

גאמה ושותפיו מביאים דוגמה ממכוניות אוטונומיות: Stanley, המכונית של הצוות שזכה בתחרות DARPA Grand Challenge ב-2005, נדרשה להסתגל לתאורה שמשתנה לאט ולשינוי חד בצבע פני הדרך, למשל במעבר מכביש סלול לדרך עפר.

איך מזהים שהמודל סוחף

הדרך הישירה היא לעקוב אחרי שיעור הטעויות של המודל לאורך זמן. שיטה ותיקה בשם DDM (Drift Detection Method) עושה בדיוק את זה: לפי ויקיפדיה, כששיעור הטעויות עובר סף אחד המערכת נכנסת למצב אזהרה, וכשהוא עובר סף שני היא מכריזה על סחיפה. ADWIN שומרת "חלון" של הנתונים האחרונים, שגודלו משתנה, ומתריעה כשיש הבדל מובהק בין החלק המוקדם של החלון לחלק המאוחר. KSWIN משתמשת במבחן סטטיסטי (קולמוגורוב-סמירנוב) כדי לזהות שינוי.

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

איך מתמודדים

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

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

📬 הגיליון השבועי של Wiki-AI

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

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

שאלות נפוצות ❓

מה ההבדל בין סחיפת מושג להתאמת-יתר?

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

האם אפשר למנוע סחיפת מושג?

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

מה קרה למודלים בזמן הקורונה?

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

איך יודעים שמודל סוחף?

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

שתפו:וואטסאפטלגרם

מצאתם טעות בערך, או שיש לכם מקור שכדאי להוסיף? כתבו לנו