마켓탭 | Marketap


고객별 구매 확률 및 CRM 최적 발송 시간대 예측

프로젝트 소개

Marketap 내 고객의 행동 데이터를 기반으로 구매 확률을 예측하고, 이를 활용해 CRM 캠페인의 세분화와 발송 전략 고도화를 목표로 했습니다. 기존의 룰 기반 필터링과 일괄 발송 방식에서 벗어나, 고객별 구매 가능성과 반응 패턴을 정량적으로 분석함으로써 보다 정밀한 타겟팅과 효율적인 캠페인 운영을 구현하고자 노력했습니다. 
 
세부 목표:
1. 구매 여정 기반 구매 확률 예측 모델 구축
  1-1. 트랜스포머 기반 구매 확률 예측 모델 개발
  1-2. AUC 극대화를 위한 손실 함수 및 피처 엔지니어링 설계

2. CRM 캠페인 최적 발송 시간대 스코어링 및 보정
  2-1. 접속 기반 유저 및 행동 가중치 설정 후 시간대·요일별 스코어링
  2-2. 발송 시간대 보정을 통한 순수 반응도 산출 및 최종 스코어 반영

로드맵
Rectangle.png
진행 프로세스

주제 1. 고객 구매 확률 예측 기반 오디언스 자동 타겟팅

고객의 구매 여정을 시계열 데이터로 모델링하여 세션 단위 구매 확률을 예측하고, 이를 기반으로 자동화된 오디언스 세그멘테이션 기준을 구축한다.
구매 여부는 단일 이벤트가 아닌, 이전 행동들의 누적 결과라는 점에 착안하여 이벤트 시퀀스와 세션 간 맥락을 함께 반영할 수 있는 트랜스포머 기반 모델을 활용하였다.
      
(1) 30분 inactivity를 기준으로 고객 행동 로그 기반 세션 시퀀스 정의

(2) 구매 여정 정보 반영을 위한 입력 피처 구성

- 이벤트 시퀀스 피처: 세션 내 이벤트를 임베딩하여 행동 패턴 표현
- 시간 간격 피처: 이전 세션과의 시간 차이를 반영해 이탈·재방문 패턴 반영
- 누적 정적 피처: 누적 장바구니 횟수, 누적 구매 횟수, 누적 매출 등 과거 구매 이력 기반 변수 생성

(3) 트랜스포머 기반 구매 확률 예측 모델 구축 : 행동 정보와 누적 정적 정보를 Gated Fusion 구조로 결합하여 상황별 중요도 반영

- gBCE와 Margin loss를 도입하여 AUC 극대화하는 학습 전략 설계

스크린샷_2025-12-27_오전_12.28_.31_(1)_.png

주제 2. 세그먼테이션별 최적 CRM 발송 시간대 도출 

각 세그먼트별로 CRM 메시지를 발송했을 때 가장 높은 반응이 기대되는 요일 및 시간대를 도출한다.
단순히 접속이 많은 시간대나 과거 발송 이력이 집중된 시간대를 선택하는 방식에서 벗어나, 사용자 행동 패턴과 CRM의 순수 반응도를 분리·결합하여 최적 발송 시점을 정량적으로 산출하는 것을 목표로 한다.

(1 )유저 행동 로그 점수화 (접속 활동량 모델링) : 각 유저의 세션 가치를 요일 × 시간(24×7 = 168차원)으로 누적 활동량이 많은 유저의 패턴을 더 신뢰할 수 있도록 가중치 적용

(2) 스무딩을 통한 시간대 확산 처리 : 24시간을 순환 구조로 간주하여 인접 시간대로 점수 확산

(3) CRM 순수 클릭 반응도 도출 (발송 편향 보정) : 지수분포 가정을 통해 발송 직후 효과가 크고 시간이 지날수록 감소하는 반응 패턴 모델링

(4) 최적 요일·시간대 도출 유저 행동 기반 접속 점수(168차원)와 CRM 순수 클릭 반응도(24시간)를 결합 후 최고 점수를 갖는 요일·시간대를 해당 세그먼트의 최적 발송 시간대로 선정

그림2_(1).png


성과 및 인사이트

주제 1. 고객 구매 확률 예측 기반 오디언스 자동 타겟팅
  1. 트랜스포머 기반 구매 여정 모델을 통해 세션 단위 구매 확률 예측에서 AUC 약 0.70~0.72 수준의 분리 성능 확보
  2. gBCE와 Margin Loss를 적용해 구매/비구매 세션 간 점수 분리를 강화했으며, 확률 기반 세그멘테이션이 실제 행동 차이를 반영함을 정량적으로 검증
  3. 기존 룰 기반 타겟팅 대비 정량적 기준을 갖춘 자동 오디언스 분류 체계 구축

주제 2. 세그먼테이션별 최적 CRM 발송 시간대 도출 
  1. 데이터 기반 발송 최적화 지표를 개발하여 세그먼트별 맞춤 발송 시간 전략 수립 가능
  2. A/B 테스트 없이도 데이터 기반 의사결정 지원 가능, 향후 CRM 효과 개선을 위한 정량적 기준 마련

주제1_(1).png
주제2_(1).png

PM 소회

 Marketap과 프로젝트를 진행하며 좋았던 점은 무엇인가요?


  1. 긴밀한 커뮤니케이션
    사측과의 원활한 커뮤니케이션을 통한 방향성 정렬 정기적인 싱크 미팅을 통해 CRM 캠페인 발송 시간대 최적화와 관련하여 어떤 지점에 가중치를 두어야 하는지에 대한 실무적 피드백을 지속적으로 받을 수 있었습니다. 특히 단순 모델링 관점이 아닌, 실제 캠페인 운영 맥락에서 중요하게 고려해야 할 요소들에 대한 인사이트를 공유받아 이를 모델 설계와 피처 구성에 반영할 수 있었습니다. 또한 트랜스포머 기반 모델을 위한 데이터 전처리 과정에서도 현업 관점의 제약과 현실적인 기준을 이해할 수 있어, 실사용을 고려한 구조를 설계하는 데 큰 도움이 되었습니다.
  2. 실무 적용을 고려하는 사고의 확장
    주제 1 수행 과정에서 여러 모델을 직접 구현하고 비교하며, 단순히 성능 지표의 높낮이를 넘어 각 모델의 가정과 출력 분포가 실제 CRM 환경에서 얼마나 합리적인지에 대해 깊이 고민할 수 있었습니다. AUC와 같은 정량 지표뿐만 아니라, 확률 분포의 해석 가능성, 세그멘테이션에 활용할 수 있는 안정성 등 “실제로 사용할 수 있는 모델인가”라는 관점에서의 논의를 경험하며, 모델링의 현실성과 비즈니스 적합성에 대해 한 단계 더 깊이 이해할 수 있는 계기가 되었습니다.

 프로젝트 진행 중 겪었던 가장 큰 어려움은 무엇이었나요? 이를 어떻게 해결했나요?
  1. 편향된 CRM 발송 데이터
    CRM 발송 시간대 편향으로 인한 반응도 왜곡 문제 기존 사측 로직에 따라 CRM 캠페인이 운영되면서, 특정 시간대에 발송이 과도하게 집중된 이력이 존재했고 이로 인해 해당 시간대의 반응도가 과대 추정되는 문제가 발생했습니다. 단순 집계나 비율 기반 접근으로는 발송 시간대 자체의 편향과 고객의 실제 반응 성향을 분리하기 어려워, 시간대 보정이 프로젝트에서 가장 큰 난관 중 하나였습니다. 이에 지수함수의 무기억성(memoryless) 특성에 착안하여, 캠페인 발송 효과가 무한히 지속되지 않고 발송 직후 일정 시간 구간에만 유의미한 영향을 미친다는 가정을 설정하였습니다. 이후 발송 이후 초기 구간에 대해서만 지수함수를 적합하여 발송 효과를 모델링하고, 이를 기반으로 반응도를 보정함으로써 발송 시간대 편향을 완화한 순수 반응 지표를 도출하고자 했습니다.

  1. 대규모 데이터 처리 및 비용 고려의 어려움
    프로젝트 초반에는 모델 성능 중심으로만 접근하여, 데이터 스캔 비용과 모델 실행 비용을 충분히 고려하지 못한 한계가 있었습니다. 특히 대규모 이벤트 로그를 반복적으로 전처리하고 학습에 사용하는 과정에서, 데이터 구조를 어떻게 설계해야 효율적으로 사용할 수 있는지에 대한 경험이 부족해 어려움을 겪었습니다. 이를 해결하기 위해 데이터를 단순히 저장하는 방식에서 벗어나, 희소행렬 구조와 시퀀스 형태의 데이터 저장 방식을 도입하였습니다. 이를 통해 불필요한 데이터 스캔을 줄이고, 모델 입력에 필요한 정보만을 빠르게 로딩할 수 있도록 개선하였습니다. 결과적으로 모델 학습 및 추론 과정에서의 연산 비용을 절감하였으며, 실제 서비스 환경에서도 운영 가능한 데이터 파이프라인 설계의 중요성을 체감할 수 있었습니다.

 이번 경험을 통해 어떤 인사이트나 역량을 얻으셨나요?

  1. 모델 성능보다 ‘의사결정에 쓰일 수 있는 지표’가 더 중요하다는 인식
    단순히 AUC나 Accuracy를 높이는 것보다, 모델 출력이 실제 CRM 의사결정에 어떻게 사용될 수 있는지를 먼저 고려해야 한다는 점을 깊이 인식하게 되었습니다. 확률 분포의 안정성, 세그멘테이션 기준으로 활용 가능 여부, 시간대 보정 이후의 해석 가능성 등 비즈니스 맥락에서 의미 있는 모델 출력의 조건을 고민하며 모델을 설계한 경험은, 실무에서 요구되는 데이터 분석 관점을 체득하는 계기가 되었습니다.
  1. 비용과 확장성을 고려한 데이터·모델 설계 감각
    프로젝트를 진행하며 처음으로 모델 실행 비용과 데이터 스캔 비용을 실제로 고민하게 되었으며, 이를 계기로 희소행렬, 시퀀스 기반 저장 구조 등 효율적인 데이터 표현 방식의 중요성을 이해하게 되었습니다. 이 경험을 통해 단순 실험용 코드가 아닌, 서비스 환경을 전제로 한 데이터 파이프라인과 모델 설계 감각을 기를 수 있었습니다.

향후 유사한 프로젝트를 진행할 학회원들에게 전하고 싶은 조언이 있나요?
  1. 문제 정의의 중요성
    주제가 막막할수록 충분한 팀원 간 아이디에이션을 통해 문제의 핵심이 되는 키워드를 함께 정리하는 시간이 중요하다고 느꼈습니다. 테크니컬한 구현이나 코딩에 바로 들어가기보다, 프로젝트가 무엇을 해결하려는지 명확히 정의하고, 그에 맞춰 어떤 준비 과정과 접근이 필요한지를 정확히 파악하는 것이 오히려 프로젝트의 완성도를 크게 좌우할 수 있다는 것을 체감했습니다.