Mengoptimalkan solusi untuk tujuan tambahan - Amazon Personalize

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengoptimalkan solusi untuk tujuan tambahan

penting

Secara default, semua solusi baru menggunakan pelatihan otomatis. Dengan pelatihan otomatis, Anda dikenakan biaya pelatihan saat solusi Anda aktif. Untuk menghindari biaya yang tidak perlu, ketika Anda selesai Anda dapat memperbarui solusi untuk mematikan pelatihan otomatis. Untuk informasi tentang biaya pelatihan, lihat harga Amazon Personalisasi.

Jika Anda menggunakan resep Personalisasi Pengguna atau resep Personalisasi Peringkat, Anda dapat mengoptimalkan solusi Amazon Personalize untuk tujuan selain relevansi maksimum, seperti memaksimalkan pendapatan.

Dengan resep rekomendasi item, tujuan utama Amazon Personalize adalah untuk memprediksi item yang paling relevan untuk pengguna Anda berdasarkan data interaksi item historis dan real-time. Ini adalah item yang kemungkinan besar akan berinteraksi dengan pengguna Anda (misalnya, item yang kemungkinan besar akan mereka klik). Jika Anda memiliki tujuan tambahan, seperti memaksimalkan menit streaming atau meningkatkan pendapatan, Anda dapat membuat solusi yang menghasilkan rekomendasi berdasarkan relevansi dan tujuan Anda.

Untuk mengoptimalkan solusi untuk tujuan tambahan, buat solusi baru dengan resep Personalisasi Pengguna atau resep Personalisasi Peringkat dan pilih kolom metadata numerik dalam kumpulan data Item Anda yang terkait dengan tujuan Anda. Saat membuat rekomendasi, Amazon Personalize lebih mementingkan item dengan nilai lebih tinggi untuk kolom data ini. Misalnya, Anda dapat memilih LENGTH kolom VIDEO _ untuk memaksimalkan menit streaming atau PRICE kolom untuk memaksimalkan pendapatan.

Anda dapat menggunakan konsol Amazon Personalize, AWS Command Line Interface (AWS CLI), atau AWS SDKs. Untuk informasi tentang menggunakan konsol Amazon Personalize, lihat. Membuat solusi (konsol)

Pedoman dan persyaratan

Persyaratan obyektif adalah sebagai berikut:

  • Anda hanya dapat memilih satu kolom untuk tujuan Anda.

  • Kolom harus memiliki tipe numerik dalam skema Anda.

  • Kolom tidak dapat memiliki null tipe dalam skema Anda.

Untuk informasi selengkapnya tentang skema dan tipe data, lihatMembuat JSON file skema untuk skema Amazon Personalize.

Menyeimbangkan penekanan dan relevansi obyektif

Mungkin ada trade-off ketika merekomendasikan item berdasarkan lebih pada tujuan Anda daripada relevansi. Misalnya, jika Anda ingin meningkatkan pendapatan melalui rekomendasi, rekomendasi hanya untuk item mahal mungkin membuat item kurang relevan bagi pengguna Anda dan mengurangi keterlibatan dan konversi pengguna.

Untuk mengonfigurasi keseimbangan antara relevansi dan tujuan Anda, pilih salah satu dari tingkat sensitivitas objektif berikut saat Anda membuat solusi:

  • Mati: Amazon Personalize terutama menggunakan data interaksi item untuk memprediksi item yang paling relevan bagi pengguna Anda.

  • Rendah: Amazon Personalize kurang menekankan pada tujuan Anda. Relevansi melalui data interaksi item lebih penting.

  • Medium: Amazon Personalize memberikan penekanan yang sama pada tujuan dan relevansi Anda melalui data interaksi item.

  • Tinggi: Amazon Personalize lebih menekankan pada tujuan Anda. Relevansi melalui data interaksi item kurang penting.

Mengukur kinerja optimasi

Saat Anda membuat versi solusi (melatih model) untuk solusi dengan tujuan pengoptimalan, Amazon Personalize menghasilkan metrik. average_rewards_at_k Skor untuk average_rewards_at_k memberi tahu Anda seberapa baik kinerja versi solusi dalam mencapai tujuan Anda. Untuk menghitung metrik ini, Amazon Personalize menghitung hadiah untuk setiap pengguna sebagai berikut:

rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations

Final average_rewards_at_k adalah rata-rata semua rewards_per_user dinormalisasi menjadi nilai desimal kurang dari atau sama dengan 1 dan lebih besar dari 0. Semakin dekat nilainya ke 1, semakin banyak keuntungan rata-rata per pengguna yang dapat Anda harapkan dari rekomendasi.

Misalnya, jika tujuan Anda adalah memaksimalkan pendapatan dari klik, Amazon Personalize menghitung setiap skor pengguna dengan membagi total pendapatan yang dihasilkan oleh item yang diklik pengguna dari 25 rekomendasi termahal teratas mereka dengan pendapatan dari semua item yang direkomendasikan yang diklik pengguna. Amazon Personalize kemudian mengembalikan rata-rata yang dinormalisasi dari semua skor pengguna. Semakin average_rewards_at_k dekat ke 1, semakin banyak pendapatan rata-rata yang dapat Anda peroleh per pengguna dari rekomendasi.

Untuk informasi selengkapnya tentang menghasilkan metrik, lihatMengevaluasi versi solusi Amazon Personalize dengan metrik.

Mengoptimalkan solusi (AWS CLI)

Anda dapat mengoptimalkan tujuan hanya dengan resep User-Personalization atau Personalized-Ranking. Untuk mengoptimalkan solusi untuk tujuan tambahan menggunakan AWS CLI, buat solusi baru dan tentukan detail tujuan Anda menggunakan optimizationObjective kunci di solutionConfig objek. Ini optimizationObjective memiliki bidang-bidang berikut:

  • itemAttribute: Tentukan nama kolom metadata numerik dari kumpulan data Item yang berhubungan dengan tujuan Anda.

  • objectiveSensitivity: Tentukan tingkat penekanan yang diberikan solusi pada tujuan Anda saat menghasilkan rekomendasi. Tingkat sensitivitas obyektif mengonfigurasi cara Amazon Personalize menyeimbangkan merekomendasikan item berdasarkan tujuan Anda versus relevansi melalui data data interaksi item. objectiveSensitivityBisa jadiOFF,LOW, MEDIUM atauHIGH. Untuk informasi selengkapnya, lihat Menyeimbangkan penekanan dan relevansi obyektif.

Berikut ini adalah contoh dari create-solution AWS CLI perintah. Gantisolution name,dataset group arn, dan recipe arn nilai dengan nilai Anda sendiri.

UntukoptimizationObjective, ganti COLUMN_NAME dengan nama kolom metadata numerik dari kumpulan data Item yang terkait dengan tujuan Anda. UntukobjectiveSensitivity, tentukanOFF,LOW,MEDIUM, atauHIGH.

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn \ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME\",\"objectiveSensitivity\":\"MEDIUM\"}}"

Saat solusi Anda siap, buat versi solusi baru (untuk contoh perintah lihatMembuat solusi (AWS CLI)). Setelah membuat versi solusi, Anda dapat melihat kinerja pengoptimalan dengan metrik versi solusi. Lihat Mengukur kinerja optimasi.

Mengoptimalkan solusi (AWS SDKs)

Anda dapat mengoptimalkan tujuan hanya dengan resep User-Personalization atau Personalized-Ranking.

Untuk mengoptimalkan solusi untuk tujuan tambahan menggunakan AWS SDKs, buat solusi baru dan tentukan detail tujuan Anda menggunakan optimizationObjective kunci di solutionConfig objek untuk solusi tersebut. Ini optimizationObjective memiliki bidang-bidang berikut:

  • itemAttribute: Tentukan nama kolom metadata numerik dari kumpulan data Kumpulan data Item yang terkait dengan tujuan Anda.

  • objectiveSensitivity: Tentukan tingkat penekanan yang diberikan solusi pada tujuan Anda saat menghasilkan rekomendasi. Tingkat sensitivitas obyektif mengonfigurasi cara Amazon Personalize menyeimbangkan merekomendasikan item berdasarkan tujuan Anda versus relevansi melalui data data interaksi item. objectiveSensitivityBisa jadiOFF,LOW, MEDIUM atauHIGH. Untuk informasi selengkapnya, lihat Menyeimbangkan penekanan dan relevansi obyektif.

Gunakan kode berikut untuk membuat solusi dengan tujuan tambahan dengan AWS SDK for Python (Boto3) atau AWS SDK for Java 2.x.

Ketika solusi Anda siap, buat versi solusi baru (misalnya kode lihatMembuat versi solusi (AWS SDKs)). Setelah membuat versi solusi, Anda dapat melihat kinerja pengoptimalan dengan metrik versi solusi. Lihat Mengukur kinerja optimasi.

SDK for Python (Boto3)

Untuk membuat solusi yang dioptimalkan untuk tujuan tambahan, gunakan create_solution metode berikut. Gantisolution name,dataset group arn, dan recipe arn nilai dengan nilai Anda sendiri.

UntukoptimizationObjective, ganti COLUMN_NAME dengan nama kolom metadata numerik dari kumpulan data Item yang terkait dengan tujuan Anda. UntukobjectiveSensitivity, tentukanOFF,LOW,MEDIUM, atauHIGH.

import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name= 'solution name', recipeArn = 'recipe arn', datasetGroupArn = 'dataset group arn', solutionConfig = { "optimizationObjective": { "itemAttribute": "COLUMN_NAME", "objectiveSensitivity": "MEDIUM" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x

Untuk membuat solusi yang dioptimalkan untuk tujuan tambahan, gunakan createPersonalizeSolution metode berikut dan teruskan yang berikut ini sebagai parameter: klien layanan Amazon Personalize, Amazon Resource Name (ARN) grup dataset, nama solusi, resepARN, atribut item, dan tingkat sensitivitas objektif.

public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn, String itemAttribute, String objectiveSensitivity) { try { OptimizationObjective optimizationObjective = OptimizationObjective.builder() .itemAttribute(itemAttribute) .objectiveSensitivity(objectiveSensitivity) .build(); SolutionConfig solutionConfig = SolutionConfig.builder() .optimizationObjective(optimizationObjective) .build(); CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .solutionConfig(solutionConfig) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "";
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateSolutionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create the personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION"}); // set the solution parameters. export const createSolutionParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ recipeArn: 'RECIPE_ARN', /* required */ name: 'NAME', /* required */ solutionConfig: { optimizationObjective: { itemAttribute: "COLUMN_NAME", /* specify the numerical column from the Items dataset related to your objective */ objectiveSensitivity: "MEDIUM" /* specify OFF, LOW, MEDIUM, or HIGH */ } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateSolutionCommand(createSolutionParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Contoh notebook Jupyter

Untuk contoh buku catatan Jupyter yang menunjukkan cara membuat solusi yang dioptimalkan untuk metadata item berbasis objektif tambahan, lihat folder objective_optimization dari repositori Amazon Personalize samples GitHub