דלג לתוכן

דליפת נתונים (Data Leakage)

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

הגדרה

דליפת נתונים (Data Leakage) בלמידת מכונה היא מצב שבו המודל נחשף בזמן הבנייה למידע שלא יהיה זמין לו בחיזוי אמיתי, ולכן ציוני הבדיקה שלו מנופחים. אין לזה קשר לדליפת מידע אישי.

💡 דוגמה

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

אצל מטופל חדש, שעוד לא אובחן, הרמז הזה פשוט לא קיים.

מה זה, ובמה זה לא

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

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

רמז שהתשובה מסתתרת בו

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

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

כשמבחן ואימון נוגעים זה בזה

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

התיעוד של הספרייה מדגים את זה בניסוי פשוט: נתונים שבהם התשובות אקראיות לגמרי, כך שאין מה ללמוד. כשבוחרים את המאפיינים ה"טובים" מתוך כל הנתונים לפני החלוקה, המודל מגיע לדיוק של 0.76 — גבוה בהרבה ממזל. כשמחלקים קודם ובוחרים מאפיינים רק מתוך קבוצת האימון, הדיוק יורד ל-0.5, כמו הטלת מטבע. הכלל של הספרייה: "לעולם לא להריץ fit על נתוני המבחן", ולהשתמש ב"צינורות" (Pipelines) שמבטיחים שכל שלב הכנה לומד רק מקבוצת האימון. לפי ויקיפדיה, גם שכפול דוגמאות — דגימת-יתר של קבוצה נדירה או הגדלת נתונים — לפני החלוקה גורם לעותקים של אותה דוגמה להגיע לשתי הקבוצות.

זמן וקבוצות: הדליפות שקשה לראות

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

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

כשמחקר שלם נשען על דליפה

ב-8 בספטמבר 2023 פרסמו קאפור ונאראיאנן בכתב העת Patterns סקירה שבדקה סקירות קודמות בתחומים שאימצו למידת מכונה. הם מצאו 17 תחומים מדעיים שבהם זוהתה דליפה, ולפחות 294 מאמרים שנפגעו ממנה, ובחלק מהמקרים, לדבריהם, היא הובילה למסקנות אופטימיות באופן פראי. הם הציעו מיון של שמונה סוגי דליפה, "מטעויות של ספר לימוד ועד בעיות מחקר פתוחות", וטופס דיווח ("Model Info Sheet") שחוקרים ימלאו כדי לבדוק כל סוג.

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

הפרדה בין למידה לחיזוי, וסימני אזהרה

מאמר שניסה להגדיר את הבעיה באופן מסודר, ולהציע דרך עבודה שמונעת אותה, נכתב בחלקו בישראל. שחר קאופמן וסהרון רוסט מאוניברסיטת תל אביב וקלאודיה פרליך הציגו אותו בכנס KDD ב-2011. הם מציינים שדליפה נחשבת ל"אחת מעשר הטעויות המובילות בכריית נתונים", ומתארים תחרויות גדולות שנפגעו ממנה — בהן KDD-Cup 2008 ואתגר INFORMS 2010 — כשלעיתים ניסיונות לתקן דליפה יצרו דליפה חדשה, שקשה עוד יותר לטפל בה. ההצעה שלהם נקראת "הפרדת למידה-חיזוי": לנהל את הנתונים כך שלכל דוגמה ברור איזה מידע היה זמין באופן לגיטימי ברגע שבו היה צריך לחזות.

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

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

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

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

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

האם דליפת נתונים קשורה לפרטיות?

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

איך יודעים שיש דליפה?

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

מה ההבדל בין דליפת נתונים לזיהום אמות מידה?

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

כמה זה נפוץ במחקר?

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

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

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