사용자 개인화 레시피 - Amazon Personalize

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

사용자 개인화 레시피

사용자 개인화 (aws-user-personalization) 레시피는 모든 맞춤형 추천 시나리오에 최적화되어 있습니다. 상호작용, 항목 및 사용자 데이터세트를 기반으로 사용자가 상호작용할 항목을 예측합니다. 아이템을 추천할 때는 자동 아이템 탐색을 사용합니다.

Amazon Personalize 자동 탐색을 통해 다양한 항목 추천을 자동으로 테스트하고, 사용자가 이러한 권장 항목과 상호 작용하는 방식을 학습하고, 참여도 및 전환율을 높이는 항목에 대한 추천을 높입니다. 이렇게 하면 카탈로그가 빠르게 바뀌거나 뉴스 기사나 프로모션과 같은 새 항목이 최신 상태일 때 사용자에게 더 관련성이 높은 경우 항목 검색 및 참여도가 향상됩니다.

탐색해야 할 정도 (상호 작용 데이터 또는 관련성이 낮은 항목이 더 자주 권장되는 경우) 와 악용할 정도 (권장 사항은 당사가 알고 있는 내용 또는 관련성을 기반으로 함) 의 균형을 맞출 수 있습니다. Amazon Personalize 암시적인 사용자 피드백을 기반으로 future 권장 사항을 자동으로 조정합니다.

자동 업데이트

Amazon Personalize는 사용자 개인화를 통해 새로운 데이터를 포함하도록 백그라운드에서 2시간마다 최신 모델 (솔루션 버전) 을 자동으로 업데이트합니다. 자동 업데이트에는 비용이 들지 않습니다. 솔루션 버전은 다음을 사용하여 배포해야 합니다.Amazon Personalize업데이트가 발생할 수 있도록 캠페인은 업데이트된 솔루션 버전을 자동으로 사용합니다. auto 업데이트가 완료될 때 새 솔루션 버전이 만들어지지 않습니다. 새 솔루션 버전을 교육하는 경우 이전 솔루션 버전을 캠페인에 배포했더라도 Amazon Personalize 이전 솔루션 버전을 자동으로 업데이트하지 않습니다. 데이터세트를 삭제한 경우에도 업데이트되지 않습니다.

Amazon Personalize 업데이트할 때마다 최신 항목 정보로 솔루션 버전을 업데이트하고 사용자의 암시적 피드백에 따라 탐색을 조정합니다. 이를 통해 Amazon Personalize 이미 탐색한 아이템에 대한 새로운 상호 작용을 기반으로 아이템 품질을 측정하고 아이템 탐색을 지속적으로 업데이트할 수 있습니다. 전체 재교육은 아니므로 매주 다음을 사용하여 새 솔루션 버전을 교육해야 합니다.trainingMode에 설정합니다.FULL그러면 모델이 사용자의 행동을 학습할 수 있습니다.

두 시간마다 빈도가 충분하지 않은 경우 다음을 사용하여 수동으로 솔루션 버전을 만들 수 있습니다.trainingMode에 설정합니다.UPDATE이러한 새 항목을 권장 사항에 포함시킬 수 있습니다. Amazon Personalize 완전히 학습된 최신 솔루션 버전만 자동으로 업데이트하므로 수동으로 업데이트된 솔루션 버전은 future 자동으로 업데이트되지 않는다는 점을 기억하십시오.

자동 업데이트 요구 사항

자동 업데이트 요구 사항은 다음과 같습니다.

  • 캠페인과 함께 솔루션 버전을 배포해야 합니다 (자세한 내용은 참조).캠페인 생성). 캠페인은 자동으로 업데이트된 최신 솔루션 버전을 자동으로 사용합니다.

  • 솔루션 버전은 다음과 같은 교육을 받아야 합니다.trainingMode에 설정합니다.FULL(이는 솔루션 버전을 만들 때의 기본값입니다.)

  • 마지막 자동 업데이트 이후에 새 항목 또는 상호 작용 데이터를 제공해야 합니다.

  • Amazon Personalize 퍼스널라이즈는 2020년 11월 17일 또는 그 이후에 생성한 솔루션 버전만 자동으로 업데이트합니다.

노출 데이터

긍정적인 상호작용 (클릭, 시청 또는 구매) 만 사용하는 다른 레시피와 달리 사용자 개인화 레시피는 노출 데이터를 사용할 수도 있습니다. 노출 횟수는 사용자가 특정 항목과 상호 작용할 때 (클릭, 시청, 구매 등) 볼 수 있었던 항목의 목록입니다.

사용자 개인화 레시피로 만든 솔루션은 이 정보를 사용하여 항목이 무시되는 빈도를 기반으로 새 항목의 적합성을 계산하고 그에 따라 권장 사항을 변경할 수 있습니다. 자세한 내용은 를 참조하십시오.노출 데이터.

속성 및 하이퍼파라미터

사용자-개인화 레시피에는 다음과 같은 속성이 있습니다.

  • 이름aws-user-personalization

  • 레시피 Amazon 리소스 이름 (ARN)arn:aws:personalize:::recipe/aws-user-personalization

  • 알고리즘arn:aws:personalize:::algorithm/aws-user-personalization

자세한 정보는 1단계: 레시피 선택을 참조하세요.

다음 표에서는 사용자-개인화 레시피의 하이퍼파라미터에 대해 설명합니다. 하이퍼파라미터는 모델 성능을 향상시키기 위해 조정할 수 있는 알고리즘 파라미터입니다. 알고리즘 하이퍼파라미터는 모델이 성능을 내는 방식을 제어합니다. 기능화 하이퍼파라미터는 교육에서 사용할 데이터를 필터링하는 방법을 제어합니다. 하이퍼파라미터에 대한 최적 값을 선택하는 과정을 하이퍼파라미터 최적화(HPO)라고 합니다. 자세한 정보는 하이퍼파라미터 및 HPO을 참조하세요.

표에는 각 하이퍼파라미터에 대한 다음 정보도 표시됩니다.

  • 범위: [하한, 상한]

  • 값 유형: 정수, 연속 (부동), 범주형 (부울, 목록, 문자열)

  • HPO 조정 가능한: 파라미터가 HPO에 참여할 수 있습니까?

이름 설명
알고리즘 하이퍼파라미터
hidden_dimension

모델에 사용된 숨겨진 변수 개수 숨겨진 변수는 사용자의 구매 기록 및 항목 통계를 재생성하여 순위 결정 점수를 생성합니다. 상호 작용 데이터 세트에 더 복잡한 패턴이 포함되는 경우 더 많은 숨겨진 차원을 지정합니다. 더 많은 숨겨진 차원을 사용하는 데는 더 큰 데이터 세트와 더 많은 처리 시간이 필요합니다. 최상의 값을 결정하려면 HPO를 사용하십시오. HPO를 사용하려면 CreateSolutionCreateSolutionVersion 작업 호출 시 performHPOtrue에 설정합니다.

기본값: 149

범위: [32, 256]

값 유형: Integer

HPO 조정 가능: 예

bptt

시간 기법을 통한 역전파를 사용할지 여부를 결정합니다. 시간을 기준으로 한 역전파는 반복 신경망 기반 알고리즘의 가중치를 업데이트하는 기법입니다. 장기 크레딧에 대한 bptt를 사용하여 지연된 보상을 초기 이벤트에 연결합니다. 예를 들어 지연된 보상은 여러 번 클릭 후 이루어진 구매일 수 있습니다. 초기 이벤트는 초기 클릭일 수 있습니다. 클릭과 같은 동일한 이벤트 유형 내에서도 장기 효과를 고려하고 전체 보상을 최대화하는 것이 좋습니다. 장기 효과를 고려하려면 더 큰 bptt 값을 사용합니다. 더 큰 bptt 값을 사용하는 데는 더 큰 데이터 세트와 더 많은 처리 시간이 필요합니다.

기본값: 32

범위: [2, 32]

값 유형: Integer

HPO 조정 가능: 예

recency_mask

모델이 상호 작용 데이터 세트의 최신 인기 트렌드를 고려해야 하는지 여부를 결정합니다. 최신 인기 트렌드에는 상호 작용 이벤트 기본 패턴의 갑작스러운 변경이 포함될 수 있습니다. 최신 이벤트에 더 많은 가중치를 부여하는 모델을 교육하려면 recency_masktrue에 설정합니다. 지난 모든 상호 작용에 동일한 가중치를 부여하는 모델을 교육하려면 recency_maskfalse에 설정합니다. 동일한 가중치를 사용하여 좋은 권장 사항을 가져오려면 더 큰 교육 데이터 세트가 필요할 수 있습니다.

기본값: True

범위: True 또는 False

값 유형: 부울

HPO 조정 가능: 예

기능 하이퍼파라미터
min_user_history_length_percentile

모델 교육에 포함할 사용자 기록 길이의 최소 백분위수. 기록 길이는 사용자에 대한 데이터의 총 용량입니다. min_user_history_length_percentile을 사용하여 기록 길이가 짧은 사용자의 백분율을 제외합니다. 기록 길이가 짧은 사용자는 사용자의 개인 요구나 필요 대신에 항목 인기 기반의 패턴을 종종 보입니다. 이 패턴을 제거하면 데이터의 기본 패턴에 더 많이 집중하며 모델을 교육할 수 있습니다. 히스토그램 또는 유사한 도구를 사용하여 사용자 기록 길이를 검토한 후 적절한 값을 선택합니다. 다수의 사용자를 유지하되 엣지 케이스를 제거하는 값을 설정하는 것이 좋습니다.

예를 들어 min_user_history_length_percentile to 0.05max_user_history_length_percentile to 0.95 설정에는 기록 길이가 하위 또는 상위 5%에 해당하는 사용자를 제외한 모든 사용자가 포함됩니다.

기본값: 0.0

범위: [0.0, 1.0]

값 유형: Float

HPO 조정 가능: 아니요

max_user_history_length_percentile

모델 교육에 포함할 사용자 기록 길이의 최대 백분위수. 기록 길이는 사용자에 대한 데이터의 총 용량입니다. max_user_history_length_percentile을 사용하여 기록 길이가 긴 사용자의 백분율을 제외합니다. 이러한 사용자의 데이터에는 노이즈가 포함되는 경향이 있기 때문입니다. 예를 들어 로봇은 자동화된 상호 작용의 긴 목록을 포함할 수 있습니다. 이러한 사용자를 제거하는 경우 교육 시 노이즈가 제한됩니다. 히스토그램 또는 유사한 도구를 사용하여 사용자 기록 길이를 검토한 후 적절한 값을 선택합니다. 다수의 사용자를 유지하되 엣지 케이스를 제거하는 값을 설정하는 것이 좋습니다.

예를 들어 min_user_history_length_percentile to 0.05max_user_history_length_percentile to 0.95 설정에는 기록 길이가 하위 또는 상위 5%에 해당하는 사용자를 제외한 모든 사용자가 포함됩니다.

기본값: 0.99

범위: [0.0, 1.0]

값 유형: Float

HPO 조정 가능: 아니요

항목 탐색 캠페인 구성 하이퍼파라미터
exploration_weight

권장 사항에 상호 작용 데이터 또는 관련성이 낮은 항목이 포함되는 빈도를 결정합니다. 값이 1.0에 가까울수록 탐색이 더 많아집니다. 0이면 탐색이 수행되지 않으며 권장 사항은 현재 데이터 (관련성) 를 기반으로 합니다. 자세한 내용은 를 참조하십시오.CampaignConfig.

기본값: 0.3

범위: [0.0, 1.0]

값 유형: Float

HPO 조정 가능: 아니요

exploration_item_age_cut_off

최근 상호 작용 이후 기간을 기준으로 탐색할 항목을 결정합니다. 항목 탐색의 범위를 정의하려면 마지막 상호 작용 이후 최대 항목 사용 기간 (일) 을 입력합니다. 값이 클수록 탐색 중에 더 많은 항목이 고려됩니다. 자세한 내용은 를 참조하십시오.CampaignConfig.

기본값: 30.0

범위: 포지티브 플로트

값 유형: Float

HPO 조정 가능: 아니요

사용자 개인화 레시피를 사용한 교육 (콘솔)

사용자 개인화 레시피를 사용하여 콘솔에서 추천을 생성하려면 먼저 레시피를 사용하여 새 솔루션 버전을 학습시키십시오. 그런 다음 솔루션 버전을 사용하여 캠페인을 배포하고 캠페인을 사용하여 추천을 받으세요.

사용자-개인화 레시피로 새 솔루션 버전 교육 (콘솔)

  1. Amazon Py용 콘솔을 엽니다.https://console.aws.amazon.com/personalize/home그리고 계정에 로그인하세요.

  2. 새 스키마로 커스텀 데이터셋 그룹을 만들고 노출 데이터가 포함된 데이터세트를 업로드하세요. 선택적으로 포함생성_타임스탬프비정형 텍스트 메타데이터Amazon Personalize Personalize에서 아이템의 수명을 더욱 정확하게 계산하고 콜드 아이템을 식별할 수 있도록 아이템 데이터 세트의 데이터를 제공합니다.

    데이터 가져오기에 대한 자세한 내용은 단원을 참조하십시오.데이터 준비 및 가져오기.

  3. 온 더데이터 그룹페이지에서 노출 데이터가 포함된 데이터셋 또는 데이터셋이 포함된 새 데이터셋 그룹을 선택합니다.

  4. 탐색 창에서 를 선택합니다.솔루션그리고 선택하세요솔루션 생성.

  5. 온 더솔루션 생성페이지,솔루션 이름새 솔루션의 이름을 입력합니다.

  6. 에 대한솔루션 유형, 선택항목 권장사용자를 위한 항목 추천을 받을 수 있습니다.

  7. 에 대한Recipe, 선택aws-user-personalization. 이솔루션 구성여러 구성 옵션을 제공하는 섹션이 나타납니다.

  8. In솔루션 구성상호 작용 데이터셋에 EVENT_TYPE 또는 EVENT_TYPE 및 EVENT_VALUE 열이 모두 있는 경우 선택적으로이벤트 유형이벤트 값필드를 사용하여 Amazon Personalize Personalize가 모델을 학습시킬 때 사용하는 상호 작용 데이터를 선택합니다.

    자세한 내용은 를 참조하십시오.교육에 사용되는 상호 작용 데이터 선택.

  9. 솔루션의 하이퍼파라미터를 선택적으로 구성할 수 있습니다. 사용자-개인화 레시피 속성 및 하이퍼파라미터 목록은 다음을 참조하십시오.속성 및 하이퍼파라미터.

  10. 선택해솔루션 생성 및 교육훈련을 시작하세요. 이대시보드페이지가 표시됩니다.

    솔루션 세부 정보 페이지로 이동하여 교육 진행 상황을 추적할 수 있습니다.솔루션 버전섹션. 교육이 완료되면 상태는 다음과 같습니다.활성 상태.

캠페인 생성 및 추천 받기 (콘솔)

솔루션 버전 상태가 인 경우활성 상태이제 다음과 같이 캠페인을 생성하고 추천을 받을 준비가 되었습니다.

  1. 솔루션 세부 정보 페이지 또는캠페인페이지, 선택새 캠페인을 생성합니다..

  2. 온 더새 캠페인을 생성합니다.페이지,캠페인 세부 정보다음 정보를 입력합니다.

    • 캠페인 이름: 캠페인의 이름을 입력합니다. 여기에 입력한 텍스트는 캠페인 대시보드 및 세부 정보 페이지에 표시됩니다.

    • 솔루션: 방금 생성한 솔루션을 선택합니다.

    • 솔루션 버전 ID: 방금 생성한 솔루션 버전의 ID를 선택합니다.

    • 초당 프로비저닝된 최소 트랜잭션 수: Amazon Personalize Personalize가 지원하는 초당 최소 프로비저닝 트랜잭션을 설정합니다. 자세한 내용은 단원을 참조하십시오.CreateCampaign작업.

  3. 에 대한캠페인 구성다음 정보를 입력합니다.

    • 탐색 가중치: 탐색할 범위를 설정합니다. 추천에는 더 많은 탐색을 지정할수록 상호 작용 데이터 또는 관련성이 낮은 항목이 더 자주 포함되도록 설정할 수 있습니다. 값이 1에 가까울수록 탐색이 더 많아집니다. 0이면 탐색이 수행되지 않으며 권장 사항은 현재 데이터 (관련성) 를 기반으로 합니다.

    • 탐사 아이템 연령 제한: 항목 탐색의 범위를 정의하려면 최신 상호 작용 이후 일수 단위로 최대 항목 사용 기간을 입력합니다. 탐색 중에 Amazon Personalize Personalize가 고려하는 아이템 수를 늘리려면 더 큰 값을 입력하십시오.

      예를 들어 10을 입력하면 데이터셋의 최근 상호 작용 이후 10일 간의 상호 작용 데이터가 있는 항목만 탐색 중에 고려됩니다.

      참고

      권장 사항에는 이 기간 외의 상호 작용 데이터가 없는 항목이 포함될 수 있습니다. 이는 이러한 항목이 사용자의 관심사와 관련이 있고 이를 식별하기 위한 탐색이 필요하지 않았기 때문입니다.

  4. Create a campaign(캠페인 생성)을 선택합니다.

  5. 캠페인 세부 정보 페이지에서 캠페인 상태가 다음과 같은 경우활성 상태, 캠페인을 사용하여 추천을 받고 노출을 기록할 수 있습니다. 자세한 내용을 알아보려면 다음 섹션을 참조하세요.5단계: 권장 사항 가져오기“시작하기”에서

    Amazon Personalize 새 데이터를 포함하도록 2시간마다 최신 솔루션 버전을 자동으로 업데이트합니다. 캠페인은 업데이트된 솔루션 버전을 자동으로 사용합니다. 자세한 내용은 를 참조하십시오.자동 업데이트.

    캠페인을 수동으로 업데이트하려면 먼저 콘솔이나CreateSolutionVersion작업trainingMode에 설정합니다.update. 그런 다음 에서 캠페인을 수동으로 업데이트합니다.캠페인콘솔 페이지 또는UpdateCampaign작업.

    참고

    Amazon Personalize 퍼스널라이즈는 2020년 11월 17일 이전에 생성한 솔루션 버전을 자동으로 업데이트하지 않습니다.

사용자 개인화 레시피 (Python SDK) 를 사용한 교육

데이터셋 그룹을 만들고 노출 데이터가 포함된 데이터세트를 업로드한 경우 사용자 개인화 레시피를 사용하여 솔루션을 트레이닝할 수 있습니다. 선택적으로 포함생성_타임스탬프비정형 텍스트 메타데이터Amazon Personalize Personalize에서 아이템의 수명을 더욱 정확하게 계산하고 콜드 아이템을 식별할 수 있도록 아이템 데이터 세트의 데이터를 제공합니다. 데이터세트 그룹 생성 및 학습데이터 집합 및 Schema.

다음을 사용하여 사용자-개인화 레시피로 솔루션을 학습시키려면AWSSDK

  1. 을 사용하여새 솔루션 생성create_solution메서드.

    교체solution name솔루션 이름과dataset group arn데이터 세트 그룹의 Amazon 리소스 이름 (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 레시피 특성 및 하이퍼매개변수, 참조속성 및 하이퍼파라미터.

  2. 새 을 생성합니다.솔루션 버전업데이트된 훈련 데이터 및 세트로trainingModeFULL다음 코드 스니펫을 사용합니다. 를 교체하십시오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)
  3. Amazon Personalize Personalize에서 솔루션 버전 생성을 완료하면 다음 파라미터를 사용하여 캠페인을 생성하십시오.

    • 신규 제공campaign name그리고solution version arn단계 2에서 생성되었습니다.

    • 수정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)

    Amazon Personalize는 사용자 개인화를 통해 새 데이터를 포함하도록 2시간마다 솔루션 버전을 자동으로 업데이트합니다. 캠페인은 업데이트된 솔루션 버전을 자동으로 사용합니다. 자세한 내용은 를 참조하십시오.자동 업데이트.

    캠페인을 수동으로 업데이트하려면 먼저 콘솔이나CreateSolutionVersion작업trainingMode에 설정합니다.update. 그런 다음 에서 캠페인을 수동으로 업데이트합니다.캠페인콘솔 페이지 또는UpdateCampaign작업.

    참고

    Amazon Personalize 퍼스널라이즈는 2020년 11월 17일 이전에 생성한 솔루션 버전을 자동으로 업데이트하지 않습니다.

추천 가져오기 및 노출 기록 (SDK for Python (Boto3))

캠페인이 생성되면 이를 사용하여 사용자를 위한 추천을 받고 노출을 기록할 수 있습니다. 를 사용하여 배치 권장 사항을 얻는 방법에 대한 자세한 내용은AWSSDK 참조배치 추론 작업을 생성합니다 (AWS).

추천을 받고 노출 횟수를 기록하려면

  1. get_recommendations 메서드를 호출합니다. 다음을 설정합니다.campaign arn새 캠페인의 ARN에 전송하고user iduserId ID에

    import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = 'campaign arn', userId = 'user id') print(rec_response['recommendationId'])
  2. 전송을 위한 새 이벤트 추적 생성 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))
  3. 사용recommendationId1단계부터event tracking id2단계부터 새로 만들기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은 다음을 참조하십시오.탐색을 통한 사용자 개인화.