Buat saluran rekomendasi batch menggunakan Amazon Personalize tanpa kode PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Buat saluran rekomendasi batch menggunakan Amazon Personalize tanpa kode

Dengan konten yang dipersonalisasi lebih cenderung mendorong keterlibatan pelanggan, bisnis terus berupaya menyediakan konten yang disesuaikan berdasarkan profil dan perilaku pelanggan mereka. Sistem rekomendasi khususnya berusaha untuk memprediksi preferensi yang akan diberikan pengguna akhir pada suatu item. Beberapa kasus penggunaan umum termasuk rekomendasi produk di toko ritel online, mempersonalisasi buletin, membuat rekomendasi daftar putar musik, atau bahkan menemukan konten serupa di layanan media online.

Namun, menciptakan sistem rekomendasi yang efektif dapat menjadi tantangan karena kompleksitas dalam pelatihan model, pemilihan algoritme, dan manajemen platform. Amazon Personalisasi memungkinkan developer meningkatkan keterlibatan pelanggan melalui rekomendasi produk dan konten yang dipersonalisasi tanpa memerlukan keahlian machine learning (ML). Pengembang dapat langsung mulai melibatkan pelanggan dengan menggunakan data perilaku pengguna yang diambil. Di balik layar, Amazon Personalize memeriksa data ini, mengidentifikasi apa yang bermakna, memilih algoritme yang tepat, melatih dan mengoptimalkan model personalisasi yang disesuaikan untuk data Anda, dan memberikan rekomendasi melalui titik akhir API.

Meskipun memberikan rekomendasi secara real time dapat membantu meningkatkan keterlibatan dan kepuasan, terkadang hal ini mungkin tidak benar-benar diperlukan, dan melakukan ini dalam batch secara terjadwal dapat menjadi pilihan yang lebih hemat biaya dan mudah dikelola.

Posting ini menunjukkan kepada Anda cara menggunakan layanan AWS untuk tidak hanya membuat rekomendasi tetapi juga mengoperasionalkan saluran rekomendasi batch. Kami berjalan melalui solusi ujung ke ujung tanpa satu baris kode pun. Kami membahas dua topik secara rinci:

Ikhtisar solusi

Dalam solusi ini, kami menggunakan Lensa Film Himpunan data. Dataset ini mencakup 86,000 peringkat film dari 2,113 pengguna. Kami mencoba menggunakan data ini untuk menghasilkan rekomendasi bagi setiap pengguna ini.

Persiapan data sangat penting untuk memastikan kami mendapatkan data perilaku pelanggan ke dalam format yang siap untuk Amazon Personalize. Arsitektur yang dijelaskan dalam posting ini menggunakan AWS Glue, layanan integrasi data tanpa server, untuk melakukan transformasi data mentah menjadi format yang siap digunakan Amazon Personalize. Solusinya menggunakan Amazon Personalize untuk membuat rekomendasi batch untuk semua pengguna dengan menggunakan inferensi batch. Kami kemudian menggunakan alur kerja Step Functions sehingga alur kerja otomatis dapat dijalankan dengan memanggil Amazon Personalize API secara berulang.

Diagram berikut menunjukkan solusi ini.Diagram Arsitektur

Kami akan membangun solusi ini dengan langkah-langkah berikut:

  1. Bangun tugas transformasi data untuk mengubah data mentah kami menggunakan AWS Glue.
  2. Bangun solusi Amazon Personalize dengan kumpulan data yang diubah.
  3. Buat alur kerja Step Functions untuk mengatur pembuatan inferensi batch.

Prasyarat

Anda memerlukan yang berikut untuk panduan ini:

Bangun pekerjaan transformasi data untuk mengubah data mentah dengan AWS Glue

Dengan Amazon Personalize, data input harus memiliki skema dan format file tertentu. Data dari interaksi antara pengguna dan item harus dalam format CSV dengan kolom tertentu, sedangkan daftar pengguna yang ingin Anda buat rekomendasinya harus dalam format JSON. Di bagian ini, kami menggunakan AWS Glue Studio untuk mengubah data input mentah menjadi struktur dan format yang diperlukan untuk Amazon Personalize.

AWS Glue Studio menyediakan antarmuka grafis yang dirancang untuk membuat dan menjalankan pekerjaan ekstrak, transformasi, dan muat (ETL) dengan mudah. Anda dapat membuat beban kerja transformasi data secara visual melalui operasi drag-and-drop sederhana.

Kami pertama-tama menyiapkan data sumber kami di Layanan Penyimpanan Sederhana Amazon (Amazon S3), lalu kita ubah datanya tanpa kode.

  1. Di konsol Amazon S3, buat bucket S3 dengan tiga folder: mentah, diubah, dan dikurasi.
  2. Download Kumpulan data MovieLens dan unggah file yang tidak dikompresi bernama user_ratingmovies-timestamp.dat ke keranjang Anda di bawah folder mentah.
  3. Di konsol AWS Glue Studio, pilih Jobs di panel navigasi.
  4. Pilih Visual dengan sumber dan target, Lalu pilih membuat.
  5. Pilih simpul pertama yang disebut Sumber data โ€“ ember S3. Di sinilah kami menentukan data input kami.
  6. pada Properti sumber data tab, pilih Lokasi S3 dan telusuri file yang Anda unggah.
  7. Untuk Format data, pilih CSV, Dan untuk Pembatas, pilih Tab.
    Studio Lem AWS - S3
  8. Kita dapat memilih tab Skema keluaran untuk memverifikasi bahwa skema telah menyimpulkan kolom dengan benar.
  9. Jika skema tidak sesuai dengan harapan Anda, pilih Edit untuk mengedit skema.
    AWS Glue Studio - Bidang

Selanjutnya, kami mengubah data ini untuk mengikuti persyaratan skema untuk Amazon Personalize.

  1. Pilih Transform โ€“ Terapkan Pemetaan simpul dan, pada Mengubah tab, perbarui kunci target dan tipe data.
    Amazon Personalize, setidaknya, mengharapkan struktur berikut untuk: kumpulan data interaksi:
    • user_id (tali)
    • item_id (tali)
    • timestamp (panjang, dalam format waktu zaman Unix)
      AWS Glue Studio - Pemetaan bidang

Dalam contoh ini, kami mengecualikan film berperingkat buruk dalam kumpulan data.

  1. Untuk melakukannya, hapus simpul terakhir yang disebut ember S3 dan tambahkan simpul filter pada Mengubah Tab.
  2. Pilih Add kondisi dan menyaring data di mana peringkat <3.5.
    AWS Glue Studio - Keluaran

Kami sekarang menulis output kembali ke Amazon S3.

  1. Pilih target menu dan pilih Amazon S3.
  2. Untuk Lokasi Sasaran S3, pilih folder bernama transformed.
  3. Pilih CSV sebagai format dan akhiran Lokasi Sasaran dengan interactions/.

Selanjutnya, kami menampilkan daftar pengguna yang ingin kami rekomendasikan.

  1. Pilih Terapkan Pemetaan simpul lagi, dan kemudian perluas Mengubah menu dan pilih Terapkan Pemetaan.
  2. Jatuhkan semua bidang kecuali untuk user_id dan ganti nama bidang itu menjadi userId. Amazon Personalize mengharapkan bidang itu diberi nama identitas pengguna.
  3. Pilih target menu lagi dan pilih Amazon S3.
  4. Kali ini, pilih JSON sebagai formatnya, lalu pilih folder S3 yang diubah dan akhiri dengan batch_users_input/.

Ini menghasilkan JSON daftar pengguna sebagai masukan untuk Amazon Personalize. Kita sekarang harus memiliki diagram yang terlihat seperti berikut.

AWS Glue Studio - Seluruh Alur Kerja

Kami sekarang siap untuk menjalankan pekerjaan transformasi kami.

  1. Di konsol IAM, buat peran yang disebut glue-service-role dan lampirkan kebijakan terkelola berikut:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Untuk informasi selengkapnya tentang cara membuat peran layanan IAM, lihat Membuat peran untuk mendelegasikan izin ke layanan AWS.

  1. Navigasikan kembali ke pekerjaan AWS Glue Studio Anda, dan pilih Rincian pekerjaan Tab.
  2. Tetapkan nama pekerjaan sebagai batch-personalize-input-transform-job.
  3. Pilih peran IAM yang baru dibuat.
  4. Pertahankan nilai default untuk yang lainnya.
    AWS Glue Studio - Detail pekerjaan
  5. Pilih Save.
  6. Saat Anda siap, pilih Run dan memantau pekerjaan di Berjalan Tab.
  7. Saat pekerjaan selesai, navigasikan ke konsol Amazon S3 untuk memvalidasi bahwa file output Anda telah berhasil dibuat.

Kami sekarang telah membentuk data kami ke dalam format dan struktur yang dibutuhkan Amazon Personalize. Dataset yang diubah harus memiliki bidang dan format berikut:

  • Dataset interaksi โ€“ Format CSV dengan bidang USER_ID, ITEM_ID, TIMESTAMP
  • Set data masukan pengguna โ€“ Format JSON dengan elemen userId

Bangun solusi Amazon Personalize dengan kumpulan data yang diubah

Dengan kumpulan data interaksi dan data input pengguna dalam format yang tepat, kini kami dapat membuat solusi Amazon Personalize. Di bagian ini, kami membuat grup dataset kami, mengimpor data kami, dan kemudian membuat pekerjaan inferensi batch. Grup kumpulan data mengatur sumber daya ke dalam wadah untuk komponen Amazon Personalize.

  1. Pada konsol Personalisasi Amazon, pilih membuat grup dataset.
  2. Untuk Domain, pilih Kustom.
  3. Pilih Buat grup kumpulan data dan lanjutkan.
    Amazon Personalize - buat grup kumpulan data

Selanjutnya, buat kumpulan data interaksi.

  1. Masukkan nama kumpulan data dan pilih Buat skema baru.
  2. Pilih Buat kumpulan data dan lanjutkan.
    Amazon Personalize - buat kumpulan data interaksi

Kami sekarang mengimpor data interaksi yang telah kami buat sebelumnya.

  1. Navigasikan ke bucket S3 tempat kami membuat kumpulan data CSV interaksi kami.
  2. pada izin tab, tambahkan kebijakan akses bucket berikut agar Amazon Personalize memiliki akses. Perbarui kebijakan untuk menyertakan nama keranjang Anda.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

Arahkan kembali ke Amazon Personalisasi dan pilih Buat tugas impor set data Anda. Kumpulan data interaksi kami sekarang harus diimpor ke Amazon Personalize. Tunggu sampai pekerjaan impor selesai dengan status Aktif sebelum melanjutkan ke langkah berikutnya. Ini akan memakan waktu sekitar 8 menit.

  1. Pada konsol Personalisasi Amazon, pilih Ringkasan di panel navigasi dan pilih Ciptakan solusi.
    Personalisasi Amazon - Dasbor
  2. Masukkan nama solusi.
  3. Untuk Jenis solusi, pilih Rekomendasi barang.
  4. Untuk Resep, memilih aws-user-personalization resep.
  5. Pilih Buat dan latih solusi.
    Personalisasi Amazon - buat solusi

Solusinya sekarang berlatih melawan kumpulan data interaksi yang diimpor dengan resep personalisasi pengguna. Pantau status proses ini di bawah Versi solusi. Tunggu hingga selesai sebelum melanjutkan. Ini akan memakan waktu sekitar 20 menit.
Personalisasi Amazon - Status

Kami sekarang membuat tugas inferensi batch kami, yang menghasilkan rekomendasi untuk setiap pengguna yang ada di input JSON.

  1. Di panel navigasi, di bawah Sumber daya khusus, pilih Pekerjaan inferensi batch.
  2. Masukkan nama pekerjaan, dan untuk Solusi, pilih solusi yang dibuat sebelumnya.
  3. Pilih Buat pekerjaan inferensi batch.
    Amazon Personalize - buat tugas inferensi batch
  4. Untuk Konfigurasi data masukan, masukkan jalur S3 tempat batch_users_input file berada.

Ini adalah file JSON yang berisi userId.

  1. Untuk Konfigurasi data keluaran path, pilih jalur yang dikuratori di S3.
  2. Pilih Buat pekerjaan inferensi batch.

Proses ini memakan waktu kurang lebih 30 menit. Ketika pekerjaan selesai, rekomendasi untuk setiap pengguna yang ditentukan dalam file input pengguna disimpan di lokasi output S3.

Kami telah berhasil membuat serangkaian rekomendasi untuk semua pengguna kami. Namun, sejauh ini kami hanya menerapkan solusi menggunakan konsol. Untuk memastikan bahwa inferensi batch ini berjalan secara teratur dengan kumpulan data terbaru, kita perlu membangun alur kerja orkestrasi. Di bagian berikutnya, kami menunjukkan cara membuat alur kerja orkestrasi menggunakan Step Functions.

Bangun alur kerja Fungsi Langkah untuk mengatur alur kerja inferensi batch

Untuk mengatur saluran Anda, selesaikan langkah-langkah berikut:

  1. Pada konsol Step Functions, pilih Buat Mesin Negara.
  2. Pilih Rancang alur kerja Anda secara visual, Lalu pilih Selanjutnya.
    Fungsi Langkah AWS - Buat alur kerja
  3. Tarik CreateDatasetImportJob simpul dari kiri (Anda dapat mencari simpul ini di kotak pencarian) ke kanvas.
  4. Pilih node, dan Anda akan melihat parameter API konfigurasi di sebelah kanan. Rekam ARN.
  5. Masukkan nilai Anda sendiri di Parameter API kolom tulisan.

Ini memanggil BuatDatasetImporPekerjaan API dengan nilai parameter yang Anda tentukan.

AWS Langkah Fungsi Alur Kerja

  1. Tarik CreateSolutionVersion simpul ke kanvas.
  2. Perbarui parameter API dengan ARN dari solusi yang Anda catat.

Ini membuat versi solusi baru dengan data yang baru diimpor dengan memanggil BuatSolutionVersion API.

  1. Tarik CreateBatchInferenceJob node ke kanvas dan memperbarui parameter API dengan nilai yang relevan.

Pastikan Anda menggunakan $.SolutionVersionArn sintaks untuk mengambil parameter ARN versi solusi dari langkah sebelumnya. Parameter API ini diteruskan ke BuatBatchInferenceJob API.

AWS Langkah Fungsi Alur Kerja

Kita perlu membangun logika tunggu di alur kerja Step Functions untuk memastikan tugas inferensi batch rekomendasi selesai sebelum alur kerja selesai.

  1. Temukan dan seret di node Tunggu.
  2. Dalam konfigurasi untuk Tunggu, masukkan 300 detik.

Ini adalah nilai arbitrer; Anda harus mengubah waktu tunggu ini sesuai dengan kasus penggunaan khusus Anda.

  1. Pilih CreateBatchInferenceJob simpul lagi dan arahkan ke Menangani kesalahan Tab.
  2. Untuk gulat kesalahan, Masuk Personalize.ResourceInUseException.
  3. Untuk Status mundur, pilih Tunggu.

Langkah ini memungkinkan kami untuk memeriksa status pekerjaan secara berkala dan hanya keluar dari loop ketika pekerjaan selesai.

  1. Untuk HasilJalan, Masuk $.errorMessage.

Ini secara efektif berarti bahwa ketika pengecualian "sumber daya yang digunakan" diterima, pekerjaan menunggu selama x detik sebelum mencoba lagi dengan input yang sama.

AWS Langkah Fungsi Alur Kerja

  1. Pilih Save, lalu pilih Mulai eksekusi.

Kami telah berhasil mengatur saluran rekomendasi batch kami untuk Amazon Personalize. Sebagai langkah opsional, Anda dapat menggunakan Jembatan Acara Amazon untuk menjadwalkan pemicu alur kerja ini secara teratur. Untuk lebih jelasnya, lihat EventBridge (Acara CloudWatch) untuk perubahan status eksekusi Fungsi Langkah.

Membersihkan

Untuk menghindari timbulnya biaya di masa mendatang, hapus sumber daya yang Anda buat untuk panduan ini.

Kesimpulan

Dalam posting ini, kami mendemonstrasikan cara membuat saluran rekomendasi batch dengan menggunakan kombinasi AWS Glue, Amazon Personalize, dan Step Functions, tanpa memerlukan satu baris kode atau pengalaman ML. Kami menggunakan AWS Glue untuk menyiapkan data kami ke dalam format yang dibutuhkan Amazon Personalize. Kemudian kami menggunakan Amazon Personalize untuk mengimpor data, membuat solusi dengan resep personalisasi pengguna, dan membuat tugas inferensi batch yang menghasilkan 25 rekomendasi default untuk setiap pengguna, berdasarkan interaksi sebelumnya. Kami kemudian mengatur langkah-langkah ini menggunakan Fungsi Langkah sehingga kami dapat menjalankan pekerjaan ini secara otomatis.

Untuk langkah-langkah yang perlu dipertimbangkan selanjutnya, segmentasi pengguna adalah salah satu resep baru di Amazon Personalize, yang mungkin ingin Anda jelajahi untuk membuat segmen pengguna untuk setiap baris data input. Untuk lebih jelasnya, lihat Mendapatkan rekomendasi batch dan segmen pengguna.


Tentang Penulis

Maxine Wee

Maxine Wee adalah Arsitek Solusi Lab Data AWS. Maxine bekerja dengan pelanggan dalam kasus penggunaan mereka, merancang solusi untuk memecahkan masalah bisnis mereka, dan membimbing mereka melalui pembuatan prototipe yang dapat diskalakan. Sebelum perjalanannya dengan AWS, Maxine membantu pelanggan mengimplementasikan BI, data warehousing, dan proyek data lake di Australia.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS