Buat rekomendasi film yang dipersonalisasi


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

Kami akan memperlakukan setiap rating film positif (rating >= 4) sebagai peristiwa kunjungan halaman produk. Kita akan melatih model rekomendasi jenis Lainnya yang Mungkin Anda Sukai. Model ini akan membuat rekomendasi film berdasarkan pengguna atau film inti apa pun 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 Vertex AI Search untuk retail.
  • Melatih dan mengevaluasi model rekomendasi.

Biaya

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

  • Cloud Storage
  • BigQuery
  • Vertex AI Search untuk retail

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 retail di Vertex AI Search, lihat halaman Vertex AI Search untuk harga retail.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. 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. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

Menyiapkan set data

Buka Konsol Google Cloud, pilih project Google Cloud Anda. Catat ID project di kartu Info project di halaman dasbor. Anda memerlukan ID project 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 Konsol Google Cloud dan menampilkan perintah 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:

    gsutil mb gs://PROJECT_ID-movielens-data
    gsutil 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 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 tabel BigQuery rating yang 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
    

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

    Tampilan produk

  2. Sekarang, mari kita konversikan rating film menjadi peristiwa pengguna. Kami akan:

    • Abaikan rating film negatif (<4)
    • Perlakukan setiap rating positif sebagai peristiwa kunjungan halaman produk (detail-page-view)
    • Skalakan ulang linimasa Movielens ke 90 hari terakhir. Kami melakukan hal ini karena dua alasan:
      • Vertex AI Search untuk retail mewajibkan peristiwa pengguna tidak lebih lama dari 2015. Rating lensa film kembali ke tahun 1995.
      • Vertex AI Search untuk retail menggunakan peristiwa pengguna dari 90 hari terakhir saat menampilkan permintaan prediksi untuk pengguna. Setiap pengguna akan tampak memiliki peristiwa terbaru saat kita membuat prediksi untuk pengguna mana pun di lain waktu.

    Membuat tampilan BigQuery. Perintah berikut menggunakan kueri SQL yang memenuhi persyaratan konversi yang tercantum di atas.

    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

Sekarang kami siap mengimpor katalog produk dan data peristiwa pengguna ke Vertex AI Search untuk retail.

  1. Aktifkan API Vertex AI Search for retail API untuk project Google Cloud Anda.

    AKTIFKAN API

  2. Klik Get started.

  3. Buka halaman Data> di konsol Search for Retail.

    Buka halaman Data

  4. Klik Import.

Impor katalog produk

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

    • Pilih jenis impor: Katalog Produk.
    • Pilih nama cabang default.
    • Pilih sumber data: BigQuery.
    • Pilih skema data: Skema Produk Retail.
    • Masukkan nama tampilan BigQuery produk yang Anda buat di atas (PROJECT_ID.movielens.products).

  2. Klik Import.

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

    Anda dapat memeriksa aktivitas impor untuk mengetahui 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: Peristiwa Pengguna.
    • Pilih sumber data: BigQuery.
    • Pilih skema data: Skema Peristiwa Pengguna Retail.
    • Masukkan nama tampilan BigQuery user_events yang Anda buat di atas.
  2. Klik Import.

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

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

    Aktivitas impor peristiwa

Melatih dan mengevaluasi model rekomendasi

Buat model rekomendasi

  1. Buka halaman Model di konsol Search for Retail.

    Buka halaman Model

  2. Klik Create model:

    • Beri nama model.
    • Pilih Lainnya yang mungkin Anda sukai sebagai jenis model.
    • Pilih Rasio klik-tayang (CTR) sebagai tujuan bisnis.
  3. Klik Create.

    Membuat model

    Model baru Anda akan memulai pelatihan.

    Model yang dibuat

Membuat konfigurasi penayangan

  1. Buka halaman Konfigurasi Penayangan di konsol Penelusuran Retail.

    Buka halaman Konfigurasi Penyajian

  2. Klik Buat konfigurasi penayangan:

    • Pilih Rekomendasi.
    • Beri nama konfigurasi penayangan.
    • Pilih model yang Anda buat.
  3. Klik Create.

Tunggu hingga model "Siap membuat kueri"

Perlu waktu sekitar dua hari bagi model untuk melatih dan siap membuat kueri.

Untuk melihat status, klik konfigurasi penayangan yang dibuat di halaman Konfigurasi penayangan.

Kolom Model ready to query menunjukkan Yes ketika proses selesai.

Pratinjau rekomendasi

Setelah model siap membuat kueri:

  1. Buka halaman Konfigurasi Penayangan di konsol Penelusuran Retail.

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

    Masukkan ID

  5. Klik Pratinjau prediksi 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 konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang 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 Konfigurasi penayangan dan hapus konfigurasi penayangan yang Anda buat.

  2. Buka halaman Model dan hapus model.

  3. Hapus set data BigQuery di Cloud Shell:

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

    gsutil rm gs://PROJECT_ID-movielens-data/movies.csv
    gsutil rm gs://PROJECT_ID-movielens-data/ratings.csv
    gsutil rb gs://PROJECT_ID-movielens-data/
    

Langkah selanjutnya