Mempromosikan item dalam rekomendasi - Amazon Personalize

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

Mempromosikan item dalam rekomendasi

Dengan semua kasus penggunaan domain dan beberapa resep khusus, Anda dapat menentukan promosi saat Anda mendapatkan rekomendasi waktu nyata.

Promosi mendefinisikan aturan bisnis tambahan yang berlaku untuk subset item yang direkomendasikan yang dapat dikonfigurasi. Misalnya, Anda mungkin memiliki aplikasi streaming dan ingin mempromosikan acara dan film Anda sendiri, tetapi juga merekomendasikan judul yang relevan. Anda dapat menggunakan promosi untuk menentukan bahwa persentase tertentu dari item yang direkomendasikan harus berasal dari kategori in-house. Item yang direkomendasikan yang tersisa akan terus menjadi rekomendasi yang relevan berdasarkan resep Anda dan filter permintaan apa pun.

Untuk menerapkan promosi, Anda menentukan hal berikut dalam permintaan rekomendasi Anda:

  • Persentase item yang direkomendasikan untuk menerapkan filter promosi.

  • Filter yang menentukan kriteria promosi. Untuk informasi selengkapnya, lihat Filter promosi.

Dalam respons rekomendasi, item yang dipromosikan diposisikan secara acak relatif terhadap item lain yang direkomendasikan, tetapi dalam urutan yang diurutkan relatif terhadap item promosi lainnya. Tergantung pada resep Anda, item yang direkomendasikan yang bukan bagian dari promosi diurutkan berdasarkan relevansi dengan pengguna, popularitas, atau kesamaan. Jika tidak ada cukup item yang memenuhi kriteria promosi, hasilnya akan berisi sebanyak mungkin item yang dipromosikan.

Anda dapat menerapkan promosi ke rekomendasi dengan konsol Amazon Personalize, AWS Command Line Interface (AWS CLI), atau AWS SDK.

Gunakan kasing dan resep yang mendukung promosi

Semua kasus penggunaan mendukung promosi. Resep khusus berikut mendukung promosi:

Filter promosi

Saat Anda menerapkan promosi ke permintaan rekomendasi, Anda memilih filter yang menentukan kriteria promosi. Anda dapat menggunakan filter yang ada atau membuat yang baru. Anda membuat dan mengelola filter untuk promosi seperti halnya filter lain di Amazon Personalisasi. Untuk informasi tentang membuat dan mengelola filter, lihatHasil penyaringan.

Satu-satunya perbedaan antara filter promosi dan filter yang Anda pilih di luar promosi (filter permintaan) adalah bagaimana Amazon Personalize menerapkannya. Filter promosi hanya berlaku untuk item yang dipromosikan, sedangkan filter permintaan hanya berlaku untuk item yang direkomendasikan yang tersisa. Jika Anda menentukan filter permintaan dan filter promosi, dan ingin menerapkan kedua filter ke item yang dipromosikan, ekspresi filter promosi Anda harus menyertakan kedua ekspresi tersebut. Cara Anda menggabungkan dua ekspresi tergantung pada kumpulan data yang Anda gunakan. Untuk informasi selengkapnya tentang ekspresi filter, aturannya, dan cara membuatnya, lihatEkspresi Filter.

Contoh ekspresi filter

Ekspresi berikut hanya mencakup item dari kategori “in-house”. Anda dapat menggunakan ungkapan ini jika Anda ingin mempromosikan konten Anda sendiri dalam rekomendasi Anda.

INCLUDE ItemID WHERE Items.OWNER IN ("in-house")

Ekspresi berikut hanya mencakup item yang dibuat lebih baru daripada stempel waktu yang Anda tentukan. Anda dapat menggunakan ungkapan ini untuk mempromosikan item baru dalam rekomendasi.

INCLUDE ItemID WHERE Items.CREATION_TIMESTAMP > $DATE

Ekspresi berikut menunjukkan bagaimana Anda dapat menerapkan filter permintaan ke item yang dipromosikan. Ini hanya mencakup item pakaian yang tersedia sebagai item yang dipromosikan. Dalam skenario ini, juga Items.AVAILABLE IN ("True") akan digunakan dalam ekspresi filter permintaan, sehingga semua rekomendasi adalah untuk item yang tersedia.

INCLUDE ItemID WHERE Items.CATEGORY IN ("clothing") AND Items.AVAILABLE IN ("True")

Untuk daftar contoh filter yang lebih lengkap, lihatContoh ekspresi filter.

Mempromosikan item baru

Jika Anda menggunakanResep personalisasi-v2 pengguna, Amazon Personalize merekomendasikan item yang paling relevan kepada pengguna dan lebih sering merekomendasikan item yang ada dengan data interaksi. Untuk memastikan rekomendasi menyertakan beberapa item baru, Anda dapat menerapkan promosi ke permintaan rekomendasi yang menyertakan item berdasarkan stempel waktu pembuatan.

Jika Anda belum menggunakan promosi, ekspresi filter Anda dapat mempromosikan item yang dibuat setelah tanggal tertentu:

INCLUDE ItemID WHERE Items.CREATION_TIMESTAMP > $DATE

Jika Anda sudah menggunakan promosi, Anda membuat ekspresi yang merantai promosi dan pernyataan kondisi item baru:

INCLUDE ItemID WHERE Items.CATEGORY IN ("clothing") OR Items.CREATION_TIMESTAMP > $DATE

Mempromosikan item (konsol)

Untuk mempromosikan item tertentu dalam rekomendasi dengan konsol Amazon Personalize, buat filter, lalu berikan detail promosi dalam permintaan rekomendasi. Untuk informasi tentang bidang lain, lihatMendapatkan rekomendasi item (konsol).

Untuk mempromosikan item dalam rekomendasi
  1. Buka konsol Amazon Personalize di https://console.aws.amazon.com/personalize/home dan masuk ke akun Anda.

  2. Pilih grup kumpulan data yang berisi kampanye atau pemberi rekomendasi yang Anda gunakan.

  3. Jika Anda belum melakukannya, buat filter yang menentukan kriteria promosi. Anda membuat filter untuk promosi dengan cara yang sama seperti Anda membuat filter permintaan. Untuk informasi tentang membuat dan mengelola filter, lihatHasil penyaringan.

  4. Di panel navigasi, pilih Rekomendasi atau Kampanye.

  5. Pilih kampanye target atau pemberi rekomendasi.

  6. Untuk kampanye, di bawah Hasil kampanye Uji, masukkan detail permintaan rekomendasi Anda berdasarkan resep yang Anda gunakan. Untuk pemberi rekomendasi, pilih Rekomendasi tes dan masukkan detail permintaan rekomendasi Anda.

  7. Secara opsional pilih filter untuk permintaan tersebut. Filter ini hanya berlaku untuk item yang tidak dipromosikan. Untuk informasi tentang membuat dan mengelola filter, lihatHasil penyaringan.

  8. Jika Anda menggunakan metadata kontekstual, berikan data untuk setiap konteks. Untuk setiap konteks, untuk Key masukkan bidang metadata. Untuk Nilai, masukkan data konteks. Untuk informasi selengkapnya, lihat Meningkatkan relevansi rekomendasi dengan metadata kontekstual.

  9. Untuk Promosi tentukan hal berikut:

    • Persen item yang dipromosikan: Masukkan persentase item yang direkomendasikan untuk menerapkan promosi.

    • Filter: Pilih filter yang menentukan kriteria promosi. Filter ini berlaku untuk item yang dipromosikan, bukan filter permintaan apa pun yang mungkin telah Anda tentukan di langkah 7.

    • Parameter filter: Jika promosi Anda menggunakan filter dengan parameter placeholder, untuk setiap parameter, masukkan nilai untuk menetapkan kriteria filter. Untuk menggunakan beberapa nilai untuk satu parameter, pisahkan setiap nilai dengan koma.

  10. Pilih Dapatkan rekomendasi. Tabel yang berisi 25 item direkomendasikan teratas pengguna ditampilkan. Kolom item Promosi menunjukkan apakah item tersebut disertakan karena promosi Anda. Item yang dipromosikan diposisikan secara acak relatif terhadap item lain yang direkomendasikan, tetapi dalam urutan yang diurutkan relatif terhadap item promosi lainnya. Bergantung pada kasus penggunaan atau resep Anda, item yang direkomendasikan yang bukan bagian dari promosi diurutkan berdasarkan relevansi dengan pengguna, popularitas, atau kesamaan. Jika tidak ada cukup item yang memenuhi kriteria promosi, hasilnya akan berisi sebanyak mungkin item yang dipromosikan.

Mempromosikan item (AWS CLI)

Kode berikut menunjukkan cara mempromosikan item dalam rekomendasi dengan AWS CLI dan kampanye khusus. Untuk mempromosikan item dengan pemberi rekomendasi, ganti campaign-arn parameter dengan recommender-arn dan tentukan Nama Sumber Daya Amazon (ARN) untuk pemberi rekomendasi. Untuk bidang promosi, tentukan yang berikut ini:

  • nama: Beri nama promosi. Respons rekomendasi menggunakan nama untuk mengidentifikasi item yang dipromosikan.

  • percent-promoted-items: Persentase item yang direkomendasikan untuk menerapkan promosi. Dalam contoh ini, 50% item akan dipromosikan item.

  • FilterARN: Tentukan Nama Sumber Daya Amazon (ARN) dari filter yang menentukan kriteria promosi. Untuk informasi selengkapnya, lihat Filter promosi.

  • nama dan nilai parameter: Jika ekspresi filter Anda memiliki parameter apa pun, berikan nama parameter (peka huruf besar/kecil) dan nilainya. Misalnya, jika ekspresi filter Anda memiliki $GENRE parameter, berikan GENRE sebagai kunci, dan genre atau genre, seperti Komedi, sebagai nilai. Pisahkan beberapa nilai dengan koma. Saat Anda menggunakan AWS CLI, untuk setiap nilai Anda harus menggunakan / karakter untuk menghindari tanda kutip dan / karakter. Contoh kode berikut menunjukkan bagaimana memformat nilai-nilai.

Kode menunjukkan cara menggunakan filter permintaan dan filter promosi. Filter promosi hanya berlaku untuk item yang dipromosikan, sedangkan filter permintaan hanya berlaku untuk item yang direkomendasikan yang tersisa. Untuk informasi selengkapnya, lihat Filter promosi.

Untuk informasi tentang bidang tambahan, lihat Mendapatkan rekomendasi item (AWS SDK) danMendapatkan peringkat yang dipersonalisasi menggunakan metadata kontekstual.

aws personalize-runtime get-recommendations \ --campaign-arn CampaignArn \ --user-id 1 \ --num-results 10 \ --filter-arn RequestFilterArn \ --filter-values '{ "RequestFilterParameterName": "\"value\"", "RequestFilterParameterName": "\"value1\",\"value2\",\"value3\"" }' \ --promotions "[{ \"name\": \"promotionName\", \"percentPromotedItems\": 50, \"filterArn\": \"PromotionFilterARN\", \"filterValues\": {\"PromotionParameterName\":\"\\\"value1, value2\\\"\"} }]"

Daftar item yang direkomendasikan ditampilkan. Item yang dipromosikan diposisikan secara acak relatif terhadap item lain yang direkomendasikan, tetapi dalam urutan yang diurutkan relatif terhadap item promosi lainnya. Tergantung pada resep Anda, item yang direkomendasikan yang bukan bagian dari promosi diurutkan berdasarkan relevansi dengan pengguna, popularitas, atau kesamaan. Jika tidak ada cukup item yang memenuhi kriteria promosi, hasilnya akan berisi sebanyak mungkin item yang dipromosikan.

{ "itemList": [ { "itemId1": "123", "score": .0117211, "promotionName": "promotionName" }, { "itemId2": "456", "score": .0077976 }, { "itemId3": "789", "score": .0067171 }, ..... ]

Mempromosikan item (AWS SDK)

Kode berikut menunjukkan cara mempromosikan item dalam rekomendasi dengan SDK for Python (Boto3) dan SDK for Java 2.x dan kampanye kustom. Untuk mempromosikan item dengan pemberi rekomendasi, ganti campaignArn parameter dengan recommenderArn dan tentukan Nama Sumber Daya Amazon (ARN) untuk pemberi rekomendasi. Untuk bidang promosi, tentukan yang berikut ini:

  • nama: Tentukan nama promosi. Tanggapan rekomendasi mencakup nama untuk mengidentifikasi item yang dipromosikan.

  • percentPromotedItems: Persentase item yang direkomendasikan untuk menerapkan promosi.

  • PromotionFilterARN: Nama Sumber Daya Amazon (ARN) dari filter yang menentukan kriteria promosi. Untuk informasi selengkapnya, lihat Filter promosi.

  • Nama dan nilai parameter apa pun: Jika ekspresi filter Anda memiliki parameter apa pun, untuk setiap parameter dalam ekspresi filter Anda, berikan nama parameter (peka huruf besar/kecil) dan nilainya. Misalnya, jika ekspresi filter Anda memiliki $GENRE parameter, berikan "GENRE" sebagai kunci, dan genre atau genre, seperti “\" Comedy "\”, sebagai nilai. Pisahkan beberapa nilai dengan koma. Misalnya, "\"comedy\",\"drama\",\"horror"\".

Kode berikut menunjukkan cara menggunakan filter permintaan dan filter promosi. Filter promosi hanya berlaku untuk item yang dipromosikan, sedangkan filter permintaan hanya berlaku untuk item yang direkomendasikan yang tersisa. Untuk informasi selengkapnya, lihat Filter promosi.

Untuk informasi tentang bidang tambahan, lihat Mendapatkan rekomendasi item (AWS SDK) danMendapatkan peringkat yang dipersonalisasi menggunakan metadata kontekstual.

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = "CampaignARN", userId = '1', numResults = 10, filterArn = 'RequestFilterARN', filterValues = { "RequestFilterParameterName": "\"value1\"", "RequestFilterParameterName": "\"value1\",\"value2\",\"value3\"" .... }, promotions = [{ "name" : "promotionName", "percentPromotedItems" : 50, "filterArn": "promotionFilterARN", "filterValues": { "PromotionParameterName": "\"Value1\",\"Value2\"" ... } }] ) print("Recommended items") for item in response['itemList']: print (item['itemId']) if ("promotionName" in item): print(item['promotionName'])
SDK for Java 2.x
public static void getRecommendationsWithPromotedItems(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, String requestFilterArn, String requestParameterName, String requestParameterValue1, String requestParameterValue2, String promotionName, int percentPromotedItems, String promotionFilterArn, String promotionParameterName, String promotionParameterValue1, String promotionParameterValue2) { try { Map<String, String> promotionFilterValues = new HashMap<>(); promotionFilterValues.put(promotionParameterName, String.format("\"%1$s\",\"%2$s\"", promotionParameterValue1, promotionParameterValue2)); Promotion newPromotion = Promotion.builder() .name(promotionName) .percentPromotedItems(percentPromotedItems) .filterArn(promotionFilterArn) .filterValues(promotionFilterValues) .build(); List<Promotion> promotionList = new List<>(); promotionsList.add(newPromotion); Map<String, String> requestfilterValues = new HashMap<>(); requestfilterValues.put(requestParameterName, String.format("\"%1$s\",\"%2$s\"", requestParameterValue1, requestParameterValue2)); GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .filterArn(requestFilterArn) .fitlerValues(requestFilterValues) .promotions(promotionList) .build(); GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest); List<PredictedItem> items = recommendationsResponse.itemList(); for (PredictedItem item: items) { System.out.println("Item Id is : "+item.itemId()); System.out.println("Item score is : "+item.score()); System.out.println("Promotion name is : "+item.promotionName()); } } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { GetRecommendationsCommand, PersonalizeRuntimeClient } from "@aws-sdk/client-personalize-runtime"; // create personalizeRuntimeClient. const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION", }); // set recommendation request param export const getRecommendationsParam = { campaignArn: "CAMPAIGN_ARN", /* required */ userId: "USER_ID", /* required */ numResults: 25, /* optional */ filterArn: "FILTER_ARN", /* provide if you are applying a custom filter */ filterValues: { "PARAM_NAME": "\"PARAM_VALUE\"" /* provide if your filter has a placeholder parameter */ }, promotions: [ { name: "PROMOTION_NAME", /* specify the name of the promotion. The recommendation response includes the name to identify promoted items. */ percentPromotedItems: 50, /* the percentage of recommended items to apply the promotion to. */ filterArn: "PROMOTION_FILTER_ARN", /* the Amazon Resource Name (ARN) of the filter that defines the promotion criteria. */ filterValues: { "PARAM_NAME": "\"PARAM_VALUE\"" /* provide if your promotion filter has a placeholder parameter */ }, }, ], }; export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetRecommendationsCommand(getRecommendationsParam)); console.log("Success!", "\nItems are: "); response.itemList.forEach(element => console.log(element.itemId)) return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Daftar item yang direkomendasikan ditampilkan. Item yang dipromosikan diposisikan secara acak relatif terhadap item lain yang direkomendasikan, tetapi dalam urutan yang diurutkan relatif terhadap item promosi lainnya. Tergantung pada resep Anda, item yang direkomendasikan yang bukan bagian dari promosi diurutkan berdasarkan relevansi dengan pengguna, popularitas, atau kesamaan. Jika tidak ada cukup item yang memenuhi kriteria promosi, hasilnya akan berisi sebanyak mungkin item yang dipromosikan.

{ "itemList": [ { "itemId1": "123", "score": .0117211, "promotionName": "promotionName" }, { "itemId2": "456", "score": .0077976 }, { "itemId3": "789", "score": .0067171 }, ..... ]