O2O 추천 시스템을 위한 피처 설계
잡학다식의 지식공방

빅데이터 관련 자료

O2O 추천 시스템을 위한 피처 설계

carpe08 2025. 5. 17. 15:08
320x100

어떤 매장을 누구에게, 어떻게 추천할 것인가?

O2O 서비스의 경쟁력은 “오프라인을 얼마나 잘 연결하느냐”입니다.
그 연결의 시작은 추천이에요.
고객이 앱을 켰을 때 어떤 매장을, 어떤 순서로 보여줄까?
그 첫인상이 다음 행동을 결정짓습니다.

그런데 단순히 “가까운 곳 순”으로만 추천하면?
✔️ 자주 가는 곳은 놓칠 수 있고
✔️ 관심 있는 시술은 반영되지 않고
✔️ 결국 고객은 앱을 닫아버립니다.


🔍 O2O 추천 시스템, 어떤 데이터를 써야 할까?

1. 위치 기반

  • user_current_location, store_location → 거리 계산 (km, 분 단위)
  • 이동 수단에 따라 가중치 조정 (도보 vs 차량)

2. 선호 카테고리 / 메뉴

  • 최근 30일 내 찜한 시술/메뉴
  • 과거 예약한 시술의 카테고리
  • 리뷰에 자주 등장하는 키워드

3. 이용 패턴

  • 평일 vs 주말, 아침 vs 저녁 방문 비중
  • 예약 → 방문까지 평균 리드타임
  • 쿠폰 사용 빈도

4. 유사 유저 행동

  • 나와 유사한 행동을 한 유저들이 많이 방문한 매장
  • collaborative filtering 응용 가능

5. 매장 자체 속성

  • 매장 평점, 리뷰 수
  • 혼잡도(예약률 기준)
  • 오픈 시간, 휴무 여부
  • 특이점 (여성 전용, 1인샵, 반려동물 동반 가능 등)

🧱 예시로 보는 피처 설계

💡 예시 1: 거리 가중 피처

  • distance_score = -log(거리 + 1)
    → 가까울수록 점수 ↑, 너무 멀면 빠르게 점수 ↓

💡 예시 2: 선호도 매칭 피처

  • 최근 예약한 시술 카테고리 = "속눈썹펌"
  • 매장 정보에 속눈썹펌 시술 있음 = preference_match = 1
    → 없는 경우 0, 리뷰 키워드에 있으면 0.5 등 미세 조정 가능

💡 예시 3: 예약 가능성 피처

  • 실시간 예약률 90% 이상 → booking_availability = 0
  • 비는 시간 많은 매장 → booking_availability = 1

이런 피처들을 종합적으로 스코어링하면
각 유저에게 가장 적절한 매장 조합이 추천 결과로 나올 수 있습니다.


🧪 추천 실험을 할 땐 이런 걸 검증합니다

  • CTR(클릭률): 유저가 추천 매장을 눌렀는가?
  • 예약 전환율: 추천 후 실제 예약으로 이어졌는가?
  • 방문율: 추천받은 매장에 실제 방문했는가?
  • 시간 대비 성과: 추천 → 행동까지 걸린 평균 시간

→ 이를 바탕으로 피처 가중치를 수정하고, 추천 모델을 계속 개선합니다.


✋ 실무에서 자주 하는 실수

  • 위치 기반만으로 추천 모델 구성
    → 거리는 가깝지만 평점 낮거나, 유저와 안 맞는 매장이 추천됨
  • 유저의 과거 행동을 고려하지 않음
    → ‘속눈썹 시술만 찾는 고객’에게 왁싱 매장 추천하는 오류
  • 실시간 예약 가능 여부를 무시함
    → 예약이 꽉 찬 매장을 상단에 추천 → UX 크게 나빠짐
  • 리뷰 데이터를 숫자처럼 쓰지 않음
    → 키워드 NLP 분석, 평점 편향 보정 등 안 하면 왜곡 가능

🧘 마무리하며

좋은 추천은 ‘정확하게’가 아니라, ‘딱 맞게’입니다.
O2O 서비스에서 추천은
온라인 정보 + 오프라인 맥락 + 개인화가 잘 섞여야
비로소 사용자의 발걸음을 움직일 수 있어요.

데이터는 그 움직임을 예측할 수 있게 해주고,
피처는 그 움직임을 계산할 수 있게 해줍니다.

 

320x100
320x100