צור צינור המלצות אצווה באמצעות Amazon Personalize ללא קוד PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

צור צינור המלצות אצווה באמצעות Amazon Personalize ללא קוד

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

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

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

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

סקירת פתרונות

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

הכנת הנתונים חשובה מאוד כדי להבטיח שנקבל נתוני התנהגות לקוחות לפורמט שמוכן לאמזון פרסונלייז. הארכיטקטורה המתוארת בפוסט זה משתמשת ב-AWS Glue, שירות שילוב נתונים ללא שרת, כדי לבצע את הטרנספורמציה של נתונים גולמיים לפורמט שמוכן לצריכה של Amazon Personalize. הפתרון משתמש ב-Amazon Personalize כדי ליצור המלצות אצווה לכל המשתמשים על ידי שימוש בהסקת אצווה. לאחר מכן אנו משתמשים בזרימת עבודה של Step Functions כך שניתן להפעיל את זרימת העבודה האוטומטית על ידי קריאה לממשקי API של Amazon Personalize באופן שניתן לחזור עליו.

התרשים הבא מדגים פתרון זה.תרשים אדריכלות

אנו נבנה את הפתרון הזה עם השלבים הבאים:

  1. בנו עבודה לשינוי נתונים כדי להפוך את הנתונים הגולמיים שלנו באמצעות דבק AWS.
  2. בנה פתרון של Amazon Personalize עם מערך הנתונים שעבר שינוי.
  3. בנו זרימת עבודה של Step Functions כדי לתזמר את יצירת מסקנות אצווה.

תנאים מוקדמים

אתה צריך את הדברים הבאים עבור הדרכה זו:

בנו משימת שינוי נתונים כדי להפוך נתונים גולמיים עם AWS Glue

עם Amazon Personalize, נתוני קלט צריכים להיות בעלי סכימה ופורמט קובץ ספציפיים. נתונים מאינטראקציות בין משתמשים ופריטים חייבים להיות בפורמט CSV עם עמודות ספציפיות, בעוד שרשימת המשתמשים שעבורם ברצונך להפיק המלצות חייבת להיות בפורמט JSON. בחלק זה, אנו משתמשים ב-AWS Glue Studio כדי להפוך נתוני קלט גולמיים למבנים ולפורמט הנדרשים עבור Amazon Personalize.

AWS Glue Studio מספק ממשק גרפי המיועד ליצירה והפעלה קלה של עבודות חילוץ, טרנספורמציה וטעינה (ETL). אתה יכול ליצור חזותית עומסי עבודה של שינוי נתונים באמצעות פעולות גרירה ושחרור פשוטות.

ראשית אנו מכינים את נתוני המקור שלנו שירות אחסון פשוט של אמזון (Amazon S3), אז נמיר את הנתונים ללא קוד.

  1. בקונסולת Amazon S3, צור דלי S3 עם שלוש תיקיות: גלם, טרנספורמציה ואצור.
  2. הורד מערך הנתונים של MovieLens והעלה את הקובץ הלא דחוס בשם user_ratingmovies-timestamp.dat לדלי שלך מתחת לתיקיה הגולמית.
  3. במסוף AWS Glue Studio, בחר מקומות תעסוקה בחלונית הניווט.
  4. בחר ויזואלי עם מקור ומטרה, ואז לבחור צור.
  5. בחר את הצומת הראשון שנקרא מקור נתונים – דלי S3. זה המקום שבו אנו מציינים את נתוני הקלט שלנו.
  6. על מאפייני מקור נתונים בחר, בחר מיקום S3 ודפדף לקובץ שהעלית.
  7. בעד פורמט נתונים, בחר CSV, ועבור מפריד, בחר Tab.
    AWS Glue Studio - S3
  8. אנו יכולים לבחור בלשונית פלט סכימה כדי לוודא שהסכימה הסיקה את העמודות בצורה נכונה.
  9. אם הסכימה לא תואמת את הציפיות שלך, בחר ערוך כדי לערוך את הסכימה.
    AWS Glue Studio - שדות

לאחר מכן, אנו משנים את הנתונים האלה כדי לעמוד בדרישות הסכימה עבור Amazon Personalize.

  1. בחר את טרנספורמציה - החל מיפוי צומת ו, על לשנות בכרטיסייה, עדכן את מפתח היעד וסוגי הנתונים.
    Amazon Personalize, לכל הפחות, מצפה למבנה הבא עבור מערך נתונים של אינטראקציות:
    • user_id (מחרוזת)
    • item_id (מחרוזת)
    • timestamp (ארוך, בפורמט זמן עידן יוניקס)
      AWS Glue Studio - מיפוי שטח

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

  1. כדי לעשות זאת, הסר את הצומת האחרון שנקרא S3 bucket והוסף צומת סינון ב- לשנות TAB.
  2. בחרו להוסיף מצב ולסנן נתונים שבהם דירוג < 3.5.
    AWS Glue Studio - פלט

כעת אנו כותבים את הפלט בחזרה לאמזון S3.

  1. הרחב יעד תפריט ובחר אמזון S3.
  2. בעד מיקום יעד S3, בחר את התיקיה בשם transformed.
  3. בחרו CSV כמו הפורמט והסיומת ה מיקום יעד עם interactions/.

לאחר מכן, אנו מוציאים רשימה של משתמשים שאנו רוצים לקבל עליהם המלצות.

  1. בחר את ApplyMapping הצומת שוב, ולאחר מכן הרחב את לשנות תפריט ובחר ApplyMapping.
  2. שחרר את כל השדות למעט user_id ושנה את שם השדה ל userId. אמזון פרסונלייז מצפה שהשדה הזה יקבל שם תעודת זהות של המשתמש.
  3. הרחב יעד תפריט שוב ​​ובחר אמזון S3.
  4. הפעם, בחר JSON בתור הפורמט, ולאחר מכן בחר את תיקיית S3 שהשתנתה וסיומת אותה batch_users_input/.

זה מייצר א JSON רשימת משתמשים כקלט עבור Amazon Personalize. כעת אמורה להיות לנו דיאגרמה שנראית כמו הבאה.

AWS Glue Studio - זרימת עבודה מלאה

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

  1. במסוף IAM, צור תפקיד הנקרא glue-service-role וצרף את המדיניות המנוהלת הבאה:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

למידע נוסף על אופן יצירת תפקידי שירות IAM, עיין ב- יצירת תפקיד להאצלת הרשאות לשירות AWS.

  1. נווט חזרה לעבודת AWS Glue Studio שלך ובחר את פרטי עבודה TAB.
  2. הגדר את שם העבודה בתור batch-personalize-input-transform-job.
  3. בחר את תפקיד IAM החדש שנוצר.
  4. שמור את ערכי ברירת המחדל עבור כל השאר.
    AWS Glue Studio - פרטי המשרה
  5. בחרו שמור.
  6. כשתהיה מוכן, בחר הפעלה ולפקח על העבודה ב ריצות TAB.
  7. כאשר העבודה תושלם, נווט אל מסוף Amazon S3 כדי לוודא שקובץ הפלט שלך נוצר בהצלחה.

כעת עיצבנו את הנתונים שלנו לפורמט ולמבנה ש-Amazon Personalize דורש. למערך הנתונים שעבר טרנספורמציה צריכים להיות השדות והפורמט הבאים:

  • מערך אינטראקציות - פורמט CSV עם שדות USER_ID, ITEM_ID, TIMESTAMP
  • מערך נתונים של קלט משתמש - פורמט JSON עם אלמנט userId

בנה פתרון של Amazon Personalize עם מערך הנתונים שעבר שינוי

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

  1. במסוף ההתאמה האישית של אמזון בחר צור קבוצת נתונים.
  2. בעד תְחוּם, בחר מותאם אישית.
  3. בחרו צור קבוצת נתונים והמשך.
    Amazon Personalize - צור קבוצת נתונים

לאחר מכן, צור את מערך הנתונים של האינטראקציות.

  1. הזן שם מערך נתונים ובחר צור סכימה חדשה.
  2. בחרו צור מערך נתונים והמשך.
    Amazon Personalize - צור מערך נתונים של אינטראקציות

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

  1. נווט אל דלי S3 שבו יצרנו את מערך הנתונים של אינטראקציות CSV שלנו.
  2. על הרשאות הכרטיסייה, הוסף את מדיניות הגישה הבאה לדלי כדי של-Amazon Personalize תהיה גישה. עדכן את המדיניות כך שתכלול את שם הדלי שלך.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

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

  1. במסוף ההתאמה האישית של אמזון בחר סקירה כללית בחלונית הניווט ובחר צור פתרון.
    Amazon Personalize - לוח מחוונים
  2. הזן שם לפתרון.
  3. בעד סוג פתרון, בחר המלצה על פריט.
  4. בעד מתכון, בחר את aws-user-personalization מתכון.
  5. בחרו צור והדרכה פתרון.
    Amazon Personalize - צור פתרון

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

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

  1. בחלונית הניווט, מתחת משאבים מותאמים אישית, בחר עבודות מסקנות אצווה.
  2. הזן שם עבודה, ועבור פתרון, בחר את הפתרון שנוצר קודם לכן.
  3. בחרו צור עבודת הסקת אצווה.
    Amazon Personalize - צור עבודת מסקנות אצווה
  4. בעד תצורת נתוני קלט, היכנס לנתיב S3 של המקום שבו batch_users_input הקובץ נמצא.

זהו קובץ JSON שמכיל userId.

  1. בעד תצורת נתוני פלט נתיב, בחר את הנתיב שנקבע ב-S3.
  2. בחרו צור עבודת הסקת אצווה.

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

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

בנו זרימת עבודה של Step Functions כדי לתזמן את זרימת העבודה של מסקנות אצווה

כדי לתזמן את הצינור שלך, בצע את השלבים הבאים:

  1. במסוף Step Functions, בחר צור מכונת מדינה.
  2. בחר עצב את זרימת העבודה שלך בצורה ויזואלית, ואז לבחור הַבָּא.
    AWS Step Functions - צור זרימת עבודה
  3. גרור את CreateDatasetImportJob צומת משמאל (תוכל לחפש את הצומת הזה בתיבת החיפוש) על הבד.
  4. בחר את הצומת, ואתה אמור לראות את פרמטרי ה-API של התצורה בצד ימין. הקלט את ה-ARN.
  5. הזן את הערכים שלך ב- פרמטרי API תיבת טקסט.

זה קורא ל CreateDatasetImportJob API עם ערכי הפרמטרים שאתה מציין.

זרימת עבודה של AWS Step Functions

  1. גרור את CreateSolutionVersion צומת על הבד.
  2. עדכן את פרמטרי ה-API עם ה-ARN של הפתרון שציינת.

פעולה זו יוצרת גרסת פתרון חדשה עם הנתונים החדשים שיובאו על ידי קריאה ל- CreateSolutionVersion ה-API.

  1. גרור את CreateBatchInferenceJob צומת על הקנבס ובאופן דומה עדכן את פרמטרי ה-API עם הערכים הרלוונטיים.

ודא שאתה משתמש ב- $.SolutionVersionArn תחביר כדי לאחזר את פרמטר גרסת הפתרון ARN מהשלב הקודם. פרמטרי API אלה מועברים ל- CreateBatchInferenceJob ה-API.

זרימת עבודה של AWS Step Functions

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

  1. מצא וגרור בצומת המתנה.
  2. בתצורה עבור חכה, הזן 300 שניות.

זהו ערך שרירותי; עליך לשנות את זמן ההמתנה בהתאם למקרה השימוש הספציפי שלך.

  1. בחר את CreateBatchInferenceJob הצומת שוב ונווט אל שגיאה בטיפול TAB.
  2. בעד היאבקות שגיאות, להיכנס Personalize.ResourceInUseException.
  3. בעד מצב נפילה, בחר חכה.

שלב זה מאפשר לנו לבדוק מעת לעת את מצב העבודה והיא יוצאת מהלולאה רק כאשר העבודה הושלמה.

  1. בעד ResultPath, להיכנס $.errorMessage.

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

זרימת עבודה של AWS Step Functions

  1. בחרו שמור, ולאחר מכן לבחור התחל את הביצוע.

תזמרנו בהצלחה את צינור המלצות האצווה שלנו עבור Amazon Personalize. כצעד אופציונלי, אתה יכול להשתמש אמזון EventBridge לתזמן הפעלה של זרימת עבודה זו על בסיס קבוע. לפרטים נוספים, עיין ב EventBridge (CloudWatch Events) לשינויי סטטוס ביצוע של Step Functions.

לנקות את

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

סיכום

בפוסט זה, הדגמנו כיצד ליצור צינור המלצות אצווה על ידי שימוש בשילוב של AWS Glue, Amazon Personalize ו-Step Functions, מבלי להזדקק לשורה אחת של קוד או ניסיון ב-ML. השתמשנו ב-AWS Glue כדי להכין את הנתונים שלנו לפורמט ש-Amazon Personalize דורש. לאחר מכן השתמשנו ב-Amazon Personalize כדי לייבא את הנתונים, ליצור פתרון עם מתכון להתאמה אישית של המשתמש, וליצור עבודת הסקת מסקנות אצווה המייצרת ברירת מחדל של 25 המלצות לכל משתמש, בהתבסס על אינטראקציות קודמות. לאחר מכן תזמרנו את השלבים הללו באמצעות Step Functions כך שנוכל להפעיל את המשימות הללו באופן אוטומטי.

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


על הסופר

מקסין ווי

מקסין ווי הוא אדריכל AWS Data Lab Solutions. Maxine עובדת עם לקוחות על מקרי השימוש שלהם, מעצבת פתרונות לפתרון הבעיות העסקיות שלהם ומנחה אותם בבניית אבות טיפוס ניתנים להרחבה. לפני המסע שלה עם AWS, Maxine עזרה ללקוחות ליישם BI, אחסון נתונים ופרויקטים של אגם נתונים באוסטרליה.

בול זמן:

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