신상품에는 정의상 판매 이력이 없습니다. 그런데 셀러가 도움을 받고 싶어 하는 질문, 즉 이게 팔릴지, 얼마에, 어느 계절에 팔릴지는 바로 그 이력이 생기기 전에 답해야 하는 질문입니다. 근거가 거의 없는 상태에서 예측하는 것 자체가 이 문제의 본질이지, 부차적으로 곁들이는 문제가 아닙니다.
개념을 보여주는 스케치입니다 — 실제 예측 결과 화면이 아닙니다.
실물 상품의 수요는 평평한 직선이 아닙니다. 계절에 따라, 하룻밤 사이 실질 가격을 바꿔놓는 환율 변동에 따라, 리뷰 몇 개가 갑자기 퍼지느냐에 따라 움직입니다. 이건 시계열 문제이고, LSTM 같은 시퀀스 모델은 각 데이터 포인트를 독립적으로 보는 대신 시간에 걸쳐 펼쳐지는 패턴을 잡아내려고 만들어진 모델입니다.
하지만 실제로 잘 팔리는 상품과 안 팔리는 상품을 가르는 요소 중 상당수는 시계열이 전혀 아닙니다 — 가격대, 카테고리, 리뷰 수, 배송비 같은 구조화된 표 형태 데이터죠. XGBoost 같은 그래디언트 부스팅 트리 모델이 잘 다루는 게 바로 이런 데이터입니다. 어느 한 모델만으로는 전체 그림을 다 못 잡기 때문에, 하나를 고르기보다 둘 다 쓰는 게 현실적인 이유입니다.
이렇다고 콜드스타트 문제가 사라지는 건 아닙니다. 모델은 데이터가 허락하는 만큼만 확신할 수 있고, 정말 새로운 상품이 정말 새로운 시장에 나오는 경우 그 데이터는 정의상 얇습니다. 솔직한 답은, 이런 경우의 예측은 이미 자리 잡은 SKU보다 오차 범위가 넓다는 겁니다. 깔끔한 숫자 하나 뒤에 숨기기보다 그냥 그렇다고 말하는 편이 맞다고 생각합니다.
수요 예측에는 짝이 되는 가격 쪽 작업이 필요한데, 이걸 별개 문제로 두지 않고 관세·마진 역산 엔진을 바로 옆에 두는 이유가 여기에 있습니다. 관세율은 품목분류(HS 코드) 단위로 매겨지고, 판매 채널마다 수수료 구조와 물류 방식이 다르기 때문에 같은 원가의 상품이라도 진출 시장에 따라 남는 마진이 크게 달라집니다. 수요 예측이 "팔릴 것인가"에 답한다면, 마진 엔진은 "팔 만한 가치가 있는가"에 답합니다. 실행 가능한 결정이 되려면 이 둘을 따로가 아니라 함께 봐야 합니다.
- S. Hochreiter & J. Schmidhuber, Long Short-Term Memory, Neural Computation 9(8), 1997— 수요 예측에 쓰는 시퀀스 모델(LSTM)의 원 논문입니다.
- T. Chen & C. Guestrin, XGBoost: A Scalable Tree Boosting System, KDD 2016 (arXiv:1603.02754)— LSTM과 함께 구조화된 표 데이터를 다루는 데 쓰는 그래디언트 부스팅 트리 모델의 원 논문입니다.