BLOG

Amazon Personalize의 추천 필터 소개… ML 사용경험 없어도 맞춤화 추천 구현 가능해
작성일: 2020-07-28

지난 6월, AWS는 Amazon Personalize의 추천 필터를 발표했습니다. 이 필터를 통해 사용자가 구매한 제품, 시청한 비디오, 시청한 기타 디지털 콘텐츠에 대한 추천 사항을 필터링하여 맞춤화된 추천 사항의 관련성을 향상시킵니다. 이러한 추천을 받는 것을 불편하게 여기는 사용자가 있을 수 있으며 도리어 사용자들의 참여가 줄어 결과적으로 비즈니스 측면의 손실을 초래할 수 있습니다. 고객은 일반적으로 Amazon Personalize와 같은 맞춤화 시스템에서 생성된 각 사용자에 대한 추천사항을 데이터베이스에 저장된 변환 데이터와 비교하고 사용자가 구매한 제품에 대한 추천 사항을 제거하는 사용자 지정 코드를 작성하여 이 문제를 해결할 수 있습니다.

 

20년 이상의 맞춤화 경험을 바탕으로 Amazon Personalize는 맞춤형 제품 및 컨텐츠 추천 및 타겟 마케팅을 향상시킴으로써 더 많은 고객 참여를 유도할 수 있습니다. 기계 학습을 사용하여 Amazon Personalize는 웹 사이트 및 애플리케이션에 대한 고품질 추천을 생성합니다. 간단한 API를 사용하여 몇 번의 클릭만으로 정교한 맞춤화 기능을 쉽게 구축할 수 있는 머신 러닝 경험 없이도 시작할 수 있습니다. Amazon Personalize는 데이터를 처리 및 검사하고, 유의미한 데이터를 식별하고, 올바른 머신 러닝 알고리즘을 자동으로 선택하며, 데이터를 기반으로 맞춤형 모델을 교육 및 최적화합니다. 모든 데이터는 개인 및 보안으로 암호화되며 사용자 추천 기능을 위해서만 사용됩니다.

 

추천 필터 설정 및 사용은 굉장히 간단합니다. 먼저 Amazon Personalize 콘솔 또는 API를 사용하여 Amazon Personalize 특정 DSL (도메인 특정 언어)을 사용하여 필터를 만듭니다. 그 후  GetRecommendations또는 GetPersonalizedRankingAPI를 사용하여 실시간 추천을 쿼리하는 동안 이 필터를 적용할 수 있습니다 . 또는 배치 유추 작업을 통해 배치 모드에서 추천을 생성하는 동안에도 가능합니다.

 

오늘 블로그 포스팅으로는 Amazon Personalize에서 추천 필터를 설정하고 사용하는 과정에 대해 다루어 보겠습니다.

 

전제 조건

필터를 정의하고 적용하려면 먼저 다음 개인화 리소스를 설정해야 합니다. 이 게시물에 따라 Amazon Personalize 콘솔을 사용하고  Getting Started (Console) 가이드에 따라 다음을 수행하세요.

  1. 데이터 세트 그룹을 만듭니다.
  2. 다음 아래에 제공되는 스키마를 사용하여  Interactions작성하고 데이터 파일을 사용하여 데이터를 가져오세요.

{    “type”: “record”,

    “name”: “Interactions”,

    “namespace”: “com.amazonaws.concierge.schema”,

    “fields”: [

        {

            “name”: “ITEM_ID”,

            “type”: “string”

        },

        {

            “name”: “USER_ID”,

            “type”: “string”

        },

        {

            “name”: “TIMESTAMP”,

            “type”: “long”

        },

        { 

           “name”: “EVENT_TYPE”,

            “type”: “string”

        },

        {

            “name”: “EVENT_VALUE”,

            “type”: [

                “null”,

                “float” 

           ]

        }

    ],

    “version”: “1.0”

}

 

3.  적합한 방법을 사용하여 솔루션을 작성하세요. 이 포스트에서는 aws-hrnn방법을 사용합니다.

4. 캠페인을 만듭니다.

 

 

필터 만들기

Amazon Personalize 리소스를 설정했으므로 필터를 정의하고 테스트 할 수 있습니다.

 

필터 표현 언어

Amazon Personalize는 필터 표현식 이라는 자체 도메인별 언어를 사용하여 추천 사항 세트에서 제외하거나 포함시킬 항목을 결정합니다. 필터 표현식의 범위는 데이터 세트 그룹입니다. 동일한 데이터 세트 그룹으로 범위가 지정된 캠페인 또는 솔루션 버전 (일괄 추천)에 대한 결과를 필터링하는 데 이를 사용할 수 있습니다. Amazon Personalize는 사용자의 상호 작용 기록을 기반으로 항목을 필터링할 수 있습니다. 다음은 필터 표현식의 일부 예입니다.

 

  • 사용자 추천에서 모든 구매 항목을 제거하려면 다음 필터 표현식을 사용하세요.

EXCLUDE itemId WHERE INTERACTIONS.event_type in (“Purchase”)

  • 사용자의 시청, 다운로드, 클릭 항목을 제거하려면 다음 필터 표현식을 사용하세요.

EXCLUDE itemId WHERE INTERACTIONS.event_type in (“View”,”Click”,”Download”)

  • 사용자의 상호 작용한 모든 항목을 제거하려면 다음 필터 표현식을 사용하세요.

EXCLUDE itemId WHERE INTERACTIONS.event_type in (“*”)

 

상호 작용 데이터 세트에 포함된 모든 이벤트 유형을 필터링할 수 있습니다. 자세한 내용은 데이터 세트 및 스키마를 참조하시고 필터 정의 DSL에 대한 자세한 내용은 자세한 내용은 설명서를 참조하세요.

 

콘솔을 통한 필터 생성

위의 DSL을 사용하여 Amazon Personalize 콘솔에서 필터를 생성할 수 있습니다. 필터를 작성하려면 다음 단계를 완료하십시오.

 

  1. Amazon Personalize 콘솔의 필터 탭에서 필터 생성을 선택하세요.
  2. 필터 이름에는 필터의 이름을 입력합니다.
  3. 필터링 이벤트 유형 추가에는 사용자 추천에서 제거하려는 상호 작용 유형을 입력하세요.
  4. 이벤트 유형 추가를 선택하세요. 해당 필터식은 필터링하도록 선택한 이벤트 유형에 따라 자동으로 생성됩니다.
  5. Finish 선택하세요.

 

필터를 만들면 필터에 대한 자세한 정보가 포함된 페이지로 이동합니다. 여기에서 필터 ARN 및 생성한 해당 필터 표현식을 포함하여 필터에 대한 자세한 정보를 볼 수 있습니다. 이 페이지에서 필터를 삭제하거나 요약 페이지에서 더 많은 필터를 만들 수도 있습니다.

 

 

createFilterAmazon Personalize 의 API를 통해 필터를 생성할 수도 있습니다. 자세한 내용은 설명서를 참고하세요.

 

 

콘솔을 통해 실시간 추천 필터 적용

Amazon Personalize 콘솔을 사용하면 캠페인 페이지에서 실시간 추천을 확인할 수 있습니다. 이 페이지에서 사용자에 대한 추천 사항을 검색하는 동안 필터를 적용할 수 있습니다. 이를 실행하려면 캠페인 탭에서 필터를 만들 때 사용한 것과 동일한 데이터 집합 그룹을 생성해야 합니다. 그런 다음 추천에 필터를 적용했을 때의 영향을 테스트할 수 있습니다.

 

필터 없이 추천

다음 스크린 샷은 필터를 적용하지 않고 반환된 추천 사항을 보여줍니다.

 

 

Interactions데이터 세트에서 이 사용자가 이전에 추천한 항목 중 일부를 확인할 수 있습니다. Interactions데이터 세트는 다음과 같은 데이터 포인트를 포함합니다 :

USER_ID,ITEM_ID,EVENT_TYPE,TIMESTAMP1,2657,Purchase,9649834261,2985,Purchase,964983034

위의 정보는 UserId 1은 추천된 세 번째 및 네 번째 항목을 이미 구매한 것을 보여줍니다.

 

 

필터 추천

다음 스크린 샷은 이전에 정의한 필터를 적용하여 추천 사항에서 이전에 구입한 항목을 제거한 후의 결과를 보여줍니다.

 

 

결과는 필터가 추천 사항에서 이전에 구매한 품목 (아이템 ID 2657및 2985)을 삭제했음을 보여줍니다. 필터는 Purchase해당 사용자의 이벤트 유형과 상호 작용하여 발생하는 항목을 삭제합니다.

 

 

콘솔을 통해 배치 추천에 필터 적용

콘솔을 통해 배치 추천 사항에 필터를 적용하려면 실시간 추천 사항과 동일한 프로세스를 수행하세요. 일괄 추론 작업 페이지를 생성하고 일괄 추천 사항에 이전에 만든 필터를 적용하는 필터의 이름을 선택합니다.

 

 

 

SDK 통해 실시간 추천에 필터 적용

GetRecommendations호출에 FilterArn추가 및 선택적 매개 변수를 제공하여 SDK 또는 API를 통해 제공되는 추천에 필터를 적용할 수도 있습니다. “filterArn”를 매개 변수 키로 사용하고 filterArn를 값의 문자열로 제공하세요. FilterArn는 CreateFilter API 호출이 반환시키는 고유 식별 키입니다. 필터의 상세 정보 페이지에서 필터의 ARN을 찾을 수도 있습니다.

 

다음 예제 코드는 GetRecommendations추천 사항에 필터를 적용하는 API 요청 본문입니다.

 

{

    “campaignArn”: “arn:aws:personalize:us-west-

2:000000000000:campaign/test-campaign”,

    “userId”: “1”,

    “itemId”: “1”,

    “numResults”: 5,

    “filterArn”: “arn:aws:personalize:us-west-

2:000000000000:filter/test-filter”

}

 

 

 

SDK 통한 일괄 추천 사항에 필터 적용

SDK를 사용해 일괄 추천 사항에 필터를 적용하려면 요청에 filterArn을 선택적 매개 변수로  제공하세요. “filterArn”를 키로, filterArn값으로 사용하세요.

 

 

글을 마치며

Amazon Personalize의 추천 사항 필터를 사용하면 사후 처리 논리를 직접 구현하지 않고도 비즈니스 요구에 따라 추천을 미세 조정할 수 있습니다. Amazon Personalize를 통한 사용자 환경 최적화에 대한 자세한 내용은 Amazon Personalize란 무엇인가요?를 참고하세요.

 

원문URL:  https://aws.amazon.com/ko/blogs/machine-learning/introducing-recommendation-filters-in-amazon-personalize/

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.