מכירים את התחושה שמישהו בתוך הסמארטפון שלכם קורא מחשבות? אתם מסיימים לצפות בסרטון ביוטיוב, והסרטון הבא בתור הוא בדיוק מה שרציתם לראות. אתם פותחים את ספוטיפיי בבוקר, ורשימת ההשמעה השבועית קולעת בול למצב הרוח שלכם. אתם נכנסים לנטפליקס, והסדרה שמומלצת לכם בראש העמוד שואבת אתכם לבינג' של לילה שלם.
במשך שנים אנשים היו בטוחים שמדובר בסוג של קסם, בלוחמת סייבר פסיכולוגית או בכך שהטלפונים שלנו פשוט מצותתים לנו בחשאי. אבל המציאות מבוססת על מתמטיקה, ארכיטקטורת נתונים והברקה הנדסית אחת רשמית שנולדה בכלל בין השרתים של אמזון בשנת 1998. האלגוריתם שמנהל את זמנם של מיליארדי בני אדם ברחבי הגלובוס שואב את כוחו מתפיסה מהפכנית ששינתה את הדרך שבה מכונות מבינות בני אדם.
משבר סוף המילניום
כדי להבין את גודל המהפכה, צריך לחזור לאינטרנט של שנת 1998. אמזון הייתה אז חנות ספרים מקוונת שהחלה להתרחב במהירות למוצרים נוספים. ככל שהיצע המוצרים גדל, החברה נתקלה בבעיה הנדסית קשה: המשתמשים הלכו לאיבוד בתוך מיליוני דפים, ומכירות רבות התפספסו פשוט כי הקונים לא ידעו שהמוצרים קיימים. באותם ימים, כל מנועי ההמלצות ברשת פעלו על פי מודל קשיח אחד שנקרא "סינון שיתופי מבוסס משתמשים".
מה זה אומר? המערכות הישנות ניסו למצוא דמיון בין בני אדם. האלגוריתם סרק את מסד הנתונים וחיפש משתמשים אחרים שיש להם טעם דומה לשלכם (למשל, אנשים שקנו את אותם חמישה ספרים שקניתם). לאחר שהמערכת מצאה את ה"תאומים הצרכניים" שלכם, היא פשוט הציצה במה שהם קנו בהמשך, והמליצה על הספרים האלה גם לכם.
השיטה נשמעת הגיונית, אך בקנה מידה גדול היא היוותה קטסטרופה הנדסית. ככל שמספר המשתמשים באמזון צמח ממאות אלפים למיליונים, כוח העיבוד של השרתים קרס. כדי למצוא התאמה, המחשב היה צריך להשוות בזמן אמת למיליוני אנשים אחרים, לבדוק מיליארדי שילובים, ולעשות זאת תוך שבריר שנייה - לפני שסוגרים את הדפדפן. המערכות פשוט לא עמדו בעומס.
אל תסתכל על האדם, אלא על החפץ
בשנת 1998, מהנדס תוכנה צעיר בשם גרג לינדן עבד על פיתוח מערכת ההמלצות של החברה והחליט להפוך את הקערה על פיה. לינדן הבין שהטעות הגדולה של תעשיית ההייטק באותם ימים הייתה הניסיון לעקוב אחרי בני אדם. בני אדם הם יצורים דינמיים, הפכפכים וקשים לחיזוי. הם משנים את דעתם, את הטעם ואת תחומי העניין ללא הרף. במקום זאת, לינדן הציע גישה הנדסית הפוכה: סינון שיתופי מבוסס פריטים.
מה זה אומר בפועל? במקום שהאלגוריתם יחפש אנשים דומים, המערכת של לינדן הסתכלה על המוצרים שכבר נקנו או הוספו לעגלה, וחיפשה מוצרים אחרים שנוטים להיקנות יחד איתם על ידי אותם לקוחות.
הטריק ההנדסי היה מבריק ויעיל. מערכות יחסים בין פריטים הן יציבות בהרבה ממערכות יחסים בין בני אדם. ספר מתח מסוים תמיד יישאר ספר מתח, וחולצת ריצה תמיד תהיה קשורה לנעלי ריצה. המוצרים לא משנים את ההעדפות שלהם. מכיוון שהנתונים הללו קבועים, המחשב לא צריך לחשב שום דבר בזמן אמת כשהלקוח גולש באתר.
המערכת יכלה לבצע חישוב מראש במצב אופליין, לבנות מטריצה ענקית של קשרים בין מוצרים במהלך הלילה, וכאשר הקונה נכנס לאתר בבוקר - להציג לו המלצות מותאמות אישית באופן מיידי, ללא שום עיכוב או פגיעה בביצועי השרת.
המתמטיקה של ה"ענן"
מאחורי התצוגה הפשוטה של "אולי יעניין אותך גם..." מסתתרים אלגוריתמים מורכבים של למידת מכונה ופירוק מטריצות. הלב של המערכות הללו מבוסס על פונקציית הפסד או פונקציית מחיר, שמטרתה למזער את הטעויות בניבוי הטעם שלכם. במערכות סינון שיתופי מודרניות, אנחנו מנסים למצוא וקטור של מאפיינים לכל פריט ווקטור של העדפות לכל משתמש.
ההמצאה של לינדן, עליה רשם פטנט באמזון בשנת 1998, פתרה גם את אחת הבעיות הקשות ביותר במדעי המחשב: בעיית ההתחלה הקרה. במערכות הישנות, אם לקוח חדש נרשם לאתר ולא היה עליו שום מידע קודם, המערכת לא יכלה להמליץ לו שום דבר. אך בשיטה של לינדן, ברגע שהלקוח החדש הניח מוצר בודד בעגלת הקניות שלו, המערכת יכלה מיד לשלוף את וקטור המוצרים הקשורים אליו ולהציג לו המלצות רלוונטיות.
במהלך העשורים שחלפו מאז, כל פלטפורמה טכנולוגית ענקית על פני כדור הארץ לקחה את רעיון היסוד של לינדן ושיכללה אותו לצרכים שלה: נטפליקס משתמשת בו כדי להתאים לכם את תמונת הקדימון של הסרט על בסיס ז'אנרים שאהבתם. ספוטיפיי מנתחת את מבנה גלי הקול של השירים כדי למצוא פריטים דומים מוזיקלית. וטיקטוק לוקחת את זה לקצה ומודדת את שברירי השניות שבהם השתהיתם על סרטון מסוים כדי לעדכן את מטריצת הפריטים בזמן אמת.
אז בפעם הבאה שאתם פותחים אפליקציה ומרגישים שהיא מכירה אתכם טוב מדי, זכרו: אף אחד לא מאזין דרך המיקרופון. מדובר בהשלכות של אלגוריתם הנדסי גאוני וחסר גיל, שהנדס את דרכו בהצלחה גם כדי להביא את הכתבה הזו, פירור אחר פירור, ישירות אל המסך שלכם.
טעינו? נתקן! אם מצאתם טעות בכתבה, נשמח שתשתפו אותנו
