Membuat rekomendasi (AWS SDK) - Amazon Personalize

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

Membuat rekomendasi (AWS SDK)

Setelah membuat grup kumpulan data Domain dan mengimpor data, Anda dapat membuat rekomendasi untuk kasus penggunaan domain Anda. Rekomendasi adalah sumber daya grup kumpulan data Domain yang menghasilkan rekomendasi.

Untuk semua kasus penggunaan, Anda dapat mengonfigurasi kolom yang digunakan saat pelatihan. Untuk informasi selengkapnya, lihat Mengkonfigurasi kolom yang digunakan saat pelatihan. Untuk Top picks for your atau kasus Recommended for you penggunaan, Amazon Personalize menggunakan eksplorasi saat merekomendasikan item. Untuk informasi selengkapnya, lihat Mengkonfigurasi eksplorasi.

Membuat pemberi rekomendasi

Buat pemberi rekomendasi untuk kasus penggunaan domain dengan kode berikut. Beri nama pada pemberi rekomendasi Anda dan berikan Nama Sumber Daya Amazon (ARN) grup kumpulan data Domain Anda. UntukrecipeArn, berikan ARN untuk kasus penggunaan Anda. Jalankan kode ini untuk setiap kasus penggunaan domain Anda. Kasus penggunaan yang tersedia tergantung pada domain Anda. Untuk daftar kasus penggunaan, ARN mereka, dan persyaratannya, lihatMemilih kasus penggunaan.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN' ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for Java 2.x
public static String createRecommender(PersonalizeClient personalizeClient, String name, String datasetGroupArn, String recipeArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String recommenderStatus = ""; try { CreateRecommenderRequest createRecommenderRequest = CreateRecommenderRequest.builder() .datasetGroupArn(datasetGroupArn) .name(name) .recipeArn(recipeArn) .build(); CreateRecommenderResponse recommenderResponse = personalizeClient .createRecommender(createRecommenderRequest); String recommenderArn = recommenderResponse.recommenderArn(); System.out.println("The recommender ARN is " + recommenderArn); DescribeRecommenderRequest describeRecommenderRequest = DescribeRecommenderRequest.builder() .recommenderArn(recommenderArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { recommenderStatus = personalizeClient.describeRecommender(describeRecommenderRequest).recommender() .status(); System.out.println("Recommender status: " + recommenderStatus); if (recommenderStatus.equals("ACTIVE") || recommenderStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return recommenderArn; } 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 { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN" /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Mengkonfigurasi eksplorasi

Untuk Top picks for your atau kasus Recommended for you penggunaan, Amazon Personalize menggunakan eksplorasi saat merekomendasikan item. Eksplorasi melibatkan pengujian rekomendasi item yang berbeda untuk mempelajari bagaimana pengguna merespons item dengan data interaksi yang sangat sedikit. Anda dapat mengonfigurasi eksplorasi dengan yang berikut:

  • Penekanan pada penjelajahan item yang kurang relevan (bobot eksplorasi) - Konfigurasikan berapa banyak yang harus dijelajahi. Tentukan nilai desimal antara 0 hingga 1. Defaultnya adalah 0,3. Semakin dekat nilainya ke 1, semakin banyak eksplorasi. Dengan lebih banyak eksplorasi, rekomendasi mencakup lebih banyak item dengan lebih sedikit data interaksi item atau relevansi berdasarkan perilaku sebelumnya. Pada nol, tidak ada eksplorasi terjadi dan rekomendasi didasarkan pada data saat ini (relevansi).

  • Batas usia item eksplorasi - Tentukan usia item maksimum dalam beberapa hari sejak interaksi terbaru di semua item dalam kumpulan data interaksi item. Ini mendefinisikan ruang lingkup eksplorasi item berdasarkan usia item. Amazon Personalize menentukan usia item berdasarkan stempel waktu pembuatannya atau, jika data stempel waktu pembuatan tidak ada, data interaksi item. Untuk informasi selengkapnya cara Amazon Personalize menentukan usia item, lihat. Data stempel waktu pembuatan

    Untuk meningkatkan item yang dipertimbangkan Amazon Personalize selama eksplorasi, masukkan nilai yang lebih besar. Minimal adalah 1 hari dan defaultnya adalah 30 hari. Rekomendasi mungkin mencakup item yang lebih tua dari potongan usia item yang Anda tentukan. Ini karena item ini relevan dengan pengguna dan eksplorasi tidak mengidentifikasi mereka.

Kode berikut menunjukkan cara mengonfigurasi eksplorasi saat Anda membuat pemberi rekomendasi. Contoh menggunakan nilai default.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'arn:aws:personalize:::recipe/aws-vod-top-picks', datasetGroupArn = 'dataset group ARN', recommenderConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}} ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN", /* required */ recommenderConfig: { itemExplorationConfig: { explorationWeight: "0.3", explorationItemAgeCutOff: "30" } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Mengkonfigurasi kolom yang digunakan saat pelatihan

Untuk mengecualikan kolom dari pelatihan, berikan excludedDatasetColumns objek di trainingDataConfig sebagai bagian dari konfigurasi pemberi rekomendasi. Untuk setiap kunci, berikan jenis dataset. Untuk setiap nilai, berikan daftar kolom untuk dikecualikan. Kode berikut menunjukkan cara mengecualikan kolom dari pelatihan saat Anda membuat pemberi rekomendasi. Untuk informasi selengkapnya, lihat Mengkonfigurasi kolom yang digunakan saat pelatihan.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe name', datasetGroupArn = 'dataset group ARN', recommenderConfig = { "trainingDataConfig": { "excludedDatasetColumns": { "datasetType": ["COLUMN_A", "COLUMN_B"] } } } ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN", /* required */ recommenderConfig: { trainingDataConfig: { excludedDatasetColumns: { "DATASET_TYPE": ["COLUMN_A", "COLUMN_B"] } } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Mengaktifkan metadata

Jika Anda memiliki kumpulan data Item dan ingin opsi menyertakan metadata saat Anda mendapatkan rekomendasi, atur enableMetadataWithRecommendations ke true dalam. recommender-config

import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe name', datasetGroupArn = 'dataset group ARN', recommenderConfig = {"enableMetadataWithRecommendations": True} ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)