翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
開始方法 (AWS CLI)
この演習では、AWS Command Line Interface(AWS CLI) にアクセスして Amazon Personalize。映画のレコメンデーションを特定のユーザー ID に返すキャンペーンを作成します。
この演習を開始する前に、以下を実行します。
-
開始方法「開始方法の前提条件」を見る
-
AWS CLI をセットアップします。「AWS CLI の設定」の手順に従ってください。
入門ガイドの演習を完了したら、不要な料金が発生しないように、の手順に従います。リソースをクリーンアップするをクリックして作成したリソースを削除します。
-AWS CLIこの演習のコマンドは Linux でテストされています。の使用方法の詳細については、AWS CLIWindows のコマンドについては、「」を参照してください。のパラメータ値の指定AWS Command Line InterfaceのAWS Command Line Interfaceユーザーガイド。
次の手順に従って、データセットグループを作成し、このグループにデータセットを追加します。次に、映画のレーティングデータを使用してデータセットを事前設定します。
-
次のコマンドを実行してデータセットグループを作成します。データセットグループを暗号化するには、AWS Key Management Serviceキー ARN と、そのキーへのアクセス許可を持つIAM ロールのARN を入力パラメータとして渡します。 API の詳細については、「CreateDatasetGroup」を参照してください。
aws personalize create-dataset-group --name MovieRatingDatasetGroup --kms-key-arn
arn:aws:kms:us-west-2:01234567890:key/1682a1e7-a94d-4d92-bbdf-837d3b62315e
--role-arnarn:aws:iam::01234567890:KMS-key-access
データセットグループの ARN が表示されます。次に例を示します。
{ "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup" }
作成したデータセットグループを表示するには、返されたデータセットグループの ARN を指定して、
describe-dataset-group
コマンドを使用します。aws personalize describe-dataset-group \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroupデータセットグループとそのプロパティが表示されます。次に例を示します。
{ "datasetGroup": { "name": "MovieRatingDatasetGroup", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "status": "ACTIVE", "creationDateTime": 1542392161.262, "lastUpdatedDateTime": 1542396513.377 } }
注記 データセットグループ内にデータセットを作成するには、データセットグループの
status
が ACTIVE になるまで待ちます。通常、このオペレーションは高速に処理されます。データセットグループの ARN が不明な場合は、
list-dataset-groups
コマンドを使用して、作成したすべてのデータセットグループとその ARN を表示します。aws personalize list-dataset-groups
注記 -
describe-object
そしてlist-objects
コマンドは、ほとんどの Amazon Personalize オブジェクトで使用できます。これらのコマンドは、この演習で以後取り扱いませんが、いつでも使用可能です。 -
次のコードを
MovieRatingSchema.json
という名前のファイルに保存して、スキーマファイルを JSON 形式で作成します。スキーマは、以前にratings.csv
に追加したヘッダーと一致します。スキーマ名Interactions
は Amazon Personalize で認識される 3 種類のデータセットの 1 つと一致します。詳細については、「データセットとスキーマ」を参照してください。{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
-
次のコマンドを実行してスキーマを作成します。前のステップで保存したファイルを指定します。次の例は、現在のフォルダに属するファイルを示しています。 API の詳細については、「CreateSchema」を参照してください。
aws personalize create-schema \ --name MovieRatingSchema \ --schema file://MovieRatingSchema.json
スキーマの Amazon リソースネーム (ARN) が表示されます。次に例を示します。
{ "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/MovieRatingSchema" }
-
次のコマンドを実行して空のデータセットを作成します。前のステップで返されたデータセットグループの ARN とスキーマの ARN を指定します。
dataset-type
は、前のステップのスキーマname
と一致する必要があります。 API の詳細については、「CreateDataset」を参照してください。aws personalize create-dataset \ --name MovieRatingDataset \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroup \ --dataset-type Interactions \ --schema-arn arn:aws:personalize:us-west-2:acct-id
:schema/MovieRatingSchemaデータセットの ARN が表示されます。次に例を示します。
{ "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS" }
-
トレーニングデータをデータセットに追加します。
-
次のコマンドを実行してデータセットのインポートジョブを作成します。前のステップで返されたデータセットの ARN と Amazon S3 バケット名を指定します。への入力方法AWS Identity and Access Management「」で作成した (IAM) ロール ARNAmazon Personalize 用の IAM ロールの作成。 API の詳細については、「CreateDatasetImportJob」を参照してください。
aws personalize create-dataset-import-job \ --job-name MovieRatingImportJob \ --dataset-arn arn:aws:personalize:us-west-2:
acct-id
:dataset/MovieRatingDatasetGroup/INTERACTIONS \ --data-source dataLocation=s3://bucketname
/ratings.csv \ --role-arnroleArn
データセットのインポートジョブの ARN が表示されます。次に例を示します。
{ "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob" }
-
describe-dataset-import-job
コマンドを使用してステータスを確認します。前のステップで返されたデータセットのインポートジョブの ARN を指定します。 API の詳細については、「DescribeDatasetImportJob」を参照してください。aws personalize describe-dataset-import-job \ --dataset-import-job-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-import-job/MovieRatingImportJobデータセットのインポートジョブのプロパティとそのステータスが表示されます。最初、
status
は CREATE PENDING と表示されます。次に例を示します。{ "datasetImportJob": { "jobName": "MovieRatingImportJob", "datasetImportJobArn": "arn:aws:personalize:us-west-2:acct-id:dataset-import-job/MovieRatingImportJob", "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/MovieRatingDatasetGroup/INTERACTIONS", "dataSource": { "dataLocation": "s3://<bucketname>/ratings.csv" }, "roleArn": "role-arn", "status": "CREATE PENDING", "creationDateTime": 1542392161.837, "lastUpdatedDateTime": 1542393013.377 } }
ステータスが ACTIVE と表示されると、データセットのインポートが完了します。これで、指定したデータセットを使用してモデルをトレーニングする準備が整いました。
注記 インポートには時間がかかります。データセットのインポートが完了するまで待ってから、データセットを使用してモデルのトレーニングを開始します。
-
モデルを初めてトレーニングするには 2 つのステップが必要です。まず、CreateSolution オペレーションを使用してモデルをトレーニングするための設定を作成します。 次に、CreateSolutionVersion オペレーションを使用してモデルをトレーニングします。
レシピとトレーニングデータを使用してモデルをトレーニングします。Amazon Personalize は、一連の定義済みレシピを提供します。詳細については、「ステップ 1: レシピの選択」を参照してください。この演習では、User-Personalization レシピを使用します。
-
モデルトレーニングの設定を作成するには、次のコマンドを実行します。
aws personalize create-solution \ --name MovieSolution \ --dataset-group-arn arn:aws:personalize:us-west-2:
acct-id
:dataset-group/MovieRatingDatasetGroup \ --recipe-arn arn:aws:personalize:::recipe/aws-user-personalizationソリューションの ARN が表示されます。次に例を示します。
{ "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution" }
-
をチェックします。作成を使用したステータスの表示
describe-solution
コマンド。前のステップで返されたソリューションの ARN を指定します。 API の詳細については、「DescribeSolution」を参照してください。aws personalize describe-solution \ --solution-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolutionソリューションのプロパティと作成の
status
が表示されます。最初、ステータスには CREATE PENDING と表示されます。次に例を示します。{ "solution": { "name": "MovieSolution", "solutionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution", "performHPO": false, "performAutoML": false, "recipeArn": "arn:aws:personalize:::recipe/aws-user-personalization", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/MovieRatingDatasetGroup", "solutionConfig": {}, "status": "ACTIVE", "creationDateTime": "2021-05-12T16:27:59.819000-07:00", "lastUpdatedDateTime": "2021-05-12T16:27:59.819000-07:00" } }
-
ソリューションが ACTIVE の場合、次のコマンドを実行してモデルをトレーニングします。
aws personalize create-solution-version \ --solution-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolutionソリューションバージョンの ARN が表示されます。次に例を示します。
{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>" }
をチェックします。トレーニングを使用したソリューションバージョンのステータス
describe-solution-version
コマンド。前のステップで返ったソリューションバージョンの ARN を指定します。 API の詳細については、「DescribeSolutionVersion」を参照してください。aws personalize describe-solution-version \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
ソリューションバージョンのプロパティとトレーニングの
status
が表示されます。最初、ステータスには CREATE PENDING と表示されます。次に例を示します。{ "solutionVersion": { "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", ..., "status": "CREATE PENDING" } }
-
ソリューションバージョンの場合
status
がアクティブになったら、トレーニングは完了します。次に、トレーニングメトリクスを確認し、このソリューションバージョンを使用してキャンペーンを作成できます。
注記 トレーニングには時間がかかります。トレーニングが完了する (ソリューションバージョンのトレーニングのステータスが ACTIVE と表示される) まで待ってから、このバージョンのソリューションをキャンペーンで使用します。
-
ソリューションバージョンのパフォーマンスを検証するには、そのメトリクスを確認できます。次のコマンドを実行して、ソリューションバージョンのメトリクスを取得します。以前に返ったソリューションバージョンの ARN を指定します。 API の詳細については、「GetSolutionMetrics」を参照してください。
aws personalize get-solution-metrics \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
レスポンスの例を次に示します。
{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/www-solution/<version-id>", "metrics": { "coverage": 0.0485, "mean_reciprocal_rank_at_25": 0.0381, "normalized_discounted_cumulative_gain_at_10": 0.0363, "normalized_discounted_cumulative_gain_at_25": 0.0984, "normalized_discounted_cumulative_gain_at_5": 0.0175, "precision_at_10": 0.0107, "precision_at_25": 0.0207, "precision_at_5": 0.0107 } }
レコメンデーションを取得するには、事前にソリューションバージョンをデプロイする必要があります。ソリューションのデプロイは、キャンペーンの作成とも呼ばれます。キャンペーンを作成すると、クライアントアプリケーションは GetRecommendations API を使用してレコメンデーションを取得できます。
-
次のコマンドを実行してキャンペーンを作成します。前のステップで返ったソリューションバージョンの ARN を指定します。 API の詳細については、「CreateCampaign」を参照してください。
aws personalize create-campaign \ --name MovieRecommendationCampaign \ --solution-version-arn arn:aws:personalize:us-west-2:
acct-id
:solution/MovieSolution/version-id
\ --min-provisioned-tps 1レスポンスの例を次に示します。
{ "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign" }
-
次のコマンドを実行してデプロイのステータスを確認します。前のステップで返されたキャンペーンの ARN を指定します。 API の詳細については、「DescribeCampaign」を参照してください。
aws personalize describe-campaign \ --campaign-arn arn:aws:personalize:us-west-2:
acct-id
:campaign/MovieRecommendationCampaignレスポンスの例を次に示します。
{ "campaign": { "name": "MovieRecommendationCampaign", "campaignArn": "arn:aws:personalize:us-west-2:acct-id:campaign/MovieRecommendationCampaign", "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", "minProvisionedTPS": "1", "creationDateTime": 1543864775.923, "lastUpdatedDateTime": 1543864791.923, "status": "CREATE IN_PROGRESS" } }
注記 キャンペーンからレコメンデーションを取得するには、
status
が ACTIVE と表示されるまで待ちます。
get-recommendations
コマンドを実行してレコメンデーションを取得します。前のステップで返されたキャンペーンの ARN を指定します。リクエストでは、映画のレーティングデータセットのユーザー ID を指定します。 API の詳細については、「GetRecommendations」を参照してください。
すべてのレシピで GetRecommendations
API がサポートされているわけではありません。詳細については、「ステップ 1: レシピの選択」を参照してください。
このステップで呼び出す AWS CLI コマンド (personalize-runtime
) は、以前のステップとは異なります。
aws personalize-runtime get-recommendations \ --campaign-arn arn:aws:personalize:us-west-2:
acct-id
:campaign/MovieRecommendationCampaign \ --user-id 123
キャンペーンは、ユーザーが好むと思われるアイテムのレコメンデーション (映画 ID) のリストをレスポンスで返します。リストは、ユーザーに関連する度合いの高い順 (降順) にソートされます。
{ "itemList": [ { "itemId": "14" }, { "itemId": "15" }, { "itemId": "275" }, { "itemId": "283" }, { "itemId": "273" }, ... ] }