추가 목표에 맞게 솔루션 최적화 - Personalize

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

추가 목표에 맞게 솔루션 최적화

중요

기본적으로 모든 새 솔루션은 자동 교육을 사용합니다. 자동 교육을 사용하면 솔루션이 활성화되는 동안 교육 비용이 발생합니다. 불필요한 비용이 발생하지 않도록 교육을 마친 후 솔루션을 업데이트하여 자동 교육을 끌 수 있습니다. 교육 비용에 대한 자세한 내용은 Amazon Personalize 요금을 참조하십시오.

사용자 개인화 레시피 또는 맞춤형 순위 레시피를 사용하는 경우 수익 극대화와 같은 관련성을 극대화하는 것 외에도 목표에 맞게 Amazon Personalize 솔루션을 최적화할 수 있습니다.

항목 추천 레시피를 사용하는 경우 Amazon Personalize의 주요 목표는 과거 및 실시간 항목 상호 작용 데이터를 기반으로 사용자에게 가장 관련성이 높은 항목을 예측하는 것입니다. 다음은 사용자가 가장 많이 상호작용할 가능성이 높은 항목입니다(예: 클릭할 가능성이 가장 높은 항목). 스트리밍 시간 최대화나 수익 증대와 같은 추가 목표가 있는 경우 관련성과 목표 두 가지 모두를 기반으로 추천을 생성하는 솔루션을 만들 수 있습니다.

추가 목표에 맞게 솔루션을 최적화하려면 사용자-개인 맞춤 레시피 또는 -순위 레시피로 새 솔루션을 생성하고 목표와 관련된 항목 데이터세트에서 숫자 메타데이터 열을 선택합니다. 추천을 생성할 때 Personalize는 이 데이터 열에 대해 값이 더 높은 항목에 더 많은 중요도를 부여합니다. 예를 들어 스트리밍 시간을 최대화하려면 VIDEO _ LENGTH 열을 선택하고 수익을 극대화하기 위해 열을 선택할 수 있습니다. PRICE

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

지침 및 요구 사항

목표 요구 사항은 다음과 같습니다.

  • 목표에 사용할 열을 하나만 선택할 수 있습니다.

  • 스키마의 열은 숫자 유형을 가져야 합니다.

  • 스키마의 열은 null유형을 가질 수 없습니다.

스키마와 데이터 유형에 대한 자세한 내용은 Personalize 스키마에 대한 스키마 JSON 파일 생성단원을 참조하세요.

목표 강조와 관련성의 균형 유지

관련성보다는 목표에 더 중점을 두고 항목을 추천하는 경우 절충점이 있을 수 있습니다. 예를 들어 추천을 통해 수익을 높이려는 경우 고가의 항목만 추천하면 항목이 사용자와 관련성이 떨어지고 사용자 참여도와 전환율이 낮아질 수 있습니다.

관련성과 목표 간의 균형을 맞추려면 솔루션을 만들 때 다음과 같은 목표 민감도 수준 중 하나를 선택하십시오.

  • 끄기: Amazon Personalize가 주로 항목 상호 작용 데이터를 사용하여 사용자와 가장 관련성이 높은 항목을 예측합니다.

  • 낮음: Personalize가 사용자의 목표에 덜 중점을 둡니다. 항목 상호 작용 데이터를 통한 관련성이 더 중요합니다.

  • 보통: Amazon Personalize가 항목 상호 작용 데이터를 통해 사용자의 목표와 관련성을 동등하게 강조합니다.

  • 높음: Personalize가 고객의 목표에 더 중점을 둡니다. 항목 상호 작용 데이터를 통한 관련성은 그다지 중요하지 않습니다.

최적화 성능 측정

최적화 목표를 가진 솔루션에 대한 솔루션 버전을 생성(모델을 학습)하면 Personalize가 average_rewards_at_k지표를 생성합니다. average_rewards_at_k의 점수는 목표 달성에 있어 솔루션 버전이 얼마나 잘 수행되는지를 나타냅니다. 이 지표를 계산하기 위해 Personalize는 다음과 같이 각 사용자에 대한 보상을 계산합니다.

rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations

최종 average_rewards_at_k는 1보다 작거나 같고 0보다 큰 10진수 값으로 정규화된 모든 rewards_per_user의 평균입니다. 값이 1에 가까울수록 추천에서 기대할 수 있는 사용자당 평균 이득이 더 커집니다.

예를 들어 클릭으로 인한 수익을 극대화하는 것이 목표인 경우 Personalize는 가장 비용이 많이 드는 상위 25개 추천 항목 중에서 사용자가 클릭한 항목에서 발생한 총 수익을 사용자가 클릭한 모든 추천 항목의 수익으로 나누어 각 사용자 점수를 계산합니다. 그러면 Personalize는 모든 사용자 점수의 정규화된 평균을 반환합니다. average_rewards_at_k이 1에 가까울수록 추천을 통해 사용자당 얻을 수 있는 평균 수익이 더 커집니다.

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

솔루션 최적화 (AWS CLI)

사용자-개인 맞춤 또는 -순위 레시피를 통해서만 목표에 맞게 최적화할 수 있습니다. 를 사용하여 추가 목표를 위해 솔루션을 최적화하려면 AWS CLI새 솔루션을 만들고 solutionConfig 개체의 optimizationObjective 키를 사용하여 목표 세부 정보를 지정하십시오. optimizationObjective에는 다음 필드가 있습니다.

  • itemAttribute: 목표와 관련된 항목 데이터세트의 수치 메타데이터 열의 이름을 지정합니다.

  • objectiveSensitivity: 추천을 생성할 때 솔루션이 목표에 중점을 두는 정도를 지정합니다. 목표 민감도 수준은 Amazon Personalize가 항목 상호 작용 데이터 세트의 데이터를 통해 목표와 관련성을 기준으로 추천 항목의 균형을 맞추는 방법을 구성합니다. objectiveSensitivityOFF, LOW, MEDIUM또는 HIGH일 수 있습니다. 자세한 내용은 목표 강조와 관련성의 균형 유지 단원을 참조하십시오.

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

optimizationObjective의 경우, COLUMN_NAME를 해당 목표와 관련된 항목 데이터세트의 숫자 메타데이터 열 이름으로 바꿉니다. 형식 objectiveSensitivityOFF, 지정 LOWMEDIUM,, 또는 HIGH

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn \ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME\",\"objectiveSensitivity\":\"MEDIUM\"}}"

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

솔루션 최적화 (AWS SDKs)

사용자-개인 맞춤 또는 -순위 레시피를 통해서만 목표에 맞게 최적화할 수 있습니다.

를 사용하여 추가 목표를 위해 솔루션을 최적화하려면 AWS SDKs새 솔루션을 만들고 솔루션 solutionConfig 개체의 optimizationObjective 키를 사용하여 목표 세부 정보를 지정하십시오. optimizationObjective에는 다음 필드가 있습니다.

  • itemAttribute: 목표와 관련된 데이터세트 그룹의 항목 데이터세트의 수치 메타데이터 열의 이름을 지정합니다.

  • objectiveSensitivity: 추천을 생성할 때 솔루션이 목표에 중점을 두는 정도를 지정합니다. 목표 민감도 수준은 Amazon Personalize가 항목 상호 작용 데이터 세트의 데이터를 통해 목표와 관련성을 기준으로 추천 항목의 균형을 맞추는 방법을 구성합니다. objectiveSensitivityOFF, LOW, MEDIUM또는 HIGH일 수 있습니다. 자세한 내용은 목표 강조와 관련성의 균형 유지 단원을 참조하십시오.

다음 코드를 사용하여 추가 목표가 있는 솔루션을 만들 수 있습니다. AWS SDK for Python (Boto3) 또는 AWS SDK for Java 2.x.

솔루션이 준비되면 새 솔루션 버전을 생성합니다(예: 코드는 솔루션 버전 만들기 (AWS SDKs)참조). 솔루션 버전을 만들었다면 솔루션 버전 지표로 최적화 성능을 볼 수 있습니다. 최적화 성능 측정을 참조하세요.

SDK for Python (Boto3)

추가 목표에 최적화된 솔루션을 만들려면 다음 create_solution메서드를 사용합니다. solution name, dataset group arnrecipe arn값을 사용자의 값으로 바꿉니다.

optimizationObjective의 경우, COLUMN_NAME를 해당 목표와 관련된 항목 데이터세트의 숫자 메타데이터 열 이름으로 바꿉니다. 양식objectiveSensitivity, OFF LOWMEDIUM, 또는 을 HIGH 지정하십시오.

import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name= 'solution name', recipeArn = 'recipe arn', datasetGroupArn = 'dataset group arn', solutionConfig = { "optimizationObjective": { "itemAttribute": "COLUMN_NAME", "objectiveSensitivity": "MEDIUM" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x

추가 목표에 최적화된 솔루션을 생성하려면 Amazon Personalize 서비스 클라이언트, 데이터 세트 그룹의 Amazon 리소스 이름 (ARN), 솔루션 이름, 레시피ARN, 항목 속성, 객관적 민감도 수준 등의 createPersonalizeSolution 메서드를 파라미터로 전달하십시오.

public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn, String itemAttribute, String objectiveSensitivity) { try { OptimizationObjective optimizationObjective = OptimizationObjective.builder() .itemAttribute(itemAttribute) .objectiveSensitivity(objectiveSensitivity) .build(); SolutionConfig solutionConfig = SolutionConfig.builder() .optimizationObjective(optimizationObjective) .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 "";
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateSolutionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create the personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION"}); // set the solution parameters. export const createSolutionParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ recipeArn: 'RECIPE_ARN', /* required */ name: 'NAME', /* required */ solutionConfig: { optimizationObjective: { itemAttribute: "COLUMN_NAME", /* specify the numerical column from the Items dataset related to your objective */ objectiveSensitivity: "MEDIUM" /* specify OFF, LOW, MEDIUM, or HIGH */ } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateSolutionCommand(createSolutionParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

샘플 Jupyter Notebook

추가 목표 기반 항목 메타데이터에 최적화된 솔루션을 생성하는 방법을 보여주는 샘플 Jupyter 노트북은 Amazon Personalize 샘플 리포지토리의 objective_optimization 폴더를 참조하십시오. GitHub