• 사용자 행동 로그만으로 추천 계산 가능. • 다양한 곳에 적용 가능. (-) • Cold Start 문제 발생. Content-based Filtering (-) • Content가 풍부한 곳에 적용 가능. • 적용 범위가 비교적 제한적. (예: Music, Movies 등은 적용이 쉽지 않음) (+) • Content 분석 만으로 추천 가능. • 사용자 행동 로그 없이 추천 계산 가능. • Cold Start 문제 완화. Hybrid = Collaborative + Content-based
hosting, and inference Amazon Personalize Data Set Group Users Items Interactions Data Sets User events / interactions Item meta data (a.k.a catalog information - optional) User meta data (e.g. demographics – optional) Amazon Personalize How it works • GetRecommendations • GetPersonalizedRanking
사용자 메타 데이터 • 연령, 성별, 고객 멤버쉽 등 • Items • Item 메타 데이터 • 가격, SKU(상품 재고 관리 단위), 재고 여부 등 • (User-Item) Interactions • 사용자의 Item에 대한 행동 로그 데이터 • 구매(buy), 장바구니 담기(cart), 상품 보기(view) 등 • Interactions 데이터는 추천 계산에 사용되므로 반드시 필요함 • User, Items는 추천 계산에서 사용할 데이터 제외 및 추천 결과 filtering 용도로 사용 • 입력 데이터는 S3에 CSV 포맷의 저장, 첫번째 row에 컬럼 Header가 필요함
50 users. • More than 50 items. • More than 1,500 interactions. ※ https://github.com/aws-samples/amazon-personalize-samples/blob/master/PersonalizeCheatSheet2.0.md
Model selection, training, tunning and verification Campaign Model hosting, and inference Events Tracker Data Sets Users, Items, and Interactions Amazon Personalize
Model selection, training, tunning and verification Campaign Model hosting, and inference Events Tracker Data Sets Users, Items, and Interactions Real-Time Events Amazon Personalize
EVENT_TYPE의 records만 사용하고 싶은 경우 • EVENT_VALUE – 특정 threshold 값 이상의 records만 사용하고 싶은 경우 • (e.g. Review Rating > 2.0, Watch > 5) • Dynamic Filter – 추천 API 호출 시 추천 결과에서 제외 하기 • GetRecommendations • GetPersonalizedRanking Dataset Group Dataset Import Recipe & Solution Campaign Amazon Personalize • GetRecommendations • GetPersonalizedRanking Filtering Recommendations ※ https://docs.aws.amazon.com/personalize/latest/dg/filter.html
items.genre IN ($GENRE) • EXCLUDE ItemId WHERE items.genre IN ("Comedy") • INCLUDE ItemId WHERE items.number_of_downloads < 20 • Filtering by interactions • INCLUDE ItemId WHERE interactions.event_type IN ("*") • EXCLUDE ItemId WHERE interactions.event_type IN (“click”, “stream”) • Filtering by item based on user properties • EXCLUDE ItemId WHERE items.number_of_downloads < 20 IF CurrentUser.age > 18 AND CurrentUser.age < 30 • INCLUDE Item.ID WHERE items.genre IN (“Comedy”) | EXCLUDE ItemID WHERE items.description IN ("classic”) ※ Amazon Personalize now supports dynamic filters for applying business rules to your recommendations on the fly
Web Server Amazon Personalize X X X X Lambda X X X X Partially Filled Fully Filled 추천 Filtering을 Business Logic 처럼 적용하기 Amazon Personalize Filtering 사용 Filtering Business Logic 적용
추천을 한 번에 계산 및 저장 하고 싶은 경우 § 배치 기반 워크플로(예: 이메일 또는 알림 전송)를 통해 추천 결과를 지속적으로 제공하고 싶은 경우 • 비용 § 사용자들에게 동일한 추천 결과를 제공해도 되는 경우 § 배치 처리가 훨씬 더 편리하고 경제적 • 배치 추론 작업 방법 • AWS 웹 콘솔 • API 호출
Rate 등의 E-Commerce 주요 지표에 영항을 줌 • 추천 평가 기준 - Coverage, Relevance, Serendipity의 조화 • Amazon Personalize 적용 시 필요한 데이터 - Users, Items, Interactions • Amazon Personalize Recipes - User-Personalization, SIMS, Popularity-Count, Personalized-Ranking • Amazon Personalize 적용 순서 - Data Ingestion(Data Set Group 생성 & Data Set Import) → Training (Recipe & Solution 생성) → Inference(Campaign 생성) • AWS Step Functions을 이용한 추천 계산 작업 자동화(MLOps) • 추천 결과 필터링 방법 - 추천 계산 시, Interactions 데이터 필터링 - 추천 API 호출 시, 결과에서 필터링 (Dynamic Filter) - 추천 계산 결과 후처리 (Business Logic 적용 하기)