미디어 추천 시작하기

최첨단 미디어 추천 앱을 빠르게 빌드할 수 있습니다. 미디어 추천을 사용하면 최적화 목표에 따라 맞춤설정된 Google 품질의 결과를 통해 잠재고객이 보거나 읽을만한 콘텐츠 등 보다 맞춤설정된 콘텐츠를 찾을 수 있습니다.

미디어용 Vertex AI Search에 관한 일반적인 정보는 미디어 검색 및 추천 소개를 참조하세요.

이 시작하기 튜토리얼에서는 Movielens 데이터 세트를 사용하여 미디어 콘텐츠 카탈로그 및 사용자 이벤트를 Vertex AI Search에 업로드하고 맞춤설정된 영화 추천 모델를 학습시키는 방법을 보여줍니다. Movielens 데이터 세트에는 영화 카탈로그(문서)와 사용자의 영화 평점(사용자 이벤트)이 포함됩니다.

이 튜토리얼에서는 클릭률(CTR)에 최적화된 내가 좋아할 만한 기타 항목 유형의 추천 모델을 학습시킵니다. 학습 후 모델에서 사용자 ID와 시드 영화를 기반으로 영화를 추천할 수 있습니다.

모델의 최소 데이터 요구사항을 충족하기 위해 각 긍정적인 영화 평점(4점 이상)이 항목 조회 이벤트로 처리됩니다.

이 튜토리얼을 완료하는 데 걸리는 예상 시간:

미디어 검색 시작하기 튜토리얼을 완료했고 여전히 데이터 스토어(권장 이름 quickstart-media-data-store)가 있다면 다른 데이터 스토어를 만드는 대신 해당 데이터 스토어를 사용할 수 있습니다. 이 경우 미디어 추천을 위한 앱 만들기에서 튜토리얼을 시작해야 합니다.

목표

  • BigQuery에서 Vertex AI Search로 미디어 문서와 사용자 이벤트 데이터를 가져오는 방법을 알아봅니다.
  • 추천 모델을 학습하고 평가합니다.

이 튜토리얼을 수행하기 전에 시작하기 전에의 단계를 완료해야 합니다.


Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI Agent Builder, Cloud Storage, BigQuery APIs.

    Enable the APIs

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI Agent Builder, Cloud Storage, BigQuery APIs.

    Enable the APIs

데이터세트 준비

Cloud Shell을 사용하여 Movielens 데이터 세트를 가져오고 미디어용 Vertex AI Search 데이터 세트를 재구성합니다.

Cloud Shell 열기

  1. Google Cloud 콘솔을 엽니다.
  2. Google Cloud 프로젝트를 선택합니다.
  3. 대시보드 페이지의 프로젝트 정보 카드에서 프로젝트 ID를 기록해 둡니다. 다음 절차를 수행하려면 프로젝트 ID가 필요합니다.
  4. 콘솔의 상단에서 Cloud Shell 활성화 버튼을 클릭합니다. Google Cloud 콘솔 하단의 새 프레임에서 Cloud Shell 세션이 열리고 명령줄 프롬프트가 표시됩니다.

    Cloud Shell

데이터 세트 가져오기

공개 Cloud Storage 버킷에서 Movielens 데이터 세트를 제공하므로 더 쉽게 가져올 수 있습니다.

  1. 프로젝트 ID를 사용하여 다음을 실행하여 명령줄의 기본 프로젝트를 설정합니다.

    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 데이터 세트를 재구성합니다. 미디어 추천에는 모델을 만들기 위한 사용자 이벤트 데이터가 필요합니다. 이 가이드에서는 지난 90일 동안의 긍정적인 평점(< 4)에서 가짜 view-item 이벤트를 만듭니다.

  1. 영화 테이블을 Google에서 정의한 Document 스키마로 변환하는 뷰를 만듭니다.

    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
    

    이제 새 뷰에는 Vertex AI Agent Builder API에 필요한 스키마가 포함됩니다.

  2. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  3. 탐색기 창에서 프로젝트 이름을 펼치고 movielens 데이터 세트를 펼친 다음 movies_view를 클릭하여 이 뷰의 쿼리 페이지를 지정합니다.

    제품 뷰

  4. 테이블 탐색기 탭으로 이동합니다.

  5. 생성된 쿼리 창에서 쿼리에 복사 버튼을 클릭합니다. 쿼리 편집기가 열립니다.

  6. 실행을 클릭하여 생성한 뷰에서 영화 데이터를 확인합니다.

  7. 다음 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
    

Vertex AI Agent Builder 활성화

  1. Google Cloud 콘솔에서 Agent Builder 페이지로 이동합니다.

    Agent Builder

  2. 서비스 약관을 읽고 동의한 후 계속 및 API 활성화를 클릭합니다.

미디어 추천을 위한 앱 만들기

이 섹션의 절차는 미디어 추천 앱을 만들고 배포하는 방법을 안내합니다.

  1. Google Cloud 콘솔에서 Agent Builder 페이지로 이동합니다.

    Agent Builder를 사용하여 이 모든 것을 자체 데이터에 그라운딩하세요.

  2. 앱 만들기를 클릭합니다.

  3. 앱 만들기 페이지에서 추천을 선택합니다.

  4. 앱 이름 필드에 앱 이름(예: quickstart-media-recommendations)을 입력합니다. 앱 이름 아래에 앱 ID가 표시됩니다.

  5. 콘텐츠에서 미디어를 선택합니다.

  6. 추천 유형에서 내가 좋아할 만한 기타 항목이 선택되어 있는지 확인합니다.

  7. 비즈니스 목표에서 클릭률(CTR)이 선택되어 있는지 확인합니다.

  8. 계속을 클릭합니다.

  9. 미디어 검색 시작하기 튜토리얼을 완료했지만 여전히 데이터 스토어(권장 이름 quickstart-media-data-store)가 있으면 데이터 스토어를 선택하고 만들기를 클릭하여 추천 모델 학습으로 건너뛰세요.

  10. 데이터 스토어 페이지에서 데이터 스토어 만들기를 클릭합니다.

  11. 데이터 스토어의 표시 이름(예: quickstart-media-data-store)을 입력한 후 만들기를 클릭합니다.

  12. 방금 만든 데이터 스토어를 선택한 다음 만들기를 클릭하여 앱을 만듭니다.

데이터 가져오기

그 다음 이전에 형식이 지정된 영화 및 사용자 이벤트 데이터를 가져옵니다.

문서 가져오기

  1. 요구사항 탭을 엽니다.

  2. 문서 가져오기를 클릭합니다.

  3. BigQuery를 선택합니다.

  4. 만든 movies BigQuery 뷰의 이름을 입력하고 가져오기를 클릭합니다.

    PROJECT_ID.movielens.movies_view
    
  5. 모든 문서를 가져올 때까지 기다립니다. 15분 정도 걸립니다. 완료되면 86,537개의 문서가 있습니다.

    활동 탭에서 가져오기 작업 상태를 확인할 수 있습니다. 가져오기가 완료되면 가져오기 작업 상태가 완료로 변경됩니다.

사용자 이벤트 가져오기

  1. 요구사항 탭을 엽니다.

  2. 이벤트 가져오기를 클릭합니다.

  3. BigQuery를 선택합니다.

  4. 만든 user_events BigQuery 뷰의 이름을 입력하고 가져오기를 클릭합니다.

    PROJECT_ID.movielens.user_events
    
  5. 새 모델 학습에 필요한 데이터 요구사항을 충족하려면 다음 단계를 진행하기 전에 최소 1백만 개의 이벤트를 가져올 때까지 기다립니다.

    활동 탭에서 작업 상태를 확인할 수 있습니다. 수백만 개의 행을 가져오므로 이 프로세스를 완료하는 데 1시간 정도 걸립니다.

    요구사항 탭의 상태가 데이터 요구사항 충족으로 업데이트되는 데 시간이 걸릴 수 있습니다.

추천 모델 학습

  1. 구성 페이지로 이동합니다.

  2. 서빙 탭을 클릭합니다. 서빙 구성이 이미 생성되었습니다.

    추천 순위 내리기 또는 결과 다각화 설정은 이 페이지에서 조정할 수 있습니다.

  3. 학습 탭을 클릭합니다.

    데이터 요구사항이 충족되면 모델이 자동으로 학습을 시작합니다. 이 페이지에서 학습 및 조정 상태를 볼 수 있습니다.

    모델을 학습시키고 쿼리를 받을 준비가 되려면 며칠이 걸릴 수 있습니다. 프로세스가 완료되면 쿼리 준비 완료 필드에 가 표시됩니다. 페이지를 새로고침해야 아니요에서 로 변경된 사항이 표시됩니다.

추천 미리보기

모델이 쿼리할 준비가 되면 다음 안내를 따르세요.

  1. 탐색 메뉴에서 미리보기를 클릭합니다.

  2. 문서 ID 필드를 클릭합니다. 문서 ID 목록이 표시됩니다.

  3. 시드 문서(영화) ID를 입력합니다. '반지의 제왕: 반지 원정대(2001)'의 경우 4993입니다.

    ID 입력

  4. 드롭다운 메뉴에서 서빙 구성 이름을 선택합니다.

  5. 추천 받기를 클릭합니다. 추천 문서 목록이 표시됩니다.

구조화된 데이터를 위한 앱 배포

앱 배포를 위한 추천 위젯은 없습니다. 배포 전에 앱을 테스트하려면 다음 안내를 따르세요.

  1. 데이터 페이지, 문서 탭으로 이동하여 문서 ID를 복사합니다.

  2. 통합 페이지로 이동합니다. 이 페이지에는 REST API의 servingConfigs.recommend 메서드에 대한 샘플 명령어가 포함되어 있습니다.

  3. 앞서 복사한 문서 ID를 문서 ID 필드에 붙여넣습니다.

  4. 사용자 유사 ID 필드는 그대로 둡니다.

  5. 예시 요청을 복사하고 Cloud Shell에서 실행합니다.

추천 앱을 웹 앱에 통합하는 데 도움이 필요하면 미디어 추천 가져오기에서 코드 샘플을 참조하세요.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

미디어 검색 시작하기 튜토리얼에서 미디어 검색을 위해 만든 데이터 스토어를 재사용할 수 있습니다. 이 삭제 절차를 수행하기 전에 해당 튜토리얼을 시도해 보세요.

  1. 불필요한 Google Cloud 요금이 청구되지 않게 하려면 Google Cloud 콘솔을 사용하여 필요하지 않은 프로젝트를 삭제합니다.
  2. Vertex AI Agent Builder 학습용으로 만든 새 프로젝트가 더 이상 필요 없는 경우 프로젝트를 삭제하세요.
  3. 기존 Google Cloud 프로젝트를 사용한 경우 계정에 요금이 청구되지 않도록 만든 리소스를 삭제합니다. 자세한 내용은 앱 삭제를 참조하세요.
  4. Vertex AI Agent Builder 사용 중지의 단계를 따르세요.
  5. BigQuery 데이터 세트를 만든 경우 Cloud Shell에서 삭제합니다.

    bq rm --recursive --dataset movielens
    

다음 단계