

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 개인 맞춤형-순위 레시피
<a name="native-recipe-search"></a>

**중요**  
[Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md) 레시피를 사용하는 것이 좋습니다. 더 빠른 학습으로 최대 5백만 개의 항목을 고려하고 지연 시간이 더 짧은 더 정확한 순위를 생성할 수 있습니다.

개인 맞춤형-순위 레시피는 항목의 개인 맞춤형 순위를 생성합니다. 개인 맞춤형 순위는 특정 사용자에 맞춰 순위가 다시 매겨진 추천 항목 목록입니다.** 이 방법은 검색 결과, 프로모션 또는 선별된 목록과 같은 주문 항목이 많이 있고 각 사용자에게 개인 맞춤형 순위 재조정을 제공하려는 경우에 유용합니다. 예를 들어, 개인 맞춤형-순위를 사용하면 Personalize는 [OpenSearch](personalize-opensearch.md)로 생성한 검색 결과의 순위를 다시 매길 수 있습니다.

모델을 교육하기 위해 개인 맞춤형-순위 레시피는 항목 상호 작용 데이터 세트의 데이터를 사용하고, 생성한 경우 데이터 세트 그룹의 항목 데이터 세트와 사용자 데이터 세트의 데이터를 사용합니다. 두 데이터 세트는 선택 사항입니다. 개인 맞춤형-순위를 사용하면 항목 데이터 세트가 [비정형 텍스트 메타데이터](items-datasets.md#text-data)을, 항목 상호 작용 데이터 세트가 [컨텍스트 메타데이터](interactions-datasets.md#interactions-contextual-metadata)를 각각 포함시킬 수 있습니다. 개인 맞춤형 순위를 받으려면 [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md)API를 호출합니다.

 솔루션 버전을 만든 후에는 솔루션 버전과 데이터를 최신 상태로 유지해야 합니다. Personalized-Ranking을 사용하면 사용자의 최신 동작으로 모델을 업데이트하고 추천을 위한 새 항목을 고려하도록 Amazon Personalize를 위한 새 솔루션 버전을 수동으로 생성(모델 재학습)해야 합니다. 그런 다음 솔루션 버전을 사용하여 모든 캠페인을 업데이트해야 합니다. 자세한 내용은 [추천 관련성 유지](maintaining-relevance.md)단원을 참조하세요.

**참고**  
 순위를 매길 상호작용 데이터가 없는 항목을 제공하는 경우 Personalize는 GetPersonalizedranking API 응답에서 추천 점수 없이 이들 항목을 반환합니다.

이 레시피의 속성은 다음과 같습니다.
+  **명칭** – `aws-personalized-ranking`
+  **레시피 리소스 이름(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 노트북 샘플은 [순위 Personalize 순위 예제 단원](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb)을 참조하세요.