AI Platform의 고객평생가치 예측: 소개

Last reviewed 2019-02-06 UTC

이 문서는 Google Cloud에서 AI Platform을 사용하여 고객평생가치(CLV)를 예측하는 방법을 설명하는 4부로 구성된 시리즈 중 첫 번째 문서입니다.

이 시리즈의 문서는 다음과 같습니다.

  • 1부: 소개(본 문서). 고객평생가치(CLV)와 이를 예측하는 두 가지 모델링 기법을 소개합니다.
  • 2부: 모델 학습. 데이터를 준비하고 모델을 학습시키는 방법을 설명합니다.
  • 3부: 프로덕션에 배포. 2부에서 설명된 모델을 프로덕션 시스템에 배포하는 방법을 설명합니다.
  • 4부: AutoML Tables 사용. AutoML Tables를 사용하여 모델을 빌드 및 배포하는 방법을 설명합니다.

개요

많은 광고주가 광고를 개인 혹은 비슷한 사용자 그룹에 맞추려고 노력하지만 언제나 가장 중요한 고객들에게 마케팅하는 것은 아닙니다. 매출과 관련하여 파레토 법칙이 종종 언급됩니다. 즉, 고객의 20%가 매출의 80%를 차지하는 것으로 예상됩니다. 이 20%에 속하는 고객들이 누구였는지는 알아내는 것은 물론, 앞으로 어떤 이들이 이 20%의 고객에 속하게 될 것인지까지도 예측할 수 있다면 어떻게 될까요? 고객평생가치(CLV) 예측은 이러한 고객들을 찾아내기 위한 방법입니다.

이 시리즈의 목표는 다음과 같습니다.

  • CLV 모델링의 개념을 설명합니다.
  • CLV 모델링의 두 가지 방법을 비교합니다.
  • Google Cloud에서 CLV 모델을 구현하는 방법을 보여줍니다.

이 솔루션은 확률적 모델과 머신러닝(ML) 모델의 두 가지 CLV 모델링 방법을 비교합니다. 각 접근 방식을 실제로 구현하고 각 모델을 공용 데이터세트에 적용한 결과를 보여줍니다. 이 시리즈의 도움말에서는 Google Cloud에서 모델링 시스템을 구현하는 데 초점을 맞춥니다.

이 접근 방식을 사용해야 하는 경우

CLV 모델을 사용하여 다음과 같은 고객 관련 질문에 답할 수 있습니다.

  • 구매 횟수: 향후 특정 기간 동안 고객이 몇 차례 구매할 것인가?
  • 전체 기간: 어느 정도의 시간이 지나면 고객이 영구적으로 구매를 멈추게 될 것인가?
  • 금전적 가치: 향후 특정 기간 동안 고객이 어느 정도의 금전적 가치를 창출해 낼 것인가?

미래의 평생 가치를 예측하는 경우에는 두 가지가 있으며, 각기 다른 데이터 및 모델링 전략이 필요합니다.

  • 알려진 거래 내역이 있는 기존 고객의 미래 가치를 예측하는 경우
  • 방금 처음으로 구매한 새 고객의 미래 가치를 예측하는 경우

이 시리즈는 첫 번째 문제에 초점을 맞춥니다.

많은 회사는 상황을 파악하지 않고 단지 총 매출 금액만 보면서 CLV를 예측합니다. 예를 들어 큰 금액을 한 번 주문하는 고객보다 소액 구매를 여러 번 하는 고객이 더 중요할 수도 있습니다. CLV 모델링을 활용하면 고객의 구매 프로필을 더 효과적으로 파악하고 비즈니스 가치를 더 정확하게 평가할 수 있습니다.

이 시리즈에 설명된 접근 방식을 사용하여 고객 가치를 예측함으로써 다음과 같이 후속 조치의 우선 순위를 정할 수 있습니다.

  • 광고에 얼마를 투자할 것인지를 결정합니다.
  • 광고로 타겟팅할 고객을 결정합니다.
  • 고객을 한 세그먼트에서 다른 세그먼트로 옮기는 방법을 계획합니다.

이 시리즈에 사용된 모델은 고객 이탈을 직접적으로 관찰하고 측정할 수 있는 비즈니스에는 적합하지 않습니다. 예를 들어 구독, 고객 계정, 취소 가능한 계약 등을 기반으로 하는 비즈니스에는 이러한 모델을 사용해서는 안 됩니다. 이 시리즈의 모델은 언제든지 구매할 수 있는 전자상거래 매장과 같이 사용자가 자의로 회사를 찾는 경우를 가정합니다. 또한 이 시리즈에서 설명하는 모델은 어느 정도의 거래 내역이 누적된 기존 고객의 미래 가치를 예측하는 데 가장 적합합니다.

CLV 개념: RFM

CLV 모델에서 중요한 세 가지 입력값은 최근 구매, 빈도, 금액입니다.

  • 최근 구매: 고객이 언제 마지막으로 주문했는가?
  • 빈도: 고객이 얼마나 자주 구매하는가?
  • 금액: 고객이 얼마를 지출하는가?

다음 다이어그램은 네 명의 고객이 과거에 구매한 일련의 기록을 보여줍니다.

고객 4명의 판매 내역

이 다이어그램은 다음과 같은 각 고객 정보를 표시하여 고객의 RFM 값을 보여줍니다.

  • 최근 구매일: 마지막 구매일과 오늘 사이의 시간으로, 오른쪽 끝에 있는 원과 Now라고 표시된 수직 점선 사이의 거리로 표현됩니다.
  • 빈도: 구매 간의 시간으로, 동일 선상에 있는 원 간의 거리로 표현됩니다.
  • 금액: 매번 지출한 구매 금액이며, 원 크기로 표현됩니다. 이 금액은 평균 주문값이거나 고객이 주문한 제품 수량일 수도 있습니다.

이 시리즈에서 사용되는 모델에서는 과거 판매 데이터만 사용하여 CLV를 계산합니다. RFM 입력값은 각 고객의 거래 내역으로부터 계산됩니다.

두 가지 CLV 모델링 방법

앞서 언급한 대로 이 문서 시리즈에서는 CLV를 계산하는 두 가지 방법을 비교합니다.

  • 확률적 모델. 이 모델은 관찰된 고객 RFM 값에 확률 분포를 적용하는 방식으로 작동합니다. 그리고 각 고객의 거래 내역을 통해 정의된 구매 행동을 기반으로 합니다. 이 데이터로 RFM 값을 추출할 수 있습니다.
  • ML 모델. 이 모델은 널리 통용되는 모델로, 확률적 경사하강법을 학습시켜 데이터에 매개변수를 적용하는 통계 모델입니다. ML 모델은 확률적 모델보다 더 많은 특성을 사용할 수 있습니다. 이 시리즈에서는 널리 사용되는 ML 모델 클래스인 심층신경망(DNN) 모델을 사용합니다. 또한 AutoML Tables를 사용하여 자동으로 ML 모델을 만드는 방법을 보여줍니다.

확률적 모델의 경우, 이 솔루션은 DataFrames 및 Pandas를 사용하는 기존 Lifetimes 라이브러리를 사용합니다. 텐서플로우에서 비슷한 라이브러리를 만들어서 Lifetimes 라이브러리와 동일한 작업을 수행할 수도 있습니다.

확률적 모델

확률적 모델은 주문 거래 목록에서 계산된 RFM 값을 사용합니다. 각 거래는 고객 ID, 주문 날짜, 주문값으로 구성됩니다. 각기 다른 고객 관계를 모델링하는 데 적합한 여러 모델이 있습니다. 2부 문서에서는 Lifetimes 라이브러리에서 제공하는 다음의 모델을 사용하는 방법을 보여줍니다.

  • 파레토/음이항 모델(NBD)
  • 베타-지오메트릭(BG/NBD)

파레토/NBD

파레토/NBD 모델은 원래 Schmittlein 외 여러 회사에 의해 개발되었습니다. 이 모델은 고객이 언제든지 구매할 수 있는 비계약적 관계에 사용됩니다. 매개변수 네 개를 사용하여 고객이 구매하는 속도와 고객에서 이탈하는 속도를 설명합니다. RFM 데이터세트에 가장 적합한 값을 제공하도록 매개변수를 최적화하여 이 모델을 사용합니다.

BG/NBD

파레토/NBD 모델은 널리 사용되지만 매개변수 추정치를 계산하는 것이 매우 어렵기 때문에 구현하기 까다롭습니다. 이 문제를 해결하기 위해 Fader와 Hardie는 BG/NBD 모델을 개발했습니다. BG/NBD 모델은 파레토/NBD 모델과 마찬가지로, 고객이 언제든지 구매할 수 있는 비계약적 관계에 사용됩니다. 그리고 역시 네 개의 매개변수를 사용함으로써 고객이 어느 정도의 속도로 구매를 이어나가고 이탈할 것인지를 설명합니다. 하지만 BG/NBD 모델은 파레토/NBD보다 구현하기 쉬우며 더 빨리 실행됩니다. 두 모델의 결과는 거의 비슷합니다.

확률적 모델로 CLV 계산

확률적 모델 사용은 여러 단계로 이루어진 프로세스입니다. 모델에 있는 코드는 다음 작업을 수행합니다.

  1. 거래 데이터를 사전 처리하여 RFM 값을 계산합니다.
  2. 전체 기간 모듈을 사용하여 파레토/NBD 또는 BG/NBD 모델의 매개변수를 RFM 데이터에 맞게 최적화합니다.
  3. 각 고객의 금전적 예측 가치를 계산합니다.

금전적 가치 모델을 만드는 것은 복잡합니다. 거래 데이터만으로는 시간이 지나면서 바뀌는 제품 가격 등 많은 매개변수가 표현되지 않기 때문입니다. 확률적 방법은 금전적 가치가 감마-감마 분포를 따른다고 가정합니다. Lifetimes 라이브러리의 코드에는 특정 확률적 모델의 CLV를 계산하는 데 사용할 수 있는 감마-감마 분포 방법이 포함되어 있습니다. Lifetimes 라이브러리를 사용하여 CLV 예측을 생성하는 방법은 시리즈 2부에서 자세히 배울 것입니다.

머신러닝 모델

ML 모델은 확률 모델의 훌륭한 대안입니다. 이 문서에서는 Estimator 인터페이스를 사용하여 TensorFlow에서 구현하는 DNN 사용에 대해 설명합니다.

이 솔루션은 두 가지 기술을 사용하여 DNN 성능을 향상시킵니다.

  • 배치 정규화. 이 기술에는 다음과 같은 이점이 있습니다.

    • 특성에서 숫자 값을 정규화하고 상관관계를 없앱니다. 배치 정규화가 이 단계를 수행하므로 개발자가 직접 수행할 필요가 없습니다.
    • 각 특성의 중요도에 영향을 미치는 시간 경과에 따른 가중치 변화에 의한 영향을 최소화합니다.
  • 학습률 붕괴. 시간이 경과할수록 학습률이 기하급수적으로 감소합니다. 학습률이 최소에 가까워질 때 손실 변동을 방지하는 데 유용합니다.

이 문서 시리즈에서는 텐서플로우에 구현된 두 가지 DNN을 확인할 수 있습니다.

  1. 미리 준비된 에스티메이터 DNN. TensorFlow에는 Estimator 인터페이스에 맞는 사전 구현된 DNN 모델이 포함되어 있습니다. 이 시리즈의 샘플 코드에는 사전 구현된 DNNRegressor를 기반으로 하는 모델이 포함되어 있습니다.
  2. 커스텀 에스티메이터 DNN. 커스텀 Estimator를 사용하여 모델에 고급 기술을 유연하게 추가할 수 있습니다. 샘플 코드에서 구현된 커스텀 Estimator는 학습률 붕괴와 배치 정규화를 통합하여 이러한 유연성을 제공합니다.

DNN 장점 중 하나는 여러 특성을 통합할 수 있다는 점입니다. 그 결과, 특성 추출에 따라 품질이 크게 달라지는 경우가 많습니다. 이 시리즈 2부의 데이터 준비 섹션에서는 매우 커질 수 있는 데이터세트에서 사용 가능한 입력값으로부터 특성을 만드는 방법을 설명합니다.

다음 단계

CLV 예측을 구현하는 방법을 설명하는 이 시리즈의 다음 부분을 읽어보세요.