מדוע המלצות upsell של AI לא מביאות לגידול בסל הממוצע
בלוק המלצות upsell של AI מוצב גם בכרטיס המוצר וגם בסל, אבל הסל הממוצע לא זז. הסיבה היא שהמערכת מדרגת מועמדים לפי פופולריות כללית ומציגה ללקוח את מה שהוא כבר מצא בעצמו. סל ממוצע נמוך כאן הוא לא בעיה של ביקוש, אלא תוצאה של כך שההמלצה לא נושאת מידע חדש ולא מוסיפה אף פריט להזמנה.
ההפסד השני הוא בלוק המלצות ריק. ברגע שמוצר נגמר במלאי או שהכרטיס נופל לקטגוריה צרה, לאלגוריתם חסרים מועמדים, והמודול או נעלם מהחנות או מציג פריט אקראי. אלו הפסדים ישירים בחנות: הלקוח רואה שלא הציעו לו דבר, ועובר למי שמרכיב סט שלם.
היקרות ביותר הן המלצות לא רלוונטיות. אם המודל לא רואה את היסטוריית ההזמנות, פלח המחיר ותאימות הפריטים, הוא מציע אביזר לפריט שכבר נרכש או כפילות באריזה אחרת. הלקוח משווה כמה אפשרויות, לא מוצא את החיבור ועוזב להשלים את ההזמנה במקום אחר — יחד עם הסל.
הגידול מגיע כאשר ההמלצות מבוססות על נתונים: מלאי בזמן אמת, סל נוכחי וקודם, חוקי תאימות ומשוב לפי רכישה בפועל. אז הבלוק מציע את מה שהלקוח עוד לא שקל, אבל מוכן לקחת. נסביר כיצד זה נסגר ברמת המודל, הנתונים והחנות.
האפקט מהטמעה: גידול בסל הממוצע וברכישות חוזרות
לפני ההטמעה, המכירה הנוספת התבססה על הזיכרון של המנהל: חלק מההזמנות יצאו עם פריט אחד, כי פשוט לא הוצע המוצר המתאים. המדדים לא נמדדו — לא היה במה להעריך כמה הוחמץ.
אנחנו מתחילים במדידת קו בסיס: לתקופה מקבילה מתעדים את שיעור ההזמנות עם פריט נוסף, הסל הממוצע, שיעור הרכישות החוזרות והמרת הקטלוג.
בהמשך, כל שינוי נמדד על קבוצות לקוחות ברות השוואה — קבוצת ביקורת וקבוצת בדיקה. ההמלצות מקבלות מזהים, לפיהם רואים איזה בלוק הוביל להוספת מוצר לסל, וגרסאות המודלים והמדדים שלהם מנוהלים בMLflow: ברור איזו גרסה הביאה לשינוי, איזו צריך לאמן מחדש ולאיזו לחזור.
התוצאה המעשית נראית בדרך כלל כך. שיעור ההזמנות עם פריט נוסף עולה מ-10-15% ל-25-30%, הסל הממוצע — ב-15-20% בלי גידול בהנחות. רכישות חוזרות גדלות הודות להתאמות אישיות ותזכורות לגבי מתכלים, והמרת הקטלוג — הודות לכך שפריטים נדירים מפסיקים להיות בלתי נראים ללקוח.
בנפרד, אנחנו מורידים עומס מהאנשים: שיעור ההתאמות הידניות יורד פי כמה, המנהלים חוזרים לעסקאות גדולות שדורשות שיחה. מדדי האפקט מרוכזים בפאנל אחד, שבו לצד ההכנסות רואים כמה התאמות נבנו אוטומטית ואיזה חלק מהן התקבל בהזמנה.
אפשרויות תרחישי upsell: חוקים, מודל, היברידי
השבועות הראשונים לאחר השקת מערכת AI להמלצות upsell קובעים מה להציג: חוקים נוקשים, מודל לומד או שילוב שלהם. הבחירה תלויה ברוחב הקטלוג, בהיקף היסטוריית ההזמנות ובתדירות שבה המלאי משתנה. להלן שלושה מצבים שביניהם בוחרים בהתחלה.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| חוקי התאמה | קטלוג צר, יש תאימות ברורה בין מוצרים | לא מתרחב: כל חריגה מוזנת ידנית |
| מודל לומד | נצברה היסטוריית הזמנות ויש לפי מה לדרג | התחלה קרה ופריטים נדירים — אין על מה ללמד |
| גישה היברידית | חוקים קובעים זוגות מותרים, המודל — את הסדר | יקר יותר לתחזוקה: נדרשים תיוג ובקרה |
חוקי ההתאמה לא תלויים בנתונים שנצברו ועובדים מהיום הראשון: חיבורים ברורים "קנה — הצע" נותנים תפוקה צפויה. נקודת התורפה — תמיכה ידנית: מוצר חדש, החלפה עונתית או חריגה דורשים עריכת רשימה, ובקטלוג רחב התבנית מתרחקת מהמציאות.
מודל לומד מעל היסטוריית הזמנות, למשל על CatBoost, קולט את מה שלא ניתן לתאר בחוקים: לפריט יקר משתלם יותר להציע פריט נלווה מאשר פריט זול שני. המגבלות זהות לאלו של כל מודל המלצות: התחלה קרה והשבועות הראשונים של העבודה, כשעוד אין על מה ללמד.
לכן לרוב אנחנו מרכיבים היברידי: חוקים מסננים זוגות לא תואמים ולא זמינים, המודל מדרג את הנותר לפי הסתברות רכישה, וחלקו בתצוגות גדל ככל שנצברות הזמנות. המחיר — בדיקה תקופתית של התפוקה ועדכון החוקים, אחרת הקטלוג וההמלצות מתרחקים זה מזה.
שלבי הטמעה: מביקורת נתונים ועד מסירת הפתרון
את העבודה מנהלים באיטרציות: כל שלב נסגר בארטיפקט שניתן לבדוק — דוח נתונים, תרשים של המערכת, תצורת חוקים. זה מאפשר בכל רגע לראות על מה מבוססת ההמלצה ואיפה עובר הגבול בין המערכת לחנות.
- ביקורת נתונים. מפרקים אירועים: צפיות, הוספות לסל, הזמנות, ביטולים, שאילתות חיפוש. בודקים את עומק ההיסטוריה, שיעור הערכים החסרים ואיכות תיוג הקטגוריות — בלי זה ההתאמה האישית הופכת לתפוקה אקראית.
- תכנון המערכת. מחליטים היכן מחושבת ההמלצה: אונליין בעת בקשה או בחישוב מראש לפי פלחים, אילו אותות נכנסים אליה, לאן מועברת התוצאה — כרטיס מוצר, סל, מיילים. בנפרד מתעדים את ההתנהגות בעת אי-זמינות השירות, כדי שהחנות לא תאבד תפוקה.
- הגדרת ההתאמה. מרכיבים חוקים בסיסיים: מוצרים נלווים, מעבר לדגם גבוה יותר, סטים מוכנים. מטילים מגבלות לפי מלאי, רווחיות ומגוון — המערכת לא צריכה להציע את מה שאין.
- בדיקת איכות. קודם אופליין: על הזמנות היסטוריות בודקים אם הרכישה נכנסה לטופ של התפוקה. אחר כך תעבורה חיה — שיעור הקלקות והוספות לסל, שינוי בסל הממוצע, שיעור תפוקות ריקות מול קבוצת ביקורת.
- מסירת הפתרון. מוסרים תיעוד של המערכת, תצורת חוקים, הרשאות ודשבורד עם מדדים. מלמדים את צוות הלקוח לשנות משקלים, להוסיף חיבורים ולקרוא דוחות בלעדינו.
- תמיכה. עוקבים אחרי שינוי במלאי, עונתיות וירידה בשיעור התפוקות הלא-ריקות — לפי האותות האלה החוקים והמודל נבנים מחדש לפי נהלים.
מה נשאר לכם לאחר מסירת הפרויקט
הפרויקט מסתיים לא בהצגת תפוקה עובדת, אלא בסט ארטיפקטים שלפיהם הצוות שלכם ימשיך לפתח את המערכת בעצמו. כל מה שאנחנו משנים במערכת הפעילה נמצא במאגר קוד עם היסטוריית שינויים — חזרה לגרסה קודמת אורכת דקות.
- תרשים נתונים וזרימות. מקורות אירועים (צפיות, סל, הזמנות), השדות שלהם, תדירות העדכון וחוקי הסרת כפילויות — רואים מאיפה מגיע כל מאפיין לדירוג.
- תצורות מודלים וחוקים. ספי ביטחון, משקלי קטגוריות, רשימות חריגים מוצאים לקבצים נפרדים לצד הקוד, עם ציון מה משתנה בלי אימון מחדש ומה דורש הרצה.
- הרשאות ותפקידים. הפרדת הרשאות לקריאה, כתיבה והרצת מהדורה, חשבונות שירות, הפצת מפתחות דרך מאגר סודות, יומן גישות לנתונים רגישים.
- נוהל עדכון. חלון נתונים לאימון מחדש, תדירות הרצה, מדדים שלפיהם נמדדת ירידה בביצועים, ותנאים לחזרה אוטומטית לגרסה קודמת.
- הוראות לצוות. תרחישים שלב-אחר-שלב: להרים סביבה, לבנות מחדש מאפיינים, להוציא גרסה חדשה, לחזור ממנה, לנתח תקלה לפי לוגים.
- תיעוד ויומן החלטות. הערות ארכיטקטורה, נימוק הגישה הנבחרת, השערות שנבדקו ונשללו, שאלות פתוחות.
את המערכת אפשר להעביר לצוות שלכם או לקבלן אחר — בלי הסכמות בעל פה והגדרות שחיות רק בראש של המפתח.
מקרה בוחן: גידול בסל הממוצע ברשת קמעונאית בלי גידול בתעבורה
רשת קמעונאות מזון: 180 נקודות פיזיות וחנות מקוונת, התעבורה לא גדלה. ההמלצות בסל פעלו לפי הכלל "פופולרי בקטגוריה" — פריט נוסף נכנס רק לכל הזמנה תשיעית, וחוקי הדירוג תוקנו ידנית שלוש פעמים בשנה, לפי תחושת מנהלי הקטגוריות.
מדדים לפני ואחרי
השוו לא עם החודש שעבר, אלא עם קבוצת ביקורת של 10% מהתעבורה — כך האפקט הופרד מעונתיות וממבצעים. סלים והתנהגות נאספו מיומני קופה ומהחנות המקוונת בGoogle BigQuery.
| מדד | לפני | אחרי 4 חודשים |
|---|---|---|
| הזמנות עם פריט נוסף | 11% | 34% |
| סל ממוצע | בסיס | +21% |
| שיעור רכישות חוזרות ב-90 יום | 24% | 31% |
| עריכות ידניות בדירוג | 80% מהתפוקה | 9% |
לוח זמני הטמעה: מה שינו
בשלושת השבועות הראשונים — ייצוא היסטוריית רכישות ומלאי, ועוד שלושה — אימון המודל על רכישות משותפות וחתכים עונתיים. פיילוט ב-12 נקודות ארך חודש: עקבו אחרי שיעור ההזמנות עם מכירה נוספת, שלמות התפוקה וזמן התגובה בשעות שיא.
לפריסה בכל הרשת לקח חודשיים — המדדים החזיקו מעמד, והחזרה למדרג הקודם היא חוק אחד בהגדרות, בלי לבנות מחדש את החנות.
מה עושים אם הקטלוג והמחירים משתנים כל שבוע?
מערכת המלצות לא שומרת את ההתאמות כרשימה מוכנה — היא מרכיבה אותן תוך כדי תנועה ממאפייני המוצר והתנהגות הלקוח. לכן שינוי מחיר, קבלת מלאי חדש או ירידה של פריט לאפס לא דורשים בנייה מחדש של כל המודל: מתעדכן רק שכבת העדכניות. עדכון תכוף של הקטלוג עבור תבנית כזו הוא מצב שגרה, לא מצב חירום.
פריטים חדשים נכנסים לתפוקה דרך מאפיינים: קטגוריה, תכונות, פלח מחיר, תאימות עם מה שכבר בסל. כל עוד למוצר אין היסטוריית רכישות, הוא מקבל נתח מוגבל של תצוגות לצד פריטים דומים — זה מספיק כדי לצבור סטטיסטיקה ולהתחרות בהמשך עם המלאי הישן כשווה.
עדכניות המלאי נשמרת על ידי מסנן נפרד: ההמלצה לא מוצגת אם היתרה אפס או שהמוצר הוסר מהמכירה. המסנן פועל בשלב התפוקה, לא באימון, לכן החזרת פריט למלאי מחזירה אותו מיד להתאמות — בלי אימון מחדש ובלי עריכות ידניות.
היציבות של הפתרון היא בגרסאות של משקלים וחוקים: כל עריכה ניתנת לחזרה, והשינויים נבדקים תחילה על חלק מהתעבורה. בודקים את שיעור ההמלצות בלי מלאי, את שיעור המוצרים החדשים בתצוגות ואת ההמרה למכירה נוספת — לפי המדדים האלה רואים איפה הקטלוג והמודל נפרדו.
בנייה מחדש של ההתאמות מתבצעת בחלקים, לפי הקטגוריות שנפגעו, וחישוב מלא מופעל לפי לוח זמנים. לכן אפילו עדכון חד של המלאי לא הופך להפסקה בעבודת הבלוק.
שאלות טכניות נפוצות לפני תחילת הפרויקט
לפני ההתחלה כמעט כל צוות עובר רשימה אחת של ספקות: האם הנתונים יספיקו, איך זה ישתלב בחנות הנוכחית, האם לא נייחס להמלצות גידול עונתי רגיל ומי אחראי למערכת אחרי ההשקה.
האם הנתונים שלנו יספיקו לאימון?
בקלט דרושים היסטוריית הזמנות ואירועים לפי לקוחות, ספר מוצרים עם קטגוריות ומאפייני פלח. אם ההיסטוריה קטנה, מתחילים עם חוקים ובהדרגה מחליפים אותם במודל — החנות מקבלת המלצות מהיום הראשון.
איך מתבצעת האינטגרציה עם הקטלוג?
מתחברים לקטלוג שלכם דרך ממשק תכנותי או ייצוא תקופתי, את החנות עצמה לא מעבירים. ההמלצות מועברות לאותו בלוק שבו הלקוח רואה מוצרים — לוגיקת ביצוע ההזמנה לא משתנה.
איך מפרידים את האפקט מהעונתיות?
משווים קבוצת ביקורת וקבוצת בדיקה בתוך אותו שבוע: הזינוק העונתי מרים את שתיהן באותה מידה ומתקזז מעצמו. בדוח רואים את הגידול בסל הממוצע בדיוק מההמלצות.
מה עם אבטחת הנתונים?
עובדים במערכת שלכם או בסביבה מבודדת, נתונים אישיים עוברים אנונימיזציה לפני האימון. הרשאות ניתנות לפי תפקידים, הפעולות מתועדות ביומן.
כמה זמן לחכות להשקה ומה קורה אחר כך?
הגרסה הראשונה יוצאת בפלח מוגבל לאחר מספר שבועות, ההשקה המלאה — לאחר בדיקת המדדים. בהמשך המערכת בתמיכה: עוקבים אחרי שיעור התצוגות, מאמנים מחדש לפי לוח זמנים, מנתחים ירידות.
בואו נדבר על המשימה: מאיפה מתחילים ומה צריך מכם
שיחה על תחילת הפרויקט מועילה יותר לנהל מנתונים, לא ממשאלות כלליות. להלן מינימום נתוני קלט, שמספיק כדי שנחזור עם הערכת זמנים ותוכנית עבודה, ולא עם שאלות הבהרה אחרי שבוע.
- ייצוא היסטוריית הזמנות וסלים: הרכב, סכומים, זמן, מזהה לקוח אנונימי.
- קטלוג עם מאפייני נלוות: קטגוריה, מחיר, תאימות, מה קונים יחד.
- תרחיש המכירה הנוספת הנוכחי: היכן מוצגות ההמלצות, אילו חוקים הוגדרו ידנית ולמה.
- מדד יעד: סל ממוצע, שיעור הזמנות עם מכירה נוספת או רכישות חוזרות — מה נחשב לתוצאה.
- מגבלות: אילו מערכות אסור לשנות, דרישות לעומס, מי מקבל את התוצאה בצד שלכם.
- הרשאות: סביבת בדיקה וגישה למאגר הנתונים, כדי לבדוק השערות על התנהגות אמיתית.
הצעד הראשון מצדנו — ניתוח הייצוא ובדיקה אם ההיסטוריה מספיקה לאימון המלצות על המלאי שלכם. בהמשך נחזור עם תוכנית עבודה לפי שלבים, הערכת זמנים והרכב צוות לכל שלב.
אם חלק מהנתונים חסר — זה לא חסם: נסביר איך לאסוף את המינימום הדרוש במינימום התערבות בתהליכים הקיימים. תארו את המשימה — נחזור עם הערכה ותוכנית.







