근래에 내가 마주치게 된 매우 흥미로운 문제가 있다. 이 흥미로운 문제는 아래와 같은 조건을 충족하는 모델을 만드는 것이다:
1. 이커머스의 롱테일 상품들의 (간헐적으로 띄엄띄엄 몇 개씩 팔리는 상품들) 매출을 예측
2. 예측치를 기반으로 한 재고가 상품들의 품절을 (수요가 재고보다 많아서 더 이상 팔 수 없는 것) 최소화
3. 운영팀에서 해당 모델을 튜닝할 수 있어야 한다
이게 정말로 흥미로운 문제인 게, 롱테일 상품들의 대부분의 매출액은 말 그대로 '0' 이기 때문이다. 단순히 '얼마나 팔릴지 잘 예측하는 것'만 목표로 한다면 그냥 미래의 모든 매출액을 0으로 잡으면 된다. 그런데, 이렇게 모델을 만들면 예측치와 실제 매출 사이의 차이는 최소화될지언정, 이를 기반으로 얼마나 해당 상품을 창고에 적재해둘지 결정할 시 모든 상품들이 '품절' 상태가 되어버린다. 즉, 예측 모델의 정확도가 현실적으로 아무런 의미도 없게 되어 버리는 것이다.
이 얼마나 재미있는 문제인가! (하고 내 머리가 터지는 소리가 들리는가!)
여기서 더 문제는, 대부분의 우리가 아는 시계열 예측 모델은(예: ARIMA) 상품이 매일같이 조금이라도 팔린다는 것과 적어도 몇 개월 정도 (이상적으로는 3년 이상) 매출 기록이 있다는 것을 가정한다. 그렇기에 해당 모델을 사용 시 예측치가 그렇게 정확도 있지는 않다. 그러면 어떤 사람들이 그럴 것이다.
'요즘 인공지능 핫하던데, 인공지능 혹은 머신러닝으로 예측하면 안돼요?'
물론 그래도 되지만, 머신러닝 및 인공지능을 활용하기 위해서는 아래와 같은 추가적인 요구사항을 만족시켜야 한다:
1. 깔끔하고 다양한 데이터가 많~~~~ 이 있다.
2. 그래서 머신러닝 알고리즘 및 인공지능이 '왜 그렇게 매출액을 예측했는지' 설명하지 않아도 된다.
다만, 현실에서는 깔끔하면서 다양한 데이터가 존재하지 않거나 존재하더라도 정말로 한 분기 이상의 데이터 클리닝 및 설계를 해야만 할 뿐만 아니라, 운영적 목표 및 효율성을 위해 로직을 설명 및 튜닝해야 할 때가 많기 때문에 위의 머신러닝 같은 것을 활용하기 어렵다.
그럼 다시 돌아와서, 위의 3가지 제한 (1) 예측 정확도 높이기. (2) 품절 최소화 하기. (3) 운영 목적으로 파인튜닝 가능. 을 달성하기 위해서는 어떻게 예측 모델을 만들어야 할까? 아래와 같은 5가지 단계를 거치도록 하자!
Step1 : [간헐적으로 상품이 팔리는 패턴]에 특화된 간단한 통계 모델들을 리스트업 한다
1. Croston's Method
2. Syntetos-Boylan Approximation (SBA)
3. Teunter-Syntetos-Babai (TSB) Method
4. 기타 등등
Step2 : 각 모델들의 특장점을 비교해, 어떤 상황에 가장 알맞은 모델인지 이해한다
1. 어떤 장점과 단점을 가지는지
2. 어떤 데이터 패턴에 알맞은 모델인지
3. 어떤 파인튜닝이 가능한지
Step3 : 위의 3가지 제한사항을 반영한 예측모델 평가 기준을 만든다
1. Cumulative Forecasting Error
2. Period In Stock
3. Mean Absolute Error %
4. Bias %
Step4: 평가 기준을 기반으로 각 모델들을 평가한다
1. 평가 기준 기반 각 모델들의 특장점 인식
2. 종합적으로 & 운영 목표를 고려하여 어떤 모델이 가장 뛰어난지 선정
*Step5 : 선정한 모델을 기반으로 운영 프로세스를 만든다
1. 언제 해당 모델이 사용 가능한지
2. 해당 모델 기반으로 '발주'를 진행할 시 무엇을 조심해야 하는지
위의 단계들을 지금 당장 모두 실행하지는 못했지만, 모두 완료하면 정말로 기가막힌 [수요예측 -> 발주 -> 재고관리 -> 성비용 감소] 사이클이 만들어질 것이라 예상된다!