יצירת המלצות מותאמות אישית לסרטים

במדריך הזה נשתמש במערך הנתונים Movielens כדי להדגים איך להעלות את קטלוג המוצרים ואת אירועי המשתמשים אל AI Commerce Search ולאמן מודל של המלצות למוצרים בהתאמה אישית. מערך הנתונים של Movielens מכיל קטלוג של סרטים (מוצרים) ודירוגים של סרטים על ידי משתמשים (אירועים של משתמשים).

אנחנו נתייחס לכל דירוג חיובי של סרט (דירוג של 4 ומעלה) כאל אירוע של צפייה בדף מוצר. נאמן מודל המלצות מסוג 'סרטים נוספים שאולי ימצאו חן בעיניך' שימליץ על סרטים על סמך משתמש כלשהו או סרט התחלתי במערך הנתונים שלנו.

זמן משוער:

  • השלבים הראשוניים להתחלת אימון המודל: כשעה וחצי.
  • המתנה לאימון המודל: כיומיים.
  • הערכת התחזיות של המודל וניקוי הנתונים: כ-30 דקות.

מטרות

  • במאמר הזה מוסבר איך לייבא נתוני מוצרים ואירועי משתמשים מ-BigQuery אל AI Commerce Search.
  • אימון והערכה של מודלים להמלצות.

עלויות

במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים, כולל:

  • Cloud Storage
  • BigQuery
  • AI Commerce Search

מידע נוסף על עלויות Cloud Storage מופיע בדף תמחור של Cloud Storage.

מידע נוסף על העלויות ב-BigQuery זמין בדף תמחור ב-BigQuery.

מידע נוסף על העלויות של חיפוש מסחרי מבוסס-AI זמין בדף תמחור של חיפוש מסחרי מבוסס-AI.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

הכנת מערך הנתונים

פותחים את מסוףGoogle Cloud ובוחרים את הפרויקט הרלוונטי Google Cloud . רושמים את מזהה הפרויקט בכרטיס Project info בדף לוח הבקרה. תצטרכו את מזהה הפרויקט בשלבים הבאים. לאחר מכן, לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell) בחלק העליון של המסוף.

Cloud Shell

בחלק התחתון של מסוף Google Cloud ייפתח סשן של Cloud Shell בתוך מסגרת חדשה ותופיע הודעה של שורת הפקודה.

ייבוא מערך הנתונים

  1. באמצעות Cloud Shell, מורידים ומחלצים את מערך הנתונים של המקור:

    wget https://files.grouplens.org/datasets/movielens/ml-latest.zip
    unzip ml-latest.zip
    
  2. יוצרים קטגוריה של Cloud Storage ומעלים אליה את הנתונים:

    gcloud storage buckets create gs://PROJECT_ID-movielens-data
    gcloud storage cp ml-latest/movies.csv ml-latest/ratings.csv \
      gs://PROJECT_ID-movielens-data
    
  3. יוצרים מערך נתונים ב-BigQuery:

    bq mk movielens
    
  4. טעינת הנתונים movies.csv לטבלת סרטים חדשה ב-BigQuery:

    bq load --skip_leading_rows=1 movielens.movies \
      gs://PROJECT_ID-movielens-data/movies.csv \
      movieId:integer,title,genres
    
  5. טעינת הנתונים מ-ratings.csv לטבלת דירוגים חדשה ב-BigQuery:

    bq load --skip_leading_rows=1 movielens.ratings \
      gs://PROJECT_ID-movielens-data/ratings.csv \
      userId:integer,movieId:integer,rating:float,time:timestamp
    

יצירת תצוגות מפורטות ב-BigQuery

  1. יוצרים תצוגה שממירה את טבלת הסרטים לסכימת קטלוג מוצרים קמעונאי:

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     SELECT
       CAST(movieId AS string) AS id,
       SUBSTR(title, 0, 128) AS title,
       SPLIT(genres, "|") AS categories
     FROM `PROJECT_ID.movielens.movies`' \
    movielens.products
    

    עכשיו לתצוגה החדשה יש את הסכימה ש-AI Commerce Search מצפה לה. בסרגל הצד שמימין, לוחצים על BIG DATA -> BigQuery. לאחר מכן, בסרגל הסייר שמימין, מרחיבים את שם הפרויקט ובוחרים באפשרות movielens -> products כדי לפתוח את דף השאילתה של התצוגה הזו.

    תצוגת המוצרים

  2. עכשיו נמיר את דירוגי הסרטים לאירועים ברמת המשתמש. אנחנו:

    • התעלמות מסיווגים שליליים של סרטים (<4)
    • התייחסות לכל דירוג חיובי כאל אירוע של צפייה בדף מוצר (detail-page-view)
    • משנים את קנה המידה של ציר הזמן של Movielens ל-90 הימים האחרונים. אנחנו עושים את זה משתי סיבות:
      • AI Commerce Search דורש שאירועי המשתמשים לא יהיו ישנים יותר משנת 2015. הדירוגים של Movielens מתחילים בשנת 1995.
      • AI Commerce Search משתמש בנתוני אירועי משתמשים מ-90 הימים האחרונים כשהוא מציג בקשות לחיזוי עבור משתמש. כשניצור בהמשך חיזויים לגבי משתמשים, ייראה כאילו לכל משתמש היו אירועים מהזמן האחרון.

    יוצרים תצוגה ב-BigQuery. הפקודה הבאה משתמשת בשאילתת SQL שעומדת בדרישות ההמרה שצוינו קודם.

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     WITH t AS (
       SELECT
         MIN(UNIX_SECONDS(time)) AS old_start,
         MAX(UNIX_SECONDS(time)) AS old_end,
         UNIX_SECONDS(TIMESTAMP_SUB(
           CURRENT_TIMESTAMP(), INTERVAL 90 DAY)) AS new_start,
         UNIX_SECONDS(CURRENT_TIMESTAMP()) AS new_end
       FROM `PROJECT_ID.movielens.ratings`)
     SELECT
       CAST(userId AS STRING) AS visitorId,
       "detail-page-view" AS eventType,
       FORMAT_TIMESTAMP(
         "%Y-%m-%dT%X%Ez",
         TIMESTAMP_SECONDS(CAST(
           (t.new_start + (UNIX_SECONDS(time) - t.old_start) *
             (t.new_end - t.new_start) / (t.old_end - t.old_start))
         AS int64))) AS eventTime,
       [STRUCT(STRUCT(movieId AS id) AS product)] AS productDetails,
     FROM `PROJECT_ID.movielens.ratings`, t
     WHERE rating >= 4' \
    movielens.user_events
    

ייבוא קטלוג מוצרים ואירועים שקשורים למשתמשים

עכשיו אפשר לייבא את קטלוג המוצרים ואת נתוני האירועים של המשתמשים אל AI Commerce Search.

  1. מפעילים את AI Commerce Search API בפרויקט Google Cloud .

    הפעלת ה-API

  2. לוחצים על שנתחיל?

  3. עוברים לדף Data במסוף AI Commerce Search ב-Gemini Enterprise for Customer Experience.

    מעבר לדף Data

  4. לוחצים על Import.

ייבוא קטלוג מוצרים

  1. ממלאים את הטופס כדי לייבא מוצרים מתצוגת BigQuery שיצרתם קודם:

    • בוחרים את סוג הייבוא: קטלוג מוצרים.
    • בוחרים את שם הענף שמוגדר כברירת מחדל.
    • בוחרים את מקור הנתונים: BigQuery.
    • בוחרים את סכימת הנתונים: סכימת מוצרים קמעונאיים.
    • מזינים את השם של תצוגת המוצרים ב-BigQuery שיצרתם קודם (PROJECT_ID.movielens.products).

  2. לוחצים על Import.

  3. מחכים עד שכל המוצרים יובאו, התהליך אמור להימשך 5-10 דקות.

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

    פעילות ייבוא מוצרים

ייבוא אירועים ברמת המשתמש

  1. מייבאים את התצוגה המפורטת user_events ב-BigQuery:

    • בוחרים את סוג הייבוא: אירועים שקשורים למשתמשים.
    • בוחרים את מקור הנתונים: BigQuery.
    • בוחרים את סכימת הנתונים: Retail User Events Schema (סכימת אירועי משתמשים בקמעונאות).
    • מזינים את השם של התצוגה המפורטת ב-BigQuery שיצרתם קודם.user_events
  2. לוחצים על Import.

  3. כדי לעמוד בדרישות הנתונים לאימון מודל חדש, צריך להמתין עד לייבוא של לפחות מיליון אירועים לפני שממשיכים לשלב הבא.

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

    פעילות ייבוא אירועים

אימון והערכה של מודלים להמלצות

כאן מוסבר איך לאמן מודלים של המלצות ולהעריך את הביצועים שלהם.

יצירת מודל המלצות

  1. עוברים לדף Models (מודלים) במסוף AI Commerce Search ב-Gemini Enterprise for Customer Experience.

    כניסה לדף Models

  2. לוחצים על יצירת מודל:

    • נותנים שם למודל.
    • בוחרים באפשרות אחרים שאולי ימצאו חן בעיניך כסוג המודל.
    • בוחרים באפשרות שיעור קליקים (CTR) בתור היעד העסקי.
  3. לוחצים על יצירה.

    יצירת מודל

    האימון של המודל החדש מתחיל.

    המודל נוצר

יצירת הגדרת הצגה

  1. עוברים לדף Serving Configs במסוף AI Commerce Search ב-Gemini Enterprise for Customer Experience.

    מעבר לדף Serving configs

  2. לוחצים על Create serving config (יצירת הגדרת הצגה):

    • בוחרים באפשרות המלצה.
    • נותנים שם להגדרת התצורה להצגת מודעות.
    • בוחרים את המודל שיצרתם.
  3. לוחצים על יצירה.

מחכים שהמודל יהיה 'מוכן לשליפת נתונים'.

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

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

בשדה המודל מוכן לשליפת נתונים מופיעה התשובה כן כשהתהליך מסתיים.

תצוגה מקדימה של ההמלצות

אחרי שהמודל מוכן לשליחת שאילתות:

  1. עוברים לדף Serving Configs במסוף AI Commerce Search ב-Gemini Enterprise for Customer Experience.

    מעבר לדף Serving configs
  2. לוחצים על שם הגדרת ההצגה כדי לעבור לדף הפרטים שלה.
  3. לוחצים על הכרטיסייה *הערכה.
  4. מזינים מזהה של סרט לדוגמה, כמו 4993 עבור הסרט 'שר הטבעות: אחוות הטבעת' (2001).

    הזן קוד זיהוי

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

הסרת המשאבים

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

מחיקת הפרויקט

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

מחיקת משאבים בודדים

  1. עוברים לדף Serving configs ומוחקים את הגדרת התצורה של הצגת המודעות שיצרתם.

  2. עוברים לדף מודלים ומוחקים את המודל.

  3. מחיקת מערך הנתונים ב-BigQuery ב-Cloud Shell:

    bq rm --recursive --dataset movielens
    
  4. מחיקת הקטגוריה של Cloud Storage והתוכן שלה:

    gcloud storage rm gs://PROJECT_ID-movielens-data --recursive
    

המאמרים הבאים