חיפוש חזותי של בגדים: היכן נשברות התוצאות
חיפוש חזותי של בגדים נשבר לא במודל, אלא בנתונים: הקטלוג מחזיר עבור תמונה כרטיסים לא רלוונטיים, כי ההתאמה מתבצעת לפי מאפיינים טקסטואליים — קטגוריה, צבע ותיאור קצר מכרטיס המוצר. המשתמש מוצא פריט דומה בעיניים, והקטלוג עונה לו באוצר המילים של המלאי.
התאמת מוצר לפי תמונה דורשת שהתמונה תהיה המפתח העיקרי. אנו מתארים את הצילום ואת הכרטיס בקבוצת מאפיינים מספריים — גזרה, צללית, מרקם הבד, הדפס, אביזרי מתכת, התאמה לגוף, — והחיפוש לפי תמונה מתבצע לפי קרבה במרחב הזה, ולא לפי התאמת מחרוזות בשם.
שגיאות אופייניות בהתאמת אנלוגים צפויות מראש. צילום מהטלפון בחדר ההלבשה נותן איזון לבן שונה מצילום סטודיו על בובה, והמודל מתחיל לבלבל בין בז' לאפור, ובין דנים לצמר. קטגוריות דומות — חולצת אוברסייז, טוניקה, חולצה מוארכת — נבדלות במאפיינים באופן מועט ומתמזגות לתוצאה אחת.
איכות תוצאות הקטלוג נקבעת לא לפי "השכל" של האלגוריתם, אלא לפי הסימון וסף החיתוך. אם בקטלוג יש זוגות מאומתים של "תמונה — תקן", אפשר למדוד את שיעור השאילתות שבהן המוצר הרצוי נכנס לחמשת הכרטיסים הראשונים, ולהעלות אותו באיטרציות, ולא בבנייה מחדש של כל המערכת.
להלן נפרט כיצד בנוי חיפוש כזה לפי תמונה: מהכנת הקטלוג וזוגות התקן ועד חיתוך רעש ובקרת איכות על תעבורה חיה.
התאמה חזותית לפי תמונה: אפקטים מדידים
חיפוש חזותי מפסיק להיות פונקציית ראווה כשהמדדים נמדדים בנפרד מהקטלוג הכללי. להלן האפקטים שאנו מתעדים על זרמים מסומנים: ההשוואה נעשית מול חיפוש טקסטואלי ומול אוסף ידני.
שיעור השאילתות שנפתרו כבר בהצגה הראשונה
ייצוגים וקטוריים של תמונות ושל כרטיסי מוצר מחושבים על ידי מודל אחד, ולכן ההשוואה נעשית לפי צללית, גזרה ומרקם, ולא לפי תגיות. שיעור הסשנים שבהם המוצר עובר לסל מהתוצאה הראשונה עולה — זה נראה גם בהמרה הכללית של הקטלוג, ומספר הפעולות המדייקות יורד מארבע־חמש לאחת־שתיים.
אנו עובדים בארכיטקטורה דמוית CLIP: מכווננים את המודל על הקטלוג של הלקוח, בלי לאסוף מערך נתונים מאפס.
תוצאות ריקות ומהירות ההתאמה
בעבר שיעור השאילתות ללא תוצאה נשאר גבוה: תיאור טקסטואלי מעביר באופן גרוע הדפס, גזרה או גוון. האינדקס החזותי עונה תמיד — כשההתאמה חלשה הוא מחזיר אנלוגים קרובים לפי צורה וצבע. שיעור התוצאות הריקות יורד לכמה אחוזים בודדים, ומהירות התאמת המוצר מצטמצמת לשבריר שנייה לשאילתה.
החזרות והעומס על הסימון
החזרות בגלל מידה וסגנון פוגעות ברווח יותר מכל סיבה אחרת, וההתאמה החזותית פועלת ישירות מולן: הקונה רואה כיצד הבגד יושב על דמות דומה, ומזמין פחות "על עיוור" כמה פריטים. במקביל יורד העומס מהסימון הידני — המאפיינים מוזנים אוטומטית, ופריטים חדשים נכנסים לחיפוש ביום הפרסום.
גישות לזיהוי: השוואת אפשרויות
התאמה לפי תמונה נפתרת בשלוש סכמות שונות מיסודן, והבחירה ביניהן נקבעת לא לפי מורכבות המודל, אלא לפי מידת הדמיון של הקטלוג לנתונים שעליהם המודל אומן. מודל מוכן שומר על דיוק סביר בקטגוריות המוניות — סריגים בסיסיים, ג'ינס, סניקרס. גזרה ייחודית, הדפסים נדירים ופריטי עבודת יד הוא מבלבל.
אימון מחדש על הקטלוג מסיר את רוב הפספוסים, אך דורש זוגות מסומנים של "תמונה — מוצר" ואימון מחדש בעת החלפה גדולה של הקולקציה. סכמה היברידית פועלת מהכיוון ההפוך: התמונה מפורקת למאפיינים — צבע, קטגוריה, גזרה, חומר, אורך, — וההתאמה נעשית לפיהם ולשדות הטקסטואליים של הכרטיס. קל יותר להסביר את התוצאה ולתקן אותה באמצעות כללים, אך הסכמה אינה מבחינה בין דוגמה למרקם.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| מודל מוכן ללא אימון מחדש | קטגוריות המוניות, השקה מהירה | לא מכיר את הקטגוריות שלכם, שגיאות במוצרים נדירים |
| אימון מחדש על הקטלוג של הלקוח | מבחר ייחודי, זרם תמונות חדשות | נדרשים סימון ואימון מחדש בעת החלפת קולקציה |
| סכמה היברידית: מאפיינים וטקסט הכרטיס | נדרשים הסבריות וכללי בחירה ידניים | אינה מבחינה בין דוגמה, מרקם וגוונים קרובים |
| חיפוש דומים בתוך הקטלוג | תרחיש «למצוא אותו דבר, אבל בזול יותר» | לא מוצא מוצרים שעדיין אין בקטלוג |
בהתחלה אנו מריצים את הקטלוג דרך כל הסכמות הזמינות ומשווים מדדים: שיעור השאילתות שבהן המוצר הרצוי נכנס לעשרת המקומות הראשונים, שיעור התוצאות הריקות, שיעור התיקונים הידניים. ההחלטה מתקבלת לפי המספרים האלה, ולא לפי שם הגישה.
שלבי הטמעת מערכת התאמה לפי תמונה
חיפוש חזותי נשבר לא במודל, אלא בקטלוג: כפילויות של כרטיסים, זוויות צילום שונות של אותו פריט בתאורה שונה, מאפיינים בלי כלל אחיד למילוי. לכן שלבי הטמעת המערכת הולכים מהנתונים אל המודל — תחילה ביקורת הקטלוג, אחר כך כוונון החיפוש.
- ביקורת הקטלוג. מחשבים היקף ומבנה: שיעור הכפילויות וכמעט־כפילויות, אילו קטגוריות צולמו בכמה זוויות, והיכן הרקע מפריע להשוואה. בתוצאה — רשימת מוצרים שצריך לצלם מחדש או להוציא מהאינדקס.
- סכמת הפתרון ומדדי רלוונטיות. קובעים מה החיפוש צריך למצוא: אותם דגמים, סגנונות דומים, סט "פריט + אביזר". שיעור הפגיעות בטופ התוצאות והדיוק לפי קטגוריה מסכמים לפני הכוונון — אחרת אין במה לקבל את התוצאה.
- הכנת מערך האימון. אוספים זוגות "תמונה → המוצר הנכון", מנקים כפילויות, מסמנים מקרים מורכבים: בגדים בצבע אחיד, זווית מאחור. מחלקים את הנתונים לאימון, ולידציה ומערך מושהיה שהמודל לא יראה עד הקבלה.
- כוונון החיפוש. מגדירים חילוץ מאפיינים ומבנה אינדקס, בוחרים ספי חיתוך: מתי להציג התאמות קרובות, ומתי הוגן יותר להחזיר תוצאה ריקה.
- בדיקה על מערך מושהיה. מריצים תרחישים, מחשבים מדדי רלוונטיות, מנתחים שגיאות לפי קטגוריות. אם קבוצת מוצרים שלמה נכשלת — חוזרים לסימון, ולא "מכווננים" את הספים.
- קבלה ומסירה. מוסרים תיעוד, הרשאות, נוהל אינדוקס מחדש בעת העשרת הקטלוג ודוח מדדים. מלמדים את צוות הלקוח להפעיל עדכון ולקרוא את פילוח השגיאות בעצמו.
מה מוסרים לאחר ההטמעה: הרכב האספקה
מסירת הפתרון היא לא ארכיון עם קוד מקור, אלא סט ארטיפקטים שלפיהם הצוות שלכם יוכל לתחזק את המערכת בלעדינו. הרכב האספקה אנו מתעדים במסמך הקבלה ובודקים בעת הקבלה: המהנדס של הלקוח פורש בעצמו את הסביבה לפי ההוראות שלנו ומבצע מחדש את הפעולות האופייניות.
- תצורות שירותים — ערכי פרמטרים של חיפוש ודירוג, מגבלות עומס, הגדרות מטמון, עם הסבר מה משתנה כשהקטלוג גדל.
- סכמות אינטראקציה — זרמי שאילתת החיפוש החזותי, נקודות חיבור לקטלוג, לאחסון התמונות ולמערכות החשבונאות.
- מדיניות גישה ותפקידים — מטריצת הרשאות למנהל, למפעיל סימון ולאנליטיקאי, כללי הנפקה ורוטציה של מפתחות.
- נוהל עדכון האינדקס — תדירות הבנייה מחדש, סדר טעינת מוצרים חדשים, בדיקת שלמות התוצאות לפני פרסום.
- תיעוד המערכת — תיאור המודולים, הוראות פריסה וחזרה לאחור, קטלוג כשלים אופייניים עם סדר פעולות.
- מערך שאילתות תקן — תמונות עם תוצאה צפויה, שלפיהן עוקבים אחרי ירידת איכות החיפוש לאחר מהדורות.
- תוכנית שחזור — סכמת גיבויים, זמן וסדר חזרה למצב העבודה הקודם.
כל סעיף סוגרים בשאלה "האם הצוות שלכם יוכל לעשות זאת בעצמו". אם התשובה "לא" — מוסיפים הוראה, ולא משאירים את הידע אצלנו.
מקרה בוחן: כיצד עלתה הרלוונטיות של התוצאות
המשימה הגיעה מקמעונאי בגדים ואביזרים Modario: קטלוג של כמה עשרות אלפי מקטים, חיפוש לפי תמונה עבד בביטחון רק על צילומי סטודיו, ועל צילומי משתמשים — רקע, תאורה, חיתוך וזווית שונים — התוצאות התפרקו.
האבחון הראה שלוש סיבות. האינדקס נבנה במודל אחד על כל הקטלוג בלי סינון לפי קטגוריה, ולכן שמלה חיפשה תיקים עם מרקם דומה; האמבדינגים חושבו לפי הפריים המקורי בלי חיתוך האובייקט, והרקע שקל יותר מהמוצר עצמו; סף החיתוך הוצב כך שהמערכת העדיפה להציג משהו מאשר "לא נמצא" כן.
מה שינו: חיתוך האובייקט בעת עיבוד השאילתה, מסווג קטגוריה כמסנן חובה לפני הדירוג, בנייה מחדש של האינדקס על ייצוגים וקטוריים שחושבו מחדש לפי שאילתות אמת מסומנות, וסף חיתוך חדש.
תחילה שחררנו לחלק מהתעבורה לצד התוצאות הישנות והשווינו על שאילתות חיות — החזרה לאחור תחת דגל נותרה פקודה אחת.
תוצאה: שיעור התצוגות הרלוונטיות בטופ 10 עלה מ-61% ל-89%, שיעור התוצאות הריקות ירד מ-8.4% ל-1.2%, זמן התאמת המוצר הצטמצם משלוש דקות לארבעים שניות, פניות לתמיכה "לא מצאתי לפי תמונה" פחתו פי חמישה.
ירידה ברלוונטיות נתפסת כעת בבקרה יומית: אם שיעור התוצאות הריקות עולה מעל הסף, התעבורה חוזרת אוטומטית לאינדקס הקודם.
במה שונה התאמה לפי תמונה מהתאמה לפי תגיות?
התאמה לפי תגיות עובדת עם תיאור דיסקרטי: סימון מאפיינים מצמצם את המוצר לסט תגיות מאוצר מילים סופי — קטגוריה, צבע, אורך, סוג שרוול, התאמה לגוף. אוצר המילים מגס בהכרח: תגית אחת "שמלה ישרה מידי" מכסה גם סריג צפוף וגם גזרת ויסקוזה זורמת, אף שלדעת הקונה אלה דברים שונים. השאילתה תאמה לתגית — המוצר נמצא, לא תאמה — הפריט בלתי נראה.
המגבלה כאן אינה בקפדנות המסמנים, אלא בטבעה של התגית. בגבולות שני מומחים חלוקים: אחד מסמן "אוברסייז", השני "גזרה חופשית", והמוצר מפסיק להימצא בשתי השאילתות. כל ציר תיאור חדש מרחיב את אוצר המילים ואת היקף העבודה, אבל מרקם, אופי ההדפס והתאמה לגוף לא נכנסים אליו.
התאמה לפי תמונה משווה לא מילים, אלא ייצוגים של תמונות. המודל בונה וקטור שבו מקודדים בו-זמנית צללית, גזרה, מרקם ודוגמה, — בלי צורך באוצר מילים. הדמיון מחושב כמרחק בין וקטורים, והאינדקס הווקטורי מחזיר את הפריטים הקרובים ביותר בשברירי שנייה על קטלוג של עשרות אלפי מוצרים. עמידות לרקע ולתאורה מגיעה מאימון על זוגות צילומים של אותו מוצר.
ההבדל מורגש בשאילתות שאין לתארן במילון: תמונה מהרחוב, צילום מסך מרשתות חברתיות, "מצא אותו דבר, אבל בלי חגורה". דיוק ההתאמה נמדד על מערך מושהיה — שיעור הרלוונטיים בעשירייה הראשונה ושיעור השאילתות שבהן נמצא אנלוג מקטגוריה שכנה.
את התגיות לא זורקים: הן מחזיקות מסננים קשיחים לפי מידה, קטגוריה וזמינות. התמונה אחראית ל"דומה", והתגיות מצמצמות למה שאפשר להזמין.
ספקות טכניים ותשובות מהנדסים
לפני ההתחלה לקוחות בודקים לא את החיפוש עצמו, אלא כיצד הוא ישרוד קטלוג אמיתי: כרטיסים חצי־ריקים, מוצרים דומים חזותית, גלים עונתיים, החלפת צלם. הספקות טכניים, ולכל אחד יש תשובה הנדסית.
למחצית מהמוצרים אין מאפיינים — החיפוש יעבוד?
כן. ההתאמה נעשית לפי תמונה, ולכן כרטיסים בלי תיאורים ובלי קטגוריות נכנסים לתוצאות מהיום הראשון. המאפיינים מדייקים את המסננים, ואת החסרים משלימים לאחר ההשקה, בלי לעצור את החיפוש.
דגמים דומים יתבלבלו זה בזה?
המערכת מחזירה רשימה מדורגת, ולא תשובה אחת, ולכן צלליות קרובות הן תוצאה צפויה. סימון זוגות של "דומה / שונה" עוזר להפריד ביניהן: לפיו מגדירים על אילו מאפיינים להישען — גזרה, אורך, מרקם.
מה עם קולקציות חדשות שלא היו באינדקס?
האינדקס מתעדכן עם ייצוא הקטלוג, ולכן פריטים חדשים מופיעים בתוצאות לאחר פרסום הכרטיסים — אין צורך באימון מחדש. גלים עונתיים נסגרים בנוהל עדכון: למועד תחילת המכירה המוצר כבר נמצא בחיפוש.
הקטלוג צולם מחדש בסגנון אחר — האיכות תירד?
בודקים על מדגם בקרה: משנים רקע, תאורה ותנוחה בכרטיסים ישנים, ובודקים אם המוצר שומר על מקומו בתוצאות. אם יש ירידה, מוסיפים את הצילום לאינדקס — ההתאמה משתחזרת בלי בנייה מחדש.
איך לשלוט באיכות ההתאמה לאחר המסירה?
משאירים מערך שאילתות בקרה עם תוצאת תקן ומריצים לפי לוח זמנים. הדוח מציג את שיעור הפגיעות בטופ — הירידה נראית לפני תלונות הקונים, ולא אחריהן.
נדון במשימה ונחזור עם תוכנית
כדי לחזור עם הערכה ותוכנית עבודה, ולא עם הרהורים כלליים, אנחנו צריכים גישה לנתונים שלכם והבנה של התרחישים. חיפוש חזותי נבנה סביב הקטלוג ואופן השימוש של הקונה בו: אותו מודל ייתן איכות שונה על קטלוג של 500 פריטים עם צילומים אחידים ועל 200 אלף כרטיסים עם תאורה ורקע שונים. להלן מה שאנו מבקשים בשיחה הראשונה.
- ייצוא הקטלוג. דאמפ בפורמט שנוח לכם או גישה למסד נתונים במצב קריאה: מקט, קטגוריה ותת־קטגוריה, צבע, חומר, עונה, קישור לתמונות, זמינות מידות. זה מספיק כדי להעריך את התאמת הצילומים והיקף העבודה בנרמול שלהם.
- דוגמאות להתאמות כושלות. 15–30 שאילתות חיות או תמונות שבהן החיפוש, לתחושתכם, מפספס. הן הופכות למערך בדיקה: לפיו רואים אם הדיוק עולה אחרי כל איטרציה, ולא "נראה טוב יותר לעין".
- היקף הקולקציות וקצב העדכון. כמה פריטים יש עכשיו, כמה מתווספים בעונה, באיזו תדירות מתחלפות התמונות ודגמים יוצאים מהמכירה. מזה תלויים אסטרטגיית האינדוקס מחדש וההתנהגות של המערכת על פריטים חדשים.
- תרחישי שימוש. היכן בדיוק הקונה ייתקל בחיפוש: התאמת דומים בכרטיס, חיפוש לפי תמונה מהסמארטפון, התאמת סט לפריט נבחר, חלון ראווה למוכר. לכל תרחיש יש היגיון תוצאות משלו ורף דיוק משלו.
- נקודות אינטגרציה. אתר, אפליקציית מובייל, קטלוג, חיפוש, בלוק המלצות, פאנל מנהל — עם סכמת זרימות ובעלים בצד שלכם. כאן גם מתעדים את סביבת הבדיקות ומגבלות העומס.
- קריטריון הצלחה. מסכימים מראש מה נחשב להתאמה מוצלחת: פגיעה בקטגוריה, בצבע, בפריט מסוים. מדד אחד בהתחלה חוסך ויכוחים בקבלה.
תארו את המשימה ושלחו גישה לייצוא — נחזור עם הערכה ותוכנית עבודה לפי שלבים.







