ההבדל בין מנוע חיפוש, לחיפוש סמנטי, ולחיפוש מבוסס LLM כדוגמת ChatGPT (עקרונות עיבוד שפה טבעית למנהלים)

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

פעולת הטוקניזציה מפרקת את המשפט לחלקיו הקטנים יותר, כגון מילים וסימני פיסוק. הנקראית “טוקנים” או “אסימונים”. כל טוקן מייצג יחידת משמעותית בטקסט, כגון מילה או סימן פיסוק. לדוגמה: טקסט מקור: “היא אהבה ללכת לים.” נמיר לטקסט בצורת רשימת טוקנים: [“היא”, “אהבה”, “ללכת”, “לים”, “.”]. בדוגמה זו, כל מילה וסימן פיסוק נפרדים הם טוקנים בעצמם, והם מקבלים את המשמעות שלהם בהתאם לקשרם לטקסט המקורי. למשל המילה “היא” אינה מוגדרת בפני עצמה ודרוש למצוא למילה הקשר בטקסט השלם.

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

LLM, או Language Large Model, הוא מודל בינה מלאכותית המבוסס על רשתות נוירונים עמוקות, מיועד לעיבוד שפה טבעית. הוא מסוגל להבין, לייצר ולתרגם טקסטים בשפות שונות. המודל מאומן על גבי כמויות עצומות של טקסטים מגוונים, מה שמאפשר לו להתמודד עם משימות רבות כמו תרגום אוטומטי, סיכום טקסטים, ניתוח רגשות, גילוי כוונה ועוד. LLM הוא כלי חשוב בתחום הבינה המלאכותית ומשמש במגוון רחב של יישומים, ממיר קול לטקסט ועד יישומים מתקדמים כמו צ’אטבוטים ועוזרים וירטואליים.

מנוע חיפוש קלאסי מתמקד בחיפוש מילות מפתח בטקסטים ומחזיר תוצאות שמכילות את המילים הללו. דוגמאות למנועי חיפוש קלאסיים הם Google ו-Bing. היתרון העיקרי של מנוע חיפוש קלאסי הוא מהירותו ויעילותו במציאת תוצאות רלוונטיות לשאילתות פשוטות. עם זאת, הוא עלול להחמיץ תוצאות רלוונטיות אם המילים בשאילתה לא מתאימות בדיוק למילים במסמך.

מנוע חיפוש סמנטי מנסה להבין את המשמעות הכללית של השאילתה ולהחזיר תוצאות שקשורות למושגים ולהקשרים דומים. דוגמאות למנועי חיפוש סמנטיים הם Wolfram Alpha ו-Yippy. יתרונותיהם כוללים את היכולת למצוא תוצאות רלוונטיות גם כאשר אין התאמה מדויקת למילות החיפוש ולהבין שאילתות מורכבות יותר.

נדגיש כי חיפוש סמנטי ניתן לממש גם ללא שימוש ב-LLM על ידי שימוש בטכנולוגיות ושיטות שונות מתחום עיבוד שפה טבעית (NLP) וסמנטיקה. להלן כמה דרכים למימוש חיפוש סמנטי:

אונטולוגיות ומודלים סמנטיים: הגדרת מבנה וקשרים בין מושגים בתחום מסוים, כדי לאפשר חיפוש מבוסס משמעות ולא רק מילים. אונטולוגיה פופולרית מתחום הרפואה מספקת מערכת מקיפה של מונחים רפואיים עם הגדרות מדויקות וקשרים סמנטיים בין המושגים. לדוגמה, היא מכילה מושגים כמו “דלקת” ו”ריאה”, וקובעת את הקשרים ביניהם, כגון “דלקת ריאות” היא סוג של “דלקת” המתרחשת ב”ריאה”.

כלי וטכניקות NLP: שימוש בכלים כמו תגיות חלקי דיבר, ניתוח תלותיות, וניתוח עצם-שם, כדי להבין את מבנה המשפט והקשרים בין המילים כמו למשל SpaCy. SpaCy היא ספריית Python פופולרית לעיבוד שפה טבעית שמספקת כלים לביצוע מגוון רחב של משימות NLP. לדוגמה, נניח שיש לנו את המשפט הבא: “החתול ישן על הספה.” באמצעות SpaCy, אנו יכולים לבצע את הפעולות הבאות:

  1. תגיות חלקי דיבר (Part-of-Speech Tagging): הקצאת תגים לכל מילה במשפט לפי תפקידה התחבירי, למשל, “החתול” כשם עצם, “ישן” כפועל, ו”על” כמילת חיבור.
  2. ניתוח תלותיות (Dependency Parsing): זיהוי הקשרים התחביריים בין המילים, כגון ש”ישן” הוא הפעל המרכזי במשפט וש”החתול” משמש כנושא של הפועל.
  3. ניתוח עצם-שם (Named Entity Recognition): זיהוי וסיווג של ישויות במשפט, כמו שמות פרטיים, ארגונים, מקומות וכו’. במשפט זה אין ישויות מסוימות, אך אם היינו מוסיפים “בבית של ג’ון”, SpaCy יכול היה לזהות את “ג’ון” כשם פרטי.

מודלים וקטורים של מילים: שימוש במודלים כמו Word2Vec, GloVe, או FastText, שמייצגים מילים כווקטורים במרחב וקטורי, כדי לחשב דמיון סמנטי בין מילים וביטויים על בסיס מרחק וקטורי. למשל Word2Vec הוא מודל שנוצר על ידי Google ומיועד להמיר מילים לווקטורים נומריים במרחב וקטורי. כל מילה מיוצגת על ידי וקטור במרחב זה, והמרחק בין הווקטורים משקף את הדמיון הסמנטי בין המילים. דוגמה, אם נחשב את הווקטורים של המילים “מלך”, “מלכה”, “איש” ו”אישה” באמצעות Word2Vec, נוכל לראות כי המרחק הווקטורי בין “מלך” ל”מלכה” יהיה דומה למרחק בין “איש” ל”אישה”. זה מראה כי המודל מסוגל ללמוד מערכות יחסים סמנטיות בין מילים, כמו יחסי מיגדר או היררכיה חברתית.

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

  1. אם מאמר מכיל את המילים “תזונה”, “דיאטה” או “מזון” וכן את המילים “מחלות לב”, “טרשת עורקים” או “התקף לב”, אזי המאמר עשוי להיות רלוונטי.
  2. אם מאמר מדבר על חומרים מסוימים בתזונה, כמו “כולסטרול” או “שומנים רוויים”, וכן מזכיר מחלות לב, אזי הוא גם עשוי להיות רלוונטי.
  3. אם מאמר עוסק במחקרים או ניסויים שבדקו את ההשפעה של תזונה על מחלות לב, הוא נחשב לרלוונטי.

על ידי הפעלת חיפושים מבוססי כללים אלה, מערכת החיפוש יכולה לסנן ולהחזיר מאמרים שעונים על הקריטריונים ההגיוניים שהוגדרו, מה שמאפשר חיפוש מורכב ורלוונטי יותר על סמך משמעות ולא רק על סמך מילות מפתח.

חיפוש קלאסי יהיה עדיף כאשר יש צורך בתוצאות מהירות ומדויקות לשאילתות פשוטות, בעוד שחיפוש סמנטי יהיה עדיף כאשר השאילתה מורכבת יותר ודורשת הבנה עמוקה של ההקשר והמשמעות.

להמחשת ההבדל, ניקח דוגמה מעולם הטכנולוגיה:

שאילתת חיפוש קלאסית: “איך להתקין Docker ב-Ubuntu”

תוצאה צפויה: תוצאות שיכילו את כל המילים בשאילתה, כמו מדריכים והוראות התקנה מאתרים טכניים.

שאילתת חיפוש סמנטית: “כתוב הדרכה לאופן הגדרת Docker במערכת הפעלה של Ubuntu”

תוצאה צפויה: תוצאות שיכללו מדריכים והוראות להתקנה והגדרה של Docker ב-Ubuntu, גם אם המילים בשאילתה לא מתאימות בדיוק למילים בתוכן.

לצורך הבנת ההבדל בין חיפוש סמנטי לחיפוש מבוסס LLM נציג דוגמה לשאילתה מעולם הטכנולוגיה ש-LLM יכול לבצע אך חיפוש סמנטי עלול לא להצליח: “הסבר איך להשתמש ב-RNN לניבוי סדרות זמן בנתוני תנודתיות שוק ההון”. LLM יכול לנתח את השאילתה, להבין את המושגים המורכבים כמו “RNN” (Recurrent Neural Networks) ו”נתוני תנודתיות שוק ההון”, ולספק תשובה מפורטת עם הסברים ודוגמאות. מנגד, חיפוש סמנטי עשוי להתקשות להבין את הקשר המדויק והמושגים המתקדמים בשאילתה, ולכן יכול להחזיר תוצאות פחות רלוונטיות או מפורטות.

דוגמה לשאילתה מעולם הטכנולוגיה שחיפוש סמנטי יכול לבצע בצורה טובה יותר מ-LLM היא: “מצא את כל המאמרים העוסקים באלגוריתמים של למידת מכונה בתחום הרפואה המונעת בשנת 2024”. חיפוש סמנטי יכול להתמקד במציאת מסמכים ומאמרים שמתאימים במדויק לקריטריונים שצוינו בשאילתה, כולל התמקדות בשנה מסוימת ובתחום מדויק. LLM, לעומת זאת, עשוי לתת תשובה כללית יותר על אלגוריתמים בלמידת מכונה ברפואה המונעת, אך יתקשה לסנן תוצאות ספציפיות לפי שנה ולספק רשימה מקיפה של מאמרים.

לסיכום חיפוש סמנטי וחיפוש קלאסי מייצרים רשימת תוצאות חיפוש, בעוד ש-LLM מייצר טקסט הסבר העונה לשאלה. חיפוש קלאסי וחיפוש סמנטי מתמקדים במציאת מסמכים או דפי אינטרנט שמכילים מילות מפתח או מושגים רלוונטיים לשאילתת החיפוש, ומספקים רשימה של קישורים או תקצירים של המסמכים הללו. מצד שני, חיפוש מבוסס LLM מבצע פענוח עמוק יותר של השאלה ומייצר פיסקת תשובה כתובה שמסבירה או מתארת מידע רלוונטי, במקום רק להציג רשימת קישורים.


יורם סגל, חוקר AI, אוניברסיטת בן גוריון בנגב

תגובות סגורות