יום שני, 27 במאי 2019

370 ThetaRay and Unsupervised Learning

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

  • אתי היא VP Product Management ב-ThetaRay - חברת בינה מלאכותית שמשלבת טכנולגיות Big Data עם אלגוריתמים ייחודים “שלומדים אינטואיטיבית” (Unsupervised Learning) שפותחו בחברה.
    • הפלטפורמה משמשת אירגונים פיננסיים גלובאליים במלחמה בפשעים כלכליים (הלבנת הון, מימון טרור, סחר באנשים ושאר רעות חולות).
    • הפתרונות גנריים לחלוטין ויכולים לשמש גם למקרים אחרים, אבל כרגע המיקוד הוא בתחום הפיננסי.

שתי שאלות כלליות לפני הצלילה לטכנולוגיה - 
  • הלבנת הון נשמע אכן קשור לנושאים פיננסיים - איך סחר בנשים (למשל) מתקשר?
    • בסופו של דבר צריך להעביר את הכסף . . .
    • לחברה יש מיזם Pro bono עם עמותה בארה”ב, שמחפשת סימנים לסחר באנשים באמצעות מאגר מידע גדול, שחלקו כלכלי, ו-ThetaRay עוזרת למצוא נקודות שצריך לבדוק.
  • לא מעט פשעים לאחרונה מתבצעים תוך שימוש במטבעות קריפטוגרפיים (נכון?) - האם יש ממשק גם לכיוון הזה?
    • התחושה כנראה נכונה, אין כרגע ממשק פעיל בתחום אבל בהחלט יש מחקרים.

אז נתחיל - מה זה Machine Learning מבחינתכם? איך זה משרת את החברה?
  • ראשית - מוטיבציה: למה מכונות צריכות בכלל ללמוד?
    • דמיינו ערימה של חפצים בצבעים שונים. למען הפשטות - רק צבעים אחידים, ואף אחד לא עיוור-צבעים (אין גברים בקהל, נכון?)
      • למיין חמישים פריטים כאלה בשעה - לא בעיה, ונשאר המון זמן
      • למיין “הר” של כאלה (כמה מיליארדים) - כן בעיה, לא בשעה ולא ביום, חוץ מזה שגם ממש לא בא לכם לעשות את זה אלא לתת למישהו אחר (משימה פשוטה וחזרתית עם צורך ב-Throughput גבוה - מזכיר את פרק 363 על ה-GPU).
      • אנחנו כבר יודעים למיין - “רק” צריך ללמד את המכונה לעשות את זה. איך? כמו שמלמדים ילדים: “זה תפוח אדום”, “זה אגס צהוב” וכו’. בפעם הבאה שואלים “מה זה?” ונותנים פידבק על התשובה, עד שיוסי הילד המוצלח לומד באמצעות דוגמאות - גם על המקרה הספציפי וגם להשליך על דברים אחרים (“כרבולת של תרנגול זה גם אדום” וכו’).
        • כולל לרוב גם מקרים של “תרנגול זה תפוח” ודיונים על טבעונות, אבל זה כבר עניין אחר.
    • באופן דומה ניתן ללמד מכונה להבדיל בין צבעים למשל - מתן המון דוגמאות ואז בחינה של התוצאה, תיקון ושוב עד לתוצאה הרצויה - ועכשיו המכונה יודעת למיין את הפריטים לפי צבע במקומכם.
    • השלב הבא: באמצע הערימה יש פריט סגול . . כזה לא היה לנו קודם. מה עכשיו?
      • אפשר להגיד “זה דומה לכחול” ואז לסווג ככחול בסבירות בינונית. האם זו טעות? תלוי בהגדרה.
      • אפשר להגיד “זה דומה לכחול וגם לאדום” ולהגיד שלא ניתן לסווג בבטחון. האם זו טעות? שוב. תלוי מה רוצים, ומה הוא רווח הסמך שהוגדר.
        • המקביל בדוגמא שלנו - יוסי לא יודע מה זה חציל כי לא היה קודם (ועוד לא ביקר אצל עובד).
      • מה שראינו כאן זה דוגמא למגבלה: המכונה “לא יודעת” את מה שלא “לימדו” אותה קודם - Supervised Learning: מישהו מפקח על הלמידה.
        • יש הגדרה של ה-Training Set - הקטיגוריות שיכללו, כמה דוגמאות בכל אחת, מהם ה - thresholds ולזיהוי כו’.
        • המדדים להצלחה הם דיוק (Accuracy, Precision) וכיסוי (Coverage, Recall).
          • מבחינת Detection יש התייחסות גם ל Detection Rate
          • הכל חשוב ברמה העסקית - מהי המטרה שהמכונה משרתת? כאן יש גם כלים כמו ROC Curve או Confusion matrix שבאמצעותם מגדירים את הסף הנדרש
            • מה חשוב כאן יותר - דיוק או כיסוי?
        • מכונה שלומדת “טוב יותר” מצריכה פחות פשרות - אבל תמיד יש דעיכה (deterioration) וככל שמתרחקים מקבוצת הלמידה יש סיכוי גבוה יותר לטעות.
          • חוץ מאצל יוסי.
          • וכמו את יוסי - גם את המכונה צריך להמשיך ללמד.

אז מה לגבי Unsupervised Learning?
  • כל מה שדיברנו עליו עד עכשיו מוגדר כ”למידה קונספטואלית”. על מנת להבין Unsupervised Learning, נלך שוב לדוגמא של לימוד ילדים - והפעם באמצעות התבוננות (Observation) ולמידה אינטואיטיבית, בלי שמישהו אחר יגדיר זאת עבורם מראש.
    • אחד הדברים שנלמדים כך זה ההגדרה של “נורמטיבי” - ומהי אנומליה.
      • דוגמא - דני בן ה-3, כבר “ראה עולם” (בכל זאת, בן 3) וגם כבר יודע להתנסח ולהסיק מסקנות. יום אחד הוא רואה בסופרמרקט בפעם הראשונה אדם בכסא גלגלים - ומצביע - “שונה”. למה שונה? “כי הוא הולך עם גלגלים במקום רגליים”.
      • יש כאן שני דברים - (1) זיהוי של אנומליה ו (2) הסבר (Evidence, Forensics) - ב-ThetaRay זה מכונה Trigger Feature.
      • לפי מה הילד החליט? ע”פ הנורמה ולפי מה שהוא נחשף אליו קודם (הידוע לו עד כה).
      • המשך הדוגמא - באותו הסופרמרקט נמצאת גם גלית, שגרה באותה השכונה - ובמשפחה שלה יש דוד שנעזר בכסא גלגלים. גלית עוברת באותו מקום ולא מצביעה.
      • כתלות בהגדרת המשימה - דני דייק (וזיהה) וגלית פיספסה (בהנחה שהמשימה היא למצוא אנומליה ולא לסווג לקבוצות חדשות). לגלית לא “הפריע” שום דבר.
    • חשוב להבחין כאן בין Unsupervised ל-Ungoverned- 
      • גם גלית וגם דני נחשפו לעולם ע”י ההורים שלהם, והלמידה שלהם הייתה “ממושטרת” (Governed) - ההורים החליטו על חוגים, על טיולים, מקום מגורים, צפייה בטלוויזייה וכו’. גלית גדלה במשפחה שהשפיעה על יכולת שלה לזהות (למשל) ששימוש בכסא גלגלים הוא משהו שקורה באחוזים קטנים יחסית באוכלוסיה (שוב - תלוי בהגדרות של איזו אוכלוסיה ומתי ואיך).
      • בתנאים הללו ותחת ההגדרות הללו - דני יצליח יותר מגלית (יש קשר בין האופן בו האלגוריתם לומד והגדרת המשימה).
    • ברמה הפילוסופית יש כאן משהו מעניין - דני הצליח כי הוא לא ראה דוגמא כזו בעבר, וחגית נכשלה כי היא כן ראתה דוגמא כזו - שזה הפוך מהדוגמא הקודמת (יוסי נכשל כי לא ראה “סגול” לפני כן).

בחזרה לענייני ההגדרות - אם ניקח אלגוריתם שמטרתו לקחת ערימה של נתונים (הצעות למכירת מוצרים למשל) ולסווג אותם (Clustering) - אופן הביצוע דומה: בכל פעם שנתקלים במשהו חדש יוצרים קבוצה חדשה.
  • זו עוד דוגמא ל Unsupervised Learning, שנקראת Clustering  - היכולת למצוא באוכלוסיה קטיגוריות שאינן מוגדרות מראש (שזה באיזשהו מקום קצת “לחפש מתחת לפנס”).
  • אם אנחנו יודעים להגדיר מהי “אוכלוסיה מייצגת” (שזו אומנות בפני עצמה - ד”ש לגילדת ה-Data Scientists), אפשר לקחת אלגוריתם Clustering (שהוא Unsupervised), שלא יודע כמה קטיגוריות יש בתוך האוכלוסיה (אז פסלנו את K-Means, שמניח מספר קטיגוריות מוגדר), ולהריץ על מנת “למצוא קבוצות דומות”, ע”פ ספים מוגדרים של שונות, או ע”י הגדרת סוג המימדים שמעניינים אותנו.
    • דוגמא: ב-ThetaRay מזהים אנומליות - ומזהים פשעים, מתוך הנחה שהאזרחים באופן כללי שומרי חוק, ותוך הנחה שפשע הוא אנומליה
        • זה לא תמיד נכון, ולכל מדינה יש את הספים שלה - דוגמא שבה לקוח פוטנציאלי אמר שיש לו מערכות במדינה כלשהי שבה 40% מהאוכלוסיה מעורבות בהונאות (בדרום אמריקה! לא כאן, מה פתאום?). יש כאן הפרה של הנחת הבסיס והמערכת כנראה לא  תיהיה יעילה (כי זה גם לא רוב מוחלט שמאפשר לזהות את הקבוצה המשלימה).
    • מרגע שזיהינו אנומליות, השלב הבא הוא להפוך אותן למשהו שאפשר לעבוד איתו (Actionable). על מנת שאנליסט יוכל לחקור הלבנת הון למשל, צריך לתאר לו (פורמאלית) מה זה.
      • אלו ה - Trigger Features שהזכרנו קודם - וזה משהו שצריך להיות מסוגלים להסביר (בסופו של דבר אלו תיאורים מתימטיים שהוגדרו בדר”כ ע”י Data Scientist)
      • יש כאן אלמנט של Feature Engineering - התהליך בסופו של דבר מנוהל (Governed), וה - Data Scientist משמש כ”הורה” בעולם בו האלגוריתמים לומדים (ראיתם Person of Interest? אז Finch).

התחלנו עם למה בכלל צריך Machine Learning, המשכנו להבדל בין למידה שהיא Supervised לעומת Unsupervised ואז ספציפית לתוך Governed Unsupervised Learning ע”י הכתבה של Features.
  • האם מדובר בהגדרות ספציפיות (“זה הטקטסט שאנחנו מחפשים”) או בהגדרות כלליות של שפה וכלים?
    • בפתרון אין heuristics או הגדרות של מה “נורמאלי” - ה-Features מוגדרים כמימדים בעולם, והאלגוריתם לומד אותם.
    • המטרה היא לזהות פשעים ולא חצילים - צריך להנגיש את המידע הרלוונטי באופן שיאפשר לזהות אנומליות באופן מיטבי (ביחס לאובייקטים אחרים וביחס לעצמו).
  • צריך גם להגדיר מהי טרנזאקציה כספית, מה האפשרויות וכל מידע אחר שאפשר להנגיש (מי האדם? מי השותפים האפשריים שלו? ועוד)
    • בשלב הבא - Clustering ומציאת דימיון בין האנומליות ומציאת צורות התנהגות חדשות שלא חשבנו עליהן מראש.
  • הסיווג הוא לשתי קבוצות (פשע או לא פשע) או שיש עוד גוונים או צירים שונים בסיפור?
    • האלגוריתם מחפש אנומליות, פשע הוא כבר פירוש. מומחה לתחום (Subject Matter Expert) מגדיר סימנים - אחרי שהמכונה מצאה את התבנית ההתנהגותית, צריך להגדיר עבורה משמעות
      • בשלב הזה יגיע אנליסט (כבר אין צורך בידע מתימטי) ויוכל להבין את האנומליה ולהחליט האם ואיך לטפל בה.
  • בחזרה לדיון סביב Recall מול Accuracy - בשלב הזה מעדיפים Recall (עד רמה מסויימת), כשהאנליסט יכול להחליט מה רלוונטי.
    • יש כאן מתח תמידי - בנק שלא מצליח לדווח על הלבנת הון מסתכן בקנסות גבוהים ו(לפעמים הרבה יותר גרוע) באובדן מוניטין (ודאי כשמדובר במימון טרור למשל). במובן הזה (Risk management) מעדיפים coverage  יותר גבוה.
    • מצד שני - יגיע ה COO ויאמר שהתקציב שצריך על מנת למיין כל כך הרבה התראות גבוה, וצריך להוריד אותו (ולשפר את ה - Accuracy).
  • האם יש מנגנון פידבק? אם האנליסט מסמן False Positive, האם האלגוריתם לומד את זה?
    • כן. 
      • האם זה לא קצת Supervised? לא . . . בלמידה מסתכלים על מקרי עבר (SAR - Suspicious Activity Report), ולבנקים כמובן חשוב שיהיה ניתן לזהות תבניות התנהגות שכבר ידועות.
      • האלגורתים מוזן ע”י מידע שנשפט ע”י אדם - בחזרה לשיחת ה Unsupervised לעומת Ungoverned.
  • עוד תיקון מבחינת האנליסט יכול להיות זיהוי שני איברים שלא באמת שייכים לאותו ה - cluster, וזה גם פידבק לאלגוריתם.
    • אפשר גם להגדיר שכבת ביניים, עם הגדרות ותיוגים של Severity ו - Policies - לא כל אנומליה חייבת להיות Alert (למשל - טעויות אנוש במידע זה חשוב, אבל לא Risk).
    • חשוב שיצא מידע ל - IT לתיקון - אולי בעדיפות נמוכה ואולי בכלל לא, תלוי במה שהלקוח רוצה ומתעדף.

בכמה Features מדובר - עשרות? מאות? מיליונים?
  • מאוד תלוי במקרה הספציפי
  • מעניין גם האופן בו מסתכלים על ה - Features: היו שיטות של זיהוי אנומליות לפני כן.
  • מייסדי החברה - פרופ’ אמיר אברבוך מתל אביב (שפעיל ביום-יום של החברה) ופרופ’ רונלד קויפמן מ-Yale - ייסדו אותה על בסיס מחקר של שנים, ומגיעים מרגע של מתימטיקה ומדעי המחשב. הרעיון של קויפמן היה לא להסתכל על ה - Features עצמם אלא על היחסים בינם.
  • השילוב עם המומחיות של פרופ’ אברבוך בחישוביות הפך את הרעיון לאופרטיבי (תוכנה שרצה בזמן סביר) - מסתכלים על כל הזוגות/שלשות/וכו’ של קומבינציות.
  • האם אפשר לדבר על באילו משפחות של אלגורתמים מדובר? כולם Unsupervised, אבל אי אפשר לפרט מעבר (זה ה-IP של החברה…).

עוד קצת על ThetaRay לפני סיום - 
  • החברה חגגה את יום הולדתה השישי לא מזמן
  • סדר גודל של כ-80 עובדים (עם Subcontractors זה מתקרב ל-100)
  • ממוקמים בעיקר בארץ בהוד השרון, ויש גם משרדים בניו יורק ובסינגפור (ועוד נציגויות באירופה)
  • מגיסיים, כמובן - בעיקר מתכנתים, QA, Data Science - הקבוצה הטכנית היא זו שגדלה משמעותית בימים אלה.

הקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול

אין תגובות:

הוסף רשומת תגובה