Google+
התחבר

על רגל אחת: Machine Learning, הדור הבא של ניתוח נתונים

18 באפריל 2016

אין תגובות

exmachina

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

את המעבר מנתונים למידע נעשה לרוב תוך שימוש בטכנולוגיות Big Data כאלה או אחרות, בין אם on-premise או בענן. לאחר שהטמענו את הכלים הרלוונטיים נוכל, למשל, לבקש את כל הלקוחות שהראו עניין במוצר כלשהוא אבל לא רכשו אותו. כעת, נרצה לזהות באמצעים חישוביים מאפיינים משותפים לכל הלקוחות הללו, ובתקווה להבין מדוע לא ביצעו את הפעולה וכיצד לשווק את המוצר בצורה טובה יותר. המפתח לניתוח אוטומטי זה הוא שימוש בדיציפלינה בשם Machine Learning, או בקיצור ML.

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

במילים אחרות, ה-ML מיועד לתת לנו ניבויים טובים לגבי העתיד גם מבלי שנוכל להסביר בפרטי-פרטים את הגורמים לניבויים שכאלה. לדוגמא, תחום שצובר תאוצה רבה בקהילת ה-ML בעולם כיום הוא תחום ה-Deep Learning שעושה שימוש ברשתות עצביות (neural networks) גדולות, עבורן נדרש כוח חישוב עצום. פתרונות deep learning מצטיינים במיוחד בתחומים של זיהוי אובייקטים בתוך תמונות ובעיבוד של שפה טבעית. יחד עם זאת, אין לנו יכולת כיום 'להציץ' לתוך רשת עצבית ולהבין מה גורם לה להפריד בין חתול לכלב בתמונות.

בחלוקה גסה, ישנם 3 סוגים עיקריים של שאלות עסקיות שמתאימות לניתוח באמצעות Machine Learning:

1. שאלות Classification

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

  • האם הלקוח מראה מאפיינים שמצביעים על כך שהוא עומד לעזוב את השירות אליו הוא מנוי? (כן/לא).
  • האם הפעולה הנתונה היא חוקית או רמאות (Fraud)? (כן/לא/לא ברור).
  • מה המוצר הבא שנמליץ ללקוח לקנות? (אחד מתוך רשימת מוצרים).

2. שאלות Clustering

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

  • פילוח הלקוחות לקבוצות ע'פ העדפות (מעדיף מחיר נמוך, מעדיף שירות, וכו' כאשר אנחנו לא יודעים את הפילוח מראש).
  • חלוקה של מכונות במפעל לקבוצות ע'פ צרכי תחזוקה (פעם בשבוע/חודש/שנה וכו').

3. שאלות Regression

הניבוי שניתן כתשובה לשאלה כזו הוא ערך מספרי רציף, בניגוד לתשובה הבדידות של clustering ו-classification. למשל:

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

כמו כן, קיים תחום שלם ב-ML שעוסק בRecommender Systems. אלו מערכות שמציעות מוצרים ו/או פעולות נלוות למה שהלקוח כבר ביצע. למשל – מוזיקה של אמן דומה מבחינת סגנון, או כזה שפופולרי אצל משתמשים בעלי מאפייני קניה שדומים לאלה של הלקוח הנתון.

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

בעולם הקוד הפתוח, קיימות שתי סביבות מרכזיות שרלוונטיות לעבודת ML:

שפת R

זוהי שפה שהומצאה בשנות ה-90 ע"י סטטיסטיקאים לצורך ביצוע חישובים מורכבים. עם השנים, השפה צברה תאוצה רבה וכיום קיימים לה מודולים רבים לצרכים שונים. R היא הסטנדרט דה-פקטו של עולם ה-ML וכמעט לכל אלגוריתם מוכר קיים מימוש יעיל שניתן להשתמש בו ליישומים פרקטים. סביבת הפיתוח של R נקראת R-Studio והיא סביבה גרפית מודרנית המכילה את כל היכולות המוכרות לנו מכלי פיתוח אחרים. כמו כן, קיימים חיבורים (bindings) בין שפות תכנות אחרות (C#, Java, C++ וכו') ל-R, כך שניתן לכתוב אפליקציות בשפות אלו ולבצע את החישובים באמצעות R והמודולים הרלוונטים שלה.

שפת Python

בעוד ש-R תוכננה ומיועדת לביצוע חישובים, Python היא שפת תכנות כללית שמשמשת לכל מטרה, החל מפיתוח Web ועד לשליטה ובקרה של ציוד תעשייתי. בשלב מוקדם של קיומה Python אומצה ע"י הקהילה המדעית שפיתחה תוספים כדי להפוך אותה לכלי יעיל למחקר. כיום יש ל-Python כלים מתמטיים וספריות יעילות ל-ML, עיבוד שפה טבעית (Natural Language Processing – NLP) ותצוגה. שווה לציין במיוחד את פרוייקט ה-Jupyter Notebook, שמספק סביבה Web-ית לפיתוח, אנליזה ותצוגה של נתונים. השימוש הנפוץ של Jupyter מיועד לשלב גישה לתשתית Big Data (Hadoop או Spark), ספריות ML ותצוגה כאשר ביניהם משלבת שפת תכנות גמישה. קיום כל האלמנטים הללו בסביבה אחת מקלה מאוד על עבודת האנליסט ומאפשרת עבודה מהירה. ה-Notebook תומך במגוון שפות נוספות מלבד Python.

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

למרות כל האמור לעיל, שימוש ב-R ו/או Python דורש ידע בתכנות, הבנה של האלגוריתמים השונים והפרמטרים שלהם ולמעשה דורש בנייה של תוכנה ייעודית בכל פעם שנרצה להתחיל ניתוח חדש. בשוק קיימים כיום כלים שמאפשרים גם לכאלה שאינם Data Scientists או בעלי ידע מתקדם בתכנות להשתמש ביכולות ML כדי לנתח נתונים.

מאת יובל מזור, ארכיטקט פתרונות ענן, מיקרוסופט ישראל

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *