למה נטפליקס נטשה את התכונות המוגדרות ידנית

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

מודלי שפה גדולים (LLMs) מוכנים (off-the-shelf) לא עבדו "מהקופסה". הם נטו לכיוון הכותרים הפופולריים ביותר, לעיתים הפיקו "הזיות" (hallucinations) של פריטים שאינם קיימים, והתקשו לאכוף את הכללים העסקיים ששומרים על ההמלצות בטוחות ורלוונטיות. לכן, נטפליקס בנתה מנגנון מבוסס LLM ייעודי ששומר על נקודות החוזק של מודל שפה תוך כיבוד מגבלות הייצור (production).

בתוך GenRec: תהליך אימון דו-שלבי

GenRec מורכב משני שלבים נפרדים:

  1. כוונון עדין (fine-tuning) של מודל הבסיס – נטפליקס מתחילה ממודל שפה בעל משקולות פתוחות (open-weight) ומבצעת לו כוונון עדין על נתוני צפייה פנימיים. זה מלמד את המודל את אוצר המילים של הקטלוג ואת דפוסי התנהגות המשתמשים מבלי לשנות את ארכיטקטורת הליבה שלו.
  2. דירוג המלצות (Recommendation ranking) – סבב אימון שני הופך את המודל שעבר כוונון עדין למדרג (ranker) שמעניק ציונים לכותרים מועמדים עבור משתמש נתון. נטפליקס מרעננת שלב זה בתדירות גבוהה כדי שהמודל יישאר מעודכן בשחרורים חדשים ובמגמות משתנות.

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

שיפורים בביצועים וביעילות

בניסוי שנמשך ארבעה שבועות וחשף 10% מתעבורת נטפליקס ל-GenRec, המערכת החדשה הניבה עליות משמעותיות מבחינה סטטיסטית בשתי משפחות של מדדים:

  • מעורבות לטווח קצר – עלייה של 0.115% באותות ה-click-through וזמן הצפייה העיקריים המניעים את ההמלצות היומיות.
  • מדדי ליבה לטווח ארוך – עלייה של 0.006% בשימור מנויים ובמדדי שביעות רצון כלליים שחשובים ביותר לעסק.

בבדיקות אופליין, איכות הדירוג על סט נתונים נפרד (held-out dataset) השתפרה ב-1.6% בהשוואה לקו הבסיס בייצור. מרשים אף יותר הוא היעילות בנתונים: שלב האימון השני דרש בערך 1/40 מכמות הדוגמאות המתויגות (labeled examples) שתהליך האימון המסורתי זקוק להן כדי להגיע לאותה רמת ביצועים.

כדי לשמור על עלויות המחשוב תחת שליטה, נטפליקס מריצה את המודל באמצעות vLLM, מחסנית שירות (serving stack) שמעניקה ציון לכל מועמד במעבר קדמי (forward pass) יחיד במקום לייצר טקסט. המערכת גם מחילה סינון אגרסיבי כך שרק אירועים בעלי אות (signal) גבוה יתפסו את חלון ההקשר (context window) של המודל, מה שמקצץ טוקנים מיותרים ומפחית שיהוי (latency).

המשמעות של המעבר מ-"תכונות" (features) ל-"הקשר" (context)

GenRec הוא חלק מתנועה רחבה יותר שבה "הנדסת הקשר" (context engineering) מחליפה תכונות מוגדרות ידנית. במקום לתכנן ארכיטקטורה ייעודית לכל משימת המלצה, מהנדסים מחליטים אילו אותות להכניס לפרומפט טקסטואלי ומאפשרים למודל השפה להסיק מהם מסקנות. הגישה מאיצה את שילובם של סוגי תוכן חדשים: ניתן לתאר פרק פודקאסט או משחק בשידור חי במשפט אחד, והם מצטרפים מיד למאגר ההמלצות, תוך דילוג על ספרינט של חודשים להגדרת תכונות.

המכשולים שנותרו

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