Data Yanolja 2026 Title
← → / Space 1 / 14

Data Yanolja 2026

A/B 테스트만으로는
부족합니다

CRM 정책 최적화로 이해하는 베이지안 최적화

이병헌

A/B Test Policy Search Bayesian Optimization

Problem Setup

A/B 테스트는 강력합니다

  • 좋은 비교 도구입니다
  • 하지만 정책 공간을 직접 최적화해주지는 않습니다
  • 파라미터가 2개만 되어도 탐색 비용은 급격히 커집니다
A B

Binary comparison

할인율 발송 시점

Optimization View

x* = argmax_x f(x)

우리가 실제로 푸는 문제

  • x = 정책 파라미터 조합
  • f(x) = 기대 성과
  • 문제는 f(x)를 모른다는 점입니다
unknown objective surface

Gaussian Process

f ~ GP(m, k)

함수도 확률적으로 볼 수 있습니다

  • 함수에 대한 분포
  • mean + uncertainty
prior
posterior

Observation Model

y = f(x) + ε

Noisy Reality

현실의 실험 결과는 noisy합니다

  • 같은 정책도 결과는 흔들립니다
  • 그래서 uncertainty를 같이 봐야 합니다

Acquisition Intuition

x_next = argmax_x [μ(x) + βσ(x)]
mean
uncertainty
acquisition
  • 잘 될 것 같은 곳
  • 아직 잘 모르는 곳
  • 이 둘의 균형이 핵심입니다

오늘의 예제는 CRM 정책 최적화입니다

Parameter 1

할인율

0% - 30%

Parameter 2

발송 시점

이벤트 후 0 - 7일

incremental profit
-
coupon cost
-
send cost

완전 합성 시뮬레이터로 구조를 설명하고, 실제 결과가 나오면 시각 요소만 교체합니다.

Unconstrained Search

제약이 없으면 이렇게 찾을 수 있습니다

  • 적은 실험으로 유망한 구간을 좁혀갑니다
  • random / dense grid보다 더 효율적입니다
objective surface

Constrained View

max_x f(x) subject to g(x) <= 0

하지만 실무에는 제약이 있습니다

  • g(x) = 7일 무접속 이탈률
  • 수익이 높아도 운영 불가능한 정책은 탈락합니다
  • 우리가 찾는 것은 feasible optimum입니다
feasible region

Group-aware BO

x*(c) = argmax_x f(x, c)

연령과 성별이 달라지면 답도 달라집니다

Group 1

20대 여성

Group 2

20대 남성

Group 3

30대 여성

Group 4

30대 남성

각 연령/성별 그룹마다 최적 할인율과 최적 발송 시점이 달라질 수 있습니다.

Shared Group Structure

x*(c) = argmax_x f(x, c)

그룹을 완전히 따로 볼 필요는 없습니다

  • 연령/성별 그룹 간 유사성은 활용할 수 있습니다
  • 데이터가 적어도 더 안정적으로 탐색할 수 있습니다
  • 핵심은 그룹별 최적화 + 정보 공유입니다
20대 여성
20대 남성
30대 여성
30대 남성
shared structure

Extensions

같은 프레임은 다른 정책 문제에도 연결됩니다

할인율 × 쿠폰 유효기간

할인율 × 발송 비율

할인율 × uplift threshold

핵심은 파라미터화와 제약 정의

Tooling

구현은 생각보다 가깝습니다

Ax

빠른 시작

BoTorch

유연한 확장

진짜 어려운 건 코드보다 문제 정의입니다

Takeaway

베이지안 최적화는
하이퍼파라미터 튜닝만의
도구가 아닙니다

A/B 테스트 이후의 정책 탐색 문제를 다루는 방법으로 볼 수 있습니다

핵심은 objective, constraint, group context를 구조화하는 능력입니다