이벤트 구성으로 솔루션 최적화 - Personalize

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

이벤트 구성으로 솔루션 최적화

중요

기본적으로 모든 새 솔루션은 자동 학습을 사용합니다. 자동 학습을 사용하면 솔루션이 활성화되어 있는 동안 학습 비용이 발생합니다. 불필요한 비용을 방지하기 위해 완료되면 솔루션을 업데이트하여 자동 학습을 끌 수 있습니다. 학습 비용에 대한 자세한 내용은 Amazon Personalize 요금을 참조하세요.

User-Personalization-v2 레시피 또는 Personalized-Ranking-v2 레시피를 사용하는 경우 이벤트 구성으로 Amazon Personalize 솔루션을 최적화할 수 있습니다.

항목 추천 레시피를 사용하는 경우 Amazon Personalize의 주요 목표는 과거 및 실시간 항목 상호 작용 데이터를 기반으로 사용자에게 가장 관련성이 높은 항목을 예측하는 것입니다. 그러나 상호 작용에는 사용자가 특정 항목을 클릭했는지 또는 구매했는지와 같은 추가 정보가 포함될 수 있습니다. 이벤트 유형(이벤트 유형 및 이벤트 값 데이터)을 기록하여 이를 기록할 수 있습니다. 솔루션을 구성할 때 솔루션이 다양한 상호 작용 이벤트 유형에 서로 다른 가중치를 부여하도록 할 수 있습니다. 예를 들어 purchase 이벤트보다 click 이벤트에 더 많은 가중치를 부여하도록 솔루션을 구성할 수 있습니다.

솔루션이 다양한 이벤트 유형에 다른 가중치를 부여하도록 하려면 솔루션의 이벤트 구성에서 이벤트 유형과 해당 가중치를 지정합니다. 또한 이벤트 값 임계값을 설정하여 이벤트 값이 해당 임계값 미만인 상호 작용은 제외할 수 있습니다. 예를 들어, 시청의 EVENT_TYPE이 포함된 이벤트의 EVENT_VALUE 데이터가 사용자가 시청한 동영상의 비율이고, 이벤트 값 임계값을 0.5로, 이벤트 유형을 시청으로 설정하면, Personalize는 EVENT_VALUE가 0.5 이상인 시청 상호작용 이벤트만 사용하여 모델을 교육합니다.

이벤트 유형과 관련된 가중치에 따라 중요도가 결정됩니다. 가중치가 높은 이벤트 유형을 사용하면 훈련된 모델이 해당 이벤트 유형과 상호 작용할 항목을 추천할 가능성이 높아집니다. 예를 들어 '클릭'보다 '구매'에 더 높은 가중치를 지정했고 사용자가 상호 작용 내역이 있는 항목 B를 클릭하거나 항목 C를 구매한다는 것을 알게 되었다면, 모델은 항목 C의 순위를 더 높게 매깁니다.

이벤트 구성으로 솔루션을 최적화하려면 User-Personalization-v2 레시피 또는 Personalized-Ranking-v2 레시피로 새 솔루션을 생성하고 이벤트 구성을 지정합니다. 이벤트 구성으로 기존 솔루션(솔루션을 업데이트하여 자동 학습 구성 변경)을 업데이트할 수도 있습니다.

Personalize 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWSSDK를 사용할 수 있습니다. Amazon Personalize 콘솔 사용에 대한 자세한 내용은 솔루션 생성(콘솔) 섹션을 참조하세요.

지침 및 요구 사항

다음은 이벤트 구성에 대한 지침 및 요구 사항입니다.

  • 다양한 이벤트 유형에 대한 가중치를 구성하려면 항목 상호 작용 데이터세트에 EVENT_TYPE 열이 있어야 합니다. EVENT_VALUE 열은 선택 사항입니다.

  • 구성에서 이벤트 파라미터 목록을 지정할 수 있습니다. 솔루션 생성에 고려되기를 바라는 모든 이벤트 유형을 포함합니다. 최대 10개의 이벤트 유형을 지정할 수 있습니다.

  • 각 이벤트 유형에 줄 이벤트 가중치를 지정할 수 있습니다. 이벤트 가중치는 0.0에서 1.0 사이여야 합니다. 이벤트 유형 간의 가중치 비율만이 중요합니다. 예를 들어 이벤트 유형 ‘구매’에 가중치 0.3, ‘클릭’에 0.1을 설정하면 ‘구매’를 가중치 0.6, ‘클릭’에 0.2를 설정하는 것과 결과는 동일합니다.

  • UpdateSolution API 작업을 사용하여 기존 솔루션의 이벤트 구성을 업데이트할 수 있습니다.

이벤트 가중치 구성을 사용하여 성능 측정

이벤트 구성 기능을 가진 솔루션에 대한 솔루션 버전을 생성(모델을 학습)하면 Amazon Personalize가 normalized_discounted_cumulative_gain_with_event_weights_at_k 지표를 생성합니다. normalized_discounted_cumulative_gain_with_event_weights_at_k의 점수는 각 이벤트 유형에 대해 설정한 이벤트 가중치를 고려하여 솔루션 버전이 얼마나 잘 작동하는지 알려줍니다.

K에서 정규화된 할인 누적 이득(NDCG)과 유사하지만 각 올바른 예측에 대한 보상에 가중치가 적용됩니다. 반대로 K의 원래 NDCG에서는 올바른 예측이 모두 1의 가중치를 갖습니다. 예를 들어 가중치가 0.3인 '구매'와 가중치가 0.1인 '클릭'을 설정한 경우 '구매' 항목을 올바르게 예측하면 1.5의 보상을 받는 동시에 '클릭' 항목을 예측하면 0.5의 보상을 받습니다.

지표 생성에 대한 자세한 내용은 지표를 사용하여 Amazon Personalize 솔루션 버전 평가단원을 참조하세요.

솔루션 최적화(AWS CLI)

User-Personalization-v2 또는 Personalized-Ranking-v2 레시피를 사용하여 이벤트 구성을 최적화할 수 있습니다.

AWS CLI를 사용하여 이벤트 구성으로 솔루션을 최적화하려면 새 솔루션을 생성하고 solutionConfig 객체의 eventsConfig 키를 사용하여 이벤트 구성 세부 정보를 지정합니다. eventsConfig에는 최대 10개의 eventParameter를 지정할 수 있는 eventParametersList의 키가 있습니다. 각 eventParameter에는 다음과 같은 필드가 있습니다.

  • eventType: 솔루션 생성에 고려할 이벤트 유형을 지정합니다.

  • eventValueThreshold: 이벤트 값 임계치를 지정합니다. 이벤트 값이 이 임계치 이상인 이벤트만 솔루션 생성에 고려됩니다.

  • weight: 각 이벤트 유형에 대한 가중치를 지정합니다. 가중치가 높을수록 생성된 솔루션에서 해당 이벤트 유형의 중요도가 높아집니다.

다음은 create-solution AWS CLI 명령의 예입니다. solution name, dataset group arnrecipe arn값을 사용자의 값으로 바꿉니다.

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn \ --solution-config "{\"eventsConfig\":{\"eventParametersList\":[{\"eventType\":\"Purchase\", \"eventValueThreshold\":0.1, \"weight\":0.3}, {\"eventType\":\"Click\", \"weight\":0.1}]}"

솔루션이 준비되면 새 솔루션 버전을 생성합니다(예제 명령은 솔루션 생성(AWS CLI)참조). 솔루션 버전을 만들었다면 솔루션 버전 지표로 최적화 성능을 볼 수 있습니다. 최적화 성능 측정을(를) 참조하세요.

솔루션 최적화(AWS SDK)

User-Personalization-v2 또는 Personalized-Ranking-v2 레시피를 사용하여 이벤트 구성을 최적화할 수 있습니다.

AWS SDK를 사용하여 이벤트 구성으로 솔루션을 최적화하려면, 새 솔루션을 생성하고 solutionConfig 객체의 eventsConfig 키를 사용하여 이벤트 구성 세부 정보를 지정합니다. eventsConfig에는 최대 10개의 eventParameters를 지정할 수 있는 eventParametersList의 키가 있습니다. 각 eventParameter에는 다음과 같은 필드가 있습니다.

  • eventType: 솔루션 생성에 고려할 이벤트 유형을 지정합니다.

  • eventValueThreshold: 이벤트 값 임계치를 지정합니다. 이벤트 값이 이 임계치 이상인 이벤트만 솔루션 생성에 고려됩니다.

  • weight: 각 이벤트 유형에 대한 가중치를 지정합니다. 가중치가 높을수록 생성된 솔루션에서 해당 이벤트 유형의 중요도가 높아집니다.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name= 'solution name', recipeArn = 'recipe arn', datasetGroupArn = 'dataset group arn', solutionConfig = { "eventsConfig": { "eventParametersList": [ {"eventType":"Purchase", "eventValueThreshold":0.1, "weight":0.3}, {"eventType":"Click", "weight":0.1} ] } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x
public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn, ) { try { EventsConfig eventsConfig = EventsConfig.builder() .eventsParameterList(eventsParameterList) .build(); SolutionConfig solutionConfig = SolutionConfig.builder() .eventsConfig(eventsConfig) .build(); CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .solutionConfig(solutionConfig) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "";

솔루션이 준비되면 새 솔루션 버전을 생성합니다(예제 명령은 솔루션 생성(AWS)참조). 솔루션 버전을 만들었다면 솔루션 버전 지표로 최적화 성능을 볼 수 있습니다. 최적화 성능 측정을(를) 참조하세요.