추천인 (SDK)AWS 만들기 - Personalize

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

추천인 (SDK)AWS 만들기

도메인 데이터세트 그룹을 생성하고 데이터를 가져오고 나면, 도메인 사용 사례에 맞는 추천을 생성할 수 있습니다. 추천은 추천을 생성하는 도메인 데이터세트 그룹 리소스입니다.

모든 사용 사례에 대해 교육 시 사용되는 열을 구성할 수 있습니다. 자세한 내용은 교육 시 사용되는 열 구성단원을 참조하세요. Top picks for your 또는 Recommended for you사용 사례에 대해, Personalize는 항목을 추천할 때 탐색을 사용합니다. 자세한 내용은 탐색 구성단원을 참조하세요.

추천 생성

다음 코드로 도메인 사용 사례에 맞는 추천을 생성합니다. 추천에 이름을 지정하고 도메인 데이터세트 그룹의 리소스 이름(ARN) 을 제공합니다. recipeArn의 경우, 사용 사례에 맞는 ARN을 제공합니다. 각 도메인 사용 사례에 대해 이 코드를 실행합니다. 사용 가능한 사용 사례는 도메인에 따라 다릅니다. 사용 사례, ARN 및 요구 사항 목록은 사용 사례 선택단원을 참조하세요.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN' ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for Java 2.x
public static String createRecommender(PersonalizeClient personalizeClient, String name, String datasetGroupArn, String recipeArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String recommenderStatus = ""; try { CreateRecommenderRequest createRecommenderRequest = CreateRecommenderRequest.builder() .datasetGroupArn(datasetGroupArn) .name(name) .recipeArn(recipeArn) .build(); CreateRecommenderResponse recommenderResponse = personalizeClient .createRecommender(createRecommenderRequest); String recommenderArn = recommenderResponse.recommenderArn(); System.out.println("The recommender ARN is " + recommenderArn); DescribeRecommenderRequest describeRecommenderRequest = DescribeRecommenderRequest.builder() .recommenderArn(recommenderArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { recommenderStatus = personalizeClient.describeRecommender(describeRecommenderRequest).recommender() .status(); System.out.println("Recommender status: " + recommenderStatus); if (recommenderStatus.equals("ACTIVE") || recommenderStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return recommenderArn; } 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 { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN" /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

탐색 구성

Top picks for your 또는 Recommended for you사용 사례에 대해, Personalize는 항목을 추천할 때 탐색을 사용합니다. 탐색에는 상호작용 데이터가 거의 없는 항목에 대한 사용자의 반응을 알아보기 위해 다양한 항목 추천을 테스트하는 작업이 포함됩니다. 다음과 같이 탐색을 구성할 수 있습니다.

  • 관련성이 낮은 항목 탐색에 주목(탐색 가중치) — 탐색 범위를 설정합니다. 0과 1 사이에서 소수 값을 지정합니다. 기본값은 0.3입니다. 값이 1에 가까울수록 탐색이 더 많아집니다. 더 많이 탐색할수록 항목 상호 작용 데이터가 적거나 이전 행동을 기반으로 한 관련성이 낮은 항목이 더 많이 추천에 포함됩니다. 0이면 탐색이 수행되지 않으며 최신 데이터(관련성)를 기반으로 추천이 제공됩니다.

  • 탐색 항목 기간 제한 – 항목 상호 작용 데이터 세트의 모든 항목에서 최근 상호 작용이 발생한 이후 최대 항목 사용 기간(일)을 지정합니다. 이렇게 하면 항목 기간에 따른 항목 탐색 범위가 정의됩니다. Amazon Personalize는 생성 타임스탬프 또는 생성 타임스탬프 데이터가 누락된 경우 항목 상호 작용 데이터를 기반으로 항목 기간을 결정합니다. Personalize가 항목 기간을 결정하는 방법에 대한 자세한 내용은 생성 타임스탬프 데이터단원을 참조하세요.

    Personalize가 탐색 중에 고려하는 항목을 늘리려면 더 큰 값을 입력합니다. 최소값은 1일이고, 기본값은 30일입니다. 지정한 항목 보관 기간 한도보다 오래된 항목이 추천에 포함될 수 있습니다. 이는 이러한 항목이 사용자와 관련이 있고 탐색에서 해당 항목을 식별할 수 없었기 때문입니다.

다음 코드는 추천을 생성할 때 탐색을 구성하는 방법을 보여줍니다. 이 예제는 기본 값을 사용합니다.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'arn:aws:personalize:::recipe/aws-vod-top-picks', datasetGroupArn = 'dataset group ARN', recommenderConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}} ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN", /* required */ recommenderConfig: { itemExplorationConfig: { explorationWeight: "0.3", explorationItemAgeCutOff: "30" } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

교육 시 사용되는 열 구성

학습에서 열을 제외하려면 추천 구성의 일부로 trainingDataConfigexcludedDatasetColumns객체를 제공하세요. 각 키에 대해 데이터세트 유형을 제공하세요. 각 값에 대해 제외할 열 목록을 제공하세요. 다음 코드는 추천을 생성할 때 교육에서 열을 제외하는 방법을 보여줍니다. 자세한 정보는 교육 시 사용되는 열 구성을 참조하세요.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe name', datasetGroupArn = 'dataset group ARN', recommenderConfig = { "trainingDataConfig": { "excludedDatasetColumns": { "datasetType": ["COLUMN_A", "COLUMN_B"] } } } ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN", /* required */ recommenderConfig: { trainingDataConfig: { excludedDatasetColumns: { "DATASET_TYPE": ["COLUMN_A", "COLUMN_B"] } } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

메타데이터 활성화

항목 데이터 세트가 있고 추천을 받을 때 메타데이터를 포함하는 옵션을 원하는 경우 recommender-config에서 enableMetadataWithRecommendationstrue로 설정합니다.

import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe name', datasetGroupArn = 'dataset group ARN', recommenderConfig = {"enableMetadataWithRecommendations": True} ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)