אמזון נפטון 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
ortext_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.
אל האני תיאור ו דרישות מאפיינים הם בדרך כלל ברצפי טקסט ארוכים. האורך הממוצע של תיאור הוא בסביבות 192 מילים, שזה יותר מאורך הקלט המרבי של text_sbert
(128). אנחנו יכולים להשתמש text_sbert512
, אבל זה עלול לגרום להסקת הסקה איטית יותר. בנוסף, הטקסט הוא בשפה אחת (אנגלית). לכן, אנו ממליצים text_fasttext
עם en ערך השפה בגלל ההסקה המהירה שלה ואורך הקלט הלא מוגבל. הקוד לדוגמה עבור יצוא פרמטרים הוא כדלקמן. ה text_fasttext
ניתן להתאים אישית את הקידוד באמצעות שפה ו אורך מקסימלי. ה language
ערך נדרש, אבל max_length
הוא לא חובה.
פרטים נוספים על מקרי השימוש בהמלצת עבודה ניתן למצוא ב הדרכה למחברת נפטון.
למטרות הדגמה, אנו בוחרים משתמש אחד, כלומר משתמש 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 ללא שינוי.
על המחברים
ג'יאני ג'אנג הוא מדען יישומי של AWS AI Research and Education (AIRE). היא עובדת על פתרון יישומים מהעולם האמיתי באמצעות אלגוריתמים של למידת מכונה, במיוחד בעיות הקשורות לשפה טבעית ולגרפים.
- מתקדם (300)
- AI
- איי אמנות
- מחולל אמנות ai
- איי רובוט
- אמזון נפטון
- בינה מלאכותית
- הסמכת בינה מלאכותית
- בינה מלאכותית בבנקאות
- רובוט בינה מלאכותית
- רובוטים של בינה מלאכותית
- תוכנת בינה מלאכותית
- למידת מכונות AWS
- blockchain
- blockchain conference ai
- קוינגניוס
- בינה מלאכותית של שיחה
- קריפטו כנס ai
- של דאל
- למידה עמוקה
- גוגל איי
- למידת מכונה
- אפלטון
- plato ai
- מודיעין אפלטון
- משחק אפלטון
- אפלטון נתונים
- פלטוגיימינג
- סולם ai
- תחביר
- זפירנט