קידוד מאפייני טקסט רב-לשוניים באמזון נפטון כדי להכשיר מודלים חזויים של PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

קידוד מאפייני טקסט רב-לשוניים באמזון נפטון כדי להכשיר מודלים חזויים

אמזון נפטון ML היא יכולת למידת מכונה (ML) של אמזון נפטון שעוזר לך לבצע חיזויים מדויקים ומהירים על נתוני הגרפים שלך. מתחת למכסה המנוע, Neptune ML משתמש ברשתות גרפיות עצביות (GNNs) כדי לנצל בו זמנית את היתרונות של מבנה הגרף ומאפייני הצומת/קצה כדי לפתור את המשימה שעל הפרק. שיטות מסורתיות משתמשות רק במאפיינים וללא מבנה גרף (למשל, XGBoost, Neural Networks), או רק במבנה גרף וללא מאפיינים (למשל, node2vec, Label Propagation). כדי לתמרן טוב יותר את מאפייני הצומת/קצה, אלגוריתמי ML דורשים שהנתונים יהיו נתונים מספריים מתנהגים היטב, אך לנתונים גולמיים במסד נתונים יכולים להיות סוגים אחרים, כמו טקסט גולמי. כדי לעשות שימוש בסוגים אחרים של נתונים אלה, אנו זקוקים לשלבי עיבוד מיוחדים הממירים אותם מהסוג המקורי שלהם לנתונים מספריים, ואיכות תוצאות ה-ML תלויה מאוד באיכות של טרנספורמציות נתונים אלו. טקסט גולמי, כמו משפטים, הם מהסוגים הקשים ביותר לשינוי, אך ההתקדמות האחרונה בתחום עיבוד השפה הטבעית (NLP) הובילה לשיטות חזקות שיכולות להתמודד עם טקסט המגיע ממספר שפות ומגוון רחב של אורכים.

החל מגרסה 1.1.0.0, Neptune ML תומך מקודדי טקסט מרובים (text_fasttext, text_sbert, text_word2vec, ו text_tfidf), המביאות את היתרונות של ההתקדמות האחרונה ב-NLP ומאפשרת תמיכה במאפייני טקסט רב-לשוניים וכן דרישות מסקנות נוספות לגבי שפות ואורך טקסט. לדוגמה, במקרה של שימוש בהמלצת עבודה, ניתן לתאר את משרות העבודה במדינות שונות בשפות שונות ואורך תיאורי התפקיד משתנה במידה ניכרת. בנוסף, Neptune ML תומך ב- המכונית אפשרות שבוחרת אוטומטית את שיטת הקידוד הטובה ביותר בהתבסס על המאפיינים של תכונת הטקסט בנתונים.

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

מהו מקודד טקסט?

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

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

  • text_fasttext (חדש) - שימושים fastText הַצפָּנָה. FastText היא ספרייה ללמידה יעילה של ייצוג טקסט. text_fasttext מומלץ עבור תכונות המשתמשות באחת ויחידה מחמש השפות שבהן תומכת fastText (אנגלית, סינית, הינדית, ספרדית וצרפתית). ה text_fasttext השיטה יכולה לקחת באופן אופציונלי את max_length שדה, המציין את המספר המרבי של אסימונים בערך מאפיין טקסט שיקודד, ולאחר מכן המחרוזת נקצצת. אתה יכול להתייחס לאסימון כמילה. זה יכול לשפר את הביצועים כאשר ערכי מאפייני טקסט מכילים מחרוזות ארוכות, כי אם max_length לא צוין, fastText מקודד את כל האסימונים ללא תלות באורך המחרוזת.
  • text_sbert (חדש) - משתמש במשפט BERT (סברט) שיטת הקידוד. SBERT היא מעין שיטת הטבעת משפטים המשתמשת במודלים למידת הייצוג ההקשרי, BERT-Networks. text_sbert מומלץ כאשר השפה אינה נתמכת על ידי text_fasttext. נפטון תומך בשתי שיטות SBERT: text_sbert128, שהיא ברירת המחדל אם רק תציין text_sbert, ו text_sbert512. ההבדל ביניהם הוא המספר המרבי של אסימונים במאפיין טקסט שמקודדים. ה text_sbert128 הקידוד מקודד רק את 128 האסימונים הראשונים, ואילו text_sbert512 מקודד עד 512 אסימונים. כתוצאה מכך, באמצעות text_sbert512 יכול לדרוש יותר זמן עיבוד מאשר text_sbert128. שתי השיטות איטיות יותר מ text_fasttext.
  • text_word2vec - שימושים Word2Old אלגוריתמים שפורסמו במקור על ידי גוגל כדי לקודד טקסט. Word2Vec תומך רק באנגלית.
  • text_tfidf - משתמש במונח תדירות הפוך של מסמך (צה"ל) וקטורייזר לקידוד טקסט. קידוד TF-IDF תומך בתכונות סטטיסטיות שהקידודים האחרים לא. הוא מכמת את החשיבות או הרלוונטיות של מילים במאפיין צומת אחד בין כל הצמתים האחרים.

שים לב כי text_word2vec ו text_tfidf נתמכו בעבר והשיטות החדשות text_fasttext ו text_sbert מומלצים על פני השיטות הישנות.

השוואה בין מקודדי טקסט שונים

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

. . text_fasttext text_sbert text_word2vec
יכולת דגם שפה נתמכת אנגלית, סינית, הינדית, ספרדית וצרפתית יותר מ -50 שפות אנגלית
יכול לקודד מאפייני טקסט המכילים מילים בשפות שונות לא יש לא
תמיכה באורך מקסימלי אין הגבלת אורך מקסימלי מקודד את רצף הטקסט באורך המקסימלי של 128 ו-512 אין הגבלת אורך מקסימלי
עלות זמן טעינה בערך 10 שניות בערך 2 שניות בערך 2 שניות
הסקה מהר להאט בינוני

שימו לב לעצות השימוש הבאות:

  • עבור ערכי מאפייני טקסט באנגלית, סינית, הינדית, ספרדית וצרפתית, text_fasttext הוא הקידוד המומלץ. עם זאת, הוא לא יכול להתמודד עם מקרים שבהם אותו משפט מכיל מילים ביותר משפה אחת. לשפות אחרות מאשר החמש ש fastText תומך, שימוש text_sbert הַצפָּנָה.
  • אם יש לך מחרוזות טקסט רבות של ערכי נכס ארוכות מ-, למשל, 120 אסימונים, השתמש ב- max_length כדי להגביל את מספר האסימונים בכל מחרוזת text_fasttext מקודד.

לסיכום, בהתאם למקרה השימוש שלך, אנו ממליצים על שיטת הקידוד הבאה:

  • אם מאפייני הטקסט שלך נמצאים באחת מחמש השפות הנתמכות, אנו ממליצים להשתמש text_fasttext בשל ההסקה המהירה שלו. text_fasttext הוא הבחירות המומלצות ואתה יכול גם להשתמש text_sbert בשני החריגים הבאים.
  • אם מאפייני הטקסט שלך הם בשפות שונות, אנו ממליצים להשתמש text_sbert מכיוון שזו השיטה הנתמכת היחידה שיכולה לקודד מאפייני טקסט המכילים מילים במספר שפות שונות.
  • אם מאפייני הטקסט שלך נמצאים בשפה אחת שאינה אחת מחמש השפות הנתמכות, אנו ממליצים להשתמש text_sbert מכיוון שהוא תומך ביותר מ-50 שפות.
  • אם האורך הממוצע של מאפייני הטקסט שלך ארוך מ-128, שקול להשתמש text_sbert512 or text_fasttext. שתי השיטות יכולות להשתמש ברצפי טקסט ארוכים יותר.
  • אם מאפייני הטקסט שלך הם באנגלית בלבד, אתה יכול להשתמש text_word2vec, אך אנו ממליצים להשתמש text_fasttext על ההסקה המהירה שלו.

הדגמת מקרה שימוש: משימת המלצת עבודה

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

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

במערך הנתונים, למשתמשים יש את המאפיינים הבאים:

  • מדינה – לדוגמה, CA או 广东省 (סינית)
  • רב סרן – לדוגמה, ניהול משאבי אנוש או Lic Cytura Fisica (ספרדית)
  • סוג התואר – לדוגמה, תואר ראשון, שני, דוקטורט או ללא
  • WorkHistoryCount – לדוגמה, 0, 1, 16 וכן הלאה
  • TotalYearsExperience – לדוגמה, 0.0, 10.0 או NAN

למשרות יש את המאפיינים הבאים:

  • כותרת – לדוגמה, עוזר אדמיניסטרטיבי או Lic Cultura Física (ספרדית).
  • תיאור – לדוגמה, "תפקיד עוזר אדמיניסטרטיבי זה אחראי על ביצוע מגוון תפקידי תמיכה פקידותית ומנהלית בתחומי התקשורת,..." מספר המילים הממוצע בתיאור הוא סביב 192.2.
  • דרישות – לדוגמה, "דרישות התפקיד: 1. תשומת לב לפרטים; 2. יכולת עבודה בסביבה בקצב מהיר; 3. חשבוניות..."
  • מדינה: – לדוגמה, CA, NY וכן הלאה.

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

כיצד לבחור מקודדי טקסט שונים

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

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "user",
                "property": "Major",
                "type": "text_sbert128"
            },
            {
                "node": "job",
                "property": "Title",
                "type": "text_sbert128",
            }, ...
        ], ...
    }
}

אל האני תיאור ו דרישות מאפיינים הם בדרך כלל ברצפי טקסט ארוכים. האורך הממוצע של תיאור הוא בסביבות 192 מילים, שזה יותר מאורך הקלט המרבי של text_sbert (128). אנחנו יכולים להשתמש text_sbert512, אבל זה עלול לגרום להסקת הסקה איטית יותר. בנוסף, הטקסט הוא בשפה אחת (אנגלית). לכן, אנו ממליצים text_fasttext עם en ערך השפה בגלל ההסקה המהירה שלה ואורך הקלט הלא מוגבל. הקוד לדוגמה עבור יצוא פרמטרים הוא כדלקמן. ה text_fasttext ניתן להתאים אישית את הקידוד באמצעות שפה ו אורך מקסימלי. ה language ערך נדרש, אבל max_length הוא לא חובה.

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "job",
                "property": "Description",
                "type": "text_fasttext",
                "language": "en",
                "max_length": 256
            },
            {
                "node": "job",
                "property": "Requirements",
                "type": "text_fasttext",
                "language": "en"
            }, ...
        ], ...
    }
}

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

למטרות הדגמה, אנו בוחרים משתמש אחד, כלומר משתמש 443931, בעל תואר שני ב'ניהול ומשאבי אנוש'. המשתמש הגיש מועמדות לחמש משרות שונות, המכונות "מנהל משאבי אנוש (HR), "כללי משאבי אנוש", "מנהל משאבי אנוש", "מנהל משאבי אנוש" ו"מומחה שכר בכיר". על מנת להעריך את ביצוע משימת ההמלצה, אנו מוחקים 50% ממשרות היישום (הקצוות) של המשתמש (כאן אנו מוחקים את "מנהל משאבי אנוש" ו"מנהל משאבי אנוש (HR) ומנסים לחזות את הטופ 10 משרות שסביר להניח שהמשתמש הזה יגיש מועמדות אליהן.

לאחר קידוד תכונות העבודה ותכונות המשתמש, אנו מבצעים משימת חיזוי קישור על ידי אימון מודל רשת קונבולוציוני גרף יחסי (RGCN). אימון מודל Neptune ML דורש שלושה שלבים: עיבוד נתונים, אימון מודל ויצירת נקודות קצה. לאחר יצירת נקודת הסיום, נוכל להמליץ ​​על משתמש 443931. מתוך 10 המשרות המובילות החזויות עבור משתמש 443931 (כלומר, "כללי משאבי אנוש", "מנהל משאבי אנוש (HR), "מומחה שכר בכיר", "אנושי מנהל משאבים", "אנליסט משאבי אנוש", ועוד), אנו רואים ששתי המשרות שנמחקו הן בין 10 התחזיות.

סיכום

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

  • text_fasttext מומלץ לתכונות המשתמשות באחת ויחידה מחמש השפות בהן text_fasttext תומכות.
  • text_sbert מומלץ לטקסט ש-text_fasttext אינו תומך בו.
  • text_word2vec תומך רק באנגלית, וניתן להחליף אותו ב-text_fasttext בכל תרחיש.

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


על המחברים

קידוד מאפייני טקסט רב-לשוניים באמזון נפטון כדי להכשיר מודלים חזויים של PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'יאני ג'אנג הוא מדען יישומי של AWS AI Research and Education (AIRE). היא עובדת על פתרון יישומים מהעולם האמיתי באמצעות אלגוריתמים של למידת מכונה, במיוחד בעיות הקשורות לשפה טבעית ולגרפים.

בול זמן:

עוד מ למידת מכונות AWS