<aside> 📊
“광고가 정말로 고객의 행동을 바꿨는가?”를 개인 단위로 추정하여,
마케팅 예산을 가장 효과적인 고객에게 집중하기 위한 분석 방법
| 고객 유형 | 의미 | 조건 |
|---|---|---|
| 🎯 Persuadable | 광고 때문에 전환한 고객 (핵심 타겟) | uplift ≫ 0 |
| ✅ Sure Thing | 광고가 없어도 전환했을 고객 | uplift ≈ 0 & 전환율 높음 |
| ❌ Lost Cause | 광고와 무관하게 전환하지 않는 고객 | uplift ≈ 0 & 전환율 낮음 |
| ⚠️ Do Not Disturb | 광고 때문에 오히려 전환하지 않은 고객 | uplift < 0 |
목적: “광고를 본 고객 중, 정말로 광고에 반응한 고객(Persuadable)을 찾아 예산을 가장 효율적으로 집행”
업리프트 모델링에서는 두 개의 모델을 각각 따로 학습
모델 1️⃣: treatment = 1 (광고 집행 그룹) 데이터만 사용하여 학습
→ P(conversion | treatment=1, X) 예측
모델 2️⃣: treatment = 0 (통제 그룹) 데이터만 사용하여 학습
→ P(conversion | treatment=0, X) 예측
그리고 각 고객에 대해 다음과 같이 업리프트 스코어(uplift score) 를 계산
Uplift Score = P(conversion | treatment=1, X) − P(conversion | treatment=0, X)
⇒ “이 고객에게 광고를 보냈을 때, 전환 확률이 얼마나 증가(또는 감소)하는가?”
⇒ “고객 X에게 광고를 보냈을 때와 안 보냈을 때의 전환 확률 차이”
</aside>
<aside> 💡
Criteo AI Lab이 제공한 Uplift Modeling 벤치마크 데이터셋으로, 약 1,300만 명 유저의 무작위 실험(RCT) 데이터로 구성됨
각 유저는 12개 연속형 피처(f0~f11) 와 함께,
treatment(광고 집행 여부), visit / conversion(행동 라벨), exposure(실제 노출 여부) 정보를 포함함
분석 목적은 광고 노출이 개인별 행동 변화에 미치는 인과 효과(Uplift) 를 추정하는 모델을 구축하는 것
전체 데이터 중 84.6%가 treatment 그룹으로, 실제 광고 실험 환경을 반영한 데이터 구조를 가짐
개인정보 보호를 위해 피처는 익명화 및 변환되었으나, 모델링에 필요한 예측력은 유지됨
전체 데이터 개수는 13,979,592건이며, 결측치(null)는 존재하지 않음

<데이터셋.head()>
</aside>
<aside> 💡
모델 학습 전, 입력 피처의 분포 특성을 파악하기 위해 두 가지 지표를 사용하였다.

<코드>

<결과>
skew > 0 → 오른쪽 꼬리가 긴 분포 (right-skewed)skew < 0 → 왼쪽 꼬리가 긴 분포 (left-skewed)skew ≈ 0 → 대칭 분포→ 두 지표를 함께 사용하여, 중앙부는 안정적인지 / 꼬리에 극단치가 존재하는지를 종합적으로 판단하였다.


<코드>
<결과>
<aside> 💡
광고 집행 그룹(treatment) 의 전환율은 통제 집단(control)보다 높지만,
두 집단 모두 절대적인 전환율은 매우 낮은 수준임 (약 0.0003 vs 0.00019)
그러나 광고 집행 + 실제 노출(exposure=1) 된 그룹의 전환율은 0.0005로,
노출되지 않은 집단 대비 약 5배 높은 수준을 보임

이는 광고 캠페인이 긍정적인 효과를 가질 가능성을 시사하지만,
한편, (treatment=1 & exposure=1) / treatment=1 비율이 약 3%로 매우 낮아,
</aside>
<aside> 💡
</aside>
<aside> 💡
</aside>