실시간 추천 필터링 - Personalize

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

실시간 추천 필터링

Personalize 콘솔 AWS Command Line Interface (AWS CLI) 또는 를 사용하여 실시간 권장 사항을 필터링할 수 있습니다 AWS SDKs.

개인 맞춤형 항목 추천이나 유사한 항목을 받으면 요청에 홍보를 지정할 수 있습니다. 홍보는 필터를 사용하여 추천 항목의 구성 가능한 하위 집합에 적용되는 추가 비즈니스 규칙을 정의합니다. 자세한 내용은 실시간 권장 사항에서 항목 승격 단원을 참조하십시오.

실시간 추천 필터링(콘솔)

콘솔을 사용하여 실시간 추천을 필터링하려면 필터를 생성한 다음, 추천 요청에 필터를 적용합니다.

참고

파라미터가 포함된 필터와 2020년 11월 10일 이전에 배포한 캠페인을 사용하여 추천을 필터링하려면 UpdateCampaign작업을 사용하여 캠페인을 재배포하거나 캠페인을 새로 생성해야 합니다.

필터 생성(콘솔)

콘솔에서 필터를 만들려면 필터링된 추천을 받는 데 사용할 캠페인 또는 추천자가 포함된 데이터세트 그룹을 선택합니다. 그런 다음 필터 이름과 필터 표현식을 제공합니다.

필터를 생성하려면(콘솔)
  1. https://console.aws.amazon.com/personalize/집에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

  2. 필터링된 추천을 받는 데 사용할 캠페인 또는 추천자가 포함된 데이터세트 그룹을 선택합니다.

  3. 탐색 창에서 필터를 선택한 다음 새 필터 생성을 선택합니다. 필터 생성 페이지가 표시됩니다.

    필터 이름 및 표현식 필드가 있는 필터 생성 페이지를 보여줍니다.
  4. 필터 이름에 필터 이름을 입력합니다. 추천 요청에 필터를 적용할 때 이 이름을 기준으로 하는 필터를 선택합니다.

  5. 표현식에 대해 표현식 작성 또는 표현식 수동 추가를 선택하고 표현식을 작성하거나 삽입합니다.

    • 표현식 빌더를 사용하려면 표현식 작성을 선택합니다. 표현식 빌더는 올바른 형식의 필터 표현식을 작성하기 위한 구조, 필드 및 지침을 제공합니다. 자세한 내용은 필터 표현식 빌더 사용단원을 참조하세요.

    • 표현식을 직접 입력하려면 표현식 수동 추가를 선택합니다. 자세한 내용은 필터 표현식 요소단원을 참조하세요.

  6. 마침을 클릭합니다. 필터의 개요 페이지에는 필터의 Amazon 리소스 이름(ARN), 상태 및 전체 필터 표현식이 표시됩니다. 필터를 삭제하려면 삭제를 선택합니다. 개요 페이지를 떠난 후 필터를 찾고 삭제하는 방법에 대한 자세한 내용은 필터 삭제(콘솔)단원을 참조하세요.

    필터 ARN 및 표현식이 있는 필터 세부 정보 페이지를 보여줍니다.

필터 적용(콘솔)

필터를 적용하려면 추천자 테스트(추천자의 경우) 또는 캠페인 결과 테스트(사용자 지정 캠페인의 경우)에서 필터를 선택하고 필터 파라미터 값을 입력합니다. 그런 다음 사용자를 위한 추천을 받습니다.

중요

INCLUDE 요소를 사용하는 필터 표현식의 경우 표현식에 정의되어 있는 모든 파라미터의 값을 제공해야 합니다. EXCLUDE 요소를 사용하는 표현식이 포함된 필터의 경우 filter-values를 생략할 수 있습니다. 이 경우 Personalize는 표현식의 해당 부분을 추천을 필터링하는 데 사용하지 않습니다.

필터를 적용하려면(콘솔)
  1. https://console.aws.amazon.com/personalize/집에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

  2. 필터링된 추천을 받는 데 사용할 캠페인 또는 추천자가 포함된 데이터세트 그룹을 선택합니다.

  3. 데이터 세트 그룹 유형 또는 리소스 유형에 따라 다음 중 하나를 수행합니다.

    1. 도메인 데이터세트 그룹의 경우 탐색 창에서 추천자를 선택합니다.

    2. 사용자 지정 데이터 세트 그룹 또는 사용자 지정 리소스의 경우 탐색 창에서 사용자 지정 리소스를 선택한 다음 캠페인을 선택합니다.

  4. 추천자 또는 캠페인 페이지에서 대상 추천자 또는 캠페인을 선택합니다.

  5. 비교를 위해 필터를 적용하지 않고 추천을 가져오기 시작합니다. 추천자 테스트 / 캠페인 결과 테스트에서 추천을 받으려는 사용자의 ID 또는 관련 항목의 항목 ID를 입력하고 추천 받기를 선택합니다. 최상위 추천이 포함된 표가 나타납니다.

    필터를 적용하지 않고 추천 결과를 보여줍니다.
  6. 필터 이름에서, 생성한 필터를 선택합니다. 필터에 자리 표시자 파라미터가 있는 경우 각 파라미터의 관련 필드가 나타납니다.

  7. 자리 표시자 파라미터가 있는 필터를 사용하는 경우 각 파라미터에 대해 값을 입력하여 필터 기준을 설정합니다. 한 파라미터에 여러 값을 사용하려면 각 값을 쉼표로 구분합니다.

  8. 이전 단계에서와 동일한 User ID 또는 Item ID를 사용하여 추천 받기를 선택합니다. 추천 표가 나타납니다.

    필터가 적용된 추천 결과를 보여줍니다.

    예를 들어, 사용자가 이미 추천 항목을 구매한 경우 필터는 추천 목록에서 해당 항목을 제거합니다. 이 예시에서는 2657, 2985 항목이 사용자가 구매하지 않은 가장 적합한 항목(2641 및 1573 항목)으로 대체되었습니다.

필터 표현식 빌더 사용

필터 생성 페이지의 표현식 빌더는 올바른 형식의 필터를 빌드하기 위한 구조, 필드 및 지침을 제공합니다.

필터 생성 페이지에서 표현식 빌더의 필드를 보여줍니다.

필터 표현식을 작성하려면:

  • 유형, 작업, 속성, 연산자, 필드를 사용하여 표현식을 생성합니다.

    에 고정 값을 입력하거나, 추천을 받을 때 필터 기준을 설정하려면 $ + 파라미터 이름을 입력합니다. 예: $GENRES. 추천을 받을 때 필터링 기준으로 사용할 값을 하나 또는 여러 개 제공합니다. 이 예시에서는 추천을 받을 때 장르 또는 장르 목록을 제공하게 될 것입니다.

    파라미터가 아닌 여러 값은 쉼표로 구분합니다. 쉼표로 구분된 파라미터는 필터에 추가할 수 없습니다.

    참고

    속성(dataset.field 형식)을 선택한 후에는 AND또는 OR조건으로 연결된 모든 후속 행의 속성 값도 동일한 dataset을 사용해야 합니다.

  • +X 버튼을 사용하여 표현식에 행을 추가하거나 삭제할 수 있습니다. 첫 번째 행은 삭제할 수 없습니다.

  • 새 행의 경우 AND 메뉴의 ANDIF, 또는 OR 연산자를 사용하여 조건 체인을 생성합니다.

    IF 조건의 경우:

    • 표현식마다 IF항목을 하나만 포함할 수 있습니다. IF 조건을 제거하면 표현식 빌더가 그 뒤에 오는 모든 AND조건을 제거합니다.

    • IF 조건은 CurrentUser를 기준으로 필터링하는 표현식에만 사용할 수 있습니다.

  • 표현식 추가 버튼을 선택하여 보다 정밀한 필터링을 위해 필터 표현식을 추가합니다. 먼저 각 표현식을 독립적으로 평가한 다음 두 결과를 합친 결과를 얻습니다.

    참고

    항목 및 항목 상호 작용 데이터 세트 또는 작업 및 작업 상호 작용 데이터 세트를 모두 사용하는 필터를 만들려면 여러 표현식을 사용해야 합니다.

표현식 빌더 예제

다음 예제에서는 추천을 받을 때 지정한 장르가 있는 항목을 제외하는 필터를 빌드하는 방법을 보여줍니다($GENRES 자리 표시자 파라미터 참조). 또한 필터는 DOWNLOAD_COUNT200이상인 항목을 제외하지만 현재 사용자의 연령이 17을 초과하는 경우에만 제외합니다.

표현식 빌더를 사용하여 예제 필터 표현식을 빌드하는 방법을 보여줍니다.

필터 삭제(콘솔)

필터를 삭제하면 데이터세트 그룹의 필터 목록에서 해당 필터가 제거됩니다.

중요

배치 추론 작업이 진행 중인 동안에는 필터를 삭제할 수 없습니다.

필터를 삭제하려면(콘솔)
  1. https://console.aws.amazon.com/personalize/집에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

  2. 데이터세트 그룹 목록에서 삭제하려는 필터가 포함된 데이터세트 그룹을 선택합니다.

  3. 탐색 창에서 필터를 선택합니다.

  4. 필터 목록에서 삭제하려는 필터를 선택하고 세부 정보 보기를 선택합니다. 필터 세부 정보 페이지가 나타납니다.

  5. 삭제를 선택하고 확인 대화 상자에서 삭제를 확정합니다.

실시간 추천 필터링(AWS CLI)

를 사용하여 추천을 필터링하려면 필터를 AWS CLI생성한 다음 ARN GetRecommendations 또는 GetPersonalizedRanking 요청에 필터를 지정하여 적용합니다.

중요

파라미터가 포함된 필터와 2020년 11월 10일 이전에 배포한 캠페인을 사용하여 추천을 필터링하려면 UpdateCampaign호출을 사용하여 캠페인을 다시 배포하거나 새 캠페인을 생성해야 합니다.

필터 생성(AWS CLI)

다음과 같은 create-filter작업을 사용하여 필터를 만들고 필터 표현식을 지정합니다.

Filter name 를 필터 이름으로 바꾸고 를 데이터 세트 그룹의 Amazon 리소스 이름(ARN)Dataset group ARN으로 바꿉니다. 샘플 filter-expression을 자체 필터 표현식으로 바꿉니다.

aws personalize create-filter \ --name Filter name \ --dataset-group-arn dataset group arn \ --filter-expression "EXCLUDE ItemID WHERE Items.CATEGORY IN (\"$CATEGORY\")"

성공하면 필터ARN가 표시됩니다. 나중에 사용할 수 있도록 기록해 둡니다. 필터가 활성 상태인지 확인하려면 DescribeFilter작업을 사용한 후에 필터를 사용합니다.

에 대한 자세한 내용은 섹션을 API참조하세요CreateFilter. 필터 표현식에 대한 자세한 내용은 필터 표현식 구조 및 요소단원을 참조하세요.

필터 적용(AWS CLI)

get-recommendations, get-action-recommendations 또는 get-personalized-ranking 작업을 사용하는 경우, filter-arn 및 모든 필터 값을 파라미터로 전달하여 필터를 적용합니다.

다음은 get-recommendations작업의 예입니다. Campaign ARN 를 추천을 받는 사용자의 IDUser ID로 캠페인의 Amazon 리소스 이름(ARN)으로 바꾸고 를 필터ARN의 Filter ARN로 바꿉니다. 캠페인 대신 추천자로부터 추천을 받는 경우 recommender-arn 대신 --campaign-arn 를 사용하고 추천자에게 ARN 를 제공합니다.

표현식에 파라미터가 있는 경우 filter-values객체를 포함시킵니다. 필터 표현식의 각 파라미터에 대해 파라미터 이름(대소문자 구분)과 값을 입력합니다. 예를 들어, 필터 표현식에 $GENRE 파라미터가 있는 경우 키로 “GENRE”를 제공하고 값으로 와 같은 장르 또는 장르"Comedy"를 제공합니다. 값이 여러 개인 경우 쉼표로 구분합니다. 예: "\"comedy\",\"drama\",\"horror"\".

중요

INCLUDE 요소를 사용하여 항목을 포함하는 필터 표현식의 경우 표현식에 정의되어 있는 모든 파라미터의 값을 제공해야 합니다. EXCLUDE 요소를 사용하여 항목을 제외하는 표현식이 포함된 필터의 경우 filter-values를 생략할 수 있습니다. 이 경우 Personalize는 표현식의 해당 부분을 추천을 필터링하는 데 사용하지 않습니다.

aws personalize-runtime get-recommendations \ --campaign-arn Campaign ARN \ --user-id User ID \ --filter-arn Filter ARN \ --filter-values '{ "Parameter name": "\"value\"", "Parameter name": "\"value1\",\"value2\",\"value3\"" }'

필터 삭제(AWS CLI)

필터를 삭제하려면 다음과 같은 delete-filter작업을 사용합니다. 를 필터ARN의 filter ARN로 바꿉니다.

aws personalize delete-filter --filter-arn Filter ARN

실시간 추천 필터링(AWS SDKs)

를 사용하여 추천을 필터링하려면 필터를 AWS SDKs생성한 다음 ARN GetRecommendations 또는 GetPersonalizedRanking 요청에 필터를 지정하여 적용합니다.

중요

파라미터가 포함된 필터와 2020년 11월 10일 이전에 배포한 캠페인을 사용하여 추천을 필터링하려면 UpdateCampaign호출을 사용하여 캠페인을 다시 배포하거나 새 캠페인을 생성해야 합니다.

필터 생성(AWS SDKs)

CreateFilter 작업을 사용하여 새 필터를 생성합니다. 다음 코드는 필터를 만드는 방법을 보여줍니다. 데이터 세트 그룹의 필터 이름, Amazon 리소스 이름(ARN)을 지정하고 필터 표현식을 제공합니다.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_filter( name = 'Filter Name', datasetGroupArn = 'Dataset Group ARN', filterExpression = 'EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)' ) filter_arn = response["filterArn"] print("Filter ARN: " + filter_arn)
SDK for Java 2.x
public static String createFilter(PersonalizeClient personalizeClient, String filterName, String datasetGroupArn, String filterExpression) { try { CreateFilterRequest request = CreateFilterRequest.builder() .name(filterName) .datasetGroupArn(datasetGroupArn) .filterExpression(filterExpression) .build(); return personalizeClient.createFilter(request).filterArn(); } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateFilterCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the filter's parameters. export const createFilterParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ name: 'NAME', /* required */ filterExpression: 'FILTER_EXPRESSION' /*required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateFilterCommand(createFilterParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

나중에 사용할 수 ARN 있도록 필터를 기록합니다. 필터가 활성 상태인지 확인하려면 DescribeFilter작업을 사용한 후 필터를 사용합니다. 에 대한 자세한 내용은 섹션을 API참조하세요CreateFilter. 필터 표현식에 대한 자세한 내용은 필터 표현식 구조 및 요소단원을 참조하세요.

필터 적용(AWS SDKs)

GetRecommendations, GetActionRecommendations또는 GetPersonalizedRanking 작업을 사용하는 경우 filterArn 및 모든 필터 값을 파라미터로 전달하여 필터를 적용합니다.

다음 코드는 사용자에 대한 필터링된 Amazon Personalize 항목 추천을 가져오는 방법을 보여줍니다. 추천을 받을 사용자의 ID, 캠페인의 Amazon 리소스 이름(ARN), 필터ARN의 를 지정합니다. 캠페인 대신 추천자로부터 추천을 받는 경우 recommenderArn 대신 campaignArn 를 사용하고 추천자에게 ARN 를 제공합니다.

filterValues의 경우, 필터 표현식의 각 선택적 파라미터에 대해 파라미터 이름(대소문자 구분)과 값을 입력합니다. 예를 들어, 필터 표현식에 $GENRES 파라미터가 있는 경우 키로 “GENRES”를 제공하고 값으로 와 같은 장르 또는 장르"\"Comedy"\"를 제공합니다. 값이 여러 개인 경우 각 값을 쉼표로 구분합니다. 예: "\"comedy\",\"drama\",\"horror\"".

중요

INCLUDE 요소를 사용하여 항목을 포함하는 필터 표현식의 경우 표현식에 정의되어 있는 모든 파라미터의 값을 제공해야 합니다. EXCLUDE 요소를 사용하여 항목을 제외하는 표현식이 포함된 필터의 경우 filter-values를 생략할 수 있습니다. 이 경우 Personalize는 표현식의 해당 부분을 추천을 필터링하는 데 사용하지 않습니다.

SDK for Python (Boto3)
import boto3 personalize_runtime = boto3.client("personalize-runtime") response = personalize_runtime.get_recommendations( campaignArn = "Campaign ARN", userId = "User ID", filterArn = "Filter ARN", filterValues = { "Parameter name": "\"value1\"", "Parameter name": "\"value1\",\"value2\",\"value3\"" .... } )
SDK for Java 2.x

다음 예제에서는 두 개의 값이 있는 파라미터와 값이 한 개인 파라미터를 사용합니다. 필터 표현식에 따라 코드를 수정하여 parameterName 및 parameterValue 필드를 추가하거나 제거합니다.

public static void getFilteredRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, String filterArn, String parameter1Name, String parameter1Value1, String parameter1Value2, String parameter2Name, String parameter2Value){ try { Map<String, String> filterValues = new HashMap<>(); filterValues.put(parameter1Name, String.format("\"%1$s\",\"%2$s\"", parameter1Value1, parameter1Value2)); filterValues.put(parameter2Name, String.format("\"%1$s\"", parameter2Value)); GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .filterArn(filterArn) .filterValues(filterValues) .build(); GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest); List<PredictedItem> items = recommendationsResponse.itemList(); for (PredictedItem item: items) { System.out.println("Item Id is : "+item.itemId()); System.out.println("Item score is : "+item.score()); } } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { GetRecommendationsCommand } from "@aws-sdk/client-personalize-runtime"; import { personalizeRuntimeClient } from "./libs/personalizeClients.js"; // Or, create the client here: // const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"}); // Set recommendation request parameters. export const getRecommendationsParam = { campaignArn: 'CAMPAIGN_ARN', /* required */ userId: 'USER_ID', /* required */ numResults: 15, /* optional */ filterArn: 'FILTER_ARN', /* required to filter recommendations */ filterValues: { "PROPERTY": "\"VALUE\"" /* Only required if your filter has a placeholder parameter */ } } export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetRecommendationsCommand(getRecommendationsParam)); console.log("Success!", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

필터 삭제(AWS PythonSDK)

필터를 삭제하려면 다음과 같은 delete_filter메서드를 사용합니다. 를 필터ARN의 filter ARN로 바꿉니다.

import boto3 personalize = boto3.client("personalize") response = personalize.delete_filter( filterArn = "filter ARN" )