Membuat rekomendasi film yang dipersonalisasi

Dalam tutorial ini, kita akan menggunakan set data Movielens untuk mendemonstrasikan cara mengupload katalog produk dan peristiwa pengguna ke Vertex AI Search untuk Commerce serta 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 tampilan halaman produk. Kita akan melatih model rekomendasi berjenis Lainnya yang Mungkin Anda Suka yang akan membuat rekomendasi film berdasarkan pengguna atau film awal dalam set data kita.

Perkiraan waktu:

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

Menyiapkan set data

Buka Google Cloud console, pilih project Google Cloud Anda. 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 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:

    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 oleh Vertex AI Search untuk commerce. 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 untuk tampilan ini.

    Tampilan produk

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

    • Mengabaikan rating film negatif (<4)
    • Perlakukan setiap rating positif sebagai peristiwa penayangan halaman produk (detail-page-view)
    • Ubah skala linimasa Movielens menjadi 90 hari terakhir. Kami melakukannya karena dua alasan:
      • Vertex AI Search untuk commerce mengharuskan peristiwa pengguna tidak lebih lama dari tahun 2015. Rating Movielens berasal dari tahun 1995.
      • Vertex AI Search untuk e-commerce menggunakan peristiwa pengguna dalam 90 hari terakhir saat menayangkan permintaan prediksi untuk pengguna. Setiap pengguna akan tampak memiliki peristiwa terbaru saat kita membuat prediksi untuk pengguna mana pun di kemudian hari.

    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

Sekarang kita siap mengimpor katalog produk dan data peristiwa pengguna ke Vertex AI Search untuk e-commerce.

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

    AKTIFKAN API

  2. Klik Mulai.

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

    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: Katalog Produk.
    • Pilih nama cabang default.
    • Pilih sumber data: BigQuery.
    • Pilih skema data: Skema Produk Retail.
    • Masukkan nama tampilan BigQuery produk yang Anda buat sebelumnya (PROJECT_ID.movielens.products).

  2. Klik Import.

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

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

    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 sebelumnya.
  2. Klik Import.

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

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

    Aktivitas impor peristiwa

Melatih dan mengevaluasi model rekomendasi

Ikuti petunjuk ini untuk melatih dan mengevaluasi model rekomendasi.

Membuat model rekomendasi

  1. Buka halaman Model di konsol Search for Commerce.

    Buka halaman Models

  2. Klik Buat model:

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

    Buat model

    Model baru Anda mulai dilatih.

    Model yang dibuat

Membuat konfigurasi inferensi

  1. Buka halaman Serving Configs di konsol Penelusuran untuk e-commerce.

    Buka halaman Konfigurasi penayangan

  2. Klik Create serving config:

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

Tunggu hingga model berstatus "Siap membuat kueri"

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

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

Kolom Model siap untuk membuat kueri menunjukkan Ya jika prosesnya selesai.

Pratinjau rekomendasi

Setelah model siap untuk dikueri:

  1. Buka halaman Serving Configs di konsol Penelusuran untuk e-commerce.

    Buka halaman Konfigurasi penayangan
  2. Klik nama konfigurasi penayangan 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 Pratinjau prediksi untuk melihat daftar item yang direkomendasikan di sebelah kanan halaman.