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

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

למידע כללי על Agent Search למדיה, קראו את המאמר מבוא לחיפוש ולהמלצות של מדיה.

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

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

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

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

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

מטרות

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

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

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

  1. 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

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

  3. Enable the Agent Search (Discovery Engine), Cloud Storage, BigQuery APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. 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 identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies, or contact your administrator.

    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 ולשנות את המבנה שלה בשביל חיפוש מבוסס סוכנים ל-media.

פתיחת Cloud Shell

  1. פותחים את מסוףGoogle Cloud .
  2. בוחרים את הפרויקט ב- Google Cloud .
  3. שימו לב למזהה הפרויקט שמופיע בכרטיס Project info בדף מרכז הבקרה. תצטרכו את מזהה הפרויקט בשביל התהליכים הבאים.
  4. לוחצים על הכפתור Activate 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 לטבלה חדשה ב-BigQuery ב-movies:

    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 לטבלה חדשה ב-BigQuery ב-ratings:

    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. בחלונית Data Explorer של מסד הנתונים, מרחיבים את שם הפרויקט, מרחיבים את מערך הנתונים movielens ולוחצים על movies_view כדי לפתוח את דף השאילתה של התצוגה הזו.

  4. עוברים לכרטיסייה סייר הטבלאות.

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

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

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

  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. לוחצים על Continue and activate the API.

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

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

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

    אפליקציות AI

  2. לוחצים על Create app.

  3. בדף Create app, בקטע Media recommendations לוחצים על Create.

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

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

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

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

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

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

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

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

ייבוא נתונים

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

ייבוא מסמכים

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

  1. בקטע Native sources בדף Import documents, בוחרים באפשרות BigQuery.

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

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

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

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

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

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

  2. בקטע Native sources בדף Import documents, בוחרים באפשרות BigQuery.

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

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

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

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

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

  1. עוברים לדף Configurations.

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

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

  3. לוחצים על הכרטיסייה אימון.

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

    יכול להיות שיעברו כמה ימים עד שהמודל יאומן ויהיה מוכן לשאילתות. כשהתהליך מסתיים, הערך בשדה Ready to query משתנה ל-Yes. כדי לראות את השינוי מ-No ל-Yes, צריך לרענן את הדף.

המלצות לגרסת טרום-השקה (Preview)

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

  1. בתפריט הניווט, לוחצים על Preview.

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

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

    הזן קוד זיהוי

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

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

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

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

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

  2. עוברים לדף Integration. הדף הזה כולל פקודה לדוגמה ל-method‏ 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. פועלים לפי השלבים שמפורטים בקטע השבתת Agent Search.
  5. אם יצרתם מערך נתונים ב-BigQuery, מחקו אותו ב-Cloud Shell:

    bq rm --recursive --dataset movielens
    

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