איך מתחילים לעבוד עם המלצות על מדיה

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

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

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

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

כדי לעמוד בדרישות המינימום של המודל, כל דירוג חיובי של סרט (4 ומעלה) נחשב לאירוע view-item.

הזמן המשוער להשלמת המדריך הזה:

אם השלמתם את המדריך תחילת העבודה עם חיפוש מדיה ועדיין יש לכם את מאגר הנתונים (השם המוצע quickstart-media-data-store), אתם יכולים להשתמש בו במקום ליצור מאגר נתונים חדש. במקרה כזה, צריך להתחיל את ההדרכה מהשלב יצירת אפליקציה להמלצות על מדיה.

מטרות

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

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


לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :

תראו לי איך


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

  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. Enable the Agent Search (Discovery Engine), Cloud Storage, BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Discovery Engine Admin and BigQuery Admin.

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. 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

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

  8. Enable the Agent Search (Discovery Engine), Cloud Storage, BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  9. Make sure that you have the following role or roles on the project: Discovery Engine Admin and BigQuery Admin.

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.

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

משתמשים ב-Cloud Shell כדי לייבא את מערך הנתונים של Movielens ולשנות את המבנה של מערך הנתונים עבור חיפוש מבוסס סוכנים למדיה.

פתיחת Cloud Shell

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

    Cloud Shell

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

מערך הנתונים של Movielens זמין בקטגוריה של Cloud Storage ציבורית כדי להקל על הייבוא.

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

    gcloud config set project PROJECT_ID
    
  2. יוצרים מערך נתונים ב-BigQuery:

    bq mk movielens
    
  3. טעינת movies.csv לתוך טבלת movies חדשה ב-BigQuery:

    bq load --skip_leading_rows=1 movielens.movies \
      gs://cloud-samples-data/gen-app-builder/media-recommendations/movies.csv \
      movieId:integer,title,genres
    
  4. טעינת ratings.csv לתוך טבלת ratings חדשה ב-BigQuery:

    bq load --skip_leading_rows=1 movielens.ratings \
      gs://cloud-samples-data/gen-app-builder/media-recommendations/ratings.csv \
      userId:integer,movieId:integer,rating:float,time:timestamp
    

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

בשלב הזה, משנים את המבנה של מערך הנתונים Movielens כך שיתאים לפורמט הצפוי של המלצות מדיה.

כדי ליצור מודל להמלצות על מדיה, צריך נתוני אירועים של משתמשים. במדריך הזה, יוצרים אירועי view-item פיקטיביים במהלך 90 הימים האחרונים מדירוגים חיוביים (>= 4).

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

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
      WITH t AS (
        SELECT
          CAST(movieId AS string) AS id,
          SUBSTR(title, 0, 128) AS title,
          SPLIT(genres, "|") AS categories
          FROM `PROJECT_ID.movielens.movies`)
        SELECT
          id, "default_schema" as schemaId, null as parentDocumentId,
          TO_JSON_STRING(STRUCT(title as title, categories as categories,
          CONCAT("http://mytestdomain.movie/content/", id) as uri,
          "2023-01-01T00:00:00Z" as available_time,
          "2033-01-01T00:00:00Z" as expire_time,
          "movie" as media_type)) as jsonData
        FROM t;' \
    movielens.movies_view
    

    עכשיו, לתצוגה החדשה יש את הסכימה שמצופה מ-Discovery Engine API.

  2. עוברים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

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

  4. עוברים לכרטיסייה Table explorer.

  5. בחלונית Generated query, לוחצים על הלחצן Copy to query. עורך השאילתות ייפתח.

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

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

  1. כדי ליצור אירועי משתמשים פיקטיביים מנתוני דירוג סרטים, מריצים את הפקודה הבאה ב-Cloud Shell:

    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 userPseudoId,
        "view-item" 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(movieId AS id, null AS name)] AS documents,
      FROM `PROJECT_ID.movielens.ratings`, t
      WHERE rating >= 4;' \
      movielens.user_events
    

הפעלת חיפוש מבוסס סוכנים

  1. נכנסים לדף AI Applications במסוף Google Cloud .

    אפליקציות AI

  2. אופציונלי: לוחצים על אני רוצה לאפשר ל-Google לבצע דגימה סלקטיבית של קלט ותגובות של המודל.

  3. לוחצים על המשך והפעלת ה-API.

יצירת אפליקציה להמלצות על מדיה

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

  1. נכנסים לדף AI Applications במסוף Google Cloud .

    אפליקציות AI

  2. לוחצים על יצירת אפליקציה.

  3. בדף יצירת אפליקציה, בקטע המלצות למדיה, לוחצים על יצירה.

  4. בשדה App name (שם האפליקציה), מזינים שם לאפליקציה, כמו quickstart-media-recommendations. מזהה האפליקציה מופיע מתחת לשם האפליקציה.

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

  6. בקטע יעד עסקי, מוודאים שהאפשרות שיעור קליקים (CTR) מסומנת.

  7. לוחצים על Continue.

  8. יוצרים מאגר נתונים.

    1. בדף מאגרי נתונים, לוחצים על יצירת מאגר נתונים.

    2. מזינים שם לתצוגה של מאגר הנתונים, למשל quickstart-media-data-store, ואז לוחצים על יצירה.

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

ייבוא נתונים

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

ייבוא מסמכים

מייבאים את מסמך movies_view שנוצר בקטע יצירת תצוגות ב-BigQuery אל מאגר הנתונים quickstart-media-data-store.

  1. בקטע מקורות מקוריים בדף ייבוא מסמכים, בוחרים באפשרות BigQuery.

  2. מזינים את השם של התצוגה המפורטת movies ב-BigQuery שיצרתם ולוחצים על ייבוא.

    PROJECT_ID.movielens.movies_view
    
  3. ממתינים עד שכל המסמכים יובאו. התהליך אמור להימשך כ-15 דקות. אחרי ההשלמה, אמורים להיות 86537 מסמכים.

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

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

מייבאים את רשומות user_events שנוצרו בקטע יצירת תצוגות ב-BigQuery למאגר הנתונים.

  1. בכרטיסייה אירועים, לוחצים על ייבוא אירועים.

  2. בקטע מקורות מקוריים בדף 'ייבוא מסמכים', בוחרים באפשרות BigQuery.

  3. מזינים את השם של התצוגה user_events ב-BigQuery שיצרתם ולוחצים על ייבוא.

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

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

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

אימון מודל ההמלצות

  1. עוברים לדף הגדרות.

  2. לוחצים על הכרטיסייה Control (שליטה). כבר נוצרה הגדרת הצגה.

    בדף הזה אפשר לשנות את ההגדרות של הורדת דירוג של המלצות או של גיוון התוצאות.

  3. לוחצים על הכרטיסייה Training (הדרכה).

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

    יכול להיות שיחלפו כמה ימים עד שהמודל יתאמן ויהיה מוכן לשליחת שאילתות. השדה Ready to query (מוכן לשליפת נתונים) מציין Yes (כן) כשהתהליך מסתיים. כדי לראות את השינוי מלא לכן, צריך לרענן את הדף.

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

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

  1. בתפריט הניווט, לוחצים על תצוגה מקדימה.

  2. לוחצים על השדה מזהה מסמך. תוצג רשימה של מזהי מסמכים.

  3. מזינים מזהה של מסמך (סרט) ראשוני, כמו 4993 עבור הסרט 'שר הטבעות: אחוות הטבעת (2001)'.

    הזן קוד זיהוי

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

  5. לוחצים על קבלת המלצות. תוצג רשימה של מסמכים מומלצים.

פריסת האפליקציה לנתונים מובנים

אין ווידג'ט של המלצות לפריסת האפליקציה. כדי לבדוק את האפליקציה לפני הפריסה:

  1. עוברים לדף Data (נתונים), לכרטיסייה Documents (מסמכים) ומעתיקים מזהה של מסמך.

  2. עוברים לדף שילוב. בדף הזה יש פקודה לדוגמה לשימוש בשיטה servingConfigs.recommend ב-API בארכיטקטורת REST.

  3. מדביקים את מזהה המסמך שהעתקתם קודם בשדה מזהה המסמך.

  4. משאירים את השדה User Pseudo ID כמו שהוא.

  5. מעתיקים את הבקשה לדוגמה ומפעילים פתרונות חכמים ב-Cloud Shell.

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

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

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

  1. כדי להימנע מחיובים מיותרים Google Cloud , כדאי להשתמש בGoogle Cloud console כדי למחוק את הפרויקט אם הוא לא נחוץ לכם.
  2. אם יצרתם פרויקט חדש כדי ללמוד על חיפוש מבוסס סוכנים ואתם כבר לא צריכים את הפרויקט, אפשר למחוק אותו.
  3. אם השתמשתם בפרויקט קיים Google Cloud , מחקו את המשאבים שיצרתם כדי להימנע מחיובים בחשבון. מידע נוסף זמין במאמר מחיקת אפליקציה.
  4. פועלים לפי השלבים שמפורטים במאמר השבתה של חיפוש מבוסס סוכנים.
  5. אם יצרתם מערך נתונים ב-BigQuery, אתם צריכים למחוק אותו ב-Cloud Shell:

    bq rm --recursive --dataset movielens
    

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