מדוע חיפוש חזותי לפי תמונה לא מוצא מוצר
המשתמש מכוון מצלמה אל המוצר או מעלה צילום מסך — ובמקום הפריט המבוקש מקבל תוצאות ריקות או עשרה כרטיסים מקטגוריה אחרת. מבחינה טכנית החיפוש החזותי עבד: התמונה התקבלה, הייצוג הווקטורי חושב, והתשובה ניתנה בשברירי שנייה. התקלה אינה במהירות אלא במשמעות — המערכת מחפשת תמונה דומה, ולא את אותו מוצר בקטלוג שלכם.
הסיבה הראשונה — המודל מחשב וקטור על מערך תמונות כללי, שבו נעליים, תיקים ורהיטים מונחים בערבוביה. בכרטיסי המוצרים שלכם הוא מזהה בביטחון «משהו שקשור לנעליים», אך אינו מבחין בין דגם, צבע וחומר, ולכן הרלוונטיות בקטלוג יורדת כבר בשלב הראשון.
השנייה — איכות הכרטיסים עצמם. תמונת סטודיו אחת על רקע לבן אינה מכסה את הזוויות שבהן הלקוח מצלם את המוצר: באלכסון, באור צהוב, עם רקע של מדף. אם בקטלוג אין צילומים מכיוונים שונים, לחיפוש לפי תמונה פשוט אין עם מה להשוות.
השלישית — אינדקס. כל עוד הוא נבנה מחדש ידנית פעם בשבוע, פריטים חדשים כלל לא מופיעים בתוצאות. שיעור התוצאות הריקות עולה, הלקוח חוזר לחיפוש טקסטואלי או עובר למתחרה — ואלו כבר מכירות אבודות, לא זוטות טכניות.
אנו מפרטים כיצד זה נסגר: אימון נוסף על הכרטיסים שלכם, דרישות לצילום ואינדוקס מחדש לפי אירוע, ולא לפי לוח זמנים.
מה משתנה במדדים לאחר הפעלת חיפוש חזותי
את מדדי החיפוש החזותי אנו מחשבים מקו בסיס שנלקח מתנועה היסטורית: שיעור התוצאות הריקות, מעבר לכרטיס מוצר, החזרות, פניות לתמיכה, זמן תגובה לשאילתה. בלי נקודת ייחוס קבועה כל עלייה נראית כהישג של החיפוש, לכן את המדידה אנו לוקחים לפני ההפעלה וחוזרים עליה על אותה מדגם של שאילתות.
שיעור התוצאות הריקות הוא המדד העיקרי. חיפוש טקסטואלי אינו סוגר שאילתות כמו «אותו דבר, אבל עם הדפס אחר»: המשתמש עוזב בלי להגיע לקטלוג.
אינדקס וקטורי מבוסס FAISS מחפש לפי אמבדינג של התמונה, ולא לפי התאמת מילים, לכן התוצאות מתמלאות גם בניסוח בלי מונחים מדויקים, ושיעור התוצאות הריקות יורד פי כמה, ולא באחוזים.
החזרות והתמיכה מגיבות בהמשך. כשהלקוח מתמצא לפי תמונת המוצר ולא לפי תיאור טקסטואלי, פחות קורה «לא מה שציפיתי», ושיעור ההחזרות האלה יורד. פניות אופייניות מסוג «עזרו לי למצוא משהו דומה» נתפסות על ידי התוצאות עצמן — העומס על קו התמיכה הראשון יורד.
את מהירות התגובה אנו שומרים צפויה: האמבדינגים של הקטלוג מחושבים מראש, בעת עדכון פריט מחושבת מחדש רק החלק שהשתנה, ובשאילתה חיה עובד אינדקס מוכן. זמן התגובה נשאר בשברירי שנייה בקטלוגים של מאות אלפי פריטים — החיפוש אינו הופך לצוואר בקבוק בעומס שיא.
השוואת מצבי התאמה: לפי תמונה, לפי קישור, מהמצלמה
המצבים נבדלים לא בממשק, אלא במה שנכנס כקלט: העלאת תמונה נותנת פריים מוכן, צילום מהמצלמה — זרם של צילומים מטושטשים וכפולים, קישור — כרטיס זר עם סימני מים ומוצר חתוך.
אותו אינדקס וקטורים בתנאים האלה מתנהג אחרת, לכן את מגבלות המצבים מכניסים לארכיטקטורה מראש, ולא מגלים אותן בתוצאות חיות.
החלק המשותף אחד: זיהוי האובייקט וחיתוך, נרמול רקע, חילוץ וקטור וחיפוש שכנים קרובים באינדקס עם דירוג מחדש לאחר מכן.
ההבדלים — בעיבוד המקדים ובספים: לצילום מהמצלמה מוסיפים הערכת חדות וסינון כפילויות פריימים, לקישור — חיתוך רכיבים של תבנית זרה, להעלאת תמונה — בדיקה שהאובייקט בכלל זוהה.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| העלאת תמונה מהגלריה | המוצר בפריים בשלמותו, יש צורך בהתאמה לפי תמונה ובמוצרים דומים | התוצאה תלויה בזווית, ברקע ובחיתוך; בלי נרמול עולה שיעור ההתאמות השגויות |
| צילום מהמצלמה באפליקציה | חיפוש מוצר באולם, כשאינך יודע שם ומק״ט | זרם של כפילויות ופריימים מטושטשים; יש צורך בבחירת הפריים הטוב וברמזי כיוון |
| התאמה לפי קישור | אין כרטיס משלך, את התמונה שואבים ממקור חיצוני | תבנית זרה, סימני מים, מוצר חתוך; המקור עלול להחזיר פריים לא נכון |
שילוב מצבים הוא הנורמה: מצלמה מיועדת לתרחיש «כאן ועכשיו», גלריה — לחיפוש חוזר, קישור — למוצרים מחוץ לקטלוג. את הבחירה עושים לפי שיעור השאילתות האלה ולפי אילו מאפיינים בכלל קיימים בכרטיס שלכם.
סדר העבודות: ביקורת קטלוג, סכמת אינדקס, בדיקת איכות
סדר השלבים בנוי כך שכל צעד הבא נשען על נתונים מאומתים, ולא על הנחות. אנו מתחילים בביקורת קטלוג — ממנה תלויים גם איכות החיפוש החזותי וגם היקף העבודה בהכנת התמונות.
- ביקורת קטלוג. מייצאים כרטיסים, מחפשים כפילויות, מוצרים בלי תמונה, קישורים שבורים וחוסר אחידות בזוויות. בפלט — מפת קטגוריות עם מספר אמיתי של פריטים המתאימים לאימון.
- תמונות ייחוס. בכל קטגוריה בוחרים מוצרים עם כמה זוויות ומסמנים אותם ידנית כייחוס. זהו הבסיס שלפיו בהמשך מודדים אם המערכת מוצאת את המוצר הנכון לפי תמונה חובבנית.
- סכמת התאמה. קובעים כיצד צילום הופך לווקטור מאפיינים, איזה אינדקס בונים ולפי אילו מאפיינים מסננים מראש דברים לא רלוונטיים. בנפרד מחליטים מה לעשות עם מוצרים שלא היו באימון.
- בדיקת איכות. מריצים את המערכת על חלק מופרש של הקטלוג: מחשבים שיעור פגיעות בעשירייה הראשונה של התוצאות, בנפרד לפי קטגוריות ולפי מקרים מורכבים — דגמים דומים, צבעים קרובים, צילום בתאורה גרועה.
- חיבור לקטלוג. מגדירים עדכון אינדקס עם הופעה והסרה של מוצרים, כדי שהתוצאות לא יתיישנו ולא ידרשו בנייה מחדש מלאה.
- מסירה לתמיכה. מוסרים נהלים, סכמת אינדקס ודוח על איכות התוצאות, ומכשירים את צוות הלקוח לבצע אינדוקס מחדש של הקטלוג ולטפל בתלונות על תוצאות החיפוש.
הרכב המסירה: אינדקסים, סכמות, מדיניות גישה, נהלים
אינדקסים, סכמות ונהלים — החלק במסירה שבאמצעותו צוות הלקוח מפתח את החיפוש בעצמו, בלעדינו. אנו מוסרים לא רק שירות עובד, אלא גם סט ארטיפקטים שלפיהם אפשר לשחזר אותו, להרחיב ולהעביר למהנדס חדש בתוך החברה.
- אינדקס מאפיינים חזותיים: בניית ייצוגים וקטוריים עבור כל כרטיסי הקטלוג עם מטא-נתונים וסימון קטגורי, בתוספת תיאור של בנייה מחדש מלאה ומצטברת.
- סכמת נתונים: קשרים מוצר — תמונה — מאפיין — קטגוריה, דרישות לאיכות צילום וכללי פסילה, כדי שהאינדקס לא יזדהם בכפילויות ובתמונות סטוק.
- מדיניות גישה: תפקידים לחנות, לאנליטיקה ולניהול, חלוקת הרשאות לאינדוקס מחדש, לייצוא וקטורים ולשינוי ספי תוצאות.
- נוהל עדכון: טריגרים לבנייה מחדש עם הופעה, הסרה ממכירה או שינוי קטגוריה של מוצר, סדר הביצוע והחלון שבו החיפוש נשאר על הבנייה הישנה.
- מעגל הערכת איכות: סט שאילתות ייחוס «תמונה → תוצאות צפויות», מדד פגיעה בטופ ודוח עליו לכל גרסה חדשה.
- נוהל חזרה לאחור: כמה בנייות קודמות של האינדקס והמודל נשמרות, כיצד לחזור לקודמת ובכמה זמן התוצאות חוזרות לקדמותן.
- הוראות לצוות: הפעלה, ניטור, ניתוח פערים בתוצאות וצ׳קליסט לקליטת שינויים מאנשי תוכן.
במסמך נפרד מגיע יומן החלטות: מדוע נבחר סימון קטגוריות כזה וסף כזה לסינון מוצרים דומים, מה ניסינו ופסלנו. הוא חוסך חודשים במעבר חוזר על צמתים שכבר עברנו.
מקרה בוחן: שיעור התוצאות הריקות בקטלוג ירד פי כמה
אצל מרקטפלייס צוואר הבקבוק נמצא לא במודל, אלא במאפיינים. חיפוש לפי תמונה למעשה הצטמצם לזיהוי קטגוריה ולהצבת שאילתה טקסטואלית: אם הצילום לא נעשה בתנאי סטודיו, המערכת החזירה עמוד ריק או פריטים אקראיים מהקטגוריה.
שיעור התוצאות הריקות עמד על 21%, פגיעה בטופ-3 — 46%, והמשתמש אחרי המסך הראשון כמעט תמיד עבר לחיפוש טקסטואלי רגיל.
מה שינינו
בנינו מרחב וקטורי אחיד לתמונה ולכרטיס: כבסיס לקחנו OpenAI CLIP, אימנו נוסף על זוגות «תמונת משתמש — מוצר מהזמנה» מתוך הלוגים והוספנו שלב שני — דירוג מחדש של 50 המועמדים המובילים לפי מאפיינים: צבע, חומר, צללית.
המודל מחזיר וקטור, החיפוש מתבצע לפי אינדקס, ולכן התשובה נשארת בשברירי שנייה אפילו בקטלוג של מאות אלפי פריטים.
מה קרה בסוף
מדדים לפני ואחרי נלקחו על אותו זרם שאילתות: שיעור התוצאות הריקות — 2.7%, דיוק בטופ-3 — 88%, שיעור ההזמנות שהתחילו מתרחיש תמונה גדל פי ארבעה.
רגרסיה נתפסת על סט לא מקוון של 50 אלף זוגות: אם גרסה חדשה של האמבדינגים מורידה את דיוק הטופ-3 מתחת לסף, הפריסה נעצרת ובאופן אוטומטי חוזרת לגרסה הקודמת.
במה שונה התאמה לפי תמונה מהתאמה לפי מאפיינים
התאמה לפי תמונה מתחילה בכך שהצילום הופך לייצוג וקטורי, והמערכת מחפשת את הפריטים הקרובים ביותר באינדקס הקטלוג. הלקוח לא צריך לדעת את שם הדגם — מספיק פריים ממגזין, צילום מסך משיחה או תמונה מהמדף. הגישה מנצחת במקומות שבהם קשה לתאר מאפיין במילים: צללית, מרקם, הדפס, גוון.
מסנני מאפיינים פועלים ההפך — מצמצמים את הבחירה לפי מאפיינים מפורשים שסומנו מראש: צבע, חומר, מידה, תאימות, טווח מאפיינים. התוצאה צפויה והסברית: רואים למה פריט נכנס לתוצאות. אך המאפיינים חייבים להיות מלאים ומנורמלים, אחרת המסנן בשקט חוסם חצי מהקטלוג.
גבול הישימות עובר לפי טבעו של המאפיין. אם ההחלטה נשענת על דמיון חזותי — ביגוד, ריהוט, דקור, חלקים לפי מראה — התאמה לפי תמונה נותנת תוצאות רלוונטיות יותר מחיפוש לפי מילים. אם הכריעו תנאים מספריים, התמונה חסרת תועלת: חלק דומה מבחינה חיצונית עלול לא להתאים לפי התאמה או מחבר.
בפועל הגישות עובדות יחד על אותו קטלוג. התמונה יוצרת מאגר רחב של מועמדים לפי דמיון, המאפיינים מצמצמים אותו לאפשרויות תואמות ומאפשרים למיין לפי מלאי. גם המסלול ההפוך מבוקש: הלקוח בוחר מוצרים במסננים, פותח כרטיס ומבקש להציג דומים.
יחד הם מורידים את שיעור התוצאות הריקות ומסלקים את המבוי הסתום «אני לא יודע איך לקרוא לזה».
ספקות טכניים: איכות צילומים, התחלה קרה, עומס
ספקות הנדסיים צפים לפני ההתחלה, וכמעט כולם נתקלים בנתונים, לא במודל. להלן ארבע שאלות שאנו מסירים בשלב ההערכה: איכות הצילום, התחלה קרה, עומס ועדכון הקטלוג.
חצי מהקטלוג צולם בטלפון בתאורה שונה — החיפוש יטעה?
עיבוד מקדים — חיתוך לפי זיהוי האובייקט, איזון לבן, קנה מידה אחיד — מסיר חלק מהפיזור. לאחר מכן הדמיון מחושב לפי ייצוגים סמנטיים של התמונה (מודל דמוי CLIP), לכן הרקע והזווית פחות משפיעים על התוצאות. קטגוריות חלשות אנו מאמנים נוסף על זוגות «תמונה — מוצר» שלנו.
אין סימון והיסטוריית קליקים — ממה להתחיל התחלה קרה?
מתחילים על מודל פתוח שאומן מראש: זוגות «תמונה — תיאור» אוספים מהכרטיסים, אחר כך מוסיפים קליקים ולוגים של חיפוש. תוצאה עובדת ראשונה מופיעה בעשרות אלפי פריטים, ולא אחרי איסוף מיליוני זוגות מסומנים.
האם החיפוש יעמוד בשיא מכירות?
את האינדקס מחזיקים בזיכרון ומפצלים לפי רפליקות, שאילתות חוזרות מוגשות מהמטמון. בשיא מופעלת סכמה דו-שלבית: סינון מהיר מקורב, ואחר כך חישוב מדויק של ראש התוצאות — זמן התגובה נשאר יציב, ולא עולה באופן ליניארי עם התנועה.
איך לעדכן את הקטלוג בלי לבנות מחדש את האינדקס כולו?
באופן מצטבר: כרטיס חדש נכנס לחיפוש תוך דקות אחרי הפרסום, כרטיס שהוסר ממכירה יוצא לפי כלל מחזור חיים. בנייה מחדש מלאה מתבצעת במעגל נפרד לפי לוח זמנים — הגרסה הישנה והחדשה של האינדקס פועלות במקביל, והחזרה לאחור נעשית בהחלפה.
נדבר על המשימה: שלחו קטלוג ודוגמאות שאילתות
כדי לחזור עם הערכה ותוכנית, ולא עם הרהורים כלליים, אנו צריכים נתונים על הקטלוג ועל האופן שבו הלקוחות מחפשים. ככל שנתוני הפתיחה מפורטים יותר, כך נדייק יותר בלוחות הזמנים, בשלבים ובמדדי הקבלה.
- ייצוא הקטלוג ב-CSV או JSON: מק״ט, שם, קטגוריה, מאפיינים, קישורים לתמונות — לפיו רואים איזה שיעור מהכרטיסים מתאים לאינדוקס, ואילו יהיה צורך לנקות.
- 50-100 דוגמאות שאילתות, כולל שגיאות כתיב, סלנג וכתב לטיני — עליהן בונים בדיקות איכות לתוצאות.
- דוגמאות לשאילתות תמונה: מוצר בשלמותו, על מדף, בתוך חלל, בתאורה חלשה — מכך תלויה יציבות החיפוש.
- סימון ייחוס ל-100-200 כרטיסים: אילו מוצרים נחשבים לתשובה נכונה. בלעדיו אי אפשר למדוד דיוק.
- מדדי חיפוש נוכחיים: שיעור שאילתות בלי תוצאה, מעברים לכרטיס, הזמנות מהחיפוש — נקודת ייחוס להשוואה.
- מגבלות תשתית: היכן נמצא הקטלוג, באיזו תדירות משתנה המלאי, האם ייצוא תמונות אוטומטי זמין.
- אחראי מטעמכם: מי מאשר את הסימון ומקבל את שלבי העבודה.
סדר העבודות לאחר מכן שקוף: מקבעים תרחישים ומדדים, בונים אב טיפוס על הקטלוג שלכם, משווים לייחוס, ואחר כך אינטגרציה והעלאה לפרודקשן. תארו את המשימה ושלחו את מה שצוין — נחזור עם הערכה ותוכנית.







