H&M Personalized Fashion Recommendations

MSMoon·2025년 4월 19일

kaggle 학습

목록 보기
6/18
post-thumbnail

1. 대회 설명

  • 목표: H&M 고객의 구매 이력을 기반으로, 향후 구매할 가능성이 높은 상품을 예측하여 개인화 추천 시스템 구축
  • 문제 유형: 추천 시스템(Recommendation System)
  • 데이터 배경
    -> 고객 정보, 상품 정보, 거래 정보 등 대규모 이종 데이터
    -> 시계열 성격을 포함하여 고객의 행동 패턴을 예측해야 함

2. 성능 평가 방식 이해

  • 평가지표: MAP@12(Mean Average Precision at 12)
    -> 고객별로 추천한 상품 중 실제 구매한 아이템이 상위 12개 안에 얼마나 포함되어 있는지를 평가
    -> 순서가 중요한 랭킹 기반 지표

3. 데이터 전처리

3-1) EDA

  • 거래 데이터 탐색
    -> 전체 구조 확인
    -> 일별 거래 수 시각화
    -> 상위 인기 상품 확인

  • 고객 데이터 탐색
    -> 고객 수 및 정보 확인
    -> 고객 연령 분포 확인

  • 상품 데이터 탐색
    -> 주요 특성 확인
    -> 상품 계층 구조 이해

  • 고객별 거래수 및 상품별 판매 수 분석

3-2) Data Cleansing

  • customer_id: 정수 매핑(메모리 최적화 및 처리 속도 향상)
    -> 문자열로 된 customer_id를 정수로 변환하여 메모리 사용량 절감
    -> 추후 submission 시 다시 문자열 ID로 변환할 수 있도록 매핑 정보 저장

  • 날짜 전처리: t_dat 처리
    -> 날짜를 숫자로 변환: 날짜를 정수로 표현하면 모델에서 처리하기 쉬움, 시계열적 관계 분석을 위한 기반
    -> 날짜를 주차로 변환: 일간 데이터보다 안정적, 래킹 피처, 최근 주간 인기상품 계산 등에 사용

  • 데이터 타입 변환: 메모리 최적화
    -> 주요 수치형 컬럼의 dtype을 낮은 비트수로 변환
    -> 메모리 사용량 및 학습 속도 개선 효과

3-3) Feature Engineering

  • 고객 기반:연령, 구매 채널, 취향 등 인구통계적 성격 반영
  • 상품 기반: 가격, 판매 수량, 반복 구매 여부
  • 상호작용 기반: 고객, 상품간 취향 매칭. 계칭 선호 비율
  • 시간 기반: 최근 트렌드, 주간 변화 포착

4. 모델링

4-1) 모델

  • 룰 기반 추천 시스템(Rule-based Recommendation)
  • 2가지 전략 조합: 고객별 최근 구매 상품 기반 추천 + 전체 고객 공통 인기 상품 기반 보완 추천

4-2) 데이터 분할

  • 모델 학습이 없어서 명시적인 train/test 분할 없음
  • week_number == 104를 테스트 기준 주간으로 간주하고, 이 주차 전까지의 데이터를 피처 생성 및 통계 계산에 활용
  • 시간 기반 분할(Time-aware split) 구조

4-3) 하이퍼파라미터 튜닝

  • ML 모델이 아니라 규칙 기반이므로, 명시적 하이퍼파라미터 없음
  • 다만 implicit하게 일부 파라미터들이 결정되어 있음
    -> 고객별 최근 구매 사용 여부 (recent_customer_articles)
    -> 보완용 인기 상품 Top-N 개수 (top 12)
    -> 추천 리스트 길이 (12개 고정)

4-4) 최종 성능

  • MAP@12 ≈ 0.021

5. 정리(Lesson & Learned)

  • 복잡한 머신러닝 모델 없이도, 고객의 최근 구매 이력과 전체 인기 상품만을 활용한 룰 기반 추천 시스템으로 준수한 성능을 보일 수 있다는 것을 확인함
  • 추천 시스템에서는 복잡한 모델보다도, 고객 행동 패턴을 잘 반영한 피처와 추천 전략이 성능을 좌우할 수 있다는 점을 실감함
  • 다양한 계층 구조 피처, 시간 기반 래깅 피처, 가격 민감도 등 풍부한 도메인 기반 피처 엔지니어링이 핵심 경쟁력임을 확인함
  • customer_id를 정수로 인코딩하고, 날짜를 주차 단위로 변환하는 등의 데이터 정제 전략은 대용량 데이터 처리 시 효율성 확보에 매우 유효하다는 점을 확인함
  • 전체적으로 추천 시스템을 처음 접하는 입장에서 룰 기반 베이스라인 구성, 시계열 전처리, 도메인 기반 피처 설계의 중요성을 체감할 수 있는 좋은 학습 사례
  • 다만, 이번 과정에서는 데이터셋 용량이 커서 Google Colab 환경에서는 RAM 초과, 다운로드 실패 등으로 인해 결과 확인에 어려움이 있었음, 실습을 완전히 재현하기 위해서는 고사양 환경이 필요함
    -> 동일한 환경 내에서 데이터를 더 효율적으로 처리하는 것이 중요하므로, 데이터 타입을 바꾸는 것부터, 불필요 데이터를 삭제하거나, 저장 형식을 바꾸는 등의 대처법에 대해 연구할 필요성이 있다고 판단됨

H&M Personalized Fashion Recommendations

0개의 댓글