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

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

パーソナライズされたランキングを取得する

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

注記

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

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

GetRecommendations オペレーションによって返されるスコアのように、GetPersonalizedRanking スコアの合計は 1 になりますが、考慮されるアイテムのリストは完全な Items データセットよりもはるかに小さいため、レコメンデーションスコアは高くなる傾向があります。

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

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

Amazon Personalize コンソールからユーザーのパーソナライズされたランキングを取得するには、使用しているキャンペーンを選択し、ユーザー ID を指定し、ユーザーにランク付けするアイテムのリストを指定し、必要に応じてフィルターを選択し、コンテキストデータを指定します。

ユーザーのパーソナライズされたランキングを取得するには

  1. 以下の Amazon Personalize コンソールを開きます。https://console.aws.amazon.com/personalize/homeアカウントにサインインします。

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

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

  4. リポジトリの []キャンペーンページで、ターゲットキャンペーンを選択します。

  5. []キャンペーンの結果をテストします。[] に、[ユーザー IDレコメンデーションを取得するユーザーの。

  6. を使用する場合項目/IDに、ユーザーにランク付けするアイテムのリストを入力します。

  7. 必要に応じて、フィルタを選択します。詳細については、「推奨事項のフィルタリング」を参照してください。

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

    コンテキストごとに、キーを選択し、メタデータフィールドを入力し、に、コンテキストデータを入力します。

  9. 選択パーソナライズされたアイテムのランキングを取得する。ユーザーの関心が予測される順にランク付けされた項目を含むテーブルが表示されます。

パーソナライズされたランキングを取得するには (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

パーソナライズされたランキングを取得するには (AWSSDK)

次のコードは、パーソナライズされたランキングを取得する方法を示しています。AWS SDK for Python (Boto3)またはAWS SDK for Java 2.x。

SDK for Python (Boto3)

以下のを使用します。get_personalized_rankingSDK for Python (Boto3) でパーソナライズされたランキングを取得する方法です。[] の値を変更します。userIdおよびinputListユーザー ID とアイテム ID とリスト ID アイテム ID は、ソリューションバージョンのトレーニングに使用したデータ内に含まれていることが必要です。ランク付けられた推奨事項が一覧表示されます。Amazon Personalize は、ユーザーに最も関連性が高いリストの最初のアイテムを考慮します。

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

以下のを使用します。getRankedRecsSDK for Java 2.x でパーソナライズされたランキングを取得する方法。パラメータとして、Amazon Personalize ランタイムクライアント、キャンペーンの Amazon リソースネーム(ARN)、ユーザーのユーザー ID、およびユーザーにランク付けされるアイテム ID のリストを渡します。アイテム ID は、ソリューションのトレーニングに使用したデータ内に含まれている必要があります。この方法は、最も関連性の低いものから最も関連性の低いものにランク付けされた推奨項目のリストを返します。

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; }

コンテキストメタデータを使用してパーソナライズされたランキングを取得する (AWSPython 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'])

パーソナライズされたランキングサンプルノートブック

パーソナライズされたランキングレシピの使用方法を示すサンプル Jupyter ノートブックについては、Personalize ランキングの例