מה מתרחש (: אני אסף שפירא וזה נטפריקס – הפודקאסט העברי הראשון למדע הרשתות.
לפני הכול, אני שמח לבשר שבימים אלו סיימתי לכתוב את "ספר הרשתות הגדול" (שם זמני) שאנשאללה יצא בקרוב. אגב, אני ממש פתוח לרעיונות לשם של הספר, אז אם יש לכם/ן כאלה – אשמח לשמוע!
בדומה לפודקאסט, מטרת הספר היא להנגיש את הנושא לציבור רחב ככל הניתן ולכן הוא נכתב באופן ידידותי למשתמש, עם הפניות להרחבות (לחובבי וחובבות ז'אנר ההרחבות. מסתבר שיש כאלה).
כמובן שלמנויי האתר של נטפריקס www.SNApod.net הספר יוצע בהנחה, אז אם עדיין לא נרשמתן/ם – זה הזמן. ואם אתם/ן מעוניינים לשריין מראש כמות של ספרים, למשל, כדי לאכזב את העובדות והעובדים שלכן/ם עם ספר מתנה – אל תהססו לפנות אלי. (SNApodnet@outlook.com)
אנקדוטה מוכרת במדעי המוח היא ניסוי שעשה יצחק פרייד על מטופלים בזמן ניתוח. בזמן ניתוח מוח, המטופל ער, המוח שלו מלא אלקטרודות ואין לו ממש לאן ללכת. פרייד ניצל זאת כדי להשיג את הסכמתם לניסוי שבו הראה למטופלים תמונות ובדק איך המוח מגיב לכל תמונה. התגלית המפתיעה שלו הייתה שקיים נוירון מסויים שהופעל רק כשהראו למטופל תמונה של...ג'ניפר אניסטון AKA רייצ'ל מהסדרה "חברים". הסיבה שמדובר באנקדוטה היא שכיום ברור לכולם שהמוח לא עובד בשיטה כזו: אין לנו רשימת נוירונים מקבילה לרשימת אנשים שאנו מכירים. המוח שומר את הזכרונות כרשת. פרייד הראה זאת בניסוי המשך שערך שנים אחר כך, הפעם על חולי אפילפסיה שאלקטרודות נשתלו בראשם במסגרת הטיפול. הוא הראה למטופלים תמונות של מגדל אייפל ותמונות של ג'ניפר אניסטון כדי לאתר היכן מתרחשת הפעילות במוח שאחראית לזיהוי תמונות אלו. לאחר מכן הוא הראה להם תמונות מזוייפות של ג'ניפר אניסטון שנשתלו לצד מגדל אייפל וכך יצר קשר בין אותם איזורים. בהמשך הניסוי, כשאותם המטופלים ראו תמונה רק של ג'ניפר אניסטון, הופעל גם אותו איזור במוח שזיהה את מגדל אייפל.
מסקנתו הייתה שזיכרון הוא קשר בין איזורים במוח ולכן, אם אנחנו רוצים לזכור איפה החנינו את האוטו, כדאי לייצר אסוציאציה בין האוטו שלנו למקום שבו החנינו. הקשרים, או הגרף, שמחברים את פיסות המידע בראשנו, מייצרים לנו ידע, כלומר, מה שהמוח מספק לנו זה בעצם גרף ידע עשיר, דינאמי גמיש ומורכב. ואם זה טוב למוח שלנו, אז למה לא לדאטה שלנו?
בזמן האחרון פנו אלי לא מעט בנושא Graph DB וגרף ידע שאלו נושאים שלא כיסינו עד היום בפודקאסט. אמנם התעסקנו ברשתות בתעשייה - אבל התמקדנו בעיקר איך לנתח רשתות מהצד של המשתמש וזה באמת הבסיס. קודם כל, כי כשאנחנו ניגשים לרשתות, אנחנו צריכים להבין מה אנחנו עושים וגם כשרוצים לשנות משהו, אז קודם כל השינוי מתחיל בתוכנו. אבל כשאנחנו רוצים לעבוד בסביבת ביגדאטה רשתית, שתכיל את כל הנתונים שלנו ותאפשר לנו חופש לחקור את הדאטה מכל זווית אפשרית – אנחנו צריכים שהדאטה שלנו, בבסיסו, יהיה מוכן לשתף איתנו בזה פעולה. אז אם הכל הוא רשת, אז אולי לפחות חלק מהתעשייה צריכה לקחת את זה לשלב הבא?
והשלב הזה הוא Graph DB.
לכן הפרק הזה הוא עם זווית מבט קצת שונה. בפרק זה ניקח צעד אחד אחורה ונסתכל על סביבת העבודה שלנו ומה נוכל להרוויח אם במקום להבנות כל פעם את הדאטה שלנו כרשת, פשוט נקבל את העובדה שהוא רשת וכך נשמור אותו מלכתחילה. למה הכוונה? במאגרי נתונים מסוג SQL, שמכילים טבלאות של רשומות, אנחנו נאלצים לעשות Join או "הצמדה", כל פעם שאנחנו רוצים לקשר בין טבלאות שונות. זהו תהליך תובעני עם הרבה אילוצים ומוגבל מבחינת ביצועים. Graph DB לעומת זאת הוא Join בנטוראל ולכן אין כמעט בפועל מגבלה על כמות הקשרים בין ישויות שהוא יכול לעשות. כדי להמחיש את הפוטנציאל, נביא בפרק דוגמאות ויישומים לשימושים השונים שניתן לעשות בסביבה שכזו. ודוגמא נחמדה ונגישה לגרף ידע הוא מאגר ICIJ, שהוא הקונצרן הבין-לאומי של עיתונאים חוקרים. מאגר זה המכיל כמעט מיליון ישויות, מתבסס על מסמכים שהודלפו למשל, מסמכי פנמה (שהודלפו ב-2016) או מסמכי פנדורה (שהודלפו ב-2021) והוא נגיש לציבור הרחב. בכדי לאפשר ניווט נוח בין הישויות השונות, למשל, שמות אנשים, שמות חברות, כתובות ועוד, הוא נוצר על Graph DB וכולל גם ויזואליזציה נוחה.
רשת סמנטית/גרף ידע זה בעצם שמות נרדפים לאותו רעיון: אלו גישות שמאפשרות למצוא ערך לא רק ברשומות שלנו אלא גם בקשר בין הרשומות. והתשתית שמאפשרת לעשות את זה היא Graph DB . ענקיות הטכנולוגיה כבר מזמן שם. הדוגמא הבולטת ביותר היא גוגל שמשתמשת בגרף ידע כדי להציג למגגלים את התוצאות המתאימות להם ביותר. אם כבר הזכרנו תוצאות בגוגל, אז גם המתחרה הכי גדולה של נטפריקס ב-SEO, כלומר נטפליקס, עושה שימוש בגרף ידע בכדי לשמר קשרים בין שמות הסרטים, השחקנים והבמאים וכך להתאים טוב יותר לצופים את הבחירה לסדרה או הסרט הבאים שיצפו. חברות גדולות כמו אמזון ומיקרוסופט מציעות שירותי Graph DB כחלק משירותי הענן שלהם, כאלה שמסוגלים להתמודד עם ביגדאטה.
הנה, גם אני אמרתי "ענן" ו-"ביגדאטה" באותו משפט, כאחרון הלוזרים. אז לפני שאני אתחיל להגיד AI ואעשה את זה ממש מביך, אני מציע שניגש לעסק.
אחד מהשמות המוכרים בעולם ה- Graph DB, הוא Neo4J, שהיא אחת מהחברות הוותיקות בתחום, ושוחחתי עם נציגי החברה בישראל לטובת הפרק. החברה נתנה את אחת הדוגמאות המוכרות שלהם ליישום של Graph DB והוא המקרה של נאס"א. נאס"א עשו שימוש ב-Graph DB כדי לאחד את כל מאגרי המידע שלהם, אבל בעיקר בכדי לשמר את הקשרים בין חלקי המידע השונים. למשל, מאמרים שנשמרו במאגר מכילים מספר מרכיבים: מחברים, נושאים (Topics) שנת פרסום וכד'. כל פריט מידע כזה מקושר לשאר פריטי המידע ולכן שימוש ב-Graph DB איפשר ניווט טוב יותר וחסך לדברי החברה שנים רבות של עבודה.
מצד שני, תהליך ה-ETL (או Extract, Transform, Load, כלומר הגירת המידע למערכת), הוא תהליך לא פשוט שדורש איפיון והבנה עמוקה של המערכת.
גם השימוש במערכת הוא לא טריויאלי ודורש היכרות עם קוד. במקרה של Neo4j - השפה היא Cypher, שבה נדרש להשתמש בשביל לממש את האלגוריתמים השונים הקיימים בספרייה העשירה של המערכת (למשל לצורך מדדי מרכזיות, גילוי קהילות, מציאת דמיון בין צמתים ועוד).
לצד זאת, לאחר הקמת המערכת, ניתן לעשות שימוש בממשק ויזואלי פשוט ונגיש יותר למשתמשים בשם Bloom, שלא דורש היכרות עם Cypher, אך מאפשר רק שאילתות פשוטות, אך כן מאפשר אקספלורציה במידע. Neo4J ממקסמת על הגרף. דוגמא אחרת היא חברה בשם Grakn, שבשיחה שלי עם נציגיה, תיארו כיצד היא ממקסמת על הרשת הסמנטית. הכוונה היא שמצד אחד היא מאפשרת חופש רב יותר של קשרים ומצד שני, מאפשרת להניח חוקים על המאגר. נדגים תחילה למה הכוונה בחופש מבחינת הקשרים:
נגיד שבמאגר הנתונים שלנו מופיע שא' נשוי ל-ב'. א' ו-ב' הם צמתים מסוג "אנשים" ו"נשוי" הוא סוג של קשר.
אבל "נשואים" יכול להיות לא רק קשר אלא גם צומת, למשל, אם נרצה לראות את כל הנישואים בישראל, נוכל להתייחס לערך "נישואים" גם כצומת שקשור לצומת "ישראל". כלומר, Grakn מאפשרת גם להפוך קשתות לצמתים.
כהדגמה לחוק שהמערכת מאפשרת להגדיר נוכל לנסח משהו כמו: אם X קשור ל-Y ו-Y קשור ל-Z, אז X קשור ל-Z. ניתן ליישם זאת, למשל, על מאגרים גיאוגרפיים: אם לונדון היא באנגליה ואנגליה היא באירופה, אז ניתן להגדיר חוק שמגדיר ערים כ-subset של מדינות כך שלונדון תופיע לנו גם תחת אירופה.
ישנם הרבה מאד יישומים נוספים ומגוונים לגרף ידע שאפשר למצוא במרשתת, אבל כאן אני רוצה להביא דווקא את זה שלא תשמעו עליהם במקומות אחרים וזה המקרה המיוחד, המרתק והשאפתני של חברת Smartech בה עובדים רועי וניצן.
בראיון עימם הם סיפרו שמטרת החברה היא למחזר תהליכים ופתרונות שמשמשים בתעשיה X לתעשיה Y ועל ידי כך להביא לחסכון בתהליך.
הם הביאו לדוגמא פתרון שהחברה סיפקה לתעשיית העץ לצרכי בנייה. תעשיית העץ בתחום זה עושה שימוש בשעווה (במצב נוזל) אותה היא מפזרת על העץ, אבל הרבה שעווה בוזבזה בתהליך הייצור.
החברה חיפשה תעשייה שעושה תהליך דומה אך עם פחת נמוך ומצאה את תעשיית הרכב. בתעשייה זו לא נעשה שימוש בשעווה אבל כן נעשה שימוש בצבע (נוזל) שמיועד להיצמד לשטח מוצק (הרכב).
הפתרון בתעשיית הרכב הוא ל"מגנט" את החומרים כך שיידבקו זה לזה. אמנם קשה למגנט עץ אך את השעווה ניתן היה למגנט וכך לייעל את הדבקתה.
רועי וניצן עושים שימוש ב-Graph DB בכדי למדל את הידע והתהליכים מהתעשיות השונות כדי למצוא דימיון (Similarity) סמנטי, על תשתית הגרף, בין התהליכים והחומרים השונים.
הרעיון של למדל את הידע של תעשיות שלמות כרשת נשמע מאד יומרני, אבל רועי וניצן נעזרים בספריות פתוחות של ארגונים שממדלים את הידע האנושי כרשתות סמנטיות בתחומים שונים, למשל בתחום הכימיה, הביולוגיה ועוד (כמו למשל ספריות מפרויקט Protége של אוניברסיטת סטנפורד). בספריות אלו התהליכים השונים מוצגים כגרף.
מה שחסר - הם נאלצים להשלים בעצמם.
כמו כן, הם עושים שימוש ב-RDF שהוא מודל של רשת סמנטית לתיאור מקורות מידע ונושאים וכמו כן הם משתמשים גם ב-OWL שמשמש כשפה של רשתות סמנטיות, שמאפשר להם לעשות קלאסיפיקציה נוספת על המידע שלהם, בעזרת שימוש בחוקים.
טיפ שהם נתנו בהקשר זה הוא שעדיף למעט בשימוש ב-RDF/OWL כי הם מיושנים ומסורבלים.
דוגמא לגרף ידע מהתעשייה:
בתמונה מימין - גרף ידע (במאקרו) של תהליך ייצור הבירה (כפי שהוא נראה בממשק Bloom של Neo4J).
בתמונה משמאל - אותו גרף עם מקרא צבעים:
הצמתים: הצמתים בגוונים הכחולים הם חברות / מפעלים/ מותגים של בירה, הירוקים הם מיקום, הוורודים הם החומרים/מוצרים, הצהובים הם התהליכים (ניתן לראות שיש פחת בתהליך השמרים שנכנס לתהליך של ייצור מרמייט, ממרח אנגלי שרק אנגלים מוכנים לסבול).
הקלאסטרים בגרף: הקלאסטר הסגול הוא של החברות העסקיות. הירוק הוא תהליך הייצור (חלקו מעגלי בגלל שחלק מהיצרנים גם מוכרים חומרי גלם להכנה), הכחול הוא ייצור תוספי מזון על בסיס שמרים.
כמובטח, הנה כמה ביקורות ותיוגים של נטפריקס מרחבי המרשתת:
בהשראת נטפריקס, אושיית הטוויטר עדו קליין החל להדיח אנשים תמימים לעשות שימוש באלגוריתם לובאין לחלוקת קהילות והוא נותן שם דוגמאות ממש יפות לניתוח הרגלי תחבורה. אפרופו להדיח, אז בין שאר הרגליו המגונים, הוא מעלה תמונות של הכלים שהוא שוטף בכיור בשעת האזנה לכל פרק בפודקאסט. לדעתי, אחד מהפידים המרתקים. ביקורת יותר מיינסטרימית היא זו של יובל שכתב בפודקאסט אדיקט:
Like its subject matter, Network Science, this podcast is interdisciplinary. Like few other teachers, Asaf Shapira has understated humor. Overall, NETfrix explains a complex, visual subject over very accessible audio.
אהבתי מאד את גישת ה-In your face של ברוך שסיכם את התרשמותו מנטפריקס כשכתב בטוויטר:
סיכום לפרק 2 של נטפריקס – "האמת על עולם הרשת" - פרק מקיף, מעניין ומעמיק על גודל הרשת והפיזור של הצמתים בה. אבל אני לא כזה מתעניין ברשתות. אם אתם כן, ממליץ לכם, תקבלו נקודת מבט רחבה ויסודית על הנושא.
ונסיים ביישום שלא חשבתי עליו למערכות ניתוח רשת. עוז כתב בטוויטר בתגובה למישהו שחיפש כלי לויזואליזציה ליצירת תיאוריית קונספירציה:
בפרקים האחרונים של נטפריקס הוא הציג כלים לבניית גרפים מתמטיחם, או רשת של קשרים. אני חושב שחלקם אפשריים למימוש של כל אחד ללא קוד או משהו כזה, שווה לבדוק.
בקטע של לעזור להפיץ את בשורת מדע הרשתות? ככל שתדרגו יותר, כך הפודקאסט יהיה חשוף לאנשים רבים יותר.
דרגו את הפודקאסט בספוטיפיי או באפל-פודקאסטס ו/או כיתבו ביקורת. ניתן לדרג גם בפודקאסט-אדיקט (בטאב של ה-reviews). מותר ומומלץ להעלות פוסט ולתייג את נטפריקס בפייסבוק/טוויטר/אינסטגרם או לינקדאין ושוב, פוסטים יצירתיים במיוחד יושמעו בפרקים הבאים.
ואם עוד לא עשיתן לייק בדף של נטפריקס בפייסבוק, זה הזמן. אתרים עם יותר לייקים, מקבלים יותר חשיפה.
לפניות/הערות/הארות/הצעות ועוד: שלחו מייל!
ולא לשכוח לעשות Subscribe לפודקאסט באפליקציה החביבה עליכן.
נתראה בפרק הבא של נטפריקס.
#Podcast #NetworkScience #SNA #SocialNetworkAnalysis #GraphTheory #DataScience #Software #Book #Neo4J #AWS #Neptune #Google #Microsoft #Azure #Cosmos #Cloud #Bigdata #RDF #OWL
Comments