A4 · Homeplus · 2024
Two-Tower Recommender
개인화 상품 추천 모델
Amazon Personalize 기반 추천을 자체 모델로 전환하기 위해, 사용자 특성·구매 이력·동반 구매 패턴을 학습하는 PyTorch Two-Tower 개인화·연관상품 추천 모델을 개발하고 검증했습니다.
2
User Tower · Item Tower
Personalize
관리형 서비스 → 자체 모델 검증
FastAPI
추론 API로 학습 · 서비스 분리
Architecture
구매 이력
사용자 특성
동반 구매 쌍
Polars
전처리
User Tower
Item Tower
SageMaker
Training
FastAPI
Inference
Commerce Service
01 Problem
Amazon Personalize 기반 추천 서비스를 자체 모델로 전환할 수 있는지 검증할 필요가 있었습니다.
사용자-상품 구매 관계뿐 아니라 동반 구매 상품의 연관성까지 학습해, 개인화 추천과 교차판매(Cross-selling)용 연관상품 추천을 함께 다루고자 했습니다.
02 Role
- 사용자 특성 및 구매 이력 기반 Feature 구성
- 사용자-상품 관계 및 동반 구매 상품 쌍을 활용한 학습 데이터셋 구축
- PyTorch 기반 Two-Tower 추천 모델 구현
- Polars 기반 데이터 전처리 및 AWS SageMaker 모델 학습
- 구매 연관성과 추천 적합성에 대한 시나리오 기반 정성 평가
- FastAPI 기반 추론 API 설계 및 구현
03 Approach
01구매 관계와 동반 구매 패턴으로 학습 데이터 구성
사용자 특성으로 User Feature를 만들고, 실제 구매 이력으로 사용자-상품 관계를 구성했습니다.
같은 구매에서 함께 선택된 상품 쌍을 추출해 상품 간 동반 구매 관계를 학습 데이터에 반영했고, Polars로 전처리했습니다.
02PyTorch Two-Tower 모델
User Tower와 Item Tower가 각각 사용자와 상품의 Embedding을 학습하고, 두 Embedding 간 유사도로 추천 후보를 산출합니다.
03학습 영역과 추론 API의 분리
AWS SageMaker에서 학습하고, 학습된 모델을 FastAPI 기반의 추론 API에서 사용하도록 구성했습니다. 학습 영역과 기존 애플리케이션을 분리해 ML 환경이 업무 서비스에 의존하지 않게 했습니다.
04구매 시나리오 기반 품질 검증
추천 결과를 대상으로 구매 맥락과 상품 연관성을 사람이 직접 확인하는 정성 평가를 수행해, 실제 커머스 추천 시나리오에 활용 가능한지 검증했습니다.
04 Stack
- Python
- PyTorch
- Polars
- AWS SageMaker
- FastAPI
- ECS
- ECR
- CodePipeline
05 Outcome
- 개인화·연관상품 추천 모델
- 사용자 특성과 구매 행동을 반영하는 PyTorch Two-Tower 모델 개발
- 구매 관계 기반 데이터셋
- 사용자-상품 상호작용과 동반 구매 패턴을 활용한 데이터셋 구성
- 추천 기능 검증
- 구매 시나리오 기반 Human Evaluation으로 연관성·적합성 검토
- ML 개발 Pipeline
- Polars 전처리와 SageMaker 학습·평가 과정 구현
- 서비스 연계 구조
- FastAPI 기반 추론 API로 학습 환경과 업무 애플리케이션 분리