기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자-개인 맞춤 레시피
중요
User-Personalization-v2 레시피를 사용하는 것이 좋습니다. 더 빠른 학습으로 최대 5백만 개의 항목을 고려하고 지연 시간을 줄이면서 더 관련성이 높은 추천 사항을 생성할 수 있습니다.
사용자-개인 맞춤(aws-user-personalization) 레시피는 모든 개인 맞춤형 추천 시나리오에 최적화되어 있습니다. 사용자가 상호 작용할 가능성이 가장 높은 항목을 예측합니다. User-Personalization을 사용하여 스트리밍 앱에 대한 개인 맞춤형 영화 추천 또는 소매 앱에 대한 개인 맞춤형 제품 추천을 생성할 수 있습니다.
User-Personalization을 통해 Amazon Personalize는 주로 항목 상호 작용 데이터세트의 사용자 항목 상호 작용 데이터를 기반으로 추천 사항을 생성합니다. 또한 항목 및 사용자 데이터세트의 모든 항목 및 사용자 메타데이터를 사용할 수 있습니다. 사용하는 데이터에 대한 자세한 내용은 필수 및 선택형 데이터 세트 섹션을 참조하세요.
주제
레시피 기능
User-Personalization은 항목 추천을 생성할 때 다음과 같은 Amazon Personalize 레시피 기능을 사용합니다.
-
실시간 개인 맞춤: Amazon Personalize는 실시간 개인 맞춤을 통해 사용자의 변화하는 관심에 따라 항목 추천을 업데이트하고 조정합니다. 자세한 내용은 실시간 개인 맞춤 단원을 참조하십시오.
-
탐색 – 탐색의 경우 추천에는 새로운 작업이나 상호 작용 데이터가 적은 작업이 포함됩니다. 이렇게 하면 카탈로그가 빠르게 변경되거나 뉴스 기사나 홍보와 같은 새 항목을 새로 만들었을 때 사용자에게 더 관련성이 높은 항목을 발견하고 참여도를 높일 수 있습니다. 탐색에 대한 자세한 내용은 탐색단원을 참조하세요.
-
자동 업데이트 – Amazon Personalize는 자동 업데이트를 통해 2시간마다 최신 모델(솔루션 버전)을 자동으로 업데이트하여 추천에 새로운 항목을 고려합니다. 자세한 내용은 자동 업데이트 단원을 참조하십시오.
필수 및 선택형 데이터 세트
User-Personalization을 사용하려면 항목 상호 작용 데이터세트를 생성하고 최소 1,000개의 항목 상호 작용을 가져와야 합니다. Amazon Personalize는 주로 항목 상호작용 데이터를 기반으로 추천을 생성합니다.
User-Personalization을 통해 Amazon Personalize는 다음을 포함하는 항목 상호 작용 데이터를 사용할 수 있습니다.
-
이벤트 유형 및 이벤트 값 데이터 - Amazon Personalize는 클릭 또는 감시 이벤트 유형과 같은 이벤트 유형 데이터를 사용하여 동작의 패턴을 통해 사용자 의도와 관심을 식별합니다. 또한 이벤트 유형 및 이벤트 값 데이터를 사용하여 학습 전에 레코드를 필터링할 수 있습니다. 자세한 내용은 이벤트 유형 및 이벤트 값 데이터 단원을 참조하십시오.
-
컨텍스트 메타데이터 – 컨텍스트 메타데이터는 이벤트 발생 시 사용자 환경에서 수집하는 상호작용 데이터(예: 위치 또는 디바이스 유형)입니다. 자세한 내용은 컨텍스트 메타데이터 단원을 참조하십시오.
-
노출 데이터 – 노출은 사용자가 특정 항목과 상호작용(클릭, 시청, 구매 등) 했을 때 사용자에게 보이는 항목의 목록입니다. 자세한 내용은 노출 데이터 단원을 참조하십시오.
다음 데이터세트는 선택 사항이며 추천 사항을 개선할 수 있습니다.
-
사용자 데이터세트 – Amazon Personalize는 사용자 데이터세트의 모든 데이터를 바탕으로 사용자와 사용자의 관심사를 더 잘 이해할 수 있습니다. 또한 사용자 데이터세트의 데이터를 사용하여 추천 사항을 필터링할 수 있습니다. 가져올 수 있는 사용자 데이터에 대한 자세한 내용은 사용자 메타데이터 섹션을 참조하세요.
-
항목 데이터세트: Amazon Personalize는 항목 데이터세트의 데이터를 사용하여 행위의 연관성과 패턴을 식별합니다. 이를 통해 Amazon Personalize는 사용자와 관심사를 이해할 수 있습니다. 또한 항목 데이터세트의 데이터를 사용하여 추천 사항을 필터링할 수 있습니다. 가져올 수 있는 항목 데이터에 대한 자세한 내용은 항목 메타데이터 섹션을 참조하세요.
속성 및 하이퍼파라미터
사용자-개인 맞춤 레시피의 속성은 다음과 같습니다.
-
명칭 –
aws-user-personalization
-
레시피 리소스 이름(ARN) -
arn:aws:personalize:::recipe/aws-user-personalization
-
알고리즘 ARN -
arn:aws:personalize:::algorithm/aws-user-personalization
자세한 내용은 레시피 선택단원을 참조하세요.
다음 표에서는 사용자-개인 맞춤 레시피의 하이퍼파라미터를 설명합니다. 하이퍼파라미터는 모델 성능을 향상시키기 위해 조정할 수 있는 알고리즘 파라미터입니다. 알고리즘 하이퍼파라미터는 모델이 성능을 내는 방식을 제어합니다. 특성화 하이퍼파라미터는 학습에서 사용할 데이터를 필터링하는 방법을 제어합니다. 하이퍼파라미터에 대한 최적 값을 선택하는 과정을 하이퍼파라미터 최적화(HPO)라고 합니다. 자세한 내용은 하이퍼파라미터 및 HPO 단원을 참조하십시오.
표에는 각 하이퍼파라미터에 대한 다음 정보가 표시됩니다.
-
범위: [하한, 상한]
-
값 형식: 정수, 연속(부동 소수점), 범주(부울, 목록, 문자열)
-
조정 가능한 HPO: 파라미터가 HPO에 참여할 수 있습니까?
명칭 | 설명 |
---|---|
알고리즘 하이퍼파라미터 | |
hidden_dimension |
모델에 사용된 숨겨진 변수 개수. 숨겨진 변수는 사용자의 구매 이력 및 항목 통계를 재생성하여 순위 점수를 생성합니다. 항목 상호 작용 데이터 세트에 더 복잡한 패턴이 포함되는 경우 더 많은 숨겨진 차원을 지정합니다. 더 많은 숨겨진 차원을 사용하는 데는 더 큰 데이터세트와 더 많은 처리 시간이 필요합니다. 최상의 값을 결정하려면 HPO를 사용합니다. HPO를 사용하려면 CreateSolution및 CreateSolutionVersion작업 호출 시 기본 값: 149 범위: [32, 256] 값 형식: 정수 HPO 조정 가능: 예 |
bptt |
시간 기법을 통한 역전파를 사용할지 여부를 결정합니다. 시간을 기준으로 한 역전파는 반복 신경망 기반 알고리즘의 가중치를 업데이트하는 기법입니다. 장기 크레딧에 대한 기본 값: 32 범위: [2, 32] 값 형식: 정수 HPO 조정 가능: 예 |
recency_mask |
모델이 항목 상호 작용 데이터 세트의 최신 인기 트렌드를 고려해야 하는지 여부를 결정합니다. 최신 인기 트렌드에는 상호작용 이벤트 기본 패턴의 갑작스러운 변경이 포함될 수 있습니다. 최신 이벤트에 더 많은 가중치를 부여하는 모델을 학습시키려면 기본 값: 범위: 값 형식: 부울 HPO 조정 가능: 예 |
특성화 하이퍼파라미터 | |
min_user_history_length_percentile |
모델 학습에 포함시킬 사용자 이력 길이의 최소 백분위수. 이력 길이는 사용자에 대한 데이터의 총 용량입니다. 이력 길이가 짧은 사용자의 백분율을 제외시키려면 예를 들어 기본 값: 0.0 범위: [0.0, 1.0] 값 형식: 부동 소수점 HPO 조정 가능: 아니요 |
max_user_history_length_percentile |
모델 학습에 포함시킬 사용자 이력 길이의 최대 백분위수. 이력 길이는 사용자에 대한 데이터의 총 용량입니다. 이력 길이가 긴 사용자의 백분율을 제외시키려면 예를 들어 기본 값: 0.99 범위: [0.0, 1.0] 값 형식: 부동 소수점 HPO 조정 가능: 아니요 |
항목 탐색, 캠페인 구성, 하이퍼파라미터 | |
exploration_weight |
항목 상호 작용 데이터나 관련성이 낮은 항목을 추천에 포함시키는 빈도를 결정합니다. 값이 1에 가까울수록 더 많이 탐색합니다. 0이면 탐색이 수행되지 않으며 추천이 현재 데이터(관련성)를 기반으로 합니다. 자세한 내용은 CampaignConfig단원을 참조하세요. 기본 값: 0.3 범위: [0.0, 1.0] 값 형식: 부동 소수점 HPO 조정 가능: 아니요 |
exploration_item_age_cut_off |
항목 상호 작용 데이터 세트의 모든 항목에서 최근 상호 작용이 발생한 이후 최대 항목 사용 기간(일)을 지정합니다. 이렇게 하면 항목 기간에 따른 항목 탐색 범위가 정의됩니다. Amazon Personalize는 생성 타임스탬프 또는 생성 타임스탬프 데이터가 누락된 경우 항목 상호 작용 데이터를 기반으로 항목 사용 기간을 결정합니다. Personalize가 항목의 수명을 결정하는 방법에 대한 자세한 내용은 생성 타임스탬프 데이터단원을 참조하세요. Personalize가 탐색 중에 고려하는 항목을 늘리려면 더 큰 값을 입력합니다. 최소값은 1일이고, 기본값은 30일입니다. 지정한 항목 보관 기간 한도보다 오래된 항목이 추천에 포함될 수 있습니다. 이는 이러한 항목이 사용자와 관련이 있고 탐색에서 해당 항목을 식별할 수 없었기 때문입니다. 기본 값: 30.0 범위: 양의 부동 소수점 값 형식: 부동 소수점 HPO 조정 가능: 아니요 |
사용자-개인 맞춤 레시피를 사용한 학습(콘솔)
사용자-개인 맞춤 레시피를 사용하여 콘솔에서 추천을 생성하려면 먼저 레시피를 사용하여 새 솔루션 버전을 학습시킵니다. 그런 다음 솔루션 버전을 사용하여 캠페인을 배포하고 캠페인을 사용하여 추천을 받습니다.
사용자-개인 맞춤 레시피를 사용한 새 솔루션 버전 학습(콘솔)
-
https://console.aws.amazon.com/acm-pca/home
에서 Personalize 콘솔을 열고 계정에 로그인합니다. -
새 스키마를 사용하여 사용자 지정 데이터세트 그룹을 만들고 노출 데이터가 포함된 데이터세트를 업로드합니다. Personalize가 항목의 수명을 더 정확하게 계산하고 콜드 항목을 식별할 수 있도록 항목 데이터세트에 CREATION_TIMESTAMP 및 비정형 텍스트 메타데이터데이터를 선택적으로 포함시킵니다.
데이터 가져오기에 대한 자세한 내용은 Amazon Personalize 데이터세트로 학습 데이터 가져오기단원을 참조하세요.
-
데이터세트 그룹 페이지에서 노출 데이터가 포함된 데이터세트를 포함하는 새 데이터세트 그룹을 선택합니다.
-
탐색 창에서 솔루션 및 레시피를 선택하고, 솔루션 생성을 선택합니다.
-
솔루션 생성 페이지에서 솔루션 이름에 새 솔루션의 이름을 입력합니다.
-
솔루션 유형에 대해 항목 추천을 선택하여 사용자를 위한 항목 추천을 받습니다.
-
레시피의 경우 aws-user-personalization을 선택합니다. 여러 구성 옵션을 제공하는 솔루션 구성 섹션이 나타납니다.
-
추가 구성에서 항목 상호 작용 데이터세트에 EVENT_TYPE 또는 EVENT_TYPE과 EVENT_VALUE 열이 모두 있는 경우, 원하는 이벤트 유형 및 이벤트 값 임계치 필드를 사용하여 Amazon Personalize가 모델을 학습할 때 사용하는 항목 상호 작용 데이터를 선택합니다. 자세한 내용은 교육에 사용할 항목 상호 작용 데이터 선택 단원을 참조하십시오.
-
솔루션에 맞게 하이퍼파라미터를 구성할 수도 있습니다. 사용자-개인 맞춤 레시피 속성 및 하이퍼파라미터의 목록은 속성 및 하이퍼파라미터단원을 참조하세요.
-
솔루션 생성 및 학습을 선택하여 학습을 시작합니다. 대시보드 페이지가 표시됩니다.
솔루션 세부 정보 페이지로 이동하여 솔루션 버전 섹션에서 학습 진행 상황을 추적할 수 있습니다. 상태가 활성인 경우 학습이 완료된 것입니다.
캠페인 생성 및 추천 받기(콘솔)
솔루션 버전 상태가 활성이면 다음과 같이 캠페인을 만들고 추천을 받을 수 있습니다.
-
솔루션 세부 정보 페이지 또는 캠페인 페이지에서 새 캠페인 생성을 선택합니다.
-
새 캠페인 생성 페이지에서 캠페인 세부 정보에 대해 다음 정보를 제공합니다.
-
캠페인 이름: 캠페인 이름을 입력합니다. 여기에 입력하는 텍스트는 캠페인 대시보드 및 세부 정보 페이지에 표시됩니다.
-
솔루션: 방금 만든 솔루션을 선택합니다.
-
솔루션 버전 ID: 방금 만든 솔루션 버전의 ID를 선택합니다.
-
초당 최소 프로비저닝된 트랜잭션: Personalize에서 지원하는 초당 최소 프로비저닝된 트랜잭션을 설정합니다. 자세한 정보는 CreateCampaign작업을 참조하세요.
-
-
캠페인 구성에서 다음 정보를 제공합니다.
-
탐색 가중치: 탐색할 양을 구성합니다. 탐색량을 많이 지정할수록 항목 상호 작용 데이터가 적거나 관련성이 낮은 항목이 추천에 포함되는 빈도가 높아집니다. 값이 1에 가까울수록 탐색 횟수가 더 많아집니다. 0이면 탐색이 수행되지 않으며 추천이 현재 데이터(관련성)를 기반으로 합니다.
-
탐색 항목 연령 커트라인: 항목 탐색 범위를 정의하려면 최근 상호작용 이후 최대 항목 수명(일)을 입력합니다. Personalize가 탐색 중에 고려하는 항목 수를 늘리려면 더 큰 값을 입력합니다.
예를 들어, 10을 입력하면 데이터 세트에서 가장 최근 상호 작용이 발생한 이후 10일 동안의 항목 상호 작용 데이터가 있는 항목만 탐색 중에 고려됩니다.
참고
추천에는 이 기간 외의 항목 상호 작용 데이터가 없는 항목이 포함될 수 있습니다. 이러한 항목은 사용자의 관심사와 관련이 있고 이러한 항목을 식별하기 위해 탐색할 필요가 없었기 때문입니다.
-
-
캠페인 생성을 선택합니다.
-
캠페인 세부 정보 페이지에서 캠페인 상태가 활성일 때 캠페인을 사용하여 추천을 받고 노출 수를 기록할 수 있습니다. 자세한 내용은 “시작하기”의 5단계: 추천 받기단원을 참조하세요.
Personalize는 새 데이터가 포함되도록 2시간마다 최신 솔루션 버전을 자동으로 업데이트합니다. 캠페인에서 업데이트된 솔루션 버전을 자동으로 사용합니다. 자세한 내용은 자동 업데이트 단원을 참조하십시오.
캠페인을 수동으로 업데이트하려면 먼저 콘솔이나
trainingMode
를update
으로 설장한 상태에서 CreateSolutionVersion작업을 사용하여 새 솔루션 버전을 만들고 학습시켜야 합니다. 그런 다음 콘솔의 캠페인 페이지에서 또는 UpdateCampaign작업을 사용하여 캠페인을 수동으로 업데이트합니다.참고
Personalize는 2020년 11월 17일 이전에 생성한 솔루션 버전은 자동으로 업데이트하지 않습니다.
사용자-개인 맞춤 레시피를 사용한 학습(Python SDK)
데이터세트 그룹을 만들고 노출 데이터가 포함된 데이터세트를 업로드했다면 사용자-개인 맞춤 레시피로 솔루션을 학습시킬 수 있습니다. Personalize가 항목의 수명을 더 정확하게 계산하고 콜드 항목을 식별할 수 있도록 항목 데이터세트에 CREATION_TIMESTAMP 및 비정형 텍스트 메타데이터데이터를 선택적으로 포함시킵니다. 데이터세트 그룹 생성 및 교육 데이터 업로드에 대한 자세한 내용은 Amazon Personalize 스키마에 대한 스키마 JSON 파일 생성단원을 참조하세요.
AWS SDK를 사용하여 사용자-개인 맞춤 레시피로 솔루션을 훈련하려면
-
create_solution
메서드를 사용하여 새 솔루션을 생성합니다.solution name
을 솔루션 이름으로 그리고dataset group arn
를 데이터세트 그룹의 리소스 이름(ARN)으로 각각 바꿉니다.import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution(name = '
solution name
', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', datasetGroupArn = 'dataset group arn
', ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)aws-user-personalization 레시피 속성 및 하이퍼파라미터의 목록은 속성 및 하이퍼파라미터단원을 참조하세요.
-
업데이트된 학습 데이터로 새 솔루션 버전을 만들고 다음 코드 스니펫을 사용하여
trainingMode
를FULL
으로 설정합니다.solution arn
을 솔루션의 ARN으로 바꿉니다.import boto3 personalize = boto3.client('personalize') create_solution_version_response = personalize.create_solution_version(solutionArn = '
solution arn
', trainingMode='FULL') new_solution_version_arn = create_solution_version_response['solutionVersionArn'] print('solution_version_arn:', new_solution_version_arn) -
Personalize가 솔루션 버전 생성을 완료하면 다음 파라미터를 사용하여 캠페인을 생성합니다.
-
새로운
campaign name
과 2단계에서 생성한solution version arn
를 제공합니다. -
explorationWeight
항목 탐색 구성 하이퍼파라미터를 수정하여 탐색할 양을 구성합니다. 항목 상호 작용 데이터나 관련성이 적은 항목은 값이 1.0에 가까울수록 더 자주 추천됩니다. 기본 값은 0.3입니다. -
explorationItemAgeCutOff
항목 탐색 구성 하이퍼파라미터 파라미터를 수정하여 항목을 탐색해야 하는 최대 기간(일)을 최신 상호작용을 기준으로 지정합니다. 값이 클수록 탐색 중에 고려되는 항목이 많아집니다.
다음 Python 스니펫을 사용하여 탐색 커트라인을 30일로 제한한 탐색에 중점을 둔 새 캠페인을 만듭니다. 일반적으로 캠페인을 만드는 데 몇 분이면 되지만 한 시간 이상 걸릴 수 있습니다.
import boto3 personalize = boto3.client('personalize') create_campaign_response = personalize.create_campaign( name = '
campaign name
', solutionVersionArn = 'solution version arn
', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3
", "explorationItemAgeCutOff": "30
"}} ) campaign_arn = create_campaign_response['campaignArn'] print('campaign_arn:', campaign_arn)사용자-개인 맞춤을 통해 Personalize는 새 데이터를 포함하도록 2시간마다 솔루션 버전을 자동으로 업데이트합니다. 캠페인에서 업데이트된 솔루션 버전을 자동으로 사용합니다. 자세한 내용은 자동 업데이트 단원을 참조하십시오.
캠페인을 수동으로 업데이트하려면 먼저 콘솔이나
trainingMode
를update
으로 설장한 상태에서 CreateSolutionVersion작업을 사용하여 새 솔루션 버전을 만들고 학습시켜야 합니다. 그런 다음 콘솔의 캠페인 페이지에서 또는 UpdateCampaign작업을 사용하여 캠페인을 수동으로 업데이트합니다.참고
Personalize는 2020년 11월 17일 이전에 생성한 솔루션 버전은 자동으로 업데이트하지 않습니다.
-
추천 받기 및 노출 기록(Python용 SDK(Boto3))
캠페인이 생성되면 이를 사용하여 사용자에 대한 추천을 받고 노출을 기록할 수 있습니다. AWS SDKs배치 추론 작업(AWS SDKs) 생성.
추천을 받고 노출을 기록하려면
-
get_recommendations
메서드를 호출합니다.campaign arn
를 새 캠페인의 ARN으로 그리고user id
를 사용자의 UserID로 각각 바꿉니다.import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = '
campaign arn
', userId = 'user id
') print(rec_response['recommendationId']) -
PutEvents 요청을 전송하기 위한 새 이벤트 트래커를 생성합니다.
event tracker name
을 이벤트 트래커의 이름으로 그리고dataset group arn
를 데이터세트 그룹의 ARN으로 바꿉니다.import boto3 personalize = boto3.client('personalize') event_tracker_response = personalize.create_event_tracker( name = '
event tracker name
', datasetGroupArn = 'dataset group arn
' ) event_tracker_arn = event_tracker_response['eventTrackerArn'] event_tracking_id = event_tracker_response['trackingId'] print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id)) -
1단계의
recommendationId
과 2단계의event tracking id
를 사용하여 새PutEvents
요청을 생성합니다. 이 요청은 사용자 세션의 새 노출 데이터를 기록합니다.user id
를 사용자의 ID로 변경합니다.import boto3 personalize_events.put_events( trackingId = '
event tracking id
', userId= 'user id
', sessionId = '1', eventList = [{ 'sentAt': datetime.now().timestamp(), 'eventType' : 'click', 'itemId' : rec_response['itemList'][0]['itemId'], 'recommendationId': rec_response['recommendationId
'], 'impression': [item['itemId'] for item in rec_response['itemList']], }] )
샘플 Jupyter Notebook
사용자-개인 맞춤 레시피를 사용하는 방법을 보여주는 샘플 Jupyter Notebook은 탐색을 통한 사용자-개인 맞춤