יום רביעי, 1 בספטמבר 2021

419 Navigation @Waze


שלום וברוכים הבאים לפודקאסט מספר 419 של רברס עם פלטפורמה, התאריך היום הוא ה-24 באוגוסט 2021, עדיין בקיץ הלוהט של ישראל . . . (אורי) עדיין באוגוסט . . . (רן) עדיין באוגוסט . . .  אוטוטו - והכבישים כבר מתחילים להראות סימני אוגוסט, וזה רמז וסימן לפרק של היום: היום אנחנו מתכבדים לארח את חנוך מ-Waze - היי חנוך! ברוך הבא ותודה שבאת.
(אורי) מצאת את בדרך? . . . . (חנוך) כן, והגעתי לפה עם ה-ETA, ממש בול . . . 
(רן) מעולה - אז תיכף נדבר על איך באמת עושים את זה, את כל הסיפור של (1) למצוא את הדרך ו-(2) לשערך ETA . . . 


חנוך עוסק בעיקר ב-Routing ב-Waze - ובוא, חנוך - ספר קצת על עצמך, מה אתה עושה שם, קצת על Waze היום - את Waze אני מניח שכולם מכירים, אבל מה עושים ב-Waze היום? אז בבקשה . . .
  • (חנוך) אוקיי - אז שלום לכולם, אני חנוך, 4 שנים בישראל, 11 שנים ב-Google
  • הגעתי ל-Google אחרי התואר השלישי ב-Columbia ואמרתי להם שאני, במקצוע ב-++C ב-Hardware - אמרו “אחלה, בוא תעשה JavaScript ארבע שנים . . . “
    • אחרי זה עשיתי כמה תפקידים ב-Google ואחרי זה עשינו עלייה - ובאתי לפה והתחלתי ב-Waze
  • כרגע אני “ראש ניווט” ב-Waze - זה אומר שיש לי שני צוותים - 
    • אחד שעובד על Routing - מה המסלול
    • והשני שאחראי על מה ה-ETA - כמה דקות זה יקח להגיע, למסלול 
(אורי) אז “מחשב מסלול מחדש” - זה אתה?
  • (חנוך) כן . . . .בגדול כן - מצטער, זה אני  . . .
    • אבל גם “הגעת ליעד!” - כל הדברים הטובים.
  • אז אני אחראי על הגרסא הנוכחית - זאת אומרת ש-Waze, כמובן, היה קיים הרבה שנים לפני כן, ויש הרבה היסטוריה של Waze בישראל
    • כרגע, Waze הוא חלק מ-Google, כמו שרמזתי - כבר ב-2013 קנו אותם, וזה אומר שיש לנו תמיכה של החבר’ה פה בארץ ואפשר לעשות דברים שאולי בזמן שזה היה סטארטאפ קטן אז לא היו עושים.
    • כרגע אנחנו עושים הימור גדול על Waze Carpool - אולי שמעתם על זה, יש לנו גרסא חדשה . . .
      • זה . . . אני לא רוצה להגיד שזה הפוקוס היחיד, אבל זה אחד מהפוקוסים הגדולים שלנו.
      • אז זה אחד מ”העתידים” של Waze - לאן Waze הולך: חלק זה גם להשקיע עדיין ב-Waze שאתם מכירים, של ה-Routing וה-ETA, שאני אוהב - וגם חלק שהוא של ה-Waze Carpool.
    • אז אנחנו, פחות או יותר, עושים את שניהם במקביל.

(רן) אוקיי, אז כן - אז למי שלא היה כאן בעשור האחרון: Waze היא היום חלק מ-Google, ואחת השאלות שעולות היא “רגע! אבל יש את Google Maps, או את Google Mobile Maps, ויש גם את -Waze . . . .” - אז מה ההבדל ביניהן? מתי אני ארצה להשתמש ב-Waze ומתי אני ארצה להשתמש ב-Google Mobile Maps?
  • (חנוך) Google Maps, כן . . . 
  • אז זו שאלה טובה, והיא שאלה שלפעמים לא ברורה . . . וודאי יש חפיפה בין מה שהאפליקציות עושות.
    • ה-Waze מפוקס אך ורק על הנהג, למשל, ויש הרי use cases אחרים - יש הליכה ברגל, יש חיפוש מקומות, יש Public transportation . . . 
      • אנחנו לא מפוקסים על זה בכלל - אנחנו רק מפוקסים בלהיות הכי טובים לנהג.
    • גם ב-GMM, ה-Google Mobile Maps, יש את ה-Mode של הנהג - אז יש לנו “תחרות חברתית” פנימית על העניין הזה
      • אבל בדרך כלל, אם אתה משתמש ב-Waze אז אנחנו אומרים “כן, אמור להיות לך גם Google Maps על הטלפון, כדי תוכל לעשות את כל הדברים האחרים שאנחנו לא תומכים בהם”.
      • אז אנחנו לא מנסים להיות התשובה השלמה.
  • אז למה להשתמש בנו [Waze] ברכב, במקום להשתמש ב-Google Maps, אם כבר אומרים לך שיהיו לך את שניהם?
    • אז אנחנו [Waze] מנסים לתת לך את החווייה הכי מפוקסת והכי טובה . . . 
    • אפשר להיכנס לפרטים על ההבדלים, אבל ההבדל הכי גדול זה הרעיון של הקהילה: ש-Waze הוא, מכמה כיוונים, דומה ל-Wikipedia . . .  יש משתמשים שמעדכנים את הזמן שלהם ומעדכנים את המפה כל הזמן
    • כש-Google Maps זה יותר Top-Down - זה אומר שיש להם צוות ענק שעושה את זה, אבל זה לא אותו הדבר, שאתה יכול בעצמך להיכנס ולתקן.
    • יש לנו חצי מיליון אנשים שמתקנים [מעדכנים] את המפה באופן אקטיבי, יש לנו מיליוני Wazer-ים שמדווחים כל הזמן מה קורה על הכביש בזמן אמיתי - ומזה אנחנו בונים תמונה מאוד מאוד “טרייה”, מאוד מאוד “נוכחית” של מה שקורה . . . 
    • (אורי) . . . “עדכני” . . .
    • (חנוך) - “עדכני”, תודה, זו כנראה מילה יותר טובה.
    • ולמרות שלפעמים גם, כמו ב-Wikipedia, יש משהו שהוא חדש ועדיין צריך קצת שיפור . . . אז אנחנו יותר רצים להיות היותר מעודכנים מלהיות אלו שעברו [בדיקה] מקצועית [מדוייקת].

(רן) אז אמרת (1) אחד-עשר מיליון אנשים שבאופן אקטיבי  . . .
  • (חנוך) חצי-מיליון . . .
(רן) חצי-מיליון, סליחה . . . חצי-מיליון אנשים שבאופן אקטיבי הולכים ועורכים מפות, מעדכנים דרכים חדשות  . . .
(אורי) . . . וזה בכל העולם, חשוב להדגיש . . .
(רן) . . . בכל העולם, כן - המספר מאוד מאוד משמעותי.
  • (חנוך) הכמות של הממש-אקטיביים היא כמובן הרבה יותר קטנה מזה - יש חצי-מיליון שעשו את זה בערך, אני לא יודע, בשנה האחרונה - ועשרות-אלפים שעושים את זה כל הזמן.
(אורי) אז חנוך - אם ה . . איך נקרא לזה - Driver Assistant? אם אתה צריך לתת שם לקטיגוריה של ה . . .
  • (חנוך) אני אוהב את ההגדרה של “ניווט” . . .  ואנחנו מפוקסים על זה שאנחנו צריכים לתת לך את את חוויית הניווט ה . . . זה לא רק . . .
  • בוא נדבר על ההבדל באפליקציה בתוך הרכב לבין מה שהיה לפני כן - שהדפסת משהו מ-  Google Maps [!], או MapQuest בזמנו . . . 
  • אז ההבדל העיקרי הוא שאנחנו בודקים עבורך כל הזמן, מעדכנים את המסלול, בודקים את ה-ETA, נותנים לך אופציות חדשות - וכן, אנחנו איתך כל הזמן.
  • אני לא רוצה להגיד Driver Assistant בגלל שכמו שאמרתי, הפוקוס שלנו הוא אך ורק על הנהיגה - 

(אורי) כן . . . השאלה שלי היא שאלת Market Share - מתוך סך-כל הנהגים שמשתמשים בתוכנת ניווט כזאת או אחרת, אתה יודע להגיד כמה ב-Waze, כמה ב-Google Maps?
  • (חנוך) ב-Waze יש לנו 140 מיליון משתמשים - חודשי [MAU], אז זה פחות או יותר.
  • אני לא יודע להגיד לך את המספר ב-Google Maps . . . 
  • אני יכול להגיד לך, אני חושב, שאם אתה רק מתפקס על ה-Use Case שלנו, של הנהג, ולא על ה-Use Case הכללי, שיש לנו תחרות משמעותית גם מ-Google Maps, גם מ-Apple Maps . . .
    • יש לנו חלק משמעותי מהשוק, עם הפוקוס הזה - אם אתה אומר [שואל על] אחוז האנשים שמשתמשים בטלפון כל הזמן, אז אנחנו פחות בגלל שכמו שאמרתי, אנחנו רק עושים תפקיד אחד.
(אורי) לא, אני מדבר על Drivers . . . 
  • (חנוך) אז אנחנו ב-Drivers . . . אני לא יכול להגיד מספר . . . יש לנו 140 מיליון שלנו
    • את המספר של השוק אתה יכול אולי לחפש במקומות אחרים 
      • [יש להם חטיבה-אחות שמפתחת פתרון לא רע לחיפוש]
    •  - אבל זה אחוז לא קטן של השוק.
(רן) כשאתה אומר “שימושים במפות שלא ל-Driving” - הכוונה לנסיעה באוטובוסים, חיפוש מסעדות, דברים בסגנון הזה? . . .
  • (חנוך) כן - יש לי -Google Maps על ה-iPhone [!] שלי . . . 
(אורי) . . . ללכת ברגל, רחמנא ליצלן . . .
  • (חנוך) בדיוק . . .

(רן) אז אתמול נסעתי באוטו ועמדתי בפקק, כמו שקורה הרבה פעמים בכביש 2, והבת שלי ישבה לידי [אינני הנהג!] ואמרתי לה שמחר אנחנו מקליטים פרק עם בחור נחמד מ-Waze, אז היא אמרה לי “אה, רגע - אבא, יש לשאלה!” . . . אז בוא נשמע את השאלה שלה - ומיד נענה . . .
  • (חנוך) אוקי . . . .
(יעל) שלום, קוראים לי יעל, אני בת 9.5 ואני מגיעה מיוקנעם - ויש לי שאלה: איך Waze יודע איפה יש שוטר ומתי?
  • (חנוך) אז התשובה היא שאת אמרת לנו . . . יש כפתור כתום ב-Waze, בצד ימין-תחתון, לוחצים עליו - ויש אפשרות לדווח כמה דברים
    • אנחנו לוקחים את הדברים הללו, ואם זה נראה אמין - זאת אומרת, מי שלחץ, כמה אנשים לחצו וכו’ - אז אנחנו נותנים את העדכון הזה לכולם.
(יעל) ויש לי עוד שאלה - איך Waze יודע איפה יש פקקים?
  • (חנוך) פה התשובה היא אחרת - אנחנו מודדים את התנועה על הכביש כל הזמן, בכל כביש בעולם שאנשים עם Waze עברו
    • ולפעמים אפילו בלי Waze - יש לנו גם Inputs אחרים
  • אז אנחנו יודעים מהי המהירות הנוכחית על הכביש - וגם יש לנו את ההיסטוריה שיצרנו מכל הימים שלפני זה, של מה שאמור להיות פה.
  • אז כשאנחנו רואים שזה חריג, שהמהירות הנוכחית על הכביש היא הרבה פחות ממה שהיינו מצפים לראות עכשיו, אז אנחנו מסמנים את זה כפקק, כי כנראה שיש משהו.
  • במקביל, יש אפשרות לדווח, עם אותו הכפתור הכתום, יש אפשרות לדווח על פקק - 
    • וכשאנחנו רואים גם שהמהירות חריגה ואיטית מדי וגם שיש דיווחים, אנחנו נחבר את זה אחד לשני ונגיד ש“זה איטי בגלל הפקק”.
  • אבל אנחנו יודעים על הפקק בכל מקרה - פשוט אנחנו לא כל הזמן אומרים שיש פקק עד שמדווחים . . . 
(רן) זאת אומרת שאתם צריכים להגיע לאיזשהו Confidence מספיק משמעותי שבאמת יש שם פקק . . .
  • (חנוך) להגיד שיש פקק זה לא דורש Confidence משמעותי - בשביל להתחיל לשנות את ה-Inputs של המסלול ושל ה-ETA, אנחנו עושים את זה באופן אוטומטי כל הזמן.
(רן) כן . . . אוקיי, אז זאת אומרת שאם, לצורך העניין, כמה מכוניות עצרו בצד, אתם יכול להיות שאפילו בטעות תחשבו שזה פקק - אבל זה לא מספיק כדי לשנות את ה . . .
  • (חנוך) אז אם זה כמה שעצרו בצד, אז אחרי זמן לא-רב אנחנו נבין שהם לא זזים, אז זה לא שאנחנו פשוט “או, וואו! . . .”
    • וגם אם אנשים אחרים עוברים את ה-Segment הזה, אז אנחנו נדע שאפשר לעבור פה, ופשוט הם לא . . . 
    • זה חלק מה-Modeling של מה שקורה על הכביש, שזה מסובך . . .

(רן) אז עכשיו, אנחנו בעצם התכנסנו כאן בעיקר כדי לדבר על Routing, ואני מניח שהשאלה הראשונה שעולה בראש, לפני שמדברים על איך עושים Routing, זה בכלל איך מייצגים כביש . . . זאת אומרת, איזה מודל של העולם אתם מחזיקים? איך אתם ממדלים את הכבישים, את הערים את הרמזורים את ה . . .
  • (חנוך) אתה יכול לראות, בגלל שזה פתוח לכולם - זה אחד היתרונות ב-Waze, שאתה יכול להיכנס ל-Waze Account ולראות בעצמך בדיוק איך אנחנו עושים את זה . . .
    • וגם לשנות פרטים . . .
  • בגדול, יש לנו Data structures פנימיים שאנחנו עשינו, שממדלים בדיוק את כל הדברים שאמרת - ועוד מיליון פיצ’רים של הכביש . . .
  • וכל האינפורמציה הזאת, כולה - היא מהקהילה.
    • אז אין לנו בכלל אנשים שיושבים ומתקנים - כולו נכנס דרך אנשים שאמרו, באיזור שלהם, “אני רוצה לתקן את האיזור שלי”.
  • דוגמא טובה לאיך שזה עובד - אני גר בתל מונד [שכן!] ואצלי בבית, בגינה, לפי Google Maps יש רחוב, לא קטן, עם שני נתיבים . . . 
    • ב-Waze הוא לא קיים - וגם פיזית הוא לא קיים . . . 
    • (אורי) עד שיגיעו ויפקיעו לך חצי מהחצר. . . 
    • (חנוך) כן, אז יש מישהו מצד ימין ומצד שמאל, אז בטוח שהם יגיעו אלי אם כבר עברו בגינה של מישהו אחר, אז אני לא דואג לזה . . .
    • אבל אני אוהב את הדוגמא הזו - בגלל שזה שנים ככה . . . 
      • אפילו פעם אחת הגעתי עם זה לראש ההנדסה של Google Maps, שכמובן שאנחנו עובדים איתם, והוא אמר לי “בוא, תפתח באג, חנוך, ואני אתקן את זה בשבילך . . .”
      • אמרתי “לא, אני אוהב את זה!” - זו הדוגמא הכי טוב שאני יכול להשתמש בה להבדל בשיטה, באיך שאנחנו מחזיקים מפה, בין Google Maps ל-Waze  . . . 

(רן) כן, אבל פה אתה מדבר על איזה Ground Truth יש לך, איזו אינפורמציה אתה מקבל . . . אני מדבר . . . בוא נדבר הנדסית . . .
  • (חנוך) בעיקר זה גרף . . . הדבר הכי חשוב זה Connectivity, זה גרף של סגמנטים (Segments) עם Nodes
  • זה קצת אחרת ממה שהיית חושב באופן טבעי - אם היית כותב את זה על ה-Whiteboard, אז ה-Node-ים היו ה-Intersections והצלעות [קשתות] היו הרחובות, איך שזה נראה
  • אבל זה להיפך - בגלל שאתה עובר דרך Intersection לכביש, אז ה-Intersection הוא הצלע, בגדול, והרחוב עצמו הוא ה-Node, זה קצת אחרת ממה שהיית חושב.
  • אבל אחרי זה, אנחנו מדברים על Graph-search טהור - אז על כל צלע יש כמה נתונים, שמהם אנחנו בונים את ה-Cost של לעבור אותה.
    • ה-Cost הוא Time-dependent- גם מתי התחלת וגם כמה עברת בתוך החיפוש עצמו.
    • חלק מהסיבוך הגדול זה לעשות ניחוש קדימה - לא רק מה הפקקים הנוכחיים אלא גם מה יקרה בעוד 30 דקות, כשאתה תגיע לכביש 2, על כביש 6 - אז אנחנו עושים אינטרפולציה (Interpolation) כל הזמן של ההיסטוריה ושל ה-Real-time - קדימה.
    • אבל בגדול, אנחנו מדברים על משהו מה-Text-book - זה *A על גרף, שנראה כמו גרף . . .
(רן) כן, אוקיי - אז אם אני מבין נכון, למעשה “כביש” זה Node, ובין כל שני כבישים יש קשת, אם יש צומת שמחברת ביניהם באופן ישיר - זאת אומרת שלצורך עניין, צומת מסויימת יכולה להתבטא במספר קשתות, כי היא יכולה לחבר בין מספר כבישים שונים . . 
  • (חנוך) כן - אני קצת מפשט את העניין, בגלל שיש כמה סוגי Nodes וכמה סוגי סגמנטים ויש Intersections ו-Junctions שמאוד קשה לעבור [- הוסף כאן את החיבור האהוב עליך לכביש 6 -]
  • “צומת” יכול להיות מודל בפני עצמו - לפעמים צומת הוא מספיק מסובך שאנחנו מייצרים גרף קטן רק עבורו
    • נכנסים לתוך הגרף הזה ויוצאים ממנו - אז זה גרף נפרד רק לצומת
  • אבל בגדול, אנחנו מדברים על גרף ממשי בסיסי . . .לא בסיסי - זה משהו שקשה לתחזק, אבל גרף שאתה יכול לקרוא עליו ב-Computer Science 101.
    • עושים את זה ככה, ואז עושים Dijkstra עליו ואחרי זה כל השיפורים וכל מה שעושים אחרי Dijkstra.
(רן) אוקיי - וזה גרף כזה פר-מדינה? זאת אומרת, מערכת כבישים . . .
  • (חנוך) יש לנו שלוש סביבות - 
    • אחת זו ישראל - התחלנו מישראל, וישראל, למי שלא לא יודע זה “אי” . . . אז יש לה גרף נפרד, שבו אנחנו לפעמים מנסים פיצ’רים חדשים שאנחנו לא מוכנים עדיין להעביר לכל העולם.
    • יש לנו מפה ל-North America
    • ויש לנו מפה שלישית של כל העולם . . . אז בפועל זה שלוש מפות.
(רן) של כל  . . . זאת אומרת, לצורך העניין - אוסטרליה זה באותה מפה עם רוסיה או . . . .
  • (חנוך) כן, אין לזה הרבה משמעות כי אין Connectivity ביניהן, אבל זה נמצא באותו קובץ.
(רן) ואיך, “פיזית”? - משתמשים באיזשהו Graph Database, או שמידלתם לכם איזושהי סכמה (Scheme) משלכם?
  • (חנוך) הכל בזיכרון . . . 
  • אנחנו מעלים את הכל לזיכרון ובונים את כל הגרף, כי אנחנו צריכים “לרוץ" על זה מאוד מהר
    • אנחנו מדברים על milliSeconds של כל . . . בדיקת סגמנט זה משהו שחייב להיות מאוד מהיר, ממש - לא milliSeconds אלא microSeconds של מעבר על סגמנט.
  • אז אנחנו חייבים לעבור על עשרות-אלפי סגמנטים בכל חיפוש - אז הכל חייב להיות בזיכרון, אין אפשרות אחרת.
(רן) אוקיי, הבנתי - ומפת כל העולם יכולה להיכנס לתוך הזיכרון  . . .
  • (חנוך) כן, אנחנו מדברים על עשרות . . . עד 100Gb, משנה בדיוק איזו מפה ואיזו גירסא, אבל כשמשווים את זה לענן זה לא הרבה בכלל.

(רן) אוקיי, אז אמרת שעל הגרף הזה מפעילים *A . . . למי שלא זוכר את החומר, בגדול, מה ה-*A עושה? אני רוצה להגיע מ-Point A ל-Point B - מה עושים?
  • (חנוך) אגב, אני רוצה להגיד פה שאנחנו, למיטב הבנתי, היחידים שעדיין משתמשים ב-*A . . . זה אלגוריתם מאוד ישן, לפחות 30 שנים או 40 שנים, לא יודע - מאוד ישן [יותר מ-50, לפחות לטענת ויקיפדיה].
    • ויש סיבות לכך שאנחנו משתמשים בו - אני אסביר עליו, ואחרי זה אני אסביר למה אנחנו לא עושים משהו יותר מודרני”.
  • אז *A הוא גרסת Graph-Search . . . 
    • בוא נתחיל מ-Breadth First Search ,שאתה מחפש בכל כיוון
    • יש לזה גרסא יותר מתקדמת שנקראת Dijkstra, שאומר את אותו הדבר - חוץ מזה שיכולות להיות צלעות עם מחירים שונים, ואז זה לא בדיוק Breadth First אבל עדיין אתה הולך כל הזמן ומנסה למצוא את הדרך הכי קצרה לשלב הבא.
  • (רן) כן - מה שנקרא “Shortest Path” . . .
    • (חנוך) בדיוק - ו-*A הוא גרסת Dijkstra שמשתמשת במידע חיצוני . . . 
    • אני מכיר משהו על הגרף - זה לא רק Connectivity, יש גם משמעות פיזית - אז אני יכול להגיד לך ש”בכיוון הזה אי אפשר לחזור . . . אי אפשר שיהיה משהו”, וזו היוריסטיקה (Heuristic)
  • (רן) אז היוריסטיקה אומרת לך ש”אפילו שהמחיר פה נראה זול, לא כדי ללכת לשם, כי . . .”
    • (חנוך)  . . . בגלל שאנחנו יודעים שאי אפשר, בכיוון הזה, שיהיה מסלול יותר מהיר.
    • לדוגמא - היוריסטיקה הכי ידועה זה Aerial Distance - אני אומר שנניח שאתה הולך לשם, בכיוון הזה, ונניח שבכיוון הזה יש כביש ישר ומהיר - “כביש 6” הולך בדיוק מהנקודה הבאה ועד ליעד” . . . - אפילו אם זה היה נכון, זה לא היה מספיק.
      • אז אם כן, אין סיבה להמשיך בכיוון הזה.
  • (רן) אז אתה אומר - במקום לפזר את החיפוש ל-360 מעלות, אם אתה הולך בניגוד לכיוון היעד, באיזשהו שלב כנראה שאין טעם להמשיך, כי אפילו אם יהיה כביש ישר [לשם] זה עדיין מרחק גדול מדי.
    • (חנוך) כן, והיתרון ב-*A הוא שמתחילת החיפוש הוא מחשב כל הזמן מחדש - כל משתמש רואה, כל פעם שלוחצים על “Routes” . . . 
      • אין שום Pre-caching, אנחנו מדברים על “מפה טהורה” וחיפוש ממש מחדש.
    • זה מאפשר לנו פרסונליזציה (Personalization) מאוד חזקה לחיפוש - גם האופציות שאתה יכול לראות באפליקציה עצמה, גם בדברים שאנחנו שומרים עליך . . . 
      • לדוגמא, יש לנו Opt-In Feature שנקרא Personal ETA, שאנחנו רואים איך נהגת ב-30 הימים האחרונים [בהצלחה בסגר הבא . . . ] 
      • זה Opt-In לגמרי, אבל עם זה, אנחנו יכולים להגיד: “אתה מהיר מהרגיל, או איטי מהרגיל, אז אנחנו משנים את “המחיר” של כל צלע בשבילך”  . . . 
      • אז יש לנו הרבה דברים כאלה.
      • וזה מתאפשר ב-*A בגלל שאתה [עושה] הכל ממש מחדש.
    • המחיר של זה זה זמן . . . אם אתה לחצת על Waze ביחס ל-Google Maps, אתה יכול לראות שלוקח לנו הרבה יותר זמן לעשות Route מאשר התחרות, זה יותר איטי . . . 
  • (רן) אז אם נסתכל על ה-Worst Case Scenario, לא יודע מהו - נגיד West Coast to East Cost בארה”ב . . . 
    • (חנוך) זה יכול להיות שניות . . . 10 שניות אפילו אפשר . . . 
  • (רן) ומה גודל ה . . . כמו Nodes עוברים בדרך? זאת אומרת, מה המסלול הארוך . . .
    • (חנוך) יכול להיות  . . . המסלול עצמו אולי לא יהיה הכי גדול, פחות מ-1,000 - אבל החיפוש יכול להגיע ל . . . לא יודע, מיליון או יותר.

(רן) ואתה אומר שאתם היחידים שעדיין משתמשים ב-*A - אז מה אחרים עושים?
  • (חנוך) אז יש . . . הרי יש התקדמות אקדמאית על זה . . . 
  • במשך הרבה שנים, הדבר הכי טוב היה משהו שנקרא Bijection Hierarchies, שזה מתחיל עם אותו גרף של *A ובאיזשהו סדר ידוע עושה Short-cuts ששומרים . . . Short-cuts שלא קיימים באופן פיזי, אבל שומרים על המרחק בין שתי הנקודות
    • יש סדר ויש הרבה חוכמה - ויש הרבה דעות על איך לעשות את זה . . . .
    • יש הרבה שיטות, אבל בפועל - אתה יכול לבנות מפה, שעליה אתה יכול לעשות חיפוש מאוד מהיר.
  • אחרי זה יש גם משהו חדש מ-Microsoft . . . אגב, כל ה-Routing  הטוב הוא מ-Microsoft Research - הם הכי טובים בזה . . .
  • אז יש את מה שנקרא Customizable Route Planning, שזה סגו של Tree שאתה בונה -
    • אתה לוקח את העולם ומפרק אותו לארבעה חלקים, ואחרי זה ליותר ויותר . . . זה סוג-של Quad-Tree
    • ואתה שומר את הקפיצות על איזשהו חלק, אז כשאתה יודע . . . אתה לא חייב לעבור את החלק כדי לדעת - בכל מקרה אני חייב לעבור את החלק (Segment) הזה, מהכניסה הזאת - זה המחיר לכל היציאות, זה בגדול . . .
      • וזה עכשיו יותר פופולרי . . . 
  • לשניהם יש את אותו . . . לא בעיה, כי אלו יתרונות וחסרונות - זה הרבה יותר מהיר ודי הרבה יותר זול, אבל אתה חייב להכניס “חלק מהאמת”, כלומר, את המחיר של כל צלע - זה חייב להיות חלק מהאימפלמנטציה  (Implementation).
  • ב-Congestion hierarchies, הסדר שבו את צריך את ה-Short-cuts נגזר מהמחירים של הצלעות - 
    • וגם ה-Shortcuts עצמם, אם אתה משנה את ה-Cost שלהם - יש מצב שמה שנשאר לא יהיה נכון.
  • אז אתה מתחיל, ואתה חייב . . . אם אתה משנה את המחיר של איזושהי צלע, בגדול - אתה חייב לבנות את כל המפה מחדש.
  • כש-Customizable Route Planning הוא קצת יותר טוב, יש סוגי Metrics שאתה יכול לשנות On-the-fly, אבל אתה לא יכול לעשות כל מה שבא לך . . .
  • וב-Waze, אתה  יכול . . . נגיד שמחר יש לנו פיצ’ר חדש: אתה מעדיף רחובות או כבישים שמתחילים באות ר’ . . . אני מעדיף דברים שמתחילים באות ר’ . . . 
    • אין בעיה - אני אעשה עוד Cost Function בתוך המערכת, כדי לתת איזשהו “Punch-up” למשהו שמתחיל ב”ר’” - זורם . . . כל דבר כזה.
    • בגדול - זה בלתי אפשרי . . . 
  • ואנחנו החלטנו - זו החלטה מהמנכ”ל לשעבר, נעם ברדין, שישבנו ודיברנו על זה כמה פעמים - שהאופי של Waze זה הפרסונליזציה (Personalizing), וזה משהו שאנחנו מוכנים לשלם עליו יותר - כסף זה זמן, ואנחנו מוכנים לשלם יותר כדי לתת לך עוד טיפה יותר, מסלול יותר טוב.
    • וזו אחת מהסיבות שאנחנו לא עושים את כל ה . . . זה אחד מההבדלים, הפוקוס על הנהג, לעומת לעשות דברים אחרים - זה נותן לנו את האפשרות לעשות ממש Drill-down לנהג, ועדיף לעשות את זה  . . . 
  • [ואז החבר’ה של DeepMind שחררו את זה . . .]

(רן) אני סקרן האם אתם יכולים למדוד עד כמה לקוחות אוהבים את זה, או כמה לקוחות משתמשים בזה? לצורך העניין, אם לקחתם החלטה לא טובה במימוש של ה-Routing, האם אתם רואים את ה-Retention יורד? האם אתם רואים . . . האם אתם רואים החלטות כאלה מתבטאות בהתנהגות משתמשים?
  • (חנוך) יש לנו Checking על זה, ולצערי אני לא יכול להכנס לזה . . . אבל ודאי שיש לנו Checking על זה.
  • אנחנו מבינים אילו סוגי Routing ואילו סוגי תשובות אנשים שמחים איתם ואילו לא
  • אנחנו בודקים את זה כל הזמן - 
    • גם פרואקטיבית - אם איזשהו מדד עולה אז מה קרה ואם יורד אז מה קרה
    • וגם ראקטיבית - אנשים שולחים לנו באגים כל הזמן ואנחנו בודקים כמות לא קטנה של הבאגים ורואים אם יש משהו לא נכון.
  • אני יכול להגיד שחלק מהדברים שאנחנו עושים זה עניין של אי-אפשר . . . לדוגמא: פה בישראל זה לא מעניין, אבל בברזיל, ששם יש לנו הרבה משתמשים, יש עניין סביב באיזה יום אתה יכול להכנס לעיר עם ה-License plate הנכון, וזה משהו שדורש שתיהיה לך מפה ייעודית עבורך . . . 
    • עם כל ה . . . זה פשוט Explosion of parameters אם אתה לא עושה את כולו, אחרי זה, גם לכל License plate.
  • אז יש סוג של דברים שאנחנו יודעים שאנשים משתמשים [עבורו] בנו - בגלל שאנחנו ממשים פיצ’רים שאי אפשר לעשות בצורות אחרות.

(רן) כן, אז זה מביא אותנו באמת לשאלות מעניינות על רגולציות . . . אז, למשל, ימים שבהם מותר להיכנס לאיזור או כמו שהזכרת License Plates שמותר להם להיכנס ביום א’ וכאלה שמותר להם ביום ב’, לפי האם זה זוגי או לא זוגי או כל שיטה אחרת . . . 
(אורי) אני חושב שבישראל הייתה בעיה של שטחים מסויימים, שלא רוצים ש . . .
(רן) . . . זהו, אז למשל שטחים עירוניים, שכונות יחסית שקטות, שפתאום אולי נחיל של מכוניות עובר דרכן כי היה פקק באיזור . . . דרך אגב, אני מרגיש את זה כל מוצאי-שבת דרך העיר שלי - תמיד במוצאי-שבת מאוד עמוס . . . 
  • (חנוך) מצטער . . .
(רן) לא, אני מניח שכל אפליקציית Routing אחרת גם הייתה עושה את זה . . . אז כן, למזלי זה יחסית על כבישים ראשיים אבל זה בהחלט מורגש . . .
  • (חנוך) אז אני יכול לענות על זה שמבחינת רגולציות אנחנו . . . דווקא זו אחת החוזקות שלנו, שיש לנו Model מאוד מאוד גמיש לכל סוג רעיון חדש שמישהו יגיד, שעכשיו “רק רכב לבן בשעות זוגיות יכול להיכנס לפה” - אנחנו יכולים לתמוך בזה.
    • ועוד הרבה דברים Hyper-localized כאלו
  • אבל מה שאמרת לגבי ישוב שקט - אנחנו בכוונה אומרים שהנהג יכול ללכת לכל מקום שמותר מבחינת החוק.
    • אז אנחנו לא מכניסים, בשום מקום בעולם - לא בישראל, יש הרבה ביקוש לזה בקליפורניה - אנחנו לא מכניסים שום Restriction שלא מגיע מבחינה חוקית
    • אנחנו עונים כל הזמן לאנשים שזה מדאיג אותם, שהם יכולים לדבר עם פוליטיקאים ולדבר עם הממשלה שלכם שיעשו כאן איזשהו Restriction - ואנחנו נקבל אותו.
      • ברגע שיש כזה חוק - נכבד אותו.
(רן) כן, אז אתה אומר שזו לא בעיה לממש את זה, אבל אתם צריכים לקבל את ההנחיה מהרשות המקומית  . . .
  • (חנוך) לא רק שזו לא בעיה - אנחנו עושים את זה כל הזמן
  • יש הרבה מקומות בעולם שיש בהם הוראות כאלו - אבל אנחנו לא יכולים לעשות את זה בשבילך . . . 
(רן) אתם לא מחוקקים, אתם  . . . 
  • (חנוך) אנחנו לא רוצים להיות בעסק הזה . . . זה interest שלך יחד עם interest של הנהג, ואנחנו לא יכולים לענות.

(אורי) יש לי שאלה . . . 
  • (חנוך) בבקשה . . .
(אורי) בשביל זה אני פה . . . האם אתם מתייחסים לעובדה שמישהו מחליט שלא ללכת לפי ה-Route?
  • (חנוך) כן . . . Compliance . . . מישהו שכל הזמן לא החליט אצלנו [כמו שהמלצנו) או סתם פעם אחת?
(אורי) לא, הוא . . . נתת לו Route מסויים, והוא מחליט To Challenge - להגיד “אני חושב שיש דרך יותר קצרה” . . . השאלה היא - אתם לא יודעים, הרי, שהוא אמר “וואלה, ה-Waze הזה לא יודע, אני חושב שיש דרך יותר קצרה” - אתם פשוט רואים אותו סוטה מה-Route . . . אתה תעשה “Recalculating route”, אבל השאלה היא האם אתם מתייחסים לזה כאל סיגנל, זאת אומרת . . .
  • (חנוך) לא ב-Real-time, אבל אנחנו כן בודקים - זאת אומרת שאנחנו בודקים . . .
(אורי) לאו דווקא ב-Real time, השאלה היא האם אתם מסתכלים ומתייחסים אל זה כאל סיגנל של  . . . 
  • (חנוך) . . . יש משהו שאנחנו אולי לא מכירים, כן.
  • אנחנו עושים מחקר ongoing, אבל זה לא online בכלל - כי כשאנשים לא מקשיבים לנו, ובמקרים חריגים שהם צודקים, יש לנו מדד לזה, ואנחנו בודקים כל הזמן אחוז מסוים של זה - לראות מה קרה.
  • אגב, ברוב הפעמים יש סיבה שאנחנו לא יכולנו לתקן - 
    • לדוגמא: יש פקק, שהוא [הנהג] לא היה צודק [קודם] - אבל עכשיו הוא צודק בגלל הפקק שנוצר.
    • או שבמקרים רבים יש מקרה של משהו לא חוקי - עשה U-Turn לא חוקי . . . אז זה לא משהו שאפשר להגיד לו . . . 
(אורי) לא, אני לא מדבר על זה - אני מדבר באמת על המקרים האלה ש . . .
  • (חנוך) אז כן - זה קורה, ואנחנו בודקים את זה.
  • הקטע הוא שכל אחד משתמש ב-Waze כל היום - פעמיים ביום, שלוש פעמים ביום - ולא זוכר בכלל כש-Waze היה ממש על המספר הנכון, וזוכר את הפעם היחידה שהוא לקח שמאלה ו”עבד” על Waze קצת . . . 
  • זה יחסית חריג .  . . אבל אנחנו כן בודקים את זה - וכל אחד זוכר את המקרה שזה קרה לו, אבל אנחנו כן עושים . . .
(אורי) אתם משתמשים בזה כסיגנל כדי להשתפר? 
  • (חנוך) כן - אבל לא באופן אוטומטי.
  • אנחנו בודקים את זה ולומדים מזה - ובמקרים רבים עושים תיקונים, כמו “שיפוצים” למערכת  . . . 
    • אם הבנו שיש בזה איזשהו סוג של דבר שלא חשבנו עליו, אז לפעמים מתקנים את זה
    • לפעמים לומדים שיש בעיה עם המפה - יש מצב שאנחנו אמרנו ככה בגלל שאנחנו חשבנו שהיציאה הזאת תיקח שתי דקות, ובפועל זה עשר שניות . . . 
    • וכשאנחנו רואים את זה, אז זה כן Online נכנס לתוך המערכת ואומר “או, וואו - אנחנו טעינו פה ואפשר לתקן את זה” - ועוד יום או יומיים זה כבר יתחיל להיכנס להיסטוריה.

(רן) בוא נדבר רגע על ETA, כי המילה עלתה 
[ואיזה מתכנת בעולם לא אוהב שמדברים איתו על ETA? . . . ]
אז אני לא יודע אם אתה זוכר, אבל אני חושב שלפני כמה שנים היה איזשהו בחור, אני חושב אמריקאי, שעשה עבודה מאוד יסודית והחליט שהוא משווה בין ה-ETAs השונים שצפים ב-Google Maps, ב-Waze ו-Apple Maps, אני חושב [ב-Reddit יש כמה Waze vs Google ETA, וכמובן ב-Hacker News] - ואני חושב, אם אני זוכר נכון, שהמסקנה שהוא הגיע אליה היא ש-Waze דרך כלל אופטימיסטית, זאת אומרת - נותן ETA קצת יותר קצר מה-ETA האמיתי, Google Maps קצת יותר פסימי ולא זוכר מה הוא אמר על Apple Maps . . . אבל בוא . . . 
(אורי) הוא בטח אמר שה-ETA של Apple נורא יפה . . . 
[1+]
(רן) מעוצב יפה . . . 
  • (חנוך) כן . . . 
(רן) אז איך מחשבים ETA? איך אתה יודע באמת כמה זמן הולכת לקחת נסיעה?
  • (חנוך) אז יש כאן שתי שאלות, ואני אשמח לענות על שתיהן . . .
  • אז הראשונה, לגבי התחרות הזו . . . זה מאוד שונה ממקום למקום, ואני זוכר את הבלוג-פוסט שהזכרת, והוא עשה את זה באיזשהו מסלול אחד שלו, על פני כמה ימים . . . 
    • יש מקומות שאנחנו יותר מדוייקים, יש מקומות שבהם GMM יותר מדויק ויש מקומות שבהם Apple Maps כנראה  . . . לא יודע, לא מצאתי, אבל כנראה אפשר לראות.
    • אבל את זה אני יכול להגיד בוודאות - הגרסא הנוכחית של Waze, של ה-ETA, היא לגמרי אחרת ממה שהייתה לפני שנתיים או לפני שלוש שנים, וגם של Google Maps - לחלוטין.
    • אז אנחנו כל הזמן משפרים - כולנו, כל האפליקציות - כל הזמן משפרים את זה.
    • עכשיו, אתה שואל מבחינת האופטימיות? אז יש לנו קצת בעית אופטימיות, אני אופטימיים בקצת יותר מדקה, בממוצע . . . 
      • זה לא משהו ענק, ואנחנו כן היינו יכולים פשוט לשנות ETA לעוד דקה - הקטע הוא שאנחנו לא יודעים איפה על המסלול לעשות את זה . . .
      • אז אנחנו מנסים לתקן את זה, אבל יש לנו בעיית אופטימיות של כדקה . . .
        • [שזה מעניין - כי מניסיון, כששולחים את המסלול למישהו כ-Share, לפחות בארץ, זה אכן תמיד מוסיף דקה על ה-ETA הנוכחי, ב-Total . . .]

(רן) עכשיו, זה נשמע די פשוט . . . זאת אומרת, מקודם דיברנו על מציאה של מסלול עם המחיר הנמוך ביותר, וכשאנחנו מדברים על מחיר אנחנו מדברים כמובן על זמן . . .
  • (חנוך) לא, זה אשכרה לא . . . זה רק אחד מהמחירים
  • אנחנו רוצים לתת לך. . . אם זה היה רק זמן, אז היה ממש קל לדעת אם זה עבד לנו ומי יותר טוב וכל הדברים היו מאוד קלים.
  • הקטע הוא ש-Route טוב הוא לא רק הכי מהיר . . . 
(רן) אתה יודע מה - בוא נחזור לשם עוד מעט, אבל שנייה נדבר על ה-ETA . . . בכל אופן, הגעתי למסלול, ועכשיו אני, כדי לחשב את הזמן שלו, פשוט סוכם את פרקי הזמן על המסלול . . .
  • (חנוך) אפשר לעשות את זה, אבל יש כמה אתגרים פה - 
    • דבר ראשון זה שאם אתה עושה את זה אז זה לא הכי גרוע בעולם - הגרסאות הקודמות של Waze דווקא עשו דבר כזה, וזה עובד.
    • הקטע הוא שיש עניין של Flow - זרימה בין הסגמנטים - ויש אינטראקציות בין זה שהייתי פה והייתי ברמזור ובעוד שני סגמנטים יש עוד רמזור, אבל אם עברתי את זה אז אני ודאי אעבור את השני בלי שזה יהיה אדום בשבילי [הנחה מאוד אופטימית על סינכרון הרמזורים בארץ . . . .]
  • (רן) “הגל הירוק”, כמו שקוראים לזה בישראל . . .
    • (חנוך) בדיוק - אז אנחנו לא מודדים דווקא את זה, אבל יש לנו דרך למודל כללי למסלול עצמו.
    • אז מה שקורה זה ש-*A חייב להיות מהיר - על כל צלע יש לנו, כמו שאמרתי, יש לך microSeconds בודדות כדי לבדוק אותו, ואתה חייב לבנות את המחיר של המסלול מאוד מהר.
    • אחרי שיש לך מסלול - או כמה מסלולים, כמה אופציות או אלטרנטיבות - אתה יכול לעשות דברים יותר חזקים:
      • אתה יכול להכניס משהו שלוקח כל מסלול ומבין בעצמו את ה-Flow שיש ממקום למקום - ויכול גם להביא עוד פיצ’רים, שלא קיימים במערכת
      • כרגע אין לנו את זה, סתם - אנחנו אומרים שבגרסא X יהיה לנו מזג אוויר [אלון!], שאי אפשר להכניס לתוך ה-Routing עצמו, אבל אפשר אחרי זה . . .
      • או שהיום יש שלג, אז אולי נחכה עוד כמה דקות . . . לא ידנית אלא דרך המודל.
      • אנחנו בונים מודל שיכול לקחת את זה ולחדד את זה.
    • בהכרח זה אומר שיש מצב שאם לא ידענו את זה על כל מסלול אפשרי, שיש אולי מסלול אחר שהיה מצליח בזה טיפה יותר - אבל מאוד נדיר למצוא את זה.
      • בדרך כלל, עדיין - עם כל הנתונים האלה, באופן כללי, על כל המקומות - אם היה לנו את הזמן לעשות את זה לכולם, היינו נותנים פחות או יותר את אותו המסלול  + ETA יותר מדויק.
  • (רן) כן - אתה יוצא מתוך נקודת הנחה שאם שני מסלולים . . . זאת אומרת שאם אורך של מסלול אחד זה X ואורך של מסלול אחר זה Y, ו-X<Y - אז גם אחרי חישובי ETA זה יהיה . . .
    • (חנוך) פחות או יותר . . . יכולים להיות מקרים חריגים שלא - אבל בגדול כן.
  • (רן) זאת אומרת שה-ETA הוא טוב לחישובי ETA, הוא לא ישנה לך את המסלול עצמו . . .
    • (חנוך) לא אמור להיות . . . 
    • בדרך כלל, נגיד כשאני נוסע מהבית שלי בתל-מונד לעבודה בתל-אביב [ואין Waze בעולם שפותר את כביש 4 . . .]
      • אז זה פעם, לפני שנתיים, כשעוד עבדתי בתל-אביב, כשל-Google היו עדיין משרדים פתוחים -  אז בפועל יש שלוש אופציות, זה לא  . . . 
      • אתה יכול לבדוק את המפה ולראות “וואו! יש מיליון כבישים ו . . .” - אבל בינינו: יש לך את כביש 4 וכביש 2, וזה לא  . . . בפועל יש שתי אופציות . . . אז זה לא משנה.
      • אם אני מדייק את ה-ETA - ואגב, יש לי גם אלטרנטיבות: אני גם עובר על האלטרנטיבות שמדדנו ואני מודד את שתיהן - אמור להיות שהמספר הסופי של ה-ETA הוא קצת יותר מדוייק.
      • אנחנו אומרים שה-ETA המקורי יהיה יחסית טוב - אבל עדיין דייקנו אותו.
      • וזה אמור להיות בדרך כלל על המקומות כמו הכבישים המהירים - שהיו בכל מקרה כנראה חלק מכל מסלול סביר.

(אורי) איכשהו, יש לי הרגשה שהמסלול הכי אופטימלי של Waze זה מתל-מונד למחלף השלום . . .
    • (חנוך) אני לא יכול לענות . . .
    • [אני אענה - זה כי לא ניסית . . . כביש 4 זה לא משהו שניתן למידול בלי מחשב קוונטי. מצד שני - זה Google, יש מצב שהם שומרים את זה בתור הוכחה חד-משמעית ל-Quantum Supremacy?]
  • (אורי) איכשהו יש לי הרגשה כזו . . . לכל מאזיננו מתל-מונד [והסביבה] - שיחקתם אותה . . . 
אבל יש לי שאלה אחרת, קצת בהיבט Environmental - אנחנו מדברים על ETA כעל משהו שאנחנו רוצים לאפטם (To Optimize) אליו. אולי חשבתם על המסלול האופטימלי ב-Carbon Footprint?
  • (חנוך) דבר ראשון, אנחנו לא עושים את האופטימלי ב-ETA היום . . . 
(רן) אוקיי, אז אולי זה באמת מחזיר אותנו לשאלה על המחירים - אמרנו שהמחירים זה לא רק זמן אלא שיש עוד [פרמטרים], אז בוא נמשיך מפה . . 
  • (חנוך) אז דבר ראשון, הזמן הוא לא מדוייק . . . בוא נדבר רק על זמן
  • אפילו עם אתה עושה רק על זמן, יש שאלה: מה הממוצע של הדיסטריביוציה (Distribution)? 
    • נגיד שיש מסלול אחד שיכול להגיע לעבודה בעשר דקות, פלוס/מינוס דקה, ונניח שיש מסלול שני שיכול להגיד בתשע דקות פלוס/מינוס חמש דקות . . . איזה מהם עדיף?
    • זה עניין של טעם . . . אי אפשר להגיד את זה
    • אז יש לנו מחירים שאנחנו מכניסים קודם למהירות
  • אפילו אם אתה מדבר רק על זמן, זה קצת לא נכון להגיד שיש מספר אחד לנסיעה
    • יש אופציות, יש טווח - ויש חפיפות בין הטווחים
    • זה עניין אחד.
  • עניין שני זה קושי או סיבוכיות - יש פניות מסוכנות, ואנחנו לא רוצים לעבור דרכן אלא אם כן אין אפשרות אחרת
  • יש עניין של איזורים מסוכנים שאתה לא יכול להיכנס אליהם אלא אם ממש אין אפשרות סבירה אחרת.
  • יש עניינים של הבחירות שלך - אתה לא רוצה Dirt roads, אתה לא רוצה Toll Roads, אתה לא רוצה Ferries . . . 
    • לפעמים אפשר לעבור קצת יותר מהר דרך איזושהי תחנת דלק [האופציה הישראלית?] - אתה עושה את זה, אבל זה אסור בפועל . . . 
  • אז יש הרבה דברים שהם לא רק ETA שאנחנו לוקחים בחשבון.
  • אנשים לא אוהבים Detours - זה שאתה יורד מהכביש וחוזר בכניסה הבאה - אם זה יעזור לך יותר מ . . . אני חושב שהמספר הוא 4 דקות - אז אני אעשה את זה בשבילך.
    • אבל אם זה 2-3 דקות - זה לא משמעותי ולא ישנה את החווייה שלך 
    • וזה פשוט ישים אותך באיזשהו לחץ - כל הזמן לעזוב וללכת.
  • אז יש עניין של Smoothness, יש עניין של כמות הפניות . . . כל זה נכנס לתוך “המרק”.
  • ומתוך זה אנחנו בונים את ה-Route הכי טוב - 
    • זה לא הכי מהיר, זה הכי טוב שאנחנו חושבים שעם כל השיקולים הוא מה שאתה היית רוצה.

(רן) אוקיי, אז עד עכשיו אני חושב שידברנו על שיקולים ברמה האינדיבידואלית, זאת אומרת - אתה מחשב את המסלול המהיר ביותר מנקודה א’ לנקודה ב’.
נניח שעכשיו יש לנו פקק ואתה צריך לייצר Detour - אתה יכול ללכת מימין ואתה יכול ללכת משמאל. נניח שהמסלול הימיני הוא קצת יותר קצר - האם תשלח את כל הנהגים לצד ימין, ואז אולי גם תייצר פקק נוסף שם, או שנגיד תחלק אותם חצי-חצי? . . . 
האם אתם בכלל חושבים על הפרספקטיבה הגלובאלית הזאת, זאת אומרת? של ה-Distribution של . . . ?
  • (חנוך) כמו תמיד, התשובה היא כן - ולא . . .
  • אז בעיקר לא . . . אבל בפועל יחסית כן.
  • לא - בגלל שאין לנו שום דבר שאומר “שלחנו X אנשים ימינה, אל תשלח יותר אנשים”
    • ואגב, בישראל יש לנו אחוז ממש גדול של משתמשים, אבל ברוב העולם יש לנו אחוז מהנהגים, אבל אם שלחנו X ככה זה לא אומר שזה אחוז מספיק [גדול] כדי לשנות את ה-Traffic, לאיזשהו כיוון.
  • מצד שני, נניח שעשינו את זה, שלחנו יותר מדי אנשים ימינה - יש לנו Feedback-loop - 
    • זה לא ש . . . “פקק” זה לא דבר בינארי, יש פקק או אין פקק - יש לנו כל הזמן מדידה Real-Time של מה שקורה, מה שהבנאדם האחרון חווה על הסגמנט הזה.
    • אם זה מתחיל להאט, פתאום האופציה השניה, שהייתה “טיפה יותר”, תתחיל להיות יותר מהירה . . .
  • (רן) כמו ב-microServices,  יש Back-Pressure - ברגע ש-Service אחד איטי מדי אז אתה עובר לבא בתור . . .
  • (חנוך) כן - העניין פה זה עד כמה שיש לך Feedback-Loop מספיק מהיר, ואז זה יעבוד.
(רן) כן - השאלה היא האם יש לך Feedback-Loop מספיק מהיר? זאת אומרת . . .
  • (חנוך) כרגע לא . . . זאת אומרת שהמנהל-של-המנהל-שלי דיבר בחדשות לפני יומיים או משהו כזה והזכיר את זה שאנחנו עובדים על זה כרגע . . .
    • יש לנו כרגע איחור של כמה דקות - עובדים על זה, מנסים להוריד אותו . . . 
    • עובדים על זה כל הזמן, זאת אומרת שפעם היה יותר והולכים ומורידים אותו [את העיכוב]
    • אז אשמח אם זה יהיה קצת פחות ממה שהוא עכשיו, כרגע הוא באיזור של 5-6 דקות . . . עד שלגמרי נבין את זה, אפשר להגיע לפחות.

(רן) אבל מה ברמה ההנדסית . . . איפה ה-Latency, זאת אומרת? את הדיווחים מהנהגים אתם מקבלים   . . .
    • (חנוך) לא כל הזמן . . . תחשוב על זה - אתה לא רוצה שהטלפון שלך ישלח כל הזמן, על כל 100 מ’ . . .
    • אז יש פה Batching - ויש גם את העניין של מה שעושים איתו.
      • קיבלתי איזשהו דיווח שפתאום אתה עברת את הסגמנט הזה - והוא היה יותר איטי, או מהיר - לא משנה, משהו חריג לעומת מה שהיה לפני.
      • כמה אמין זה? יכול להיות שאתה באופנוע, יכול להיות שאתה פשוט . . .  ויכול להיות שפשוט עצרת בצד הכביש, כמו שאמרת.
      • אנחנו חייבים לראות כמות מסויימת של אנשים כדי להבין את זה.
    • אז אנחנו עושים Modeling פה - יש לנו מודל של המהירות של הכביש, והוא לא לוקח “סתם” לפי הדגימה האחרונה, אלא הוא עובד על מודל של חמש הדקות האחרונות, ועושה איזשהו Modeling על איפה שזה אמור ללכת עליו.
      • זאת אומרת שזה לוקח כמה דקות בפועל כדי שנבין שמשהו קרה.
    • אחרי זה יש עוד Delay - אנחנו בודקים את ה-ETA שלך כל 2 דקות מחדש
      • אז נניח שהבנו שיש שינוי בכביש, אבל בדקנו את ה-ETA שלך רק לפני שנייה - אז יש עוד 2 דקות לפני שאתה תקבל את התשובה.
    • זה היה עד כדי 4 דקות בגלל עוד Latency עד לפני כרבעון - תיקנו את זה עכשיו ל-2 דקות ואנחנו כל הזמן מנסים להוריד אותו.
    • אבל יש לזה שלבים - זה לא זורם מה-Client עד שאתה יודע ומתקן וזה חוזר
      • יש פה Batching בגלל שיש תקשורת ויש מחיר של תקשורת סלולרית . . .
(רן) אבל בגדול - אם אני רואה שפקק מתחיל להיווצר או שפקק מתחיל להשתחרר, אז אפשר לצפות שתוך סדר גודל של משהו כמו 5-6 דקות Waze כנראה ידע מזה?
  • (חנוך) אז כן - למרות שאם אתה כבר רואה את זה בעיניים, יש מצב שהסיגנלים לזה התחילו הרבה לפני . . . 
    • כשזה מגיע למצב שאתה רואה אותו כבר, את כל התזוזות הקטנות אנחנו התחלנו לקחת כבר
    • אז לפעמים זה קצת יותר מהר ולפעמים זה יותר איטי - זה Modeling, זה ניחוש של העתיד . . .
  • אז זה מאוד מאוד משנה למה יש פקק - 
    • אם יש פקק בגלל שיש תאונת דרכים על הרחוב שלך, אז אי אפשר לדעת כמה זמן זה יקח, אבל אנחנו עושים Modeling וממוצעים על התנועה, ומי יודע האם הנתיב שלך יהיה יותר מהיר או יותר איטי . . . [Murphy יודע, מה זאת אומרת?]
  • מצד שני - אם זה מהצד השני של הכביש, אז זה רק איטיות בגלל שאנשים רוצים לראות, אז אפשר יותר לדעת מתי זה יתחיל לזרום.
  • אז אנחנו מנסים לתת לך ניחוש, אבל בגדול - ברגע שיש לך פקק אתה במצב של Black Swan event, זה חריג בהיסטוריה
    • זה לא רק יותר עומס, יותר רכבים או פחות נהגים - זה עניין של של “אי אפשר לדעת” ולהיות בטוחים, אז מנסים לנחש.

(אורי) האופציה של גלגל”צ יותר ארוכה ב-Response time שלה . . .
(רן) כן, היא בדרך כלל יותר ארוכה . . . כן.
אני זוכר נגיד שלפני איזה שבוע נסעתי, ובאמת היה פקק נוראי והחלטתי לעשות מעקף ממש ארוך, של איזה שעה . . . והתקשרתי לגיסי ואמרתי לו “שמע, אל תעבור פה בצומת, לא כדאי לך” - והוא עבר, והגיע לפני . . . כי הפקק בדיוק נפתח.
  • (חנוך) כן, זה מאוד קשה . . אגב, אנחנו . . . האתגרים פה זה לא משהו שלנו, לכל מי שעובד בתחום הזה יש את האתגרים האלה
    • כמה זמן זה לוקח לפני שאתה עושה Batching? - לכולם יש את אותו [מכשיר] סללורי עם אותה סוללה שהם לא רוצים להרוג . . .
    • כמה זמן לפני שאתה עושה ETA Check חדש?
    • למיטב הבנתי, זה לפני כמה שנים, הפעם האחרונה שדיברתי עם Google, ה-Loop שלהם היה יותר קרוב ל-10 דקות, למרות שהם גם עבדו על המערכת.
      • אין לי שום אינפורמציה על מהו המספר הנוכחי, אבל נגיד שלפני 4 שנים המספר שלהם היה 10 דקות.
    • זה עניין פיזי - יש מגבלות . . . זה לא רק ה-Backend, פה יש לנו טלפון ביד של הנהג . . . 

(אורי) 5G אמור להביא איזו בשורה ל-Waze?
  • [מעבר לחיסונים?]
  • (חנוך) 5G אני לא יודע, אבל אנחנו כן עובדים על התקשורת ועל יותר Streaming, אז תיהיה התקדמות בזה.
  • יש עניינים שיהיו יותר מתקדמים, בתחום של תקשורת בין הסלולר ל-Backend שאנחנו מנסים להביא לתוך Waze
    • אין לי אינפורמציה על מתי וכמה זה ישפר את המספרים, אי אפשר לדעת את זה כרגע.
    • אבל זה לא משהו שאנחנו פשוט אומרים “אוקיי, זה ככה אבל אף אחד לא נוגע בו” - כל הזמן מתקנים אותו.

(רן) טוב, אנחנו Over-time, כי זה היה כיף . . . היה מרתק
(חנוך) בכיף
(רן) אז קודם כל - תודה רבה שבאת . . .
(אורי) היינו קצת אופטימיים עם ה-ETA . . .
(חנוך) אבל הגענו ליעד!
(רן) אנחנו אופטימיים בהכל, לא רק ב-ETA . . . אז תודה רבה, חנוך . . .
(חנוך) אני חייב להגיד לפני שאנחנו מגייסים . . .
(רן) בדיוק רציתי להגיד שאתם בטח מגייסים . . . אז יאללה - 
  • (חנוך) אני מגייס לצוות שלי - אז יש לנו מקומות גם לעבוד על Routing וגם לעבוד על ETA - זאת אומרת גם Machine Learning וגם מה שמסביב ל-Machine Learning, דברים מאוד מעניינים
  • מגייסים גם Frontend וגם Backend - ל-Frontend גם Web וגם Client, גם Android וגם iOS
  • בגדול - אם את.ה יודע.ת לתכנת, אז יש לנו מקום בשבילך.
  • ויש לנו את התנאים הטובים של Google . . . .
  • אז אם את.ה מעוניינ.ת - על Google.com, לחפש את Google Careers ,ויש את האופציה לבחור ל-Waze
  • ונשמח לראות אתכם . . . 
(רן) נשים קישור ב-Show-notes - שלח לי ונשים שם [כאן - קישור לדף המשרות]

תודה רבה חנוך! להתראות [במהרה]

טוויט קשור ומעניין: https://twitter.com/_orcaman/status/1431478970755731460

 האזנה נעימה ותודה רבה לעופר פורר על התמלול!

אין תגובות:

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