업리프트 모델링(Uplift Model)은 특정 마케팅의 무작위 대조실험(A/B테스트) 결과를 분석하여 마케팅을 어떠한 유형의 고객에게 보내야 효과가 있는지를 예측하는데 사용하는 모델이다.

일반적인 A/B테스트 실험은 실험군과 대조군의 반응 여부만 판단하지만, Uplift Model은 실험군과 대조군에서 “어떤 특징을 가지는 표본”이 반응/반응하지 않았는지도 확인한다. 반응자들의 표본이 가지는 특징을 파악한 후, 마케팅 효과가 있을법한 대상을 예측하여 이후 선별적인 마케팅을 진행하고자 할 때 활용된다. 이 결과는 마케팅 시행 시, 광고 대상에서 제외되어야할 사람(회사 입장에서는 손해인 고객, 광고 노출 자체가 무의미한 사람 ex:충성 고객) 등을 걸러내기 위한 용도로 활용될 수 있다.

Uplift Model은 마케팅 시행(개입) 유무 / 전환(CV) 기준으로 4개의 범주로 대상을 구분할 수 있다. CV는 서비스 운영/마케팅 전략에 따라 달라질 수 있는 개념이나 CV는 반드시 개별 고객 단위로 발생해야 하며, 개별 CV 여부를 데이터를 통해 파악할 수 있어야 한다.

label

마케팅 미수행 마케팅 수행 범주 대응 방안
반응 안함 반응 안함 무관심(휴면 고객) 비용 발생하는 마케팅 자제
반응 안함 반응 함 설득 가능(persuable) 가능한 한 마케팅 대상에 포함시킴
반응 함 반응 안함 청개구리 마케팅 대상에 포함하지 않음
반응 함 반응 함 잡은 물고기 마케팅 할 이유가 없는 고객군, 비용 발생 마케팅 자제

무관심(휴면 고객) : 마케팅 여부와 관계없이 CV되지 않을 고객으로 이미 서비스 이용내역이 과거 1년간 없는 고객 등을 의미한다. 이러한 고객의 경우는 휴면 고객으로 분류하여 마케팅 대상에서 제외하는 편이 비용을 아낄 수 있다.

설득 가능(Persuable) : 마케팅을 시행하면 CV가 가능한 부류로 Uplift Model을 통해 궁극적으로 선별해내고자 하는 고객군이다.

청개구리 : 마케팅을 수행하지 않으면 CV가 발생하나, 반대로 마케팅을 수행하면 CV하지 않는 고객군이다. 광고성 메세지가 오히려 부정적인 효과를 나타나게 하는 고객군으로 이러한 유형의 고객군은 마케팅을 시행하면 오히려 서비스에서 이탈한다.

잡은 물고기 : 마케팅 여부에 관계없이 CV가 발생하는 고객군이다. 알아서 서비스를 잘 이용해주는 고객군으로 오히려 할인과 같은 마케팅 비용이 매출 감소로 이어질 수 있다. 다만 마케팅 반응률 관점에서는 좋은 지표를 얻을 수 있어 KPI 관점에서 마케팅 대상에 포함시킬 수는 있다. 다만 마케팅에 비용이 수반되는 경우는 포함하지 않는 것이 바람직하다.

Uplift Model을 실제 서비스에 적용하는 과정은 다음과 같다.

label

1 : 실험하려는 개입(마케팅)을 설계하고 실험군/대조군에 각각 어떠한 행위를 실행할지 결정한다.
2 : 일부 고객을 대상으로 무작위 대조 실험을 실시한다.
3 : 무작위 대조 실험 결과를 학습 데이터와 테스트 데이터로 나눈다.
4 : 학습 데이터를 활용하여 Uplift-Model 예측기를 만든다.

이 때 대조군에 대한 예측모델, 실험군에 대한 예측모델 2가지 모두 생성한 뒤, 고객A의 값을 대조군 모델/실험군 모델에 모두 대입한 뒤 Return되는 예측 값을 활용하여 설득 가능 고객과 청개구리 고객을 다음과 같이 생성한다.

  • 예측값이 대조군 모델에서 낮고 실험군에서 높으면 설득 가능 고객으로 최종 산출되는 스코어가 높아야 한다.
  • 예측값이 대조군 모델에서 높고 실험군에서 낮으면 청개구리 고객으로 스코어가 낮아야 한다.

따라서 각 모델에서 Return하는 예측값의 차이 또는 비율 값으로 설득 가능고객은 높은 점수, 청개구리 고객은 낮은 점수를 갖도록 변환한다.

5 : 테스트 데이터를 활용하여 Uplift-Model 점수 예측 결과를 그래프로 그리고 점수 추이를 확인한다.
6 : Uplift-Model 점수 그래프를 통해 개입할 고객의 범위를 결정한다.

일반적으로 10분위 단위로 스코어를 끊어서 실험군의 CV가 대조군의 CV보다 높은 부분에서 대상자 선정 기준점을 설정한다. Uplift Model 모델 스코어를 기준으로 실험군의 CV가 대조군의 CV보다 높은 구간까지가 해당 고객군을 대상으로 마케팅을 수행했을 때, 전환율이 개선될 수 있다는 것을 의미한다.

Uplift Model에 대한 성능 평가는 AUUC(Area Under the Uplift Curve) 지표를 사용한다. AUUC값이 클수록 Uplift Model의 성능이 좋다고 판단할 수 있다.

AUUC 계산을 위해서는 lift라는 지표를 사용하는데 lift는 특정 점수 이상인 고객에게만 개입하고 개입하지 않은 고객 대비 CV 건수가 얼마나 증가했는지를 나타내는 지표다. 즉, AUUC는 무작위로 개입했을 때보다 Uplift Model을 사용함으로써 lift 값이 얼마나 증가했는가?를 정규화한 값이다.

label

이 lift 곡선은 처음에는 실험군의 CV값이 모여 양의 기울기를 가지며, 정확도가 향상되면서 기울기가 양의 방향으로 가팔라진다. 마지막에는 대조군의 CV값이 모여 음의 기울기를 가지며 정확도가 향상되면서 음의 방향으로 가팔라진다. 결과적으로 lift 곡선은 정확도가 높을수록 위로 볼록해지며, lift Curve와 baseline으로 둘러싸인 넓이와 AUUC 점수가 커지게 된다.

실제 서비스 운영에서는 이 AUUC 값을 바탕으로 개입 여부를 결정해야한다. 이 그래프에서는 Uplift Model 스코어 기준으로 상위 55% 값을 가지는 사람까지 개입하면 되는 것으로 판단내릴 수 있다.

또 다른 지표로는 Qini Curve를 활용할 수 있는데 Qini Curve는 누적 이익 곡선(Cumulative Gain Curve)와 관련있다. 누적 이익 곡선은 모델이 정렬된 예측 점수에 따라 얼마나 잘 예측하고 있는지를 보여주는 그래프로 x축에는 예측된 Sample의 수가 정렬된 순서대로 나타나며 y축에는 해당 순서까지의 누적된 이익(CV 전환수)가 표시된다.

Qini Curve란 모델의 결과를 사용한 누적 이익 곡선과 모델없이 무작위로 Sample을 선택하였을 때 그릴 수 있는 누적 이익 곡선 간의 차이로 이 결과를 바탕으로 모델의 성능을 비교/확인할 수 있다. Qini Curve는 기준선보다 높을수록 모델의 성능이 더 좋다고 판단할 수 있다. 또한 Qini Curve를 통해서 모델이 얼마나 유용한 예측을 하는지, 특히 상위 예측에 더 집중하는지는 곡선의 상위부분에서 기울기가 급격하게 상승하는지를 바탕으로 상위 예측에서 효과적으로 성과를 내고 있는지 해석할 수 있다.

일반적으로 AUUC Curve는 모델의 종합적 성능을 수치적으로 측정하고자 할 때 사용하며, Qini Curve의 경우는 주로 모델 예측 품질을 직관적으로 시각화하고자 할 때 사용한다고 한다.

7 : 전체 고객을 대상으로 Uplift-Model을 적용한 점수를 예측한다. (실제 서비스에 적용하는 단계)
8 : 예측한 점수를 바탕으로 개입할 고객군을 설정한다.
9 : 선정한 고객 중 일부는 개입하지 않는 대조군으로 설정하고 그 외 나머지를 실험군으로 설정한다.
10 : 실험군에 속하는 고객에게 개입을 실행한다.
11 : 실험군과 대조군의 CV를 비교해 개입의 효과를 측정한다.

Uplift Model에 대한 간략한 python 코드 예시는 다음의 링크에서 확인할 수 있다.

참조 문헌

  1. 업리프트 모델링을 통해 게임 광고 전환율 향상시키기
  2. 모델의 평가 AUUC & Qini Measure
  3. 파이썬으로 업리프트 모델링
  4. 머신러닝 실무 프로젝트 10장 : 업리프트 모델링을 이용한 마케팅 리소스 효율화