

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 個人化執行配方
<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，您的項目資料集可以包含 [非結構化文字中繼資料](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 Resource Name (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>

下表說明個人化排名配方的超參數。*超參數* 是一種演算法參數，您可以調整以改善模型效能。演算法超參數可控制模型的執行方式。特徵化超參數可控制如何篩選要在訓練中使用的資料。選擇超參數最佳值的程序稱為超參數最佳化 (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，請在呼叫 [CreateSolution](API_CreateSolution.md) 和 [CreateSolutionVersion](API_CreateSolutionVersion.md) 操作時將 `performHPO` 設定為 `true`。<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>


## 個人化執行範例筆記本
<a name="personalized-ranking-sample-notebook"></a>

 如需示範如何使用個人化排名配方的範例 Jupyter 筆記本，請參閱[個人化排名範例](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb)。