אפליה של אלגוריתמים – הכצעקתה?

יש חדש תחת השמש? ואם כן – מה?

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

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

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

קורות חיים של מועמדים פוטנציאליים

אדם ואלגוריתם באים להפלות

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

גם אלגוריתם לגיוס עובדים של אמזון התגלה כמפלה נגד נשים. האלגוריתם חיפש באינטרנט קורות חיים, ושלח הצעות עבודה למועמדים שנראו מתאימים. התברר שאף שלאלגוריתם לא ניתן במפורש מין המועמד, האלגוריתם הצליח לזהות מילים מסוימות הקושרות את המועמד למינו. לדוגמה, המילה “executed” היא מילה נפוצה בקורות חיים של גברים, ואילו Women’s Collage (קולג' לנשים בלבד) יופיע כמובן רק אצל נשים. הסיבה שהאלגוריתם היה מפלה היא משום שהוא "אומן" על החלטות גיוס קודמות של אמזון.

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

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

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

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

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

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

הדילמה: ריכוז לעומת ביזור

ריכוז לעומת ביזור

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

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

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

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

רגע, לא הבנתי – פרק 2

למה בכל זאת חשוב שנבין מה קורה בתוך האלגוריתם

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

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

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

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

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

זיהוי של שחורים בתור גורילות

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

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

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

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

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

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

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

רגע, לא הבנתי – פרק 1

על פער ההבנה – הנקודה שבה אנחנו מבינים … שאנחנו לא מבינים

[קישור לפרק 2 בסדרה]

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

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

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

מודלים מודרניים כמו רשתות נוירונים (למידה עמוקה) מסוגלים לתפוס קשרים מסובכים ונסתרים מעיננו. הדרך בה הם עושים את זה היא לחפש קשרים בין הפיצ'רים ובין התגובה: האלגוריתם לא עוצר בחיפוש קשרים לינאריים כמו "אם נגדיל את ההשכלה בשנת לימוד, השכר יעלה ב2000 שקל", אלא ינסה למצוא קשרים מסובכים יותר כמו "אם נגדיל את ממוצע בגרות*גיל*גוון צבע עור*גובה אזי המשכורת תעלה ב1000 שקל" או "אם הגובה שלך הוא מעל 175 ס"מ וגם נולדת בתל אביב אבל לא היית במינוס בבנק בשנה האחרונה – אזי המשכורת שלך תעלה ב500 שקל". למעשה, אפילו הדוגמאות הללו הן הרבה הרבה יותר פשוטות מאשר הכללים שרשתות הנוירונים באמת לומדות.

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

AMAZING Domino Rally Trick Screen Link! - YouTube
אלגוריתם מורכב הוא כמו דומינו ראלי ענק, אנחנו רואים שקורה משהו, אבל אנחנו מתקשים להסבירו. מקור: Youtube

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

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

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

תם ולא נשלם.

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

[קישור לפרק 2 בסדרה]