본문 바로가기

데이터 분석/도메인 지식

프로모션 수요 예측 모델은 어떻게 만들 수 있을까? #1

이전 글에서 풀필먼트 서비스에서 데이터 사이언티스트가 어떤 일을 하게 되는지에 대해 다뤘었다. 

(이전 글 : 2022.09.18 - [도메인 지식] - 빠른 배송을 위해 데이터 사이언티스트는 어떤 일을 할까? #2)

 

화주사 사이드에서 데이터 사이언티스트가 해야 할 주요 업무는 상품 수요 예측인데, 

이전 글에서 짧게 언급한 바와 같이 예측의 가장 큰 변수는 프로모션이다!

(그리고 빠르게 다양한 프로모션을 접할 수 있고, 가격 비교가 쉬운 이커머스에서 예측이 어렵다.)

 

이전에 화주사의 판매량 관리 담당자 몇 분을 만나뵌 적이 있었는데, 가장 어려운 예측이 프로모션 예측이라고들 하셨다.

상시 판매량 예측의 경우에는 딥러닝을 굳이 사용하지 않고, 

moving average같은 기본적인 수식만 사용해도 어느 정도 커버가 될 때가 많다고 한다. 

 

하지만 프로모션의 경우에는 데이터의 양이 상시 판매량보다 적어 moving average를 사용하기에는 한계가 있고,

(프로모션을 자주 하지는 않으니..) 또 어떤 프로모션을 하느냐에 따라 판매량이 크게 달라진다고 한다. 

 

이와 같이 프로모션 모델의 필요성은 크지만, 리서치를 해봤을 때 대표적인 프로모션 모델은 찾을 수 없었다.

보통 수요 예측 모델은 시계열 모델을 사용하지만, (아래 더보기 참고)

프로모션 모델은 시계열을 쓸지 비시계열 모델을 쓸지 조차도 정해진 것이 없는 것으로 보인다. 

더보기

머신러닝

  • Multi-Layer Perceptron (MLP)
  • Bayesian Neural Network (BNN)
  • Radial Basis Functions (RBF)
  • Generalized Regression Neural Networks (GRNN)
  • kernel regression K-Nearest Neighbor regression (KNN)
  • CART regression trees (CART)
  • Support Vector Regression (SVR)
  • Gaussian Processes (GP)

딥러닝

  • Recurrent Neural Network (RNN)
  • Long Short-Term Memory (LSTM)

출처 : Time series(시계열) Forecasting 시리즈 – 머신러닝 접근법 101

내 생각에는 화주사마다 진행하는 프로모션의 종류와 상품군에 따른 소비자들의 구매 양상이

너무 다양하기 때문에, 일반화된 모델이 따로 없는 것 같다. 

각 화주사에 맞는 알잘딱깔센한 모델을 만들어야한다.

이번 글에서는 프로모션 모델을 생성하기 위해서 수집해야 하는 데이터들과 모델 생성을 위해 고민해야하는 것에 대해 작성해보려고 한다.

1. 수집해야하는 데이터 

 

모델 생성에 가장 중요한 것은 데이터이다. 프로모션 모델 생성을 위해 필요한 데이터들을 생각해보았다. 

  • 프로모션 명  (ex. 브랜드 데이)
    다양한 프로모션의 반복되는 경우, 네임드 프로모션이냐 아니냐에 따라 판매량이 달라질 수 있다. 

    예를 들어 이마트 네이버점과 같은 경우에는 거의 프로모션이 매일 있다고 해도 과언이 아닌데, 
    원데이 특가전, 브랜드데이, 텐텐데이 등 다양한 프로모션이 반복적으로 진행된다. 
    개인적으로는 브랜드데이에 할인 품목이 많다는 느낌을 받아서, 나는 브랜드데이에는 빠지지 않고 구매를 많이 하려고 한다. 
    나와 같은 사람이 많다면, "브랜드데이"가 네임드 프로모션일 테고 브랜드데이냐 아니냐에 따라 판매량에 영향을 받을 수 있다.

  • 프로모션 기간 (ex. 22.9.19)
  • 프로모션의 할인 타입 (ex. 상품별 할인 - 퍼센트 할인), 프로모션의 할인 혜택 (ex. 20%)
    할인 타입은 아래와 같이 정말 다양하다. 각 화주사의 할인 타입에 맞춰 이를 잘 정의하는 게 중요할 것이다.
    또한 할인 타입에 맞춰서, 얼마나 할인이 되는지가 수요 예측의 키 피쳐로 생각된다.

    * 상품 별 할인 : 상품별로 할인이 들어가는 경우
    - 퍼센트 할인 (ex. 20% 할인)

    - 플러스 할인 (ex. 2+1, 1+1)
    - 금액 할인 (ex. 2000원 할인)
    * 장바구니 할인 : 장바구니에서 할인이 들어가는 경우 
    - 퍼센트 할인 (ex. 20% 할인)
    - 금액 할인 (ex. 2000원 할인)

    * 배송 할인 : 배송비 할인
    - 무료 배송 
    ...
  • (상품 별 할인인 경우) 프로모션 대상 상품 (ex. 코카콜라) 
  • 프로모션 시의 상품 별 판매량 (ex. 1000개)
  • 프로모션 시의 품절 여부  (ex. TRUE)
    중간에 품절이 되었다면, 실제 수요는 더 클 확률이 높다.

 

2. 모델 생성 

2-1.  학습 데이터

학습 데이터는 어떤 기간에 대해 사용할지에 대한 고민이 필요하다.
이 부분도 각 화주사의 판매 양상을 바탕으로 정해야 한다고 생각된다.

  • 프로모션 판매량 데이터만 사용할지, 상시 판매량 데이터도 같이 사용할지 
    프로모션 시의 판매량과 상시 판매량이 완전히 다른 양상을 보인다면, 프로모션 판매량만 떼어내서 학습 데이터로 사용할 수 있다.
    하지만 프로모션 데이터가 너무 부족하거나, 상시 판매량이 프로모션 판매량과 비례한다면 상시 판매량 데이터를 같이 학습에 사용할 수 있다.  
  • 상시 판매량 데이터를 사용한다고 할 때 전체 구간을 다 사용할지 
    상시 판매량 데이터를 사용했다고 하더라도, 이 데이터를 다 쓸지 말지에 대한 고민이 필요하다. 
    엄청 큰 프로모션(ex. 블랙 프라이데이)이 있는 경우, 프로모션 직전이나 직후에 판매량이 급감할 수 있는데
    해당 구간은 학습 데이터에서 제외한다거나 하는 시도를 해볼 수 있다. 

2-2. 모델 타입 

앞서 언급한 바와 같이 수요 예측 모델은 보통 시계열 모델을 쓰지만, 프로모션 모델과 같은 경우에는 딱히 정해진 게 없는 것 같다. 

 

  • 비시계열 모델을 쓸지? 시계열 모델을 쓸지?

    - 비시계열 모델 :  프로모션 판매량 데이터만 학습 데이터로 사용한다면 혹은 프로모션이 자주 없어 추세성을 보기 어려울 때 많이 사용하는 것 같다.
    - 시계열 모델 : 상시 판매량 데이터를 함께 사용하거나, 프로모션 판매량 데이터만 사용하더라도 프로모션이 자주 진행되어서 추세를 볼 수 있는 경우 많이 사용하는 것 같다. 

 

마치며 

프로모션 모델을 생성하는 데에 있어, 준비해야 하는 데이터와 고민이 필요한 사항들에 대해 정리해보았다. 

결론적으로는 한가지의 답이 있는 것이 아니라, 각 화주사마다의 프로모션 양상에 따라서 접근 방법이 크게 달라질 것으로 생각된다. 

 

앞으로 프로모션 모델에 대해 더 공부할 것 같은데, 구체적인 사례를 바탕으로 논문 리뷰를 진행해보려고 한다.