Kohavi Ch.7 개관 — OEC (Overall Evaluation Criterion)

실험용 metric 의 4 특성 + 다중 metric 합성 + Goodhart 법칙

Kohavi (2020) Ch.7 의 흐름을 한 편으로 압축한다. Business metric 과 experimentation metric 의 차이 (measurable, attributable, sensitive, timely), 다중 metric 을 단일 OEC 로 합성하는 방법, Amazon E-mail 과 Bing Search 의 OEC 진화 사례, 그리고 Goodhart·Campbell·Lucas 법칙의 OEC 설계 함의를 지도화한다.

Experimentation
A/B Test
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: OEC (Overall Evaluation Criterion)

OEC 는 실험 결과를 단일 지표로 요약하는 합성 metric. 복수의 goal·driver metric 의 가중 조합으로 정의되며, 장기 전략 목표와의 인과 alignment 가 검증되어야 한다 (Kohavi, Tang, Xu, 2020, Ch.7).

목적. 1. 출시 결정 자동화 — 출시·중단 결정을 단일 숫자로 환원 2. 트레이드오프 명시화 — 여러 metric 간 가중치를 사전 정의 3. 조직 alignment — 모든 팀이 같은 success 정의 공유

핵심 통찰: 단일 metric 의 한계 + 다중 metric 의 해석 모호성 사이의 균형. OEC 는 다중 metric 을 유지하면서도 결정의 명료성을 확보하는 도구.

저자들의 표현 (Goldratt 1990 인용): “Tell me how you measure me, and I will tell you how I will behave.” — OEC 가 행동을 결정한다.

2 개념 및 원리

2.1 Business Metric vs Experimentation Metric

Ch.6 의 G/D/G metric 이 그대로 실험에 사용되지 못한다. 실험용 metric 은 4 가지 추가 특성 필요.

특성 의미 위반 시 결과
Measurable 실험 기간 내 측정 가능 효과 알 수 없음
Attributable variant 에 귀속 가능 인과 식별 불가
Sensitive 효과 detect 가능 False negative ↑
Timely 실험 기간 내 반영 결정 지연
직관 — Sensitivity 의 양극단

Insensitive 극단: stock price 를 metric 으로 → 어떤 product 변경도 detect 불가. 회사 stock 은 macro 요인이 dominate.

Over-sensitive 극단: “이 기능 노출되었는가?” → 100% 항상 detect, but 가치 정보 없음.

적정 sensitivity: whole-page CTR (penalized for quick-back), success rate (purchase), time-to-success. localized 하지만 가치 측정 가능.

수학적 sensitivity: \(\text{SNR} = \text{effect size} / \text{noise}\). 분자 (효과) 가 너무 작거나 분모 (noise) 가 너무 크면 detect 불가.

2.2 4 특성 위반의 사례

2.2.1 Renewal Rate (Subscription)

연 단위 갱신 → 실험 기간 (보통 1~4 주) 동안 measure 불가. Surrogate metric (사용 빈도) 로 대체 (Ch.6 의 less-scalable hypothesis 기법).

2.2.2 Ads Revenue (Variance 큼)

매출 분포 long-tail. 일부 고가 클릭이 분산 폭증 → sensitivity ↓.

해결: truncated revenue (capping) — outlier 제거로 variance ↓ → sensitivity ↑ (Ch.22).

2.3 실험 Scorecard 의 구조

저자들의 권고 (Kohavi, Tang, Xu, 2020, Ch.7).

실험 Scorecard:
├─ Key Metrics (5 ~ 10 개)
│   ├─ Goal metric (1~2)
│   ├─ Driver metric (3~5)
│   └─ Guardrail (2~3)
├─ Diagnostic Metrics (수십 ~ 수백)
└─ Debug Metrics (드릴다운용)

매 실험에 수백~수천 metric 가 자동 계산되지만 결정에 사용되는 key metric 은 5~10. 다중 검정 문제 + 인지 부담 모두 고려.

2.4 다중 Metric → 단일 OEC

2.4.1 다중 Metric 유지의 함정 — Otis Redding Problem

Pfeffer & Sutton (1999): “Sitting by the Dock of the Bay” 가사 — “Can’t do what ten people tell me to do, so I guess I’ll remain the same.” 너무 많은 metric → 인지 부담 → 결정 마비.

저자들의 권고: key metric 5 개 한도. 더 많으면 single OEC 로 합성.

직관 — 5 개 임계의 통계학

다중 검정 함정. 독립 metric \(k\) 개 동시 평가 시 false positive 비율.

\[P(\text{at least one false positive}) = 1 - (1 - \alpha)^k\]

\(k\) \(\alpha = 0.05\)
1 5.0%
5 23%
10 40%
20 64%

5 개 metric 이면 독립 가정 하 23% 우연 false positive. 10 개면 40%. 인지 부담 외에 통계 적으로도 5 개 한도 합리.

물론 이는 Bonferroni 보정 등으로 통제 가능 (\(\alpha / k\) 사용). 그러나 보정 시 power 손실 ↑. 5 개 한도 + 보정 없음 이 실무 sweet spot.

2.5 OEC 합성 — 가중 합

가장 단순한 합성 (Roy 2001).

\[\text{OEC} = \sum_{i=1}^{k} w_i \cdot \tilde{m}_i\]

여기서 \(\tilde{m}_i\) 는 0~1 로 정규화된 metric, \(w_i\) 는 가중치 (\(\sum w_i = 1\)).

가중치 결정의 어려움. 처음에는 직관적 가중치 → 결정 누적 후 가중치 조정.

2.5.1 의사결정 4 시나리오

저자들이 제시한 분류 (가중치 없이도 사용 가능).

시나리오 모든 key metric 결정
1 모두 flat 또는 +, 적어도 1 개 + Ship
2 모두 flat 또는 -, 적어도 1 개 - Don’t ship
3 모두 flat Don’t ship + power 검토 또는 pivot
4 + 와 - 혼재 trade-off 판단

시나리오 4 의 결정이 누적되면 가중치 도출 가능. 인간 판단의 패턴이 가중치로 codified.

2.6 비유 — 비행기 조종석 vs 점수판

저자들이 제시한 유명한 비유 (Kaplan & Norton 1996 + Kohavi 2020).

2.6.1 비행기 조종석 (다중 metric)

  • 속도, 고도, 연료, 엔진 온도, 자세, GPS 위치, …
  • 단일 metric 으로 환원 불가
  • 조종사가 모든 metric 을 monitoring

2.6.2 농구 점수판 (단일 OEC)

  • 득점만 표시 (2 점·3 점 구분 없음)
  • 경기 종료 시 합산 score 가 승부 결정
  • 단일 metric 이 success 명확 정의

A/B 테스트의 위치: 비행기에 가까움 (다중 metric 모니터). 그러나 출시 결정 자체는 점수판 스타일 (단일 OEC). 즉 다중 metric 으로 진단·디버깅, 단일 OEC 로 결정.

3 OEC 의 장점

저자들이 제시한 5 가지 (Kohavi, Tang, Xu, 2020, Ch.7).

  1. 명확한 success 정의 — 모호함 제거
  2. 조직 alignment — 모든 팀이 같은 OEC 추구
  3. Trade-off 의 명시화 — 사전 합의된 가중치 → cherry-picking 방지
  4. 결정 일관성 — 같은 결과는 같은 결정
  5. 자동 출시 — parameter sweep + 자동 selection

4 사례 1 — Amazon E-mail OEC

저자들이 보고한 Amazon 의 OEC 진화 (Kohavi & Longbotham 2010).

4.1 초기 OEC — 단순 Click-through Revenue

OEC₁ = Σ revenue from email click-throughs

문제: 이메일 양에 단조 증가. 더 많은 캠페인 = 더 많은 매출 (단기). 결과: 사용자 spam.

4.2 임시 해결 — Traffic Cop

“X 일에 1 통” 제약 추가. 그러나 새 문제: 어느 캠페인을 보낼지 결정 어려움 → optimization 문제.

4.3 진화된 OEC — LTV Loss 차감

OEC₂ = (Σᵢ Revᵢ - s × unsubscribe_lifetime_loss) / n

여기서 \(s\) 는 unsubscribe 수, \(unsubscribe\_lifetime\_loss\) 는 평생 매출 손실 (다시는 이메일 보낼 수 없음).

직관 — 이 OEC 의 핵심 인사이트

원래 OEC 는 short-term revenue 만 본다. unsubscribe 의 비용을 0 으로 가정.

새 OEC 는 opportunity cost 를 명시적으로 차감. unsubscribe 1 명 = 평생 이메일 매출 0 원이라는 lower bound.

결과: 50% 이상의 캠페인이 negative OEC. 즉 단기 매출 < unsubscribe 의 평생 손실.

이 발견의 추가 효과: unsubscribe page 재설계. 디폴트가 “all emails” 가 아니라 “this campaign” 으로 변경 → unsubscribe 비용 감소.

이 OEC 의 일반 패턴: 상응하는 비용 차감. metric 이 단순 income 만 보면 cost (sustainable 한가? long-term hurt 인가?) 를 무시. net value 가 진짜 OEC.

5 사례 2 — Bing Search OEC

Bing 의 사례 (Kohavi et al. 2012). 저자들이 강조하는 “puzzling outcome”.

5.1 두 핵심 metric

  1. Query share = Bing query / 모든 search engine query
  2. Revenue per user

5.2 Puzzling 사건

Bing ranker bug → 매우 나쁜 검색 결과. 그러나.

  • Distinct queries per user: +10% ↑
  • Revenue per user: +30% ↑

만약 OEC 가 두 metric 의 단순 합 → bug 출시가 유의한 winner.

5.3 왜 이 패턴인가

나쁜 결과 → 사용자가 더 많은 query 입력 (정보 못 찾아서) + 더 많은 ad click (관련 결과 없어서 ad 라도 클릭). 단기 metric 으로는 +. 장기 사용자 이탈 은 단기 실험에서 detect 불가.

5.4 Distinct Queries 분해

\[\text{Monthly query share} = \frac{\text{distinct queries (Bing)}}{\text{distinct queries (all)}}\]

단일 사용자의 distinct queries.

\[\frac{\text{Users}}{\text{Month}} \times \frac{\text{Sessions}}{\text{User}} \times \frac{\text{Distinct queries}}{\text{Session}}\]

Sessions per User 가 핵심. 만족한 사용자는 더 자주 방문. Queries per Session 은 minimize 대상 (목표 빨리 달성).

OEC 결론: Sessions per User 를 핵심 driver 로. Queries per Session 은 task completion 검증 하에 minimize.

5.5 Revenue 의 Constraint

Revenue 도 단순 사용 시 game 가능 (광고 폭증). Constraint: ad pixel 비율 제한. 같은 ad 공간 내에서 revenue ↑ 가 진정한 가치.

이는 constraint optimization 문제. 자유 OEC 가 아니라 제약 하 OEC.

6 Goodhart · Campbell · Lucas 법칙

OEC 설계의 깊은 함의. 세 법칙 모두 correlation ≠ causation + measurement → distortion 경고.

6.1 Goodhart 법칙

원본 (Goodhart 1975): “Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.”

현대 표현 (Strathern 1997): “When a measure becomes a target, it ceases to be a good measure.”

함의: metric 자체가 목표가 되면 game 시도가 metric 의 의미 변경.

6.2 Campbell 법칙

Donald Campbell (1979): “The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor.”

함의: metric 이 결정에 강하게 영향 → 그 metric 을 distort 하는 압력 ↑.

6.3 Lucas Critique

Robert Lucas (1976): historical correlation 은 policy 변경 시 더 이상 hold 안 함.

예: Phillips Curve — 1861~1957 영국 데이터에서 inflation ↑ ↔︎ unemployment ↓. policy 로 inflation 조작하면 같은 관계 유지될까? 1973~1975 미국 recession: 두 변수 모두 ↑. 가정 깨짐.

함의: historical correlation 으로 OEC 설계 시 OEC 변경 후 같은 correlation 안 유지될 위험.

가정 — Correlation 으로 OEC 설계의 함정

Lucas 의 메시지: 관찰된 correlation 은 현 policy 하의 사용자 행동을 반영. policy (OEC) 변경 시 사용자 행동 변경 → correlation 변화.

예: 클릭 → 만족 correlation 이 historical 로 강하다고 해서 CTR 을 OEC 로 두면, 사용자 (또는 알고리즘) 가 click 을 늘리는 방향으로 행동 → click 의 만족 신호 가치 ↓ → correlation 약화.

저자들의 권고 (Tim Harford 인용): “Fort Knox has never been robbed, so we can save money by sacking the guards.” — 측정 결과는 현재 incentive 의 함수. incentive 변경하면 결과도 변함.

해결: OEC 의 인과 관계 검증 (Ch.6.3). historical correlation 으로 시작하되, 인과 실험으로 검증, 정기 갱신.

7 왜 필요한가

OEC 없이 다중 metric 만 사용 시.

  • Cherry-picking — 출시 옹호자가 +metric 만 highlight
  • 트레이드오프 모호 — 어떤 +가 어떤 - 와 상쇄되는지 매번 협상
  • 결정 비일관성 — 같은 결과도 다른 결정 (의사결정자 판단 차이)
  • 자동화 불가 — 자동 ramping, parameter sweep 모두 OEC 필요

OEC 가 있으면.

  • 결정 명료
  • 트레이드오프 코드화
  • 자동화 가능 (Fly 단계 핵심)

8 응용 사례 요약

회사 초기 OEC 진화된 OEC 핵심 학습
Amazon Click-through revenue Revenue - LTV loss 비용 차감
Bing Distinct queries Sessions per user Per-task minimize, per-user maximize
Netflix Watchtime Satisfied watchtime Quality 가중
Google Search CTR Successful CTR + Time-to-result Multi-proxy ensemble

9 예시 — 4 시나리오 분류 시뮬레이션

import pandas as pd

# 가상의 실험 결과: 4 시나리오 예시
scenarios = pd.DataFrame([
    {"Scenario": "1 (모두 flat 또는 +)",
     "RPV": "+1.5%*", "Engagement": "+0.5%*", "Latency": "0.0%", "Decision": "SHIP"},
    {"Scenario": "2 (모두 flat 또는 -)",
     "RPV": "-0.8%*", "Engagement": "0.0%", "Latency": "+50ms*", "Decision": "DON'T SHIP"},
    {"Scenario": "3 (모두 flat)",
     "RPV": "0.0%", "Engagement": "0.0%", "Latency": "0.0%", "Decision": "DON'T SHIP + power 검토"},
    {"Scenario": "4 (혼재)",
     "RPV": "+2.0%*", "Engagement": "-1.0%*", "Latency": "+30ms*", "Decision": "TRADE-OFF 판단"},
])

print(scenarios.to_string(index=False))
print("\n* = statistically significant")
                Scenario     RPV  Engagement  Latency                    Decision
       1 (모두 flat 또는 +)  +1.5%*       +0.5%*    0.0%                          SHIP
       2 (모두 flat 또는 -)  -0.8%*        0.0%   +50ms*                  DON'T SHIP
              3 (모두 flat)    0.0%        0.0%    0.0%       DON'T SHIP + power 검토
                  4 (혼재)  +2.0%*       -1.0%*   +30ms*              TRADE-OFF 판단
직관 — 4 시나리오의 의사결정 자동화

시나리오 1, 2, 3 은 자동 결정 가능. 출시·중단·power 검토 모두 명확.

시나리오 4 만 인간 판단 필요. 이 판단이 누적되면 가중치 도출. 예: 사례 100 건 중 RPV +1% 의 가치가 Engagement -1% 와 Latency +30ms 의 합과 같으면 가중치 추출.

수학적으로: 인간 결정의 logistic regression 으로 weight estimate.

\[P(\text{ship}) = \sigma(w_1 \cdot \Delta RPV + w_2 \cdot \Delta Engagement + w_3 \cdot \Delta Latency)\]

이 weight 를 OEC 가중치로 사용 → 시나리오 4 도 자동 결정 가능.

이는 human-in-the-loop 학습 패턴. 초기에는 인간이 trade-off 결정, 누적되면 시스템이 학습, 결국 자동화. Run → Fly 단계 전환의 메커니즘.

10 관련 주제

선행 — Phase F

후속 — Ch.7 시리즈

관련 챕터

다른 카테고리 연결

Subscribe

Enjoy this blog? Get notified of new posts by email: