Embeddings — ייצוג משמעות כווקטורים
מהו Embedding?
Embedding הוא ייצוג מספרי קבוע-אורך (וקטור) של פיסת תוכן — מילה, משפט, פסקה, תמונה או אפילו קטע קול — שנוצר כך שמרחק בין וקטורים משקף קרבה במשמעות: תכנים בעלי משמעות דומה מקבלים וקטורים קרובים זה לזה במרחב, ותכנים שונים לחלוטין מקבלים וקטורים רחוקים.
זו אותה אינטואיציה שכבר פגשנו בנושא ה-LLM כשדיברנו על embeddings של טוקנים בתוך המודל ("מלכה ≈ מלך − גבר + אישה") — ההבדל המרכזי כאן הוא שבחיפוש וקטורי לא מעניין אותנו הוקטור הפנימי שמשתנה בכל שכבה בתוך רשת נוירונים, אלא וקטור יחיד, סופי וקבוע לכל מסמך או פסקה שלמה, שנשמר ומשמש להשוואה מול שאילתות עתידיות.
איך יוצרים embedding מתוכן
היצירה נעשית ע"י מודל embedding ייעודי — רשת נוירונים שאומנה במיוחד כך שהמרחק הגיאומטרי בין הוקטורים שהיא מפיקה ישקף דמיון סמנטי אמיתי, ולא ע"י מודל שפה כללי שתפקידו לייצר טקסט. ברמת העיקרון: הטקסט (או התמונה) עובר במודל בקריאה אחת, וכפלט מתקבל וקטור בודד באורך קבוע שמסכם את כל התוכן.
בפועל, ברוב המערכות לא ממירים מסמכים שלמים לוקטור בודד — מפצלים אותם לקטעים (chunks) בגודל סביר (למשל כמה משפטים או פסקה), ויוצרים embedding לכל קטע בנפרד. כך שומרים על דיוק: קטע קצר וממוקד מפיק וקטור שמייצג נאמנה את התוכן שלו, בעוד וקטור יחיד למסמך שלם עלול "לטשטש" נושאים שונים שמופיעים בו לכדי ממוצע לא מדויק.
מודלים נפוצים בפועל (נכון לכתיבת שורות אלו) כוללים משפחות ייעודיות של ספקים כמו OpenAI (text-embedding-3), Cohere ו-Voyage AI, לצד מודלי embedding בקוד פתוח שניתן להריץ עצמאית. ממדי הוקטורים הנפוצים נעים בטווח של כמה מאות ועד כמה אלפי מימדים לכל embedding — המספר המדויק תלוי במודל הספציפי, ומהווה טרייד-אוף בין דיוק הייצוג לבין עלות האחסון והחישוב.
מה זה אומר ש'וקטורים קרובים' — אינטואיציה
אפשר לדמיין את מרחב ה-embedding כמפה רב-ממדית שבה כל נקודה היא מסמך. מסמכים על אותו נושא מתקבצים יחד באזור אחד של המפה, בדיוק כפי שמילים בעלות משמעות דומה מתקבצות יחד במרחב ה-embeddings של מילים שנראה בנושא ה-LLM.
"קרוב" ו"רחוק" במרחב הזה נמדדים באמצעות מדדים מתמטיים מדויקים — לא רק תיאור מילולי מעורפל. איך בדיוק מגדירים ומחשבים דמיון בין שני וקטורים, ומה ההבדל בין כמה שיטות מדידה מקובלות, זו בדיוק השאלה שהפרק הבא, שעוסק במתמטיקה של חיפוש וקטורי, עונה עליה לעומק.
