

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

# Personalized-Ranking レシピ
<a name="native-recipe-search"></a>

**重要**  
[Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) レシピを使用することをお勧めします。トレーニングを高速化して最大 500 万アイテムを検討し、レイテンシーを低くしてより正確なランキングを生成できます。

Personalized-Ranking レシピは、アイテムのパーソナライズされたランキングを生成します。*パーソナライズされたランキング*は、特定のユーザー向けに再ランク付けされた推奨アイテムのリストです。これは、検索結果、プロモーション、厳選されたリストなど、順序付けされたアイテムのコレクションがあり、ユーザーごとにパーソナライズされた再ランク付けを提供する場合に有益です。例えば、Amazon Personalize は [OpenSearch](personalize-opensearch.md) で生成した検索結果をパーソナライズランキングで再ランク付けできます。

モデルをトレーニングするために、Personalized-Ranking レシピは、アイテムインタラクションデータセットのデータを使用し、ユーザーがそれらを作成した場合は、データセットグループのアイテムデータセットと Users データセットを使用します (これらのデータセットはオプションです)。Personalized-Ranking を使用すると、Items データセットに [非構造化テキストメタデータ](items-datasets.md#text-data) を含めることができ、アイテムインタラクションデータセットに [コンテキストメタデータ](interactions-datasets.md#interactions-contextual-metadata) を含めることができます。パーソナライズされたランキングを取得するには、[GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) API を使用します。

 ソリューションバージョンを作成した後は、必ずソリューションバージョンとデータを最新の状態に保ってください。Personalized-Ranking では、Amazon Personalize の新しいソリューションバージョンを手動で作成 (モデルを再トレーニング) して、新しいアイテムをレコメンデーションの対象として考慮し、ユーザーの最新の行動でモデルを更新する必要があります。次に、ソリューションバージョンを使用してキャンペーンを更新する必要があります。詳細については、「[レコメンデーションの関連性の維持](maintaining-relevance.md)」を参照してください。

**注記**  
 ランキングのためにインタラクションデータを含まないアイテムを指定した場合、Amazon Personalize は、GetPersonalizedRanking API レスポンスでレコメンデーションスコアなしでこれらのアイテムを返します。

このレシピには以下のプロパティがあります。
+  **名前** – `aws-personalized-ranking`
+  **レシピ Amazon リソースネーム (ARN)** – `arn:aws:personalize:::recipe/aws-personalized-ranking`
+  **アルゴリズム ARN** – `arn:aws:personalize:::algorithm/aws-personalized-ranking`
+  **機能変換 ARN** – `arn:aws:personalize:::feature-transformation/JSON-percentile-filtering`
+  **レシピタイプ** – `PERSONALIZED_RANKING`

## ハイパーパラメータ
<a name="personalized-ranking-hyperparameters"></a>

以下の表では、Personalize-Ranking レシピのハイパーパラメータについて説明します。*ハイパーパラメータは*、モデルパフォーマンスを向上させるために調整できるアルゴリズムパラメータです。アルゴリズムのハイパーパラメータは、モデルの実行方法を制御します。特徴化のハイパーパラメータは、トレーニングで使用するデータのフィルタリング方法を制御します。ハイパーパラメータに最適な値を選択するプロセスは、ハイパーパラメータの最適化 (HPO) と呼ばれます。詳細については、「[ハイパーパラメータおよび HPO](customizing-solution-config-hpo.md)」を参照してください。

このテーブルには、各ハイパーパラメータに関する以下の情報も含まれています。
+ **範囲**: [下限、上限]
+ **値のタイプ**: 整数、連続 (浮動小数点)、カテゴリ別 (ブール値、リスト、文字列)
+ **HPO 調整可能**: パラメータがハイパーパラメータ最適化 (HPO) に参加できますか?


<table>
<thead>
  <tr><th>名前</th><th>説明</th></tr>
</thead>
<tbody>
  <tr><td colspan="2">アルゴリズムのハイパーパラメータ</td></tr>
  <tr><td>hidden\_dimension</td><td>モデルで使用される非表示変数の数。*非表示の変数*は、ユーザーの購入履歴と商品統計を再作成して、ランキングスコアを生成します。アイテムインタラクションデータセットにより複雑なパターンが含まれている場合は、より多くの非表示ディメンションを指定します。使用する非表示のディメンションが多くなると、データセットが大きくなり、処理時間が長くなります。最適な値を決定するには、HPO を使用します。HPO を使用するには、`performHPO` オペレーション `true` とオペレーションを呼び出すときに [CreateSolution](API_CreateSolution.md) を [CreateSolutionVersion](API_CreateSolutionVersion.md) に設定します。<br />デフォルト値: 149<br />範囲: [32, 256]<br />値の型: 整数<br />HPO 調整可能: はい</td></tr>
  <tr><td>bptt</td><td>通し時間のバックプロパゲーションの手法を使用するかどうかを決定します。*通し時間のバックプロパゲーション*は、再帰的なニューラルネットワークベースのアルゴリズムの重みを更新する手法です。遅延報酬を早期イベントに接続するには、長期クレジットに `bptt` を使用します。例えば、遅延報酬には、数回のクリック後に行われる購入を指定できます。早期イベントは、最初のクリックにすることができます。クリックなどの同じイベントタイプ内であっても、長期的な効果を考慮し、合計報酬を最大化することをお勧めします。長期的な効果を考慮するには、より大きい `bptt` 値を使用します。大きな `bptt` 値を使用するには、より大きいデータセットと長い処理時間が必要です。<br />デフォルト値: 32<br />範囲: [2, 32]<br />値の型: 整数<br />HPO 調整可能: はい</td></tr>
  <tr><td>recency\_mask</td><td>モデルがアイテムインタラクションデータセットの最新の人気傾向を考慮する必要があるかどうかを決定します。最新の人気トレンドには、インタラクションイベントの基盤となるパターンの突然の変化が含まれる可能性があります。最近のイベントにより多くの重みを置くモデルをトレーニングするには、`recency_mask` を `true` に設定します。過去のすべてのインタラクションを均等に重み付けするモデルをトレーニングするには、`recency_mask` を `false` に設定します。同じ重みを使用して適切なレコメンデーションを取得するには、より大きなトレーニングデータセットが必要になる場合があります。<br />デフォルト値: `True`<br />範囲: `True` または `False`<br />値の型: ブール値<br />HPO 調整可能: はい</td></tr>
  <tr><td colspan="2">特徴化のハイパーパラメータ</td></tr>
  <tr><td>min\_user\_history\_length\_percentile</td><td>モデルのトレーニングに含めるユーザー履歴の長さの最小パーセンタイル。*履歴の長さ* は、ユーザーに関するデータの合計量です。履歴の長さが短いある割合のユーザーを除外するには、`min_user_history_length_percentile` を使用します。履歴が短いユーザーは、多くの場合、ユーザーの個人的なニーズや希望ではなく、アイテムの人気に基づくパターンを表示します。それらを削除すると、データの基盤となるパターンに重点を置いてモデルをトレーニングできます。ヒストグラムまたは同様のツールを使用して、ユーザー履歴の長さを確認した後で適切な値を選択します。大部分のユーザーを保持し、エッジケースを削除する値を設定することをお勧めします。<br /> 例えば、`min__user_history_length_percentile to 0.05` と `max_user_history_length_percentile to 0.95` を設定すると、履歴の長さが下位または上位 5% であるユーザーを除くすべてのユーザーが含まれます。<br />デフォルト値: 0.0<br />範囲: [0.0, 1.0]<br />値の型: 浮動小数点<br />HPO 調整可能: いいえ</td></tr>
  <tr><td>max\_user\_history\_length\_percentile</td><td>モデルのトレーニングに含めるユーザー履歴の長さの最大パーセンタイル。*履歴の長さ* は、ユーザーに関するデータの合計量です。`max_user_history_length_percentile` を使用して、ある割合の履歴の長さが長いユーザーを除外します。これらのユーザーのデータにはノイズが含まれる傾向があるためです。例えば、ロボットに自動化されたインタラクションの長いリストがあるとします。これらのユーザーを削除することで、トレーニングのノイズが制限されます。ヒストグラムまたは同様のツールを使用して、ユーザー履歴の長さを確認した後で適切な値を選択します。大部分のユーザーを保持し、エッジケースを削除する値を設定することをお勧めします。<br />例えば、`min__user_history_length_percentile to 0.05` と `max_user_history_length_percentile to 0.95` を設定すると、履歴の長さが下位または上位 5% であるユーザーを除くすべてのユーザーが含まれます。<br />デフォルト値: 0.99<br />範囲: [0.0, 1.0]<br />値の型: 浮動小数点<br />HPO 調整可能: いいえ</td></tr>
</tbody>
</table>


## Personalized-Ranking サンプルノートブック
<a name="personalized-ranking-sample-notebook"></a>

 Personalized-Ranking レシピの使用方法を示すサンプル Jupyter ノートブックについては、「[パーソナライズされたランキングの例](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb)」を参照してください。