パーソナライズされたランキングの取得 - Amazon Personalize

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パーソナライズされたランキングの取得

パーソナライズされたランキングは、特定のユーザー向けに再ランク付けされた推奨事項のリストです。パーソナライズされたランキングを取得するには、GetPersonalizedRanking API 操作を呼び出すか、コンソールのキャンペーンからレコメンデーションを取得します。

注記

キャンペーンにデプロイするソリューションが PERSONALIZED_RANKING タイプのレシピを使用して作成済みであることが必要です。詳細については、「ステップ 1: レシピを選択する」を参照してください。

パーソナライズされたランキングスコアリングの仕組み

User-PersonalizationGetRecommendationsGetPersonalizedRanking レシピで作成されたソリューションの操作によって返されるスコアと同様に、スコアの合計は 1 になりますが、考慮されるアイテムのリストはカタログ全体よりもずっと小さいため、レコメンデーションスコアは高くなる傾向があります。

の数学的には、 GetPersonalizedRanking のスコアリング関数はと同じですがGetRecommendations、入力項目のみを考慮する点が異なります。これは、スコアを分割する他の選択肢が少なくなるため、1 に近いスコアの可能性が高くなることを意味します。

パーソナライズされたランキングの取得 (コンソール)

Amazon Personalize コンソールからユーザー向けにパーソナライズされたランキングを取得するには、使用しているキャンペーンを選択してからユーザー ID を入力し、ユーザーのためにランク付けするアイテムのリストを指定します。また、オプションで、フィルターを選択し、任意のコンテキストデータを指定します。

ユーザー向けのパーソナライズされたランキングを取得するには
  1. https://console.aws.amazon.com/personalize/home で Amazon Personalize コンソールを開き、アカウントにサインインします。

  2. 使用しているキャンペーンを含むデータセットグループを選択します。

  3. ナビゲーションペインで、[キャンペーン] を選択します。

  4. [Campaigns] (キャンペーン) ページで、ターゲットキャンペーンを選択します。

  5. [Test campaign results] (キャンペーン結果をテスト) で、レコメンデーションを取得するユーザーの [User ID] (ユーザー ID) を入力します。

  6. [Item IDs] (アイテム ID) で、ユーザーのためにランク付けするアイテムのリストを入力します。

  7. オプションでフィルターを選択します。詳細については、「レコメンデーションとユーザーセグメントのフィルタリング」を参照してください。

  8. キャンペーンでコンテキストメタデータを使用する場合 (要件については「コンテキストメタデータを使用したレコメンデーションの関連性の向上」を参照)、オプションでコンテキストデータを入力します。

    各コンテキストについて、[Key] (キー) にメタデータフィールドを入力し、[Value] (値) にコンテキストデータを入力します。

  9. [Get personalized item rankings] (パーソナライズされたアイテムのランキングを取得) を選択します。ユーザー向けの予測される関心の順にランク付けされたアイテムを含むテーブルが表示されます。

パーソナライズされたランキングの取得 (AWS CLI)

次の get-personalized-ranking コマンドを使用して、AWS CLI でパーソナライズされたランキングを取得します。キャンペーンの Amazon リソースネーム (ARN)、ユーザーのユーザー ID を指定し、ユーザー向けにランク付けするアイテムのアイテム ID のリストを提供します (それぞれスペースで区切ります)。ランク付けするアイテムは、ソリューションバージョンのトレーニングに使用したデータに含まれている必要があります。ランク付けされたレコメンデーションのリストが表示されます。Amazon Personalize は、ユーザーにとって最も関心のあるリストの最初のアイテムを考慮します。

aws personalize-runtime get-personalized-ranking \ --campaign-arn Campaign ARN \ --user-id 12 \ --input-list 3 4 10 8 12 7

パーソナライズされたランキングの取得 (AWS SDK)

次のコードは、ユーザー向けのパーソナライズされたランキングを取得する方法を示しています。ユーザーの ID と、ユーザーのためにランク付けするアイテム ID のリストを指定します。アイテム ID は、ソリューションバージョンのトレーニングに使用したデータに含まれている必要があります。ランク付けされたレコメンデーションのリストが返されます。Amazon Personalize は、ユーザーにとって最も関心のあるリストの最初のアイテムを考慮します。

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign arn", userId = "UserID", inputList = ['ItemID1','ItemID2'] ) print("Personalized Ranking") for item in response['personalizedRanking']: print (item['itemId'])
SDK for Java 2.x
public static List<PredictedItem> getRankedRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, ArrayList<String> items) { try { GetPersonalizedRankingRequest rankingRecommendationsRequest = GetPersonalizedRankingRequest.builder() .campaignArn(campaignArn) .userId(userId) .inputList(items) .build(); GetPersonalizedRankingResponse recommendationsResponse = personalizeRuntimeClient.getPersonalizedRanking(rankingRecommendationsRequest); List<PredictedItem> rankedItems = recommendationsResponse.personalizedRanking(); int rank = 1; for (PredictedItem item : rankedItems) { System.out.println("Item ranked at position " + rank + " details"); System.out.println("Item Id is : " + item.itemId()); System.out.println("Item score is : " + item.score()); System.out.println("---------------------------------------------"); rank++; } return rankedItems; } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { GetPersonalizedRankingCommand } from "@aws-sdk/client-personalize-runtime"; import { personalizeRuntimeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"}); // Set the ranking request parameters. export const getPersonalizedRankingParam = { campaignArn: "CAMPAIGN_ARN", /* required */ userId: 'USER_ID', /* required */ inputList: ["ITEM_ID_1", "ITEM_ID_2", "ITEM_ID_3", "ITEM_ID_4"] } export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetPersonalizedRankingCommand(getPersonalizedRankingParam)); console.log("Success!", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

コンテキストメタデータを使用した、パーソナライズされたランキングの取得 (AWS Python SDK)

コンテキストメタデータに基づいてパーソナライズされたランキングを取得するには、次のコードを使用します。context については、キーバリューペアごとに、メタデータフィールドをキーとして指定し、コンテキストデータを値として指定します。次のサンプルコードでは、キーは DEVICE で、値は mobile phone です。これらの値と Campaign ARN および User ID を、独自の値に置き換えます。また、inputList を、ソリューションのトレーニングに使用したデータにあるアイテム ID のリストに変更します。Amazon Personalize は、ユーザーにとって最も関心のあるリストの最初のアイテムを考慮します。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign ARN", userId = "User ID", inputList = ['ItemID1', 'ItemID2'], context = { 'DEVICE': 'mobile phone' } ) print("Personalized Ranking") for item in response['personalizedRanking']: print(item['itemId'])

Personalized-Ranking サンプルノートブック

Personalized-Ranking レシピの使用方法を示すサンプル Jupyter ノートブックについては、「Personalize Ranking の例」を参照してください。