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

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

사용자 개인화 레시피

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

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

탐색할 수 있는 양 (상호 작용 데이터 또는 관련성이 적은 항목이 더 자주 권장되는 경우) 을 악용할 수 있는 양 (권장 사항이 Google에서 알고 있거나 관련성을 기반으로 하는 경우) 과 균형을 맞출 수 있습니다. Amazon Personalize Personalize는 암시적 사용자 피드백을 기반으로 향후 권장 사항을 자동으로 조정합니다.

자동 업데이트

Amazon Personalize는 사용자 개인화를 통해 2시간마다 최신 모델 (솔루션 버전) 을 자동으로 업데이트하여 새로운 솔루션 버전을 생성하지 않고도 새 데이터를 포함시킵니다. 업데이트마다 Amazon Personalize 최신 항목 정보로 솔루션 버전을 업데이트하고 사용자의 암시적 피드백에 따라 탐색을 조정합니다. 이를 통해 Amazon Personalize 이미 탐색된 아이템에 대한 새로운 상호 작용을 기반으로 아이템 품질을 측정하고 아이템 탐색을 지속적으로 업데이트할 수 있습니다. 이는 완전한 재교육이 아닙니다. 매주 새로운 솔루션 버전을 교육해야 합니다.trainingMode를 로 설정FULL모델이 사용자의 행동을 통해 학습할 수 있습니다.

2시간마다 빈번하지 않은 경우 다음을 사용하여 솔루션 버전을 수동으로 만들 수 있습니다.trainingMode를 로 설정UPDATE이러한 새 항목을 권장 사항에 포함시킬 수 있습니다. Amazon Personalize 완전히 훈련된 최신 솔루션 버전만 자동으로 업데이트하므로 나중에 수동으로 업데이트된 솔루션 버전은 자동으로 업데이트되지 않습니다.

참고

자동 업데이트에는 비용이 들지 않습니다.

업데이트 요구 사항

Amazon Personalize Personalize는 다음과 같은 교육을 받은 최신 솔루션 버전만 자동으로trainingMode를 로 설정FULL마지막 자동 업데이트 이후 새 항목 또는 상호 작용 데이터를 제공하는 경우에만 사용할 수 있습니다. 새 솔루션 버전을 교육한 경우 Amazon Personalize 캠페인에 배포한 이전 솔루션 버전을 자동으로 업데이트하지 않습니다. 데이터세트를 삭제한 경우에도 업데이트되지 않습니다.

참고

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

노출 데이터 작업

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

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

속성 및 하이퍼파라미터

사용자 개인 설정 레시피의 속성은 다음과 같습니다.

  • 이름aws-user-personalization

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

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

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

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

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

  • 범위: [하한, 상한]

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

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

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

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

기본값: 149

범위: [32, 256]

값 형식: 정수

HPO 조정 가능: 예

bptt

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

기본값: 32

범위: [2, 32]

값 형식: 정수

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]

값 형식: 부동 소수점

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]

값 형식: 부동 소수점

HPO 조정 가능: 아니요

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

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

기본값: 0.3

범위: [0.0, 1.0]

값 형식: 부동 소수점

HPO 조정 가능: 아니요

exploration_item_age_cut_off

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

기본값: 30.0

범위: 양의 부동 소수점

값 형식: 부동 소수점

HPO 조정 가능: 아니요

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

사용자 개인화 레시피를 사용하여 콘솔에서 권장 사항을 생성하려면 먼저 레시피를 사용하여 새 솔루션 버전을 훈련시킵니다. 그런 다음 솔루션 버전을 사용하여 캠페인을 배포하고 캠페인을 사용하여 권장 사항을 가져옵니다.

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

  1. 에서 Amazon Personalize 콘솔을 엽니다.https://console.aws.amazon.com/personalize/home계정에 로그인합니다.

  2. 새 스키마를 사용하여 사용자 지정 데이터세트 그룹을 만들고 노출 데이터가 포함된 데이터세트를 업로드합니다. 선택적으로 포함창조_타임스탬프비정형 텍스트 메타데이터Amazon 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에서 지원하는 초당 최소 프로비저닝 트랜잭션을 설정합니다. 자세한 내용은 단원을 참조하십시오.CreateCampaign작업을 사용합니다.

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

    • 탐사 가중치: 탐색을 더 많이 지정할수록 상호 작용 데이터가 적거나 관련성이 낮은 항목이 권장 사항에 포함된 탐색 정도를 구성합니다. 값이 1에 가까울수록 더 많은 탐사가 됩니다. 0이면 탐색이 발생하지 않으며 현재 데이터 (관련성) 를 기반으로 권장 사항이 표시됩니다.

    • 탐사 아이템 연령 차단: 항목 탐색 범위를 정의하려면 최대 항목 기간 (최신 상호 작용 이후 일) 을 입력합니다. 탐색 중에 Amazon Personalize Personaliz에서 고려하는 항목 수를 늘리려면 큰 값을 입력합니다.

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

      참고

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

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

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

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

    캠페인을 수동으로 업데이트하려면 먼저 콘솔 또는CreateSolutionVersion작업을 통해 처리 속도 향상trainingMode를 로 설정update. 그런 다음 에서 캠페인을 수동으로 업데이트합니다.캠페인콘솔의 페이지 또는 를 사용하여UpdateCampaign작업을 사용합니다.

    참고

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

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

데이터세트 그룹을 만들고 노출수 데이터가 포함된 데이터세트를 업로드한 경우 사용자 개인화 레시피를 사용하여 솔루션을 교육할 수 있습니다. 선택적으로 포함창조_타임스탬프비정형 텍스트 메타데이터Amazon Personalize가 아이템의 수명을 더 정확하게 계산하고 콜드 아이템을 식별할 수 있도록 아이템 데이터세트의 데이터입니다. 데이터세트 그룹 생성 및 교육 데이터 업로드에 대한 자세한 내용은 단원을 참조하십시오.데이터 세트 및 스키마.

다음을 사용하여 사용자 개인화 레시피를 사용하여 솔루션을 교육하려면AWSSDK

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

    Replacesolution 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 namesolution version arn2단계에서 생성됩니다.

    • 수정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 Personalize는 2020년 11월 17일 이전에 생성한 솔루션 버전을 자동으로 업데이트하지 않습니다.

권장 사항 가져오기 및 노출 기록 (SDK for Python (Boto3))

캠페인이 생성되면 이 캠페인을 사용하여 사용자에 대한 권장 사항을 가져오고 노출을 기록할 수 있습니다. 다음을 사용하여 배치 권장 사항을 가져오는 방법에 대한 자세한 내용은AWSSDK 참조일괄 추론 작업을 생성합니다.AWSSDK).

권장 사항을 가져오고 노출을 기록하려면

  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요청. Replaceevent 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 노트북

사용자 개인 설정 레시피를 사용하는 방법을 보여주는 샘플 Jupyter 노트북은 단원을 참조하십시오.탐색을 통한 사용자 개인화.