שלב 2.5: בחירת דגם

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

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

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

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

אלגוריתם להכנת נתונים ולבניית מודלים

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

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

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

תרשים זרימה של סיווג טקסט

איור 5: תרשים זרימה של סיווג טקסט

תרשים הזרימה הזה עונה על שתי שאלות עיקריות:

  1. באיזה אלגוריתם או מודל למידה עלינו להשתמש?

  2. איך עלינו להכין את הנתונים כדי ללמוד ביעילות את הקשר בין טקסט לתווית?

התשובה לשאלה השנייה תלויה בתשובה לשאלה הראשונה. הדרך שבה אנחנו מעבדים מראש את הנתונים כדי להיכנס למודל תלויה במודל שבו אנחנו בוחרים. אפשר לסווג מודלים בצורה רחבה לשתי קטגוריות: כאלה שמשתמשות במידע לסדר מילים (מודלים של רצף) וקטגוריות שפשוט רואים את הטקסט "תיקים" (קבוצות) של מילים (מודלים של גרם). הסוגים של מודלים בהמשכים כוללים רשתות נוירונים קונספטואליות (CNN), רשתות נוירונים חוזרות (RNN) וגרסאות שלהן. הסוגים של מודלים של n-gram כוללים רגרסיה לוגיסטית, תפיסות פשוטות רב-שכבתיות (MLP, או רשתות נוירונים שמחוברות באופן מלא), עצים שהוגדלו באמצעות גרדיאנט ומכונות וקטוריות לתמיכה.

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

כאשר הערך של היחס הזה קטן (<1500), קליטה קטנה של שכבות מרובות, שמקבלת n גרם כקלט (שאנו נקרא אפשרות א') מניבות ביצועים טובים יותר, או לפחות מודלים של רצף. קל להגדיר ולהבין את למידת מכונה (MLP), והם צריכים הרבה יותר זמן חישוב מאשר מודלים של רצף. כשהערך של היחס הזה גדול (>= 1500), צריך להשתמש במודל רצף (אפשרות ב'). בשלבים הבאים, אפשר לדלג לקטעי המשנה הרלוונטיים (מסומנים בתווית A או B) בהתאם לסוג המודל שבחרתם, על סמך היחס בין הדגימה/המילים לכל דגימה.

במקרה של מערך הנתונים לבדיקה של IMDb, יחס הדגימות/המילים לכל דגימה הוא ~144. פירוש הדבר הוא שאנחנו ניצור מודל למידת מכונה (MLP).