מרחב רב-ממדי וקללת הממדיות

מה זה בכלל "רב-ממדי" בפרקטיקה?

האינטואיציה הגיאומטרית שלנו — "קרוב" ו"רחוק", "כיוון", "זווית" — מגיעה מעולם דו-ממדי או תלת-ממדי, שבו אפשר לצייר ולדמיין. embeddings אמיתיים חיים במרחב של מאות ועד כמה אלפי מימדים בו-זמנית.

כל הנוסחאות שראינו בפרק הקודם — מכפלה סקלרית, נורמה, דמיון קוסינוס, מרחק אוקלידי — מוגדרות באופן זהה לחלוטין ללא תלות במספר המימדים; מבחינה אלגברית טהורה, אין שום בעיה לחשב אותן על וקטור בן 1,536 מימדים בדיוק כמו על וקטור דו-ממדי. הבעיה שמתעוררת היא לא אלגברית אלא גיאומטרית-סטטיסטית: ההתנהגות של המרחקים עצמם משתנה באופן דרמטי ככל שהממדיות גדלה.

קללת הממדיות (Curse of Dimensionality)

התופעה המרכזית: ככל שמספר המימדים גדל, ההבדל היחסי בין המרחק לשכן הקרוב ביותר לבין המרחק לשכן הרחוק ביותר הולך ומצטמצם — במימדים גבוהים מספיק, היחס בין שני המרחקים האלה שואף ל-1. במילים אחרות: כמעט כל הנקודות נעשות "בערך באותו מרחק" זו מזו, וההבדל שמבדיל שכן קרוב באמת משכן רחוק הופך קטן ועדין יותר ויותר.

הסיבה האינטואיטיבית: בכל מימד נוסף יש עוד "כיוון" שבו נקודות יכולות להתפזר ולהתרחק זו מזו. במרחב דו-ממדי שתי נקודות אקראיות עשויות להיות קרובות במקרה; במרחב בן אלף מימדים, כמעט בלתי אפשרי ששתי נקודות אקראיות יהיו קרובות בכל המימדים בו-זמנית — כך שהמרחקים בין נקודות אקראיות מתכנסים לטווח ערכים צר יחסית.

גרף המראה עקומה כחולה יורדת בהדרגה משמאל לימין, מתחילה גבוה ומתקרבת אסימפטוטית לקו מקווקו אופקי המסומן '1' מבלי לחצות אותו — ציר ה-X מייצג עלייה במספר המימדים (עם איור נקודות מפוזרות משמאל לעומת צביר צפוף מימין), וציר ה-Y מייצג את היחס בין מרחק השכן הרחוק לשכן הקרוב, ההולך ומצטמצם לכיוון 1 ככל שהממדיות גדלה.
ככל שהממדים גדלים, היחס בין הרחוק לקרוב שואף ל-1 — כל הנקודות נעשות 'בערך' באותו מרחק

למה זה חשוב לחיפוש וקטורי בפועל

כשההבדל בין "קרוב" ל"רחוק" מצטמצם, כל שיטת חיפוש שמתבססת על סריקה גולמית וחישוב מרחק מדויק לכל פריט (brute-force / exact k-Nearest Neighbors) נעשית גם יקרה חישובית וגם פחות ופחות "בטוחה" מבחינת איכות התוצאה ביחס למאמץ — ככל שהממדיות עולה, ההבדל בין השכן ה-1 לשכן ה-100 עשוי להיות קטן יחסית, כך שגם חיפוש שמפספס מעט עדיין מחזיר תוצאות סבירות.

זו בדיוק הסיבה שהתעשייה לא סורקת את כל בסיס הנתונים ומחשבת מרחק מדויק לכל פריט בכל שאילתה, במיוחד כשמדובר במיליוני או מיליארדי וקטורים. הפרקים הבאים עוסקים באלגוריתמים שמוותרים במכוון על דיוק מוחלט (מציאת השכן הקרוב ביותר האמיתי, בוודאות) בתמורה למהירות עצומה — חיפוש מקורב (Approximate Nearest Neighbor, ANN) — ומדוע הוויתור הזה כמעט תמיד משתלם בפרקטיקה.

אז למה לא פשוט מגדילים את מספר המימדים עוד ועוד?

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

בפועל, ספקי מודלים בוחרים ממד מסוים כפשרה מכוונת בין איכות הייצוג לעלות, ולעיתים אף מציעים גרסאות "מקוצרות" של אותו embedding (פחות מימדים, פגיעה קלה באיכות, חיסכון משמעותי במקום ובזמן חישוב) לשימושים שבהם המהירות קריטית יותר מהדיוק המרבי.