DEV Community

Cover image for Switchback experiment — 같은 유저에게 ON/OFF를 번갈아 적용하는 실험 설계
HyunSeok Jeong
HyunSeok Jeong

Posted on • Originally published at blog.trysitely.com

Switchback experiment — 같은 유저에게 ON/OFF를 번갈아 적용하는 실험 설계

"광고 입찰 알고리즘 두 안을 A/B로 비교하려는데, 처리군 입찰이 대조군 노출에도 영향을 줘요." 이런 상황에서 일반 A/B는 깨집니다. 처리·대조군이 같은 광고 슬롯·같은 매체 풀을 두고 경쟁하기 때문에 서로의 결과를 흔듭니다. Switchback은 이 문제를 시간을 잘라 푸는 실험 설계입니다. 같은 유저·같은 시장에 시간 단위로 ON/OFF를 번갈아 적용하면 처리·대조 간 간섭이 사라집니다. 마케터가 알아야 할 세 번째 실험 도구를 정리합니다.

1. SUTVA 위반 — 일반 A/B가 깨지는 자리

A/B 테스트의 가장 중요한 가정 중 하나는 SUTVA(Stable Unit Treatment Value Assumption)입니다. 한 줄 정의는 다음입니다.

한 유저의 처리·대조 결과는 다른 유저의 처리·대조 배정에 영향받지 않는다.

대부분의 마케팅 실험은 이 가정 위에서 작동합니다. 광고 카피 A/B는 한 유저가 보는 카피가 다른 유저에게 영향 없으므로 SUTVA 충족. UI 변경 A/B도 마찬가지입니다.

문제는 다음 자리들입니다.

  • 광고 입찰 — 처리군 입찰가 변화가 같은 슬롯의 대조군 노출에 영향
  • 실시간 매칭 — 라이드 헤일링·배달의 처리군 매칭이 대조군 대기 시간에 영향
  • 리쿠리 광고 — 처리군이 본 광고가 같은 가구 안 대조군의 광고 인지에 영향
  • 가격 실험 — 처리군 가격이 같은 카테고리 대조군 매출에 영향
  • 예산 캡 캠페인 — 처리군 노출이 같은 캠페인의 대조군 잔여 예산을 잡아먹음

이 자리들은 처리와 대조군이 같은 풀을 공유합니다. 일반 A/B로 비교하면 효과가 0에 가까워지거나 반대 방향으로 보고됩니다. SUTVA가 깨졌기 때문입니다.

시간을 슬롯으로 잘라 ON/OFF를 번갈아 적용하는 다이어그램
유저 단위가 아니라 시간 단위로 처리·대조를 바꾼다. 같은 시장 안의 모든 유저가 한 시간 슬롯에서는 같은 처리, 다음 슬롯에서는 같은 대조를 받는다.

📌 이 글에서 다루는 것

Switchback experiment는 Lyft·DoorDash·Uber가 양면 시장 실험 표준으로 도입한 설계입니다. 마케팅에서는 광고 입찰·예산 캡·리쿠리 광고처럼 자원 공유가 있는 자리에 그대로 적용됩니다. 이 글은 직관·운영·자주 깨지는 함정을 마케터 시각으로 풀어냅니다.

2. Switchback의 한 줄 아이디어

switchback의 핵심은 한 줄입니다.

처리·대조를 유저 단위가 아니라 시간 단위로 바꾼다.

예를 들어 30분 단위로 잘라 홀수 슬롯은 처리, 짝수 슬롯은 대조. 같은 시장 안 모든 유저가 같은 슬롯에서는 같은 처리를 받습니다. 처리·대조 간 자원 경쟁이 사라집니다.

시간 슬롯 시장 모든 유저
09:00~09:30 처리 (T) 새 알고리즘
09:30~10:00 대조 (C) 기존 알고리즘
10:00~10:30 처리 (T) 새 알고리즘
10:30~11:00 대조 (C) 기존 알고리즘

이 데이터에서 처리군 슬롯의 평균 메트릭과 대조군 슬롯의 평균 메트릭을 비교합니다. 시간 단위 단위로 SUTVA가 풀려 효과가 깨끗하게 추정됩니다.

수식으로 적으면 단순합니다.

τ^SB=YˉTYˉC,T=t:Wt=1, C=t:Wt=0 \hat\tau_{SB} = \bar Y_T - \bar Y_C, \quad T = {t : W_t = 1},\ C = {t : W_t = 0}

여기서 WtW_t 는 시간 슬롯 tt 의 처리 표시, YˉT\bar Y_T · YˉC\bar Y_C 는 처리·대조 슬롯의 평균 메트릭입니다.

3. 슬롯 길이를 어떻게 정하나 — carryover의 함정

switchback의 가장 중요한 운영 결정은 슬롯 길이입니다. 짧으면 carryover effect가 강하고, 길면 표본이 부족합니다.

3-1. carryover effect

처리 슬롯 동안 일어난 일이 다음 대조 슬롯에 영향을 남기는 현상입니다.

  • 광고 입찰: 처리 슬롯에서 입찰을 더 세게 부른 결과가 대조 슬롯의 매체 풀 상태에 영향
  • 라이드 헤일링: 처리 슬롯에서 매칭된 드라이버가 대조 슬롯에서도 그 영향에 있음
  • CRM: 처리 슬롯에 보낸 푸시가 대조 슬롯의 행동에 영향

슬롯이 너무 짧으면 carryover로 처리·대조의 차이가 깎입니다. 운영에서는 도메인의 carryover 시간 척도(보통 운영 사이클의 1~2배)를 슬롯 길이로 잡는 게 표준입니다.

3-2. 표본 크기

슬롯이 너무 길면 같은 기간 안에 슬롯 수가 적어 검출력이 떨어집니다. 표본 단위가 유저가 아니라 슬롯이기 때문입니다. 일반적인 가이드라인:

  • 광고 입찰·실시간 매칭: 30분~1시간 슬롯, 2주 운영
  • 가격 실험·예산 캡: 1일 슬롯, 4~6주 운영
  • CRM·푸시: 6시간 슬롯, 2~3주 운영

💡 슬롯 길이의 첫 결정은 도메인 사이클

switchback의 슬롯 길이는 통계적 검출력보다 도메인 carryover 시간이 우선입니다. carryover보다 짧으면 효과가 깎이고, 너무 길면 운영 기간이 늘어납니다. 도메인 expert와 한 번 의논해서 carryover 사이클을 정하고, 그 사이클의 1~2배를 슬롯 길이로 잡으세요.

4. 처리·대조 슬롯 배치 — 무작위 vs 격자

슬롯에 처리·대조를 어떻게 배정하느냐도 결정 요소입니다. 두 가지 패턴이 있습니다.

  • 무작위 배정 — 각 슬롯을 50% 확률로 처리·대조. 단순, 시간 추세 흡수 약함
  • 격자(alternating) 배정 — T-C-T-C 순서. 시간 추세 흡수 강함, 카운터 가능성 약점

운영 표준은 보통 격자 배정에 약간의 무작위성을 더한 형태입니다. 매주 시작 슬롯의 T/C를 무작위로 정하고 그 안에서 격자로 가는 식. 시간 추세를 떼어내면서도 운영자가 패턴을 외우지 못하게 합니다.

회귀로 분석할 때는 시간 효과를 명시적으로 보정합니다.


python
Enter fullscreen mode Exit fullscreen mode

Top comments (0)