レコメンデーションの取得 - Amazon Personalize

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

レコメンデーションの取得

Amazon Personalize キャンペーンでは、パーソナライズされたおすすめ商品や類似商品のおすすめ商品を入手できます。おすすめは、Amazon Personalize コンソールで入手できます。AWS Command Line Interface(AWS CLI)、またはAWSSDK。

注記

PERSONALIZED_RANKING レシピを使用した場合は、パーソナライズされたランキングを取得する

スコアリングの仕組み

Amazon Personalize は、レコメンデーションを行うため、ユーザーのインタラクションデータとメタデータに基づいて Items データセット内のアイテムのスコアを生成します。これらのスコアは、Amazon Personalize が次に選択するアイテムがある、の相対的な確実性を表します。スコアが高いほど、確実性が高くなります。

USER_PERSONALIZATION レシピに基づくモデルは、Items データセット内のすべてのアイテムを、0~1 のスケールで互いに相対的にスコアリングし、すべてのスコアの合計が 1 になるようにします。たとえば、ユーザーから映画のレコメンデーションを取得していて、Items データセットに 3 本の映画がある場合、それらのスコアは 0.60.30.1 となります。同様に、インベントリに映画が 1,000 本ある場合、最も評価が高い映画のスコアは非常に小さくなる可能性があります (平均スコアは .001)。ただし、スコアリングは相対的であるため、レコメンデーションは引き続き有効です。

数学的には、各ユーザー項目のペア (u, i) のスコアは、次の式に従って計算されます。expは指数関数, wuとwi/jはそれぞれユーザーとアイテムの埋め込みであり、ギリシャ文字のシグマ(Σ)はアイテムデータセット内のすべてのアイテムの合計を表します。

注記

Amazon Personalize は、SIMS モデルや Popularity-Count ベースのモデルのスコアを表示しません。

推奨事項の取得 (コンソール)

Amazon Personalize eコンソールでレコメンデーションを取得するには、キャンペーンの詳細ページでレコメンデーションリクエスト情報を入力します。

ユーザーへの推奨事項を取得するには

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

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

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

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

  5. []キャンペーンの結果をテストします。で、使用したレシピに基づいて、レコメンデーションリクエストの詳細を入力します。USER_PERSONALIZATION レシピの場合は、ユーザー IDレコメンデーションを取得するユーザーの。RELATED_ITEMS レシピの場合は、アイテムIDAmazon Personalize が類似する商品を決定するために使用する商品の

    ユーザーがログインする前にイベントを記録した場合 (匿名ユーザー)、そのユーザーの推奨情報を取得するには、sessionIdの代わりに、それらのイベントからuserId。匿名ユーザー向けのイベントの記録についての詳細は、を参照してください。PutEvents オペレーション

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

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

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

  8. [Get recommendations (レコメンデーションの取得)] を選択します。ユーザーの上位 25 項目を含むテーブルが表示されます。

推奨事項の取得 (AWS CLI)

次のコードを使用して推奨事項を取得します。userId の値をソリューションをトレーニングするために使用したデータ内のユーザー ID に変更します。ユーザーへの推奨事項が上位10項目のリストに表示されます。推奨事項の数を変更するには、numResults。デフォルトは 25 項目です。最大数は 500 項目です。RELATED_ITEMS レシピを使用してキャンペーンをバックアップするソリューションバージョンをトレーニングした場合は、user-idパラメータをitem-idをクリックし、アイテム ID を指定します。

ユーザーがログインする前にイベントを記録した場合 (匿名ユーザー)、そのユーザーの推奨情報を取得するには、sessionIdの代わりに、それらのイベントからuserId。匿名ユーザー向けのイベントの記録についての詳細は、を参照してください。PutEvents オペレーション

aws personalize-runtime get-recommendations \ --campaign-arn campaign arn \ --user-id User ID \ --num-results 10

推奨事項の取得 (AWSSDK)

次のコードは、SDK for Python (Boto3) または SDK for Java 2.x を使用して Amazon Personalize レコメンデーションを取得する方法を示しています。userId の値をソリューションをトレーニングするために使用したデータ内のユーザー ID に変更します。ユーザーへの推奨事項が上位10項目のリストに表示されます。推奨事項の数を変更するには、numResults。デフォルトは 25 項目です。最大数は 500 項目です。RELATED_ITEMS レシピを使用してキャンペーンをバックアップするソリューションバージョンをトレーニングした場合は、userIdパラメータをitemIdをクリックし、アイテム ID を指定します。

ユーザーがログインする前にイベントを記録した場合 (匿名ユーザー)、そのユーザーの推奨情報を取得するには、sessionIdの代わりに、それらのイベントからuserId。匿名ユーザー向けのイベントの記録についての詳細は、を参照してください。PutEvents オペレーション

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', numResults = 10 ) print("Recommended items") for item in response['itemList']: print (item['itemId'])
SDK for Java 2.x
public static void getRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId){ try { GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .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()); } } catch (AwsServiceException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

コンテキストメタデータを使用したレコメンデーションの取得(AWSPython SDK)

次のコードを使用して、コンテキストメタデータに基づいてレコメンデーションを取得します。を使用する場合contextでは、キー/値のペアごとに、メタデータフィールドをキーとして、コンテキストデータを値として指定します。次のサンプルコードでは、キーはDEVICEであり、値はmobile phone。これらの値とCampaign ARNおよびUser ID独自の値を持ちます。ユーザーへの推奨事項が一覧表示されます。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', context = { 'DEVICE': 'mobile phone' } ) print("Recommended items") for item in response['itemList']: print (item['itemId'])