יום ראשון, 29 במאי 2022

439 Bringing offline to online data with Erez from Easy

פרק מספר 439 של רברס עם פלטפורמה - תאריך ההקלטה הוא ה-17 במאי 2022, ואורי ורן מארחים בכרכור את ארז מחברת Easy כדי לדבר על מה שהחברה עושה- לאסוף מידע על העולם האמיתי להנגיש אותו Online - ועל האתגרים שקשורים בזה.


(רן) לפני שנתחיל - ארז: ספר לנו בכמה מילים על עצמך ועל החברה
  • (ארז) אז אני ארז, נולדתי בקיבוץ רמת הכובש, גר היום בתל אביב עם מאיה ושתי הבנות שלנו.
  • למדתי באוניברסיטה, אחרי זה עבדתי קצת בהיי-טק - ומתישהו התחלנו לעשות את Easy, כמה חברים מהקיבוץ . . . 
(רן) Easy  . . . אז תיכף נדבר על מה זה Easy ולמה זה קשור ל-zap, אבל רגע, אורי - יש לנו פה קיבוצניק! זה לא קורה כל יום . . . 
  • (ארז) אז לפני זה דיברנו על הקיבוץ אז אמרתי ישר ו . . . 
(אורי) פתחנו פה שלישייה  . . . .
  • (ארז) אמרתי לכם שבמשרד, אנשים לא . . . הייתי צריך להסביר להם מה זה רברס עם עגלה וזה . . .
(אורי) כן, אנשים לא רואים, אבל פה הכל זה גולדסטאר ונובלס . . . 
(רן) כן . . . בסדר - אז בסוף הפודקאסט נעביר אותך בוחן של רברס עם פלטפורמה . . .
(אורי) עד עכשיו נכשלת . . . 
(רן) מעניין שגם הזכרת את זה, כי אתה אומר שהקמת את החברה יחד עם חבר מהקיבוץ . . . 
(רן) כמה חברים - ואני מניח שזה די נדיר “בסצינה”, אין המון סטארטאפים שהתחילו בתוך הקיבוץ, על ידי חברים מהקיבוץ [?] . . . אני תוהה עד כמה זה השפיע על המשך החברה? אולי אחר כך נספיק להגיע לזה, כי לא לשם כך התכנסנו.

אז בכמה מילים - מה עושה Easy?
  • (ארז) Easy, למי שלא מכיר, זה אתר ואפליקציה למציאת עסקים, מקומות, שירותים, נקודות עניין, הופעות, בעלי מקצוע . . . .כל מה שסביבך, הכל סביבך - זה ה-Tagline שלנו.
(רן) לפני איזה שבועיים חיפשנו משהו, אני לא זוכר, אולי איזה בית קפה - ואז הבת שלי, בת 13, אמרה לי “אבא! תפתח את Easy!” . . . - “אה! אני מכיר את ארז . . . .” - “מי זה ארז?” . . .
  • (ארז) מהקיבוץ . . . 
(רן) זהו, אז הבת שלי יודעת עליך . . . .
(אורי) אתם משתמשים?
(רן) כן  - יצא לי, מאז שהכרתי את ארז אז יצא לי קצת להשתמש, אבל  . . .
(אורי) זאת אומרת - יצאת לטיול, ואמרת “רגע, איפה יש מסעדה פה?” - ויאללה, ב-Easy . . .
  • (ארז) כן, אז אחר כך, בהקשר של הדאטה, אולי נגיע לנקודה שהשימוש הוא אולי קצת Sparse-י וזה כן מכניס איזה-שהם אתגרים בדאטה וכאלה דברים.
(רן) אז ניתן ככה קצת רקע על החברה ואז נכנס לאתרים - כמה זמן היא קיימת?
  • (ארז) החברה קיימת כבר 14-15 שנים - עוד מהבית של איתמר, מהגראז’ כמעט . . .  כמה שנים.
(רן) וכמה עובדים כיום?
  • (ארז) היום כבר 60 עובדים.
(רן) ותפקידך בכוח?
  • (ארז) אני ה-CTO של Easy, מימיה הראשונים של החברה.
(רן) ואיפה?
(רן) ועל “טהרת ישראל”, זאת אומרת - עובדים ישראלים, מוצר רק בישראל? . . . 
  • (ארז) כרגע המוצר רץ רק בישראל.
  • כן יש דיבורים-עניינים-מחשבות לכיוונים קדימה, אבל כרגע זה על טהרת ישראל - כל העובדים ו . . . 
(אורי) זאת אומרת שלבעלי מקצוע יש פיצ’ר של “עם חשבונית או בלי חשבונית”? . . . . 
  • (ארז) מעניין . . . אני יכול לחשוב על זה.
(רן) ואיזשהו מודל עסקי? זאת אומרת . . .
  • (ארז) כן . . . אז התחלתי לדבר קצת על ההקמה של החברה, בהתחלה קצת עם הכסף של איתמר ואח”כ קצת השקיעו בנו - דב מורן . . .
  • וזה גדל וגדל - והיום החברה כבר צומחת אורגנית מההכנסות שלה - מודל עסקי פשוט של Marketplace, כמו Google . . . .
    • יש חינם - מי שרוצה מצטרף
    • ומי שרוצה קצת אקסטרה - משלם על קידום ועל כל מיני שירותים .
(אורי) זאת אומרת - בעלי המקצוע, המסעדות, העסקים - יכולים להצטרף חינם, ואם אתה רוצה קצת יותר אז זה בתשלום?
  • (ארז) כן, ועוד רגע מעניין זה שהם יכולים גם לא להצטרף והם עדיין יהיו שם - זה קשור אולי לשיחה ותיכף נגיד.
  • אפשר לרגע להגיד מספרים - 5-6 מיליון כניסות בכל חודש לאתר ולאפליקציה, בערך חצי-חצי בין האתר לאפליקציה
    • מעניין שכשהקמנו את החברה . . . 
(רן) כמה Unique-ים? . . . 
  • (ארז) 3 מיליון Unique users . . .
(רן) זאת אומרת - שלושה מיליון ישראלים . . . מתוך כמה אנחנו, 9 מיליון באוכלוסיה? [וחצי . . . ] וזה כולל גם ילדים [בערך 30% . . . ] - זאת אומרת שליש מהאוכלוסייה, שזה חלום של כל חברה, בגדול . . . 
(אורי) שליש מהאוכלוסייה משתמשת?
  • (ארז) שליש מהאוכלוסייה - 3 מיליון Unique users בחודש אחד נכנסים ל-Easy.
  • חצי מהם מגיעים לאתר, ושם הם גם  . . . לפעמים זה דרך חיפוש ב-Google או משהו, אבל חצי מהכניסות זה שהם נכנסים לאפליקציה, באופן Direct, ככה.
(אורי) מה שנקרא “אורגני” . . . 
(רן) כן - ואיזה תחומים? אילו ורטיקלים קיימים?  דיברנו על מסעדות . . . מה עוד יש?
  • (ארז) אז זה זנב נורא ארוך כזה של חיפושים ואפשר לדבר על התחומים הכי גדולים - 
    • מסעדות זה הכי גדול, אבל אפילו מסעדות הוא לא רוב האפליקציה
    • בחיפושים זה Long Tale כזה של חיפושים ומלא תחומים - זה מסעדות ובעלי מקצוע וחנויות ובילויים כאלה ואטרקציות לטיול וכאלה דברים
    • וגם קצת הופעות ודברים כאלה . . . 

(רן) אז אם אמרנו באותו משפט גם עולם פיזי - מסעדות והופעות וכו’ - וגם “זנב ארוך”, אני מריח צרות . . . זאת אומרת, איך משלבים בין שני הדברים האלה? איך אתה מצליח - וזה גם נושא השיחה שלנו - איך אתה מצליח לאסוף דאטה על עולם ה-Offline ולהביא אותו Online בצורה שהיא Cost Effective, בצורה שהיא אמינה וכן, זו ככה הכותרת, בגדול . . . אז מאיפה מתחילים?
  • (ארז) אז כן, אנחנו למדנו שזה ממש קשה . . . . זה מאוד קשה - וזה קשה לכולם
  • הטווח הזה, שבין הנקודות עניין ובין הדברים הממש פופלאריים לבין ה-Long Tale הזה, שמגיע אפילו עד לעולם של המיפוי, ה-Mapping הזה ממש - 
    • אנחנו מדברים על משהו כמו חצי מיליון נקודות עניין בישראל - עסקים, נקודות עניין, כאלה דברים - בין 250-אלף לחצי-מיליון, תלוי מה סופרים
  • זהו, זה אתגר - אתה מגיע ורוצה לעשות אפלקציה כזאת אז מה אתה עושה? איך? מה?
(רן) אני יכול להמר, בוא תגיד לי מה נכון . . . . אתה יכול להתקשר לכולם . . . .
(רן) מתקשר ושואל . . . “שלום, מה נשמע? מתי אתם פתוחים? מה הכתובת שלכם? . . . .” כן, ככה חצי -מיליון טלפונים . . . .
(אורי) אני, כאילו, ב-144 . . . אתה לא צריך להתקשר, יש את הספר טלפונים או . . . זה ה-Database . . .  אתם לא בעצם מחליפים את 144?
  • (ארז) אולי גם . . . . קודם כל, לא לכל אחד יש טלפון, או לא יודע, לא מפרסם את הטלפון שלו . . .
  • אבל כן, במידה מסויימת אנחנו רוצים להיות ה-Database של ישראל וזה גם קצת מה שאנחנו עושים.
  • 144, גם אם לא  . . . .
(אורי) 144 שהוא קצת יותר מונגש” . . . אתם סוג של 144 שהוא יותר מונגש?
  • (ארז) יכול להיות . . . 
(רן) אבל הוא גם רק לעסקים, הוא לא לפרטיים, 144 . . .
  • (ארז) אנחנו מרגישים, כשהתחלנו את החברה, שזה עולם שמרגיש שהוא לא השתנה . . . אפילו אלפי שנים אני יכול להגיד, הוא לא השתנה . . .
    • יש “איזה מישהו שמחזיק איזו רשימה” של כל העסקים בכפר - ואתה בא אליו ושואל אותו.
    • זה לא השתנה, וגם אם התקדמו והגיעו לשנות ה-2000 ולאינטרנט - זה לא השתנה, והם עדיין נשארו עם הרשימה הזאת
  • וזה עולם לא מפוצח . . . אני חושב שגם אנחנו עדיין לא פיצחנו אותו. זה עולם שאפשר לעשות שם דברים יותר מעניינים.
(רן) אוקיי, אז הניסיון הראשון שלי זה לעשות חצי מיליון שיחות טלפון ולברר - ולעשות את זה אחת לחודש, כי זה צריך להיות מעודכן. אז אחת לחודש חצי מיליון שיחות  . . .  יש פה בעיית Scale קלה . . .
ניסיון אחר זה אולי לשדוד איזשהו Database . . . לשדוד את 144 או לעשות את איזשהו Scrapping, לא יודע, אולי אפילו משהו חוקי [!], אולי גם זה קיים איפשהו.
(אורי)  . . . או להוציא פרסום בטלויזיה, לעסקים . . . 
(רן) כן, שירשמו אצלנו  . . .
  • (ארז) אתה צריך הרבה כסף בשביל זה . . . אתה יודע כמה עולה פרסומת בטלויזיה? . . . 
  • נכון, זה קשה להתחיל - וזו בעיה של כל Marketplace.
(אורי) אלא אם כן שידורי קשת משקיעים בך . . . 
  • (ארז) נכון, אבל הם לא באו סתם ככה . . . 
(רן) היה משהו לפני זה?
  • (ארז)  . . . כי יש לי עיניים יפות . . .  נכון, בעיית המסיבה” הזאת, כשאתה רוצה להכין איזה Marketplace ואתה רוצה שיבואו משתמשים - אבל אתה רוצה גם את העסקים, ואז מי יבוא ראשון?
    • משתמשים לא יבואו אם אין עסקים ועסקים לא יבואו אם אין משתמשים
  • אז כן, אנחנו התחלנו, וגם היום, הרבה עם Crawler-ים, הרבה . . . 
  • אמרנו “בוא נדע הכל, בוא נדע את כל המידע”
    • מה זה הכל? כל ה-Chains, כל הרשתות שיש בישראל: סופרפארם ומקדונלדס ו . . . 
    • ואז אני אדע - לכל אחד יש אתר ויש כמה מאות כאלה, אפילו אלף, תלוי איך סופרים . . .
(אורי) נכנס לרשימות הסניפים . . . 
  • (ארז) נכנס לרשימות הסניפים . . בהתחלה קצת ידנית אבל בסוף נכתוב קוד שהולך פעם בכמה ימים, נכנס, מוריד את רשימת הסניפים.
  • נלך לכל מיני אתרים - של העירייה . . . יש עיריות שמפרסמות את הרשימות, יש Database כמו Gov.IL שמפרסם את רשימות, לא יודע - “סניפי  הדואר” . . . ונתחיל ככה.
  • ויש אתר, לא יודע . . . הרבנות הראשית! אומרים מי כשר בישראל . . . .
(רן) הבנתי - אז לכל אלה, שהם Point of Interest או יש להם נוכחות Online-ית כלשהי, אתה כותב Crawler - ולכל אחד זה Crawler אחר, כי כל אתר בנוי אחרת . . .
  • (ארז) כן . . . 
(רן) אז גם פה יש איזושהי בעיית Scale קלה . . . 
  • (ארז) נכון . . . אז קודם כל, אתה מגלה מהר מאוד שכל האתרים האלה הם דומים.
    • זה לא כמה “מערב פרוע”, אבל כן . . . 
  • ושם מצאנו את הנישה שלנו, בין הידני לגמרי לאוטומטי לגמרי של ה-”Google-Bot” שהולך למערב הפרוע ומנסה למצוא שם מידע
    • אנחנו כן אומרים לו “בוא תלמד על זה וזה וזה” . . . אז יש כמה אלפי Domain-ים ויש עוד כמה  . . . 
      • ויש גם אתרי בית של עסקים וזה גם מעניין - הם יותר מערב פרוע . . . עוד כמה עשרות או מאה-אלף Domain-ים כאלה . . .
    • ואתה מתחיל לנסות ללמד אותם ושיתקדמו, ואתה עושה קצת את ה-Fine Tuning וכל זה - ואז הם לא משתנים הרבה
    • ואתה מתחיל, ולאט-לאט יש לך, התחלה יש לך - וזה הר של מידע כזה, טקסטואלי.

(רן) אבל למעשה כל מה שעשית עד עכשיו זה ריכזת מידע שכבר קיים Online - ריכזת אותו במקום אחד, שאולי יהיה יותר נוח - ממויין, יותר זמין לחיפוש - גם זה לא בטוח, כי יש Google, אבל נניח ש . . . אתה מייצר איזושהי Directory.
איך אתה מייצר ערך מוסף מעל זה? או מעשיר מידע יותר או לחילופין מביא מידע שלא היה קיים לפני זה Online?
  • (ארז) קודם כל, המידע הזה מאוד מבולגן - קשה להסביר עד כמה הוא קשוח ומבולגן.
    • אני מראה לפעמים באיזה אתר שכתוב את שעות הפעילות של איזה בית קפה וכתוב שם “יום ו’ אחרי כניסת שבת - שעתיים” ואיזה טקסט  . . . יורד שורה ואז פתאום “יום חמישי ככה וככה” . . . .
(רן) . . וכל זה בטבלאות HTML . . . 
  • (ארז) כן, ממש בלגן . . . . ואנחנו גם ראינו בבלגן הזה הזדמנות, זה לא כל כך קל, ול-Google גם זה לא כל כך קל.
    • אנחנו יודעים את זה כל השנים וגם משיחות עם Google ועם הכי גדולים והכי רציניים  - עם Google ו-Apple ו-Waze וכולם - אנחנו יודעים כמה להם זה קשה, הדבר הזה.
      • זה בלגן, זה לא כל כך קל . . .
    • אז הערך המוסף הראשון הוא בלסדר את זה - יש המון דאטה טקסטואלי, אז לבוא ולעשות לו Restructuring.
(רן) זאת אומרת - אפילו שזה Online, זה עדיין קשה לחיפוש כי זה מאוד מבולגן, ואולי אם תיכנס ידנית לאתר של החנות אז אתה תוכל לקרוא את זה, כבנאדם - אבל אם אתה עכשיו מחפש מסעדה שפתוחה בין 1200 ל-0200 בלילה, יהיה לך מאוד קשה למצוא את זה . . . 
  • (ארז) יהיה לך מאוד קשה, כן
  • ויש עוד הרבה Attributes שאפשר לסדר אותם - יש את השעות פעילות ויש למסעדות כשרות
    • וזה נראה קטן - אמרתי “כשרות”, אבל אתה יודע מה זה “כשרות” בישראל? . . . . זה, וואי . . . 
    • ויש “כשר למהדרין” ויש “לא כשר” שמעניין אנשים מסויימים ויש “כשר עם תעודה” . . . 
  • אז כל ה-Structuring הזה - לקחת את הטקסט הזה ולסדר . . . 
(אורי) זה אחד הקיבוצניקים, עם ה”לא כשר” . . . 
  • (ארז) כן . . .  אני זוכר שמישהו אמר ש”צריך גם לא-כשר, צריך לעשות את הסינון הזה” . . . .
(רן) אוקיי, אז רגע-רגע-רגע . . . .
  • (ארז)  . . . נדבר על זה אחר כך, אני עוד מקדים את המאוחר, אבל אנחנו גם שואלים את המשתמשים - User-Generated Context, לקבל . . . לוודא את המידע . . .
    • “כן/לא - האם המקום הזה . . . “
  • אז הדבר הכי שנוי במחלוקת בשאלות האלה זה “כשר?” . . . . זה הדבר שיש סביבו הכי הרבה סתירות, כשחלק אומרים “כן” וחלק אומרים “לא” וצריך . . . 
(רן) דרך אגב - זה שיקוף של המציאות, מן הסתם . . .  יש כאלה שיחשיבו מסעדה ככשרה ויש כאלה שלא - את אותה המסעדה בדיוק, לפי הרב שמכשיר וכו’.
  • (ארז) נכון.

(רן) אוקיי, אז רגע - בדיוק דיברת על UGC, וזו פעם הייתה מילה ממש חמה, הרבה זמן לא שמענו אותה . . . 
  • (ארז) כן? לא שמענו עליה? כל . . . Web2? באיזה מספר אנחנו היום?
(רן) אבל זהו - ב-Web2 זה היה כאילו ה-דבר הכי הכי חם . . .
  • (ארז) . . . וב-Web3 זה כבר לא זה, חוזר לתאגידים ו . . . .
(רן) זה כבר משהו אחר, לא נכנס לזה . . . אבל כן - אז למה שלא פשוט תבקש מהמשתמשים שיעשו לך את העבודה הזאת? כל מי שעובר ברחוב - שיפתח שנייה את האפליקציה ויכניס שעות פתיחה . . . .
  • אז חזרנו לאותה שאלה של “למה להם?” - למה שהם יעשו את זה? . . . 
(רן) אז אולי בעלי העסקים יעשו את זה?
  • (ארז) גם - למה להם?
  • אז התשובה היא כן וכן וכן . . . התשובה היא שזה מה שעושים בעולם הזה: יורים לכל הכיוונים.
  • זה לא מספיק, ה-Crawler-ים האלה - זה מדהים להתחלה ולסדר את המידע המבולגן מהמידע הטקסטואלי זה חלק מאוד גדול של הדבר הזה
  • אחרי שאתה קצת מתחיל, אתה עושה לעצמך Bootstrap של דאטה כזה ואתה מתחיל לגדול
    • אז מתחילים קצת משתמשים, Early Adopters כאלה - ומהם אתה מבקש שיכתבו Reviews על עסקים ואולי אתה שואל אותם . . . .
    • אולי מי שהשתמש כבר 10 פעמים אז לא אכפת לו לענות לך - “המסעדה הזאת - יש בה מקומות ישיבה בחוץ? תענה לי . . . “
    • ואם שלושה-ארבעה-חמישה ברצף ענו “כן” - אז זה כנראה “כן” . . . 
  • ומתישהו עסקים מתחילים לקבל פניות ואנשים אומרים להם ש”הגעתי דרך Easy“ - אז גם הם מתחילים לבוא  . . . 
  • וזהו - אתה פשוט יורה לכל הכיוונים שם . . . .
  • באמת, האתגר הגדול הראשון בעולם הזה הוא ה-Acquisition הזה, להשיג את הידע
    • אנחנו עשינו את זה בכל השנים עם הרבה Crawler-ים יחסית מתוחכמים ומורכבים, שעושים הרבה דברים
    • זה גם API-ים של Facebook ו-Public APIs של עסקים שיש להם מידע Public
  • ולא נגעתי פה בכל הדברים . . . גם, קצת יותר מאוחר, זה קצת שיתופי פעולה עם חברות משלוחים שגם משתפות איתנו פעולה
    • הן גם נותנות לנו API של הדאטה
  • מתישהו אתה גם מתחיל לצרף את המשתמשים - שואל אותם שאלות, שואל אותם  . . . .
    • שם כפתור באפליקציה - “המקום הזה פתוח? המקום הזה סגור?”
    • והם עונים לך ואתה מתחיל לקבל דאטה ואתה צריך לדעת מה עושים עם הדאטה הזה.
  • ובעלי עסקים, מתישהו כשזה מתחיל לזוז, אז זה ברור מה המוטיבציה שלהם
  • וככה זה, בעצם . . . 

(רן) אז טוב, יש לי הרבה שאלות, אבל בוא נחזור רגע לדוגמא שהזכרת על שעות פתיחה - נגיד “פתוח במוצ”ש החל משעתיים אחרי” ושורה מתחת עוד משהו - אז מה, כל מקרה לגופו? לכל דבר אתה כותב קובץ קונפיגורציה? יש לנו פה  . . . .
  • (ארז) אז לא, יש לנו Regular Expressions ואתה כן “מלמד את השפה” הזאת, “שפת שעות-הפעילות” הזאת
    • ש”שני” ו"ב” זה אותו הדבר ואופטימיזציה כזאת . . . 
(רן) בסדר . . . וניסיתם לקחת את זה יותר רחוק, לעולמות ה-NLP זאת אומרת?
  • (ארז) יש אצלנו עניינים של NLP . . . ספציפית בשעות פעילות זה די  . . . זו לא בעיה קלה אבל היא Straight-forward Engineering כזה, נתמודד איתה . . .
  • ביחד עם ה-UGC והאלגוריתם הכללי שלנו של לתקן את הטעויות ולקבל דיווחים  ולהבין האם הדיווח הזה בכלל מהימן ואם המשתמש הזה - אפשר בכלל לסמוך עליו? 
    • וזה הכל כזה מסביב, בהכל . . .
(רן) בדיוק, זה מוביל אותי לשאלה הבאה - מה קורה במקרה של Discrepancy, כשמקור אחד מראה שעה 0900 ומקור אחר מראה שעה 0800, כשאחד מהם יותר Recent ומצד שני יש לך יותר Evidence  . . . 
  • (ארז) כן, אז זה האלגוריתמים שלנו, שהם אחראים  - הרוב קובע, אבל זה רוב משוקלל ויש מקורות מידע שעם הזמן המערכת לומדת שהם יותר מתוחכמים ויותר אמינים
  • יש משתמשים שעם הזמן המערכת לומדת שהם יותר אמינים ואפשר “לסמוך” עליהם . . . 
  • על בעל עסק - בדברים מסויימים אפשר לסמוך עליו מאוד ובדברים מסויימים אחרים פחות כי יש לו אינטרס וכאלה דברים.
  • זהו . . . 
  • בעולמות של NLP, יש לנו לא מעט דברים של NLP . . . בעולמות של Reviews וכאלה דברים - Content Moderation וכאלה דברים, אז שם יש NLP.
  • בעולם הזה יש את כל עניין הקטיגוריות - לשים את העסקים  . . .
(רן) “מספרה שהיא גם מסעדה” . . .
  • (ארז) כן, זהו . . .  לאפיין אותם וכל זה
    • אז שם יש דברים קצת מתוחכמים לפעמים של מה זה הקטיגוריות האלה? איך לסדר אותן?
    • אנחנו מחזיקים אותן באיזה “עץ כזה של העולם” עם כל הקטיגוריות שלהם . . .
  • וגם אפשר לעשות דברים יותר מתוחכמים שגם אנחנו עושים קצת - שזה Emending של כל הביטויים האלה של החיפושים שאנשים עושים, בשביל לאפיין דברים יותר על Vector-space שיוכל לשמש גם לכל מיני דברים יותר מתוחכמים.
(אורי) לפעמים אתם מגלים קטיגוריות לפי חיפושים של אנשים? . . . .
  • (ארז) כן  . . . אפשר לגלות, אנחנו יודעים . . . 
(אורי) . . . כאילו - מישהו מחפש “מתקן אופניים”, ונגיד אין לכם כזאת קטיגוריה . . . 
  • (ארז) כן, יש לנו צוות, שאנחנו קוראים לו “צוות Data” או “Data Quality” או “צוות Content” - יש לו כל מיני שמות, לצוות הזה . . .
    • והם עובדים עם כל מיני כלים שאנחנו כותבים להם והם יודעים - “הנה חיפוש שחיפשו ואולי זה טרנד חדש”
      • אולי סוג חדש של מסעדות או חיפוש שמשום מה לא קיים אצלנו - מחפשים אותו הרבה והוא לא קיים אצלנו, רק הולך ל-Free Search, יש לנו Free Search כזה.
      • תמיד יש Fall-back לחיפוש חופשי . . .
(רן) אז אולי זה מסוג הבעיות שלא יודע אם יהיה לנו זמן לדבר עליהן - עד עכשיו דיברנו על Data Acquisition ויש גם את ה-Data Retrieval - שאילתא או “מנוע חיפוש” נקרא לזה, שגם שם יש עולם מעניין . . . 
  • (ארז) כן, שני העולמות מעניינים, של Content Recommendation קצת ולסדר את התוצאות וכל זה . . . .
  • פשוט יש מישהו פה מ-Outbrain אז זרקתי Buzzword . . . .

(רן) אז אני מניח שהלקוחות בקורונה לא השאירו אתכם עירניים מדי . . . . אני אומר שמה שקרה בתקופת הקורונה בטח קצת (קצת…) זיעזע את כל העולם וגם את שלכם, אז זהו - (א) זה דפוסי התנהגות שונים, למשל שמסעדות פתאום סגורות וזה משהו שהוא כנראה  חריג ו-(ב) זה שינויים כנראה תכופים - אולי היום כן ומחר לא וכל זה, ואולי אפילו גם ורטיקלים נוספים כמו נקודות בדיקה לקורונה שפתאום נורא מעניינות את כולם . . . .
אז איך מתמודדים  עם שינויים כל כך מהירים ולא צפויים?
  • (ארז) צריך לדעת שבכל מקרה, ה-Database הזה שיש לך - גם ככה משהו כמו 5% ממנו, כל חודש הוא גם ככה משתנה . . . 
  • 5% ואולי 6% או יותר אפילו - בכל חודש, או שעסקים נסגרים או . . . 
  • אז גם ככה, תוך שנה . . . 
(אורי) איך אתה יודע שהעסק נסגר?
  • (ארז) שאלה טובה . . . 
(רן) סגור באופן תמידי, הכוונה - לא “סגור ללילה” אלא “נגמר” . . .
  • (ארז) אוקיי, אז איך יודעים שעסק נסגר? . . .  זו שאלה מאוד טובה ומאוד קשה.
  • אנחנו עושים כל מיני דברים בשביל . . . יש לנו את כל הדאטה - כל הדאטה ה-Online-י ואת כל הדאטה של המשתמשים שלנו.
  • נניח שאני Data Scientist ואני רוצה לתקוף את הבעיה הזאת מכיוון של לבנות איזשהו מודל ולהבין האם העסק סגור
    • אז צריך להתחיל לבנות מודל כזה, להבין האם המסעדה נסגרה.
    • אז אוקיי - מה עושים בפרויקט כזה? . . .
(אורי) אתם משתמשים ב-Machine Learning, להניח . . . .
  • (ארז) אז קודם כל אוספים כמה דוגמאות של  . . . .
  • אולי אני אתחיל מהסוף - לא תמיד אנחנו יודעים  . . . לא תמיד אנחנו יודעים, ואנחנו רק יודעים לשער אם היא סגורה.
    • אנחנו יודעים להגיד האם היא פתוחה ואנחנו יודעים לפעמים להגיד את ההסתברות שהדבר הזה קורה, לפי מודלים שאנחנו בונים.
  • אז איך בונים מודל כזה? 
    • קודם כל, יש את האתגר של לתייג את הדאטה הזה - להשיג מסעדות שהן בטוח-סגורות ומסעדות שהן בטוח-פתוחות.
    • אז אתה מתמקד בהתחלה במשימה הראשונה של לתייג את הדאטה הזה, או . . . 
(רן) אילו פיצ’רים אנחנו רואים? - “האם יש Reviews?”, “האם האתר בחיים?” . . . .
  • (ארז) כן . . . פיצ’רים מאוד ברורים זה מתי כתבו עליו Review, מתי הוא כתב Post ב-Facebook שלו, מתי הוא עודכן . . . 
    • אבל יש גם פיצ’רים פחות טריוויאליים, שזה האם הטלפון שלו הוא 05-משהו או 03- . . . יכול להיות שזה משפיע, אתה מבין?
    • או פיצ’רים של Location, כאלה - האם הוא נמצא במרכז העיר או רחוק ממרכז העיר? האם הוא נמצא בישוב קטן או בעיר?
    • ויש גם את באיזו קטיגוריה הוא נמצא, שזה שאלה - איך אתה עושה . . . .
(רן) אז אתה יודע - יש את מה שנקרא Chaos of Dimensionality ה-Machine Learning . . . . - זאת אומרת שכשיש לך כל כך הרבה פיצ’רים אבל לא מספיק מידע, אתה יכול מאוד בקלות לעשות Overfit . . . . זה נשמע שיש לך פה המון המון פיצ’רים ובוא - אנחנו בישראל . . .  עד חצי-מיליון עסקים, מתוכם כמה דוגמאות יש לך? גם אם יש לך חצי-מיליון דוגמאות, על כך הרבה פיצ’רים זה לא עוזר . . .
  • (ארז) אני לא יודע . . . קודם כל, לא אמרתי המון פיצ’רים” - אמרתי “עשרות”, לא יודע . . . .
(רן)  . . . אני יכול לחשוב על המון פיצ’רים . . . . 
  • (ארז) אפשר לחשוב . . . אם אתה מתחיל לדבר על קטיגוריות ולעשות Embedding גם לקטיגוריות, אז כבר יש לך כמה פיצ’רים שאתה רוצה בעצם . . . 
    • זה הרבה מהעניין פה - הקטיגוריות, כשהן יכולות לפצל את זה להרבה מודלים או להרבה פיצ’רים.
    • בסדר, אתה יודע - ככה זה ב-Machine Learning . . .  הרבה פעמים בבעיות של החיים האמיתיים, וואלה - זה לא המודלים הענקיים.
      • אני רואה גם מודלים יותר ענקיים, שמנסים לחזות CTR וכאלה דברים, וואלה - איזה כיף! יש לך מודל ענק של מיליונים ומיליוני דוגמאות, כמה שאתה רוצה ובאיזה גודל של דאטה שאתה רוצה אז יהיה לך . . . 
  • אבל הרבה פעמים, בעיות של עולם אמיתי זה לא Data set ענק . . . 
    • הוא לא פצפון פה - יש לך אלפי או עשרות-אלפי דוגמאות ללמוד מהן, ויש לך עשרות פיצ’רים מעניינים
    • והאופרציה של לחבר את הכל ביחד היא אתגר - אתגר מעניין . . . 
  • רק לתאר . . . ה-Labeling הוא אתגר וה-Featuring וללמד את זה - והכל מתחבר לדבר הזה של לאסוף את זה ולעשות את ה-Structuring הנכון.
    • כי אם חילקתי אותם נכון לקטיגוריות ואמרת “זה מסעדה, זה בית קפה” - ועשית את זה טוב ומדויק - זה יחזק לך את המודל.
  • זה ניהיה טרנדי עכשיו וכולם מבינים את זה - שהרבה פעמים האתגר זה ה-Data ולסדר אותו
    • ואנחנו יודעים את זה מהידיים שלנו מהיום הראשון
    • זה אתגר שלפעמים הוא יותר חשוב ממודל כזה או מודל או עץ כזה או Deep Learning . . .
(רן) לגמרי . . . אני חושב שגם לא מזמן התפרסם מחקר, לא שהוא גילה משהו שלא יודעים, אבל התפרסם מחקר שהוא קצת יותר Quantitative של Google שאמר שאם אני לא טועה אז משהו כמו 90% מעבודת ה-Machine Learning זה ניקוי דאטה וסידור דאטה וכו’.
  • (ארז) כן, Andrew Ng אומר את זה כל הזמן [פה יש שיחה נהדרת איתו אצל Lex Fridman], על ה-DataOps וכל זה - שהאקדמיה אוהבת להתעסק עם המודלים ולשפר שם איזה  . . .  
    • אבל הבעיות של העולם האמיתי הן קרובות לאפליקציה, הן  . . .

(רן) אז בוא רגע נדבר על Data Pipelines - תיארת הרבה מאוד מקורות מידע שונים, ואני מניח שיש עוד . . דיברת על איסוף מ-Scraping ומאתרים, דיברנו על מקורות מידע אנושיים - חוות דעת, ואני מניח שיש עוד הרבה מקורות אחרים . . . בסופו של דבר, אתה רוצה להביא את הכל לאותו מקום ובצורה איכותית.
נסה, ככה, לתאר איך נראה ה-Pipeline שלכם.
  • (ארז) יש פשוט את השלב הראשון שזה ה-Data Acquisition, שהוא מורכב מכל הדברים האלה, משלוש או ארבע הזרועות האלה
    • זרוע ה-Crawler-ים והחיבור ל-API-ים, שפשוט מביאה משם את המידע באופן Period-י ב-Crawling כזה.
    • יש את זרוע העסקים, שזה פשוט כל המידע שבעלי העסקים מעדכנים - הכל הולך לאותו מקום בהתחלה
    • ויש את כל התוכן שהמשתמשים מעדכנים
    • בנוסף לזה, המשתמשים גם מביאים את הדאטה ה-Implicit, את הדאטה הפאסיבי הזה - 
      • מתוך השימוש שלהם גם אפשר ללמוד הרבה דברים, זה גם פיצ’ר . . . 
      • אם זה עסק פופלארי יותר או פחות פופלארי - זה גם כמובן משפיע.
  • אז כל ארבע הנקודות האלה - זה לשלוף את המידע מהן, להביא אותו בצורה די גולמית ודי בסיסית ולא מאוד מסודרת, די טקסטואלית כזאת.
  • השלב הבא זה שלב ה-Structuring הזה, שקצת דיברנו עליו - לסדר את המידע, כשבמקום טקסט אנחנו רוצים מבני נתונים שלנו, מסודרים.
    • אנחנו לא רוצים “אחרי כניסת שבת” וכו’ . . . .
    • אנחנו לא רוצים מסעדה בטקסט חופשי - אנחנו רוצים את ה-Entity שלנו, שאומר “מסעדה", שמאופיין בעץ שלנו, שיש לנו בנים בעץ של “מסעדות אסייתיות”.
(אורי) אתם בחרתם מבנה נתונים שהוא טבלאי (Tabular) או  . . . ?
  • (ארז) אנחנו עובדים הרבה עם טבלאות, עם SQL
  • משלבים בתוך זה אובייקטים לפעמים, JSON-ים וכאלה, בתוך ה-SQL במקרים האלה . . .
(רן) מה ב-Driver של כל הדבר הזה? זאת אומרת, משתמשים בכלים מוכרים - Airflow, או . . . ?
  • (ארז) כן, Airflow בשביל תזמונים, Python . . .  כן, דברים כאלה.
  • ו-SQL, קצת NoSQL בכל מיני מקומות.
(רן) ונגיד שזה רץ אחת ליום? או . . . 
  • (ארז) כן, זה רץ אחד ליום
    • יש דברים שרצים אחת לשעה . . . ה-Crawler-ים עובדים כל הזמן, מסביב לשעון
    • וגם המשתמשים עובדים כל הזמן מסביב לשעון - וגם בעלי העסקים . . . 
  • אבל העדכון מידע הראשוני הזה - לקחת מכל המקומות האלה בחוץ כזה “Chunk” פעם בשעה או דברים מסויימים פעם ביום מביאים את זה למקום הזה.
  • וזה מתחיל תהליך של Structuring, שהוא גם קורה פעם ביום, בגדול
    • לא נסבך פה . . . . בשביל הסיפור פה אפשר להגיד שהוא קורה פעם ביום.
  • אחרי תהליך ה-Structuring הזה יש עוד תהליך שלפעמים קצת שוכחים אותו אבל הוא גם לא קטן, שזה כזה De-Duplication
    • זו גם בעיה כזאת קשוחה לפעמים . . . 
(רן) מה הכוונה? תן דוגמא . . . 
(רן) . . .  אז אין Entity Consolidation - זאת אומרת שאתה רוצה להגיד ששניהם זה הקפה . . .
  • (ארז) כן - ששניהם זה אותו . . . Entity resolution או Entity Consolidation או De-Duplication . . . כל מיני
(רן) הבנתי . . . 
  • (ארז) ב-Python יש איזו חבילה - dedupe - ויש לזה כל מיני שמות, לבעיה הזאת.
  • זו גם בעיה קשה - שגם בה אפשר לעשות Learning וכל מיני דברים
    • אפשר Rule-based בסיסי, נגיד לפי השם ולפי הכתובת - אבל זו גם לא בעיה טריוויאלית
    • יש לי ליד הבית איזה פלאפל שבקורונה או מתישהו הוא החליט שבערב - אני חושב שהוא אפילו מפורסם - מתישהו בערב הוא הופך את השלט והוא ניהיה מסעדה איטלקית בערב . . . 
      • זה אותו עסק? זה לא אותו עסק? . . . 
    • גם עורכי דין - יש כאלה שהם באותו משרד, אבל הם רק חולקים טלפון כי זה חוסך להם
      • וכל אחד מהם הוא עוסק מורשה לבד . . .
    • (אורי) ויש פלאפל שבבוקר הוא מוסך - אבל הוא לא מחליף את השם . . . 
    • (ארז) כן . . . אז זו גם בעיה קשה
  • וגם עוד נקודה שלא אמרנו - יש קצת Spam וכאלה דברים, יש איטרסנטים . . . 
    • היה מחקר של Google - או של ה-Washington Post נגד Google, אני לא זוכר בדיוק - על מנעולנים . . . .
    • אני לא זוכר את המספר אז אני לא אגיד סתם, אבל אם זה 10% או 50% מהמנעולנים, איכשהו זה Duplicates . . . .
    • (אורי) זה מה שהם יודעים לעשות? לשכפל? . . . . הם משכפלים את המפתחות?
    • (ארז) כן . . . אז יש גם אינטרסנטים כאלה, שמפריעים לך - אז זו גם לא בעיה קלה.
  • אז שנייה לסדר רגע את ה-Data Pipeline הזה שאמרת - 
    • אספנו את כל המידע הזה מכל מיני מקומות ומכל מיני סוגים, טקסטואלי בעיקר.
    • עשינו לו Structuring
    • ועכשיו עשינו לו את ה-De-Dup הזה, את החיבור כפולים” הזה, כמו שקוראים לזה אצלנו.
    • ואז כבר יש לך קצת עם מה לעבוד . . .

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

(רן) ובסוף התהליך הזה - מה נוצר? מה זה “מוכן למשיכה”? מוכן ל-Retrieval, מוכן לחיפוש? איך נראה ה-Data?
  • (ארז) אז זהו, בסוף-בסוף עשית את ה-Structuring וה-De-Dup ואז הפעלת את כל . . . 
  • עכשיו זה השלב להפעיל את האלגוריתם הזה שקצת דיברנו עליו - 
    • להחליט - האם המקומות האלה סגורים? האם המקומות האלה פתוחים?
  • הרבה מהדאטה הוא לא רלוונטי . . . . המון, ממש.
    • יכול להיות שרוב הדאטה לא רלוונטי, אז . . .
    • כי אם מישהו פותח איזה אתר או דף Facebook, ואז סגר את העסק - אז הוא לא ממהר לסגור את הדף . . . 
  • וזה המקום לשים את ה-Threshold הזה, לפי  . . . 
    • ודווקא פה יש משהו מעניין - לפי כל ה-Learning הזה שאמרנו - לפי כל הפיצ’רים, לפי כמה ומתי עודכן וכל וזה . . . 
(רן) זאת אומרת - ההחלטה האם זה משהו שאנחנו רוצים להציג או לא, או במילים אחרות “האם זה פתוח או סגור?” . . . אוקיי
  • (ארז) אז שם יש לנו מודלים שגם תיקפנו אותם כמה פעמים ועשינו נסיונות לתקף אותם ממש בצורה ידנית בסוף
    • בסוף עשינו מודל שאומר “ההסתברות שהמקום הזה קיים בכלל” . . . .
    • זו לא בדיוק השאלה של “האם נסגר?”, אבל “ההסתברות שהמקום הזה קיים היא 72%”
    • אז יש לנו מודל שאומד את ההסתברות שהעסק באמת קיים
  • ואז עשינו, מתוך צוות ה-Data Quality שלנו - עשינו פרויקט ותיקפנו את המודל הזה, בעזרת פשוט . . . 
    • בסוף גם בעזרת דרכים מתוך הדאטה - להבין וללמוד וכל מיני הבנה סטטיסטית
    • אבל בסוף גם לתקף את המודל הזה “ידנית” - להבין האם זה נכון במציאות
  • וזהו - ואז אתה קובע את ה-Threshold הנכון שלך
  • ושם יש לך דילמה - יש לך דילמה של דאטה: איפה לשים את ה-Threshold?
    • אם אני רוצה אז אני יכול לשים את ה-Threshold ב-99% . . . בטוח שכל המקומות יהיו פתוחים ולא יהיו [כמעט] טעויות ב-Database
    • אבל אז מתחילה הבעיה ההפוכה . . . 
(רן) . . . יש לך בעיה שלך Recall - זו הדילמה של Precision לעומת Recall
  • (ארז) כן, אז יש לך דילמה קלאסית של Data, של Precision / Recall
  • והאמת שזה דיון מעניין, שגם קיים אצלנו כל הזמן - איך מכריעים בדבר הזה.
  • אז בסוף אתה צריך להחליט איכשהו - או מפרודקט או מתחושה או מזה . . .
(רן) דרך אגב - זה משהו שאתם מחצינים למשתמש? זאת אומרת - אתם באים ואומרים “אנחנו חושבים שהעסק הזה קיים . . . “, או שאתם פשוט מציגים וזהו?
  • (ארז) יש לנו עסקים שבהם - שהם בקו של ה-Threshold - שאם אתה מנווט לשם, נגיד, אז אנחנו מקפיצים לך אזהרה: “שים לב, המידע על העסק הזה לא עודכן הרבה זמן”
    • [The foremost cartographers of the land have prepared this for you! ]
    • אז אולי למעשה זה כמה Threshold-ים . . . . 
      • יש Threshold שברור לנו שזה לא קיים 
      • ויש Threshold של ה”התאמת ציפיות” הזאת - לכתוב איזה משהו למשתמש, במיוחד אם הוא מנווט לשם, שזה יכולה להיות החווייה הכי קשה למשתמש.
  • וזהו - ואז צריך להכריע מה ה-Threshold הזה . . . 
    • כאילו הכי נכון שם זה לעשות גם Learning של Retention של המשתמשים, ולהבין מה הכי נכון . . . .
(רן) דרך אגב, הזכרת לי סיפור - סיפור אמיתי וקורע לב - שפעם קבעתי תור לאיזשהו רופא מומחה בקופת חולים, וכשהגעתי למרפאה גיליתי שהיא לא קיימת . . . . ועכשיו, היא עדיין רשומה באתר של הכללית, אבל הם לא יודעים על זה, ומן הסתם אי אפשר למצוא את הרופא הזה. אז זה קורה גם שם . . . 
  • (ארז) זו אכן בעיה קשה . . . וואי, זו ממש בעיה של כולם
    • זו הבעיה הכי קשה - וזו בעיה של כולם, זו בעיה של מיפוי וזו בעיה . . . 
    • אני רואה איך כולם מתמודדים עם הבעיה הזאת - Google ו-Apple עכשיו וכולם.
(אורי) בשביל זה צריך מומחה . . .
(רן)  . . . ורצוי שלא רופא . . . 

(רן) אז זה סופר-סופר-מרתק, אבל זמננו תם . . .
  • (ארז) אה, כן, דיברתי כל כך הרבה? לא שמתי לב . . . .
(רן) . . . אתה רואה? אמרתי לך שנהנים פה . . . .
(אורי) כן, הזמן עובר מהר
(רן) אז כן - זה סופר-מעניין ובאמת נגענו ככה רק בקצה הקרחון, אני בטוח שיש עוד הרבה בעיות, רק מהתחום הזה של לקחת מידע שהוא Offline-י ולהביא אותו Online . . . גם לא דיברנו על מה שיש אחרי זה - על ה-Retrieval שלו, שגם זה עולם. . . קצת רמזת לזה כשדיברת על Embedding אבל לא נכנסנו לזה עמוק.
אז קודם כל - תודה שבאת!
(אורי) חוץ מהחליבת בוקר . . . .
  • (ארז) אני לא הייתי בחליבה אף פעם . . . לא יודע . . .
(רו) עבדת בדשא . . . 
  • (ארז) כן, נכון . . . 

(רן) אז אמרת שאתם נמצאים בתל אביב, ליד שוק לוינסקי. מחפשים?
  • (ארז) מחפשים כל הזמן - אם מעניין אתכם, חברה ממש מיוחדת וכייפית וקיבוצניקים ולא קיבוצניקים וקיבוצניקיות, ונחמד אצלנו
  • ואתגרים של Data Engineering, מעניין, עם הרבה דאטה - אתם יכולים לחשוב על כמות המשתמשים שלנו והכניסות וכמה אתגרים של Big Data
    • ובכלל - אתגרים מעניינים של Data Engineering ו-Python
    • ואם אתם אוהבים Data Science אז זה סופר-מעניין אצלנו עם כאלה דברים.
  • וגם הצד השני - מגייסים גם Frontend: יש Vue ו-Node.js 
    • אתגרים של Scale של Web . . . 
  • הכל מעניין אצלנו . . .  בואו.
(רן) אני חושב שאחד הצ’ופרים האמיתיים זה שזה מוצר שכנראה אמא שלכם משתמשת בו וכולם מכירים - בערך שליש מהאוכלוסיה בישראל משתמשת וזה כיף
  • (ארז) אני הייתי ב-Real-time Embedded כזה, “בברזלים” - וזה היה מעניין, כן
    • אבל פתאום עכשיו אני על דבר שהוא בידיים שלי - וזה נחמד.

(רן) אז ארז - תודה רבה! היה מעניין, תודה שבאת. להתראות.


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