Membuat rekomendasi film yang dipersonalisasi

Dalam tutorial ini, kita akan menggunakan MovielensMovielens untuk menunjukkan cara mengupload katalog produk dan peristiwa pengguna ke AI Commerce Search serta melatih model rekomendasi produk yang dipersonalisasi. Set data Movielens berisi katalog film (produk) dan rating film pengguna (peristiwa pengguna).

Kita akan memperlakukan setiap rating film positif (rating >= 4) sebagai peristiwa tampilan halaman produk. Kita akan melatih model rekomendasi berjenis Lainnya yang Mungkin Anda Suka yang akan memberikan rekomendasi film berdasarkan pengguna atau film awal dalam set data kita.

Perkiraan waktu:

  • Langkah awal untuk mulai melatih model: ~1,5 jam.
  • Menunggu model dilatih: ~2 hari.
  • Mengevaluasi prediksi model dan membersihkan: ~30 menit.

Tujuan

  • Pelajari cara mengimpor data produk dan peristiwa pengguna dari BigQuery ke AI Commerce Search.
  • Melatih dan mengevaluasi model rekomendasi.

Biaya

Tutorial ini menggunakan komponen yang dapat ditagih Google Cloud, termasuk:

  • Cloud Storage
  • BigQuery
  • AI Commerce Search

Untuk mengetahui informasi selengkapnya tentang biaya Cloud Storage, lihat halaman Harga Cloud Storage.

Untuk mengetahui informasi selengkapnya tentang biaya BigQuery, lihat halaman harga BigQuery.

Untuk mengetahui informasi selengkapnya tentang biaya AI Commerce Search, lihat halaman harga AI Commerce Search.

Sebelum memulai

  1. Sign in to your Google Cloud account. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  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.

Menyiapkan set data

Buka Google Cloud konsol, pilih Google Cloud project. Catat project ID di kartu Project info di halaman dasbor. Anda akan memerlukan project ID untuk langkah-langkah berikut. Selanjutnya, klik tombol Activate Cloud Shell di bagian atas Konsol.

Cloud Shell

Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Google Cloud konsol dan menampilkan prompt command line.

Mengimpor set data

  1. Dengan menggunakan Cloud Shell, download dan ekstrak set data sumber:

    wget https://files.grouplens.org/datasets/movielens/ml-latest.zip
    unzip ml-latest.zip
    
  2. Buat bucket Cloud Storage dan upload data ke dalamnya:

    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. Buat set data BigQuery:

    bq mk movielens
    
  4. Muat movies.csv ke dalam tabel BigQuery film baru:

    bq load --skip_leading_rows=1 movielens.movies \
      gs://PROJECT_ID-movielens-data/movies.csv \
      movieId:integer,title,genres
    
  5. Muat ratings.csv ke dalam tabel BigQuery rating baru:

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

Membuat tampilan BigQuery

  1. Buat tampilan yang mengonversi tabel film menjadi skema katalog produk retail:

    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
    

    Sekarang tampilan baru memiliki skema yang diharapkan AI Commerce Search. Kemudian, dari sidebar kiri, pilih BIG DATA -> BigQuery. Kemudian, dari panel Explorer di sebelah kiri, luaskan nama project Anda dan pilih movielens -> products untuk membuka halaman kueri untuk tampilan ini.

    Tampilan produk

  2. Sekarang, konversi rating film menjadi peristiwa pengguna. Kita akan:

    • Mengabaikan rating film negatif (<4)
    • Memperlakukan setiap rating positif sebagai peristiwa tampilan halaman produk (detail-page-view)
    • Mengubah skala linimasa Movielens menjadi 90 hari terakhir. Kita melakukan hal ini karena dua alasan:
      • AI Commerce Search mengharuskan peristiwa pengguna tidak lebih lama dari tahun 2015. Rating Movielens sudah ada sejak tahun 1995.
      • AI Commerce Search menggunakan peristiwa pengguna 90 hari terakhir saat menayangkan permintaan prediksi untuk pengguna. Setiap pengguna akan terlihat memiliki peristiwa terbaru saat kita membuat prediksi untuk pengguna mana pun nanti.

    Buat tampilan BigQuery. Perintah berikut menggunakan kueri SQL yang memenuhi persyaratan konversi yang tercantum sebelumnya.

    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
    

Mengimpor katalog produk dan peristiwa pengguna

Kita sekarang siap mengimpor katalog produk dan data peristiwa pengguna ke AI Commerce Search.

  1. Aktifkan AI Commerce Search API untuk Google Cloud project Anda.

    MENGAKTIFKAN API

  2. Klik Mulai.

  3. Buka halaman Data> di konsol AI Commerce Search di Gemini Enterprise for Customer Experience.

    Buka halaman Data

  4. Klik Import.

Mengimpor katalog produk

  1. Isi formulir untuk mengimpor produk dari tampilan BigQuery yang Anda buat sebelumnya:

    • Pilih jenis impor: Product Catalog.
    • Pilih nama cabang default.
    • Pilih sumber data: BigQuery.
    • Pilih skema data: Retail Product Schema.
    • Masukkan nama tampilan BigQuery produk yang Anda buat sebelumnya (PROJECT_ID.movielens.products).

  2. Klik Import.

  3. Tunggu hingga semua produk diimpor, yang akan memerlukan waktu 5–10 menit.

    Anda dapat memeriksa aktivitas impor untuk status operasi impor. Setelah impor selesai, status operasi impor akan berubah menjadi Succeeded.

    Aktivitas impor produk

Mengimpor peristiwa pengguna

  1. Impor tampilan BigQuery user_events:

    • Pilih jenis impor: User Events.
    • Pilih sumber data: BigQuery.
    • Pilih skema data: Retail User Events Schema.
    • Masukkan nama tampilan BigQuery user_events yang Anda buat sebelumnya.
  2. Klik Import.

  3. Tunggu hingga setidaknya satu juta peristiwa diimpor sebelum melanjutkan ke langkah berikutnya, untuk memenuhi persyaratan data untuk melatih model baru.

    Anda dapat memeriksa aktivitas impor untuk status operasi. Proses ini memerlukan waktu sekitar satu jam untuk diselesaikan.

    Aktivitas impor peristiwa

Melatih dan mengevaluasi model rekomendasi

Ikuti petunjuk ini untuk melatih dan mengevaluasi model rekomendasi.

Membuat model rekomendasi

  1. Buka halaman Models di konsol AI Commerce Search di Gemini Enterprise for Customer Experience.

    Buka halaman Models

  2. Klik Create model:

    • Beri nama model.
    • Pilih Others you may like sebagai jenis model.
    • Pilih Click-through rate (CTR) sebagai tujuan bisnis.
  3. Klik Create.

    Buat model

    Model baru Anda akan mulai dilatih.

    Model yang dibuat

Membuat konfigurasi inferensi

  1. Buka halaman Serving Configs di konsol AI Commerce Search di Gemini Enterprise for Customer Experience.

    Buka halaman Serving configs

  2. Klik Create serving config:

    • Pilih Recommendation.
    • Beri nama konfigurasi inferensi.
    • Pilih model yang Anda buat.
  3. Klik Create.

Menunggu model menjadi "Ready to query"

Model memerlukan waktu sekitar dua hari untuk dilatih dan siap untuk membuat kueri.

Untuk melihat statusnya, klik konfigurasi inferensi yang dibuat di halaman Serving configs.

Kolom Model ready to query akan menunjukkan Yes jika prosesnya selesai.

Pratinjau rekomendasi

Setelah model siap untuk membuat kueri:

  1. Buka halaman Serving Configs di konsol AI Commerce Search di Gemini Enterprise for Customer Experience.

    Buka halaman Serving configs
  2. Klik nama konfigurasi inferensi untuk membuka halaman detailnya.
  3. Klik tab *Evaluate.
  4. Masukkan ID film awal, seperti 4993 untuk "The Lord of the Rings: The Fellowship of the Ring (2001)".

    Masukkan ID

  5. Klik Prediction preview untuk melihat daftar item yang direkomendasikan di sebelah kanan halaman.

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

  1. Di Google Cloud konsol, buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus resource satu per satu

  1. Buka halaman Serving configs dan hapus konfigurasi inferensi yang Anda buat.

  2. Buka halaman Models dan hapus model.

  3. Hapus set data BigQuery di Cloud Shell:

    bq rm --recursive --dataset movielens
    
  4. Hapus bucket Cloud Storage dan kontennya:

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

Langkah berikutnya