BLOG

[AWS TECH BLOG] Amazon Personalize를 사용하여 near real-time 맞춤형 추천 설계하기
작성일: 2022-12-26

회사는 개인화된 고객 경험을 제공함으로써 고객 확보 및 유지, 참여 증대, 효율성 촉진, 검색 가능성 향상과 같은 다양한 측면에서의 비즈니스 결과를 개선할 수 있습니다. 그러나 사내 개인화 솔루션을 개발하는 데는 많은 시간이 소요되므로 비즈니스가 새로운 기능과 사용자 경험을 출시하는 데 걸리는 시간이 늘어날 수 있습니다.

 

오늘 포스팅에서는 Amazon Personalize 및 AWS 전용 데이터 서비스를 사용하여 거의 실시간에 가까운 맞춤형 권장 사항을 설계하는 방법을 알아보겠습니다. 또한 거의 실시간에 가까운 맞춤형 권장 사항을 구축할 때의 주요 고려 사항과 모범 사례도 함께 알아보도록 하겠습니다.

 

Amazon Personalize로 맞춤형 추천 구축

 

Amazon Personalize를 사용하면 개발자가 특정 제품 추천, 개인화된 제품 순위 재지정, 맞춤형 다이렉트 마케팅 등 다양한 개인화 경험을 제공할 수 있는 애플리케이션을 쉽게 구축할 수 있습니다. Amazon Personalize는 필요한 인프라를 프로비저닝하고 데이터 처리, 기능 식별, 가장 적합한 알고리즘 사용, 모델 교육, 최적화 및 호스팅을 포함하여 전체 ML(machine learning) 파이프라인을 관리합니다.  API(Application Programming Interface)를 통해 결과를 받고 최소 요금이나 선불 약정 없이 사용한 만큼만 비용을 지불합니다.

 

아래 그림 1은 Amazon Personalize와 ML 수명 주기를 비교한 것입니다.

 

 

그림 1. 기계 학습 수명 주기와 Amazon Personalize 비교

 

 

먼저 Amazon Personalize에 사용자 및 항목 데이터를 제공합니다. 일반적으로 Amazon Personalize를 사용하여 거의 실시간에 가까운 권장 사항을 구축하기 위해서는 다음과 같은 세 단계가 필요합니다.

 

  1. 데이터 준비: 데이터 준비는 정확한 ML 모델 및 분석을 구축하기 위한 전제 조건 중 하나이며 ML 프로젝트에서 가장 시간이 많이 걸리는 부분입니다. Amazon Personalize에서 모델링하는데 사용하는 세 가지 유형의 데이터가 있습니다.
    • Interactions 데이터 세트는 이벤트라고도 하는 사용자의 활동을 캡처합니다. 예를 들면 사용자가 클릭하거나 구매하거나 시청하는 항목이 있습니다. 보내기로 선택한 이벤트는 비즈니스 도메인에 따라 다릅니다. 이 데이터 세트는 개인화에 대한 가장 강력한 신호를 가지고 있으며 유일한 필수 데이터 세트입니다.
    • 항목 데이터 세트에는 가격대, 범주 정보 및 카탈로그의 기타 필수 정보와 같은 항목에 대한 세부 정보가 포함됩니다. 이 데이터 세트는 선택 사항이지만 새 항목 추천과 같은 시나리오에 매우 유용합니다.
    • 사용자 데이터 세트에는 위치, 연령 및 기타 세부 정보와 같은 사용자에 대한 세부 정보가 포함됩니다.
  2. Amazon Personalize 모델 교육: Amazon Personalize는 모델 교육에 대한 일반적인 사용 사례를 기반으로 레시피를 제공합니다. 레시피는 주어진 사용 사례를 위해 준비된 Amazon Personalize 알고리즘입니다. 자세한 내용은 Amazon Personalize 레시피를 통해 확인할 수 있습니다. 네 가지 유형의 레시피는 다음과 같습니다.
    • USER_PERSONALIZATION: 카탈로그에서 사용자에게 항목을 추천합니다. 이는 종종 방문 페이지에 포함됩니다.
    • RELATED_ITEM: 상세 페이지에서 선택한 항목과 유사한 항목을 추천합니다.
    • PERSONALZIED_RANKING: 범주 내 또는 검색 결과 내에서 사용자에 대한 항목 목록의 순위를 재지정합니다.
    • USER_SEGMENTATION: 아이템 입력 데이터를 기반으로 사용자 세그먼트를 생성합니다. 이를 사용하여 브랜드별로 특정 제품에 대한 대상 마케팅 캠페인을 만들 수 있습니다.
  3. 실시간에 가까운 추천받기: 모델이 훈련되면 비공개 개인화 모델이 호스팅됩니다. 그런 다음 비공개 API를 통해 사용자에게 권장 사항을 제공할 수 있습니다.

 

그림 2는 Amazon Personalize에 대한 높은 수준의 개요를 보여줍니다.

 

 

그림 2. Amazon Personalize로 권장 사항 구축

 

 

실시간에 가까운 개인화 추천 참조 아키텍처

 

 

그림 3은 Amazon Personalize 및 AWS 전용 데이터 서비스를 사용하여 거의 실시간에 가까운 맞춤형 추천을 설계하는 방법을 보여줍니다.

 

 

그림 3. 실시간에 가까운 추천 참조 아키텍처

 

 

아키텍처 플로우: 

 

  1. 데이터 준비: 항목, 상호 작용 및 사용자 데이터를 나타내는 데이터 세트 그룹 , 스키마 및 데이터 세트 를 생성하여 시작합니다.
  2. 모델 훈련: 데이터를 가져온 후 사용 사례에 맞는 레시피를 선택한 후 솔루션 버전을 생성하여 모델을 훈련시키는 솔루션을 생성합니다. 솔루션 버전이 준비되면 솔루션 버전에 대한 캠페인을 생성할 수 있습니다. 거의 실시간 권장 사항에 사용하려는 모든 솔루션 버전에 대해 캠페인을 생성할 수 있습니다. 이 예제 아키텍처에서는 단일 솔루션 버전과 캠페인만 표시하고 있습니다. 레시피가 다른 여러 개인화 사용 사례를 구축하는 경우 동일한 데이터 세트에서 여러 솔루션 버전 및 캠페인을 만들 수 있습니다.
  3. 실시간 추천 받기: 캠페인이 있으면 애플리케이션에서 캠페인에 대한 호출을 통합할 수 있습니다.  여기에서 GetRecommendations또는 GetPersonalizedRanking API 를 호출하여 Amazon Personalize에서 거의 실시간 추천을 요청합니다.
    • 권장 사항을 애플리케이션에 통합하기 위해 취하는 접근 방식은 아키텍처에 따라 다르지만 일반적으로 RESTful 또는 GraphQL API 인터페이스를 통해 웹 사이트 또는 모바일 애플리케이션에서 호출하는 마이크로 서비스 또는 AWS Lambda 함수에 권장 사항을 캡슐화하는 작업이 포함됩니다.
    • 거의 실시간에 가까운 추천은 각 사용자의 진화하는 관심사에 적응할 수 있는 능력을 지원합니다. 이는 Amazon Personalize에서 이벤트 추적기를 생성하여 수행됩니다.
    • 이벤트 추적기는 애플리케이션에서 발생하는 상호 작용을 거의 실시간으로 Amazon Personalize로 스트리밍할 수 있는 엔드포인트를 제공합니다. PutEvents API 를 사용하여 이를 수행합니다.
    • 다시 말하지만, PutEvents를 애플리케이션에 통합하는 방법에 대한 아키텍처 세부 정보는 다양하지만 일반적으로 웹 사이트의 JavaScript 라이브러리 또는 모바일 앱의 기본 라이브러리를 사용하여 이벤트를 수집하고 API 호출을 만들어 백엔드로 스트리밍하는 것과 관련됩니다. AWS는 이를 처리하기 위해 웹 및 모바일 앱에 통합할 수 있는 AWS Amplify 프레임워크를 제공합니다.
    • 이 예제 아키텍처에서는   Amazon API Gateway, Amazon Kinesis Data Streams 및 Lambda를 사용하여 이벤트 수집 파이프라인을 구축하여 상호 작용을 수신하고 Amazon Personalize로 전달할 수 있습니다.
    • 이벤트 추적기는 두 가지 기본 기능을 수행합니다. 첫째, 모든 스트리밍된 상호 작용을 유지하므로 모델의 향후 재교육에 통합됩니다. 이것은 Amazon Personalize가 새로운 사용자를 시작하는 방법이기도 합니다. 새로운 사용자가 사이트를 방문하면 Amazon Personalize가 인기 항목을 추천합니다. 한 두 개의 이벤트를 스트리밍하면 Amazon Personalize가 즉시 권장 사항 조정을 시작합니다.

 

 

주요 고려 사항 및 모범 사례

 

 

  1. 모든 사용 사례에서 상호 작용 데이터에는 카탈로그의 항목과 상호 작용하는 사용자의 상호 작용 레코드가 최소 1000개 있어야 합니다. 이러한 상호 작용은 대량 가져오기, 스트리밍된 이벤트 또는 둘 다에서 발생할 수 있으며 각각에 대해 최소 2개의 상호 작용이 있는 최소 25개의 고유한 사용자 ID에서 발생할 수 있습니다.
  2. 메타데이터 필드(사용자 또는 항목)는 교육, 필터 또는 둘 다에 사용할 수 있습니다.
  3. Amazon Personalize는 가져온 데이터의 암호화를 지원합니다. Amazon Personalize가 AWS Key Management Service (AWS KMS) 키를 사용하여 데이터를 해독하거나 Amazon Simple Storage Service (Amazon S3) AES-256 서버 측 기본 암호화 를 사용하도록 허용하는 역할을 지정할 수 있습니다.
  4. 매일 생성하는 상호 작용 데이터의 양에 따라 Amazon Personalize 배포를 재교육할 수 있습니다. 좋은 규칙은 필요에 따라 매주 한두 번 모델을 다시 훈련시키는 것입니다.
  5. 필터를 사용하여 개인화된 권장 사항에 대한 비즈니스 규칙을 적용할 수 있습니다. 자세한 내용은 추천 및 사용자 세그먼트 필터링을 참조하세요.

 

 

결론

 

 

이번 포스팅에서는 Amazon Personalize 및 AWS 전용 데이터 서비스를 사용하여 거의 실시간에 가까운 맞춤형 권장 사항을 구축하는 방법을 알아보았습니다. 여러분도 오늘 포스팅에서 알려드린 정보를 이용하여 애플리케이션에 대한 맞춤형 권장 사항을 만들어 보세요.

 

 

원문URL: https://aws.amazon.com/ko/blogs/architecture/architecting-near-real-time-personalized-recommendations-with-amazon-personalize/

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