본문 바로가기
Causal inference

Part 5. Advanced Topics for Analyzing Experiments

by Night Fury 2023. 10. 12.
론 코하비, 다이앤 탕, 야 쉬, 『A/B 테스트 신뢰할 수 있는 온라인 종합 대조 실험』, 이기홍, 김기영, 에이콘출판사-MANNING(2022), p260-341.

 

17. The Statistics behind Online Controlled Experiments

Two-Sample t-Test

  • \(H_0: mean(Y^t) = mean(Y^c)\)
  • \(H_A: mean(Y^t) \ne mean(Y^c)\)
  • t-statistic, \(T\)
    • \(T = \displaystyle{\Delta\over \sqrt{var(\Delta)}}\)
    • \(\Delta\): unbiased estimator
      • difference between the Treatment average and the Control average
    • \(var(\Delta) = var(\overline{Y^t} - \overline{Y^c}) = var(\overline{Y^t}) + var(\overline{Y^c})\)
    • \(T\)가 클수록 귀무가설을 기각할 가능성이 높음
  • p-value
    • probability of observing the delta, or a more extreme delta
    • 수집된 데이터를 기반으로 귀무가설이 참인지 여부(posterior probability)를 알려면 p-value와 likelihood가 필요함
  • 신뢰구간이 0과 겹치는지 확인하는 것으로 델타가 통계적으로 유의한지 확인할 수 있다.

 

Normality Assumption

  • 대부분 t-statistic에서 \(T\)가 정규 분포를 따른다는 가정하게 p-value를 계산함
    • 평균 0, 분산 1
  • 확인하려는 지표 \(Y\)의 표본 분포는 정규 분포를 따르지 않을 수 있음
    • 표본의 크기가 증가할 때, 표본 평균 \(\overline{Y}\)는 중심 극한 정리에 따라 정규 분포를 따름
    • 표본 분포의 왜도(skewness) → 표본 평균 \(\overline{Y}\)가 정규 분포를 갖기 위한 최소 표본 수 확인
      • \(s = \displaystyle{E[Y-E(Y)]^3\over [Var(Y)]^{3/2}}\)
      • 왜도가 작은 경우, 분포의 형태가 정규 분포에 가깝기 때문에 더 적은 수의 표본이 필요함
      • 왜도를 줄이는 효과적인 방법: 지표를 변경하거나 값을 제한 (e.g. Revenue/User를 주당 $10로 제한)
  • 표본 크기가 정규성 가정에 부합할 정도인지 확인하는 방법
    • offline simulation 활용
      • 표본을 무작위로 섞어 귀무가설 분포를 생성
      • 통계 테스트를 활용하여 분포를 정규 곡선과 비교
        • Kolmogorov–Smirnov
        • Anderson-Darling
      • Type I error rate이 사전 설정한 임계값(e.g. 0.05)에 제한되는지 확인
    • 정규성 가정이 맞지 않다면, permutation test을 수행하여 귀무가설 분포에 대한 관측치 위치를 확인
      • 표본 크기가 작을 때 활용

 

Type I/II Errors and Power

  • Type I error: 실제로 차이가 없는데 차이가 있다고 결론
    • conclude significant difference between Treatment and Control when there is no real difference
  • Type II error: 실제로 차이가 있는데 차이가 없다고 결론
    • conclude no significant difference when there really is one
  • Type I error, Type II error는 tradeoff
  • Type II error는 power (검정력)로 알려짐
    • power = 1 - Type II error
      • \(Power_{\delta} = P(|T|\ge1.96|true\;diff\;is\;\delta)\)
    • power: 실제로 차이가 있을 때, 변수 사이의 차이를 감지할 가능성 (귀무가설 기각할 확률)
    • 업계 표준은 테스트에서 80% 이상의 검정력을 달성하는 것
      • 80% 검정력을 달성하는데 필요한 총 표본 수: \(n \approx \displaystyle{16\sigma^2\over \delta^2}\)
      • \(\delta\): 실험군과 대조군의 차이
        • 실험을 시행해야 알 수 있음
  • 온라인 실험의 경우, 사용자가 오랜 기간에 걸쳐 방문하기 때문에 표본 크기 추정이 더 복잡함
    • 실험 기간이 실제 표본 크기에 중요한 역할을 함
    • 랜덤화 단위에 따라 표본 분산도 시간에 따라 변할 수 있음
    • 트리거 조건이 실험에 따라 바뀌기 때문에, 표본 분산과 델타값이 변함 → 트래픽 할 당 및 기간 설정이 중요
  • 표본 크기가 작은 경우
    • 추정이 잘못된 방향에 있을 확률을 계산 (Type S [sign] error)
    • 효과의 중요도가 과대 평가될 수 있는 요인을 계산 (Type M [magnitude] error)

 

Multiple Testing

  • 지표들이 독립적이라면, 변수가 아무 효과가 없어도 통계적으로 유의한 지표의 수는 유의 수준과 동일한 비율이다.
    • e.g. 100개 지표, 5% 유의 수준 → 5개가 통계적으로 유의함
  • 여러 실험을 병렬로 테스트할 때, false discoveries가 증가함 → Multiple testing 문제
  • Multiple testing에서 Type I, Type II error를 통제하는 방법: 베이지안 해석 활용
    • 모든 지표를 3가지 그룹으로 분리
      • 1차 지표: 실험에 영향을 받을 것으로 예상되는 지표
      • 2차 지표: 잠재적으로 영향을 받을 수 있는 지표
      • 3차 지표: 영향받지 않는 지표
    • 각 그룹에 계층별 유의 수준을 적용 (e.g. 0.05, 0.01, 0.001)

 

Fisher’s Meta-analysis

  • 동일한 가설에 대한 여러 테스트 결과를 결합하는 방법
  • 검정력을 높이고 false-positives을 줄이는데 유용함
  • \(X^2_{2k} = -2\displaystyle\sum^k_{i=1}{ln(p_i)}\)
    • \(p_i\): i번째 가설 검정의 p-value
    • 모든 k개의 귀무가설이 참이면, 검정 통계량은 2k 자유도의 chi-squared distribution을 따름

 

18. Variance Estimation and Improved Sensitivity: Pitfalls and Solutions

  • 분산은 p-value와 신뢰구간 계산에서 가장 중요한 요소
  • 분산을 계산하기 위한 일반적인 절차 (i.i.d.)
    • 지표를 계산: \(\overline{Y} = \displaystyle{1\over n}\sum^n_{i=1}Y_i\)
    • 표본 분산을 계산: \(var(Y) = \sigma^2 = \displaystyle{1\over n-1}\sum^n_{i=1}{(Y_i-\overline{Y})^2}\)
    • 지표 평균의 분산을 계산: \(var(\overline{Y}) = var\Big(\displaystyle{1\over n}\sum^n_{i=1}{Y_i}\Big) = {1\over n^2}*n*var(Y) = {\hat{\sigma}^2\over n}\)

 

Common Pitfalls

  • 분산을 잘못 추정하면 p-value와 신뢰구간이 잘못되어 가설 검정의 결론에 오류가 발생함
    • 분산을 실제보다 크게 추정: false negative
    • 분산을 실제보다 작게 추정: false positive
  • Delta vs. Delta %
    • 실험 결과 보고 시, 상대적 차이(percent delta)를 사용하는 것이 일반적
      • 세션이 평균보다 0.01개 많은 것보다 1% 증가한 것이 더 이해하기 쉬움
    • percent delta: \(\Delta \% = \displaystyle{\Delta \over \overline{Y^c}}\)
    • percent delta의 신뢰구간을 올바르게 추정하려면 분산을 추정해야 함
      • 일반적으로 \(var(\Delta)\)를 \(\displaystyle{var(\Delta)\over \overline{Y^c}^2}\)로 추정하는 실수를 함
      • 올바른 추정 방법: \(var(\Delta \%) = \displaystyle var\Big({\overline{Y^t} - \overline{Y^c} \over \overline{Y^c}}\Big) = var\Big({\overline{Y^t}\over \overline{Y^c}}\Big)\)
  • Ratio Metrics. When Analysis Unit Is Different from Experiment Unit
    • 많은 중요 지표들은 두 지표의 비율에서 비롯됨
      • e.g. CTR = total clicks / total pageviews
    • 실험이 사용자 단위로 랜덤화되면 분산 추정에 어려움이 생길 수 있음
      • 분산 공식에서는 i.i.d (독립적으로 동일하게 분포) or 서로 상관관계가 없다는 중요한 가정이 근간
      • 분석 단위가 실험 랜덤화 단위와 동일하면 가정이 충족됨
      • 분산을 정확하게 추정하기 위해 단위를 통일해야 함
    • e.g. 실험이 사용자에 의해 랜덤화되고 페이지 수준의 지표를 보고 싶은 경우
      • 비율 지표를 사용자 수준 지표의 평균의 비율로 작성 가능
        • 사용자별 비율 지표를 계산하고 이 값을 실험군 내에서 평균
        • \(M = \displaystyle{\overline{X}\over \overline{Y}}\)
      • 델타 방법으로 분산 추정
        • \(var(M) = \displaystyle{1\over \overline{Y}^2}var(\overline{X}) + {X^2\over \overline{Y}^4}var(\overline{Y}) - 2{\overline{X}\over \overline{Y}^3}cov(\overline{X}, \overline{Y})\)
        • \(var(\Delta \%) = \displaystyle{1\over \overline{Y}^{c^2}}var(\overline{Y^t}) + {\overline{Y^{t^2}}\over \overline{Y}^{c^4}}var(\overline{Y^c})\)
      • 사용자 수준의 비율 지표로 기록할 수 없는 경우 → 대체하는 샘플링 방식으로 랜덤화하여 bootstrap 방법을 활용
  • Outliers
    • 이상치의 상대적 크기가 증가하면 t-statistic이 감소하고 검정이 통계적으로 유의하지 않음 → 제거 필요
    • 실용적인 방법: 합리적인 임계값 이하의 값으로 관측값을 제한 (e.g. 사용자 daily 페이지뷰 500번 이하로 제한)

 

Improving Sensitivity

  • power or sensitivity: 실험 효과를 감지하는 능력
  • sensitivity를 향상하는 방법: 분산을 줄이기
    • 더 적은 분산을 가진 평가 지표를 만들기 (e.g. 구매 금액 → 구매 여부)
    • 값을 제한하거나(capping) binarization, 로그 변환을 통해 지표를 변환
      • 해석력이 중요하지 않을 경우 로그 변환을 고려
    • 트리거 분석을 활용
      • 변수의 영향을 받지 않는 사람들에 의해 발생하는 노이즈를 제거하는 방법
    • stratification, Control-variates, CUPED 활용
      • stratification (e.g. platform, browser type)
        • 샘플링 영역을 계층으로 나누고,
        • 각 층 내에서 개별적으로 샘플을 수집한 다음
        • 전체 추정치에 대해 개별 층의 결과를 결합하는 것
      • Control-variates
        • 공변량을 회귀 변수로 사용하여 다중회귀분석을 시행
        • 공변량에 의한 편향을 측정한 후, 제거하는 방법
      • CUPED: Controlled Experiments by Utilizing Pre-Experiment Data
        • 온라인 실험에서 사전 실험 데이터를 통제 변수로 활용하는 방법
    • 더 세분화된 단위로 랜덤화
      • 사용자 경험에 나쁜 영향을 줄 수 있음
    • paired experiment을 설계
      • e.g. interleaving 설계: 랭킹 방식을 평가하는 일반적인 방법
        • 두 순위 목록을 교차배포하고 사용자에게 합쳐진 목록을 제공
    • Control group을 통합
      • 각 실험마다 고유한 트리거 조건이 있는 경우, 동일한 대조군을 사용하기 어려울 수 있음
      • 실험군끼리 직접적으로 비교하고 싶을 수 있음

 

Variance of Other Statistics

  • PLT(page load time)와 같은 시간 기반 지표의 경우, 분위수를 사용하는 것이 일반적
  • 이벤트/페이지 수준의 시간 기반 지표의 실험은 사용자 수준에서 랜덤화됨 → 밀도 추정 + 델타 방법의 조합을 적용

 

19. The A/A Test

  • A/A 테스트
    • 개념: 사용자를 두 그룹으로 나누지만 B를 A와 동일하게 만듦
      • 반복 시행에서 약 5% 경우에 지표는 0.05 미만의 p-value를 지니며 통계적으로 유의해야 함
      • p-value를 계산하기 위해 t-test를 수행할 때, 반복 시행에서 얻은 p-value의 분포는 균등 분포에 가까워야 함
    • 실험 플랫폼에 대한 신뢰를 구축 가능
    • 현실에서 테스트가 실패하는 것을 발견할 수 있고, 이에 따라 가정을 재평가하고 오류 식별 가능

 

Why A/A Tests?

  • Type I error가 예상대로 통제되는지 확인
    • 표준 분산 계산에서 일부 지표에 대해 올바르지 않거나, 정규성 가정이 유지되지 않을 수 있음
  • 지표의 변동성을 평가
    • 시간에 따른 지표 분산의 변화를 확인 가능
  • 이전 실험의 모집단을 재사용하는 경우, 실험군과 대조군의 사용자 간에 편향이 없는지 확인
    • 플랫폼 수준에서 편향을 식별하는데 효과적인 방법
    • e.g. Bing은 연속 A/A 테스트를 사용하여 carry-over effect(이월 효과)를 식별함
  • 시스템의 기록과 데이터를 비교
    • A/A 테스트는 조직에서 종합 대조 실험을 사용하기 전에 첫 번째 단계로 사용됨
    • 주요 지표(e.g. CTR)가 시스템 기록과 일치하는지 확인
  • 실험 세팅대로 이행이 되었는지 확인
    • 웹사이트를 방문한 X명의 사용자 중, 실험군과 대조군에 20%씩 할당한 값이 그대로 되었는지 검증
  • 통계적 검정력 계산을 위한 분산 추정
    • A/A 테스트를 통해 최소한의 감지가 가능한 효과를 얻기 위해 A/B 테스트를 얼마나 실행해야 하는지 결정하는데 필요한 지표의 분산을 제공함

 

Example

  • Analysis Unit Differs from Randomization Unit
    • e.g. 사용자별로 랜덤화하고 페이지별 분석하는 것이 필요한 실험
    • CTR 계산 방식
      • 모든 클릭 수를 계산하고 총 페이지 뷰 수로 나누는 방법
        • \(CTR = \displaystyle{\sum^n_{i=1}\sum^{K_j}{j=1}X{i,j} \over N}\)
        • \(N\): 총 페이지 뷰 수 (\(N = \sum^n_{i=1}K_i\))
        • \(K_i\): 사용자 \(i\)의 페이지 뷰 수
        • \(n\): 사용자 수
        • \(X_{i,j}\): 사용자 \(i\)가 페이지 \(j\)를 클릭한 수
      • 각 사용자의 CTR을 평균한 다음, 모든 CTR의 평균을 계산하는 방법
        • \(CTR = \displaystyle{\sum^n_{i=1}{\sum^{K_j}{j=1}X{i,j} \over K_i}\over n}\)
        • 이상치에 대해 덜 영향을 받으므로 권장하는 방법
    • 분산의 불편 추정치는 델타 방법 or bootstrapping을 사용하는 것을 권장
  • Optimizely Encouraged Stopping When Results Were Statistically Significant
    • 통계학에서는 일반적으로 실험의 마지막에 한 번의 테스트가 수행하는 것을 전제로 함
      • 중간 과정에서 테스트를 수행하는 것(peeking)은 예상보다 많은 false-positive를 도출
    • Optimizely 초기 버전은 중간 과정 테스트와 조기 종료를 장려하여 수많은 거짓된 개선을 야기했음
      • “How Optimizely (Almost) Got Me Fired” 기사 참조
  • Browser Redirects
    • 웹사이트 새 버전을 구축 중이고 A/B 테스트를 실행한다고 했을 때, B(새 버전)는 높은 확률로 실패할 수 있음
      • 실험군 B 사용자는 새로운 웹사이트로 리디렉션 되는 경우
      • 일반적으로 리디렉션은 A/A 테스트에 실패함
        • 리디렉션이 없도록 구성하거나 변형군 모두 리디렉션을 실행해야 함
    • 원인
      • 성능 차이
        • 리디렉션 된 사용자는 추가적인 리디렉션을 겪음 → 1-2초의 대기 시간을 겪을 수 있음
        • 일부는 리디렉션 되지 않을 수 있음
        • 대량의 크롤링을 수행하여 주요 지표에 영향을 미칠 수 있음
      • 북마크와 공유 링크는 오염을 유발함
        • 북마크와 공유 링크를 통해 웹사이트로 이동하는 사용자는 계속 리디렉션 되어야 함
        • 리디렉션은 변형군 간에 대칭이어야 하므로, 대조군 사용자도 리디렉션 되어야 함
  • Unequal Percentages
    • 균등하지 않게 분할한 경우, 리소스 분배가 더 큰 변형군에게 유리하게 적용될 수 있음
      • 대조군과 실험군 간에 공유되는 LRU(Least Recently Used) 캐시는 큰 변형군에 더 큰 캐시 항목을 가지게 됨
    • 정규 분포로의 수렴 속도가 다름
      • 한쪽으로 과도하게 치우친 분포가 있다면, 중심극한정리는 백분율이 다르면 평균은 정규분포로 수렴하지만 수렴 속도가 달라짐을 보임
  • Hardware Differences
    • 하드웨어(신형, 구형)의 차이로 예상치 못한 일이 발생할 수 있음

 

How to Run A/A Tests

  • 이상적으로는 1,000개의 A/A 테스트를 시뮬레이션하고 p-value의 분포를 시각화하는 것이 좋음
    • 분포가 균등하지 않다면 문제가 있는 것
  • 델타 방법을 활용하는 것이 좋음
  • 1,000번의 A/A 테스트를 실행하는 것은 비용이 많이 발생함
    • 지난주의 실험을 반복하는 것으로 대체 가능
      • 성능 문제를 포착하지 못하고 LRU 캐시와 같이 리소스를 공유하지 못하는 단점이 있음
      • 많은 문제를 식별하는 데 도움을 줄 수 있는 장점이 있음
        • 제품 변경이 필요 없음
  • 적합도 테스트(Goodness of fit test)를 실행해서 분포가 균등에 가까운지 평가
    • Anderson-Darling or Kolmogorov-Smirnoff 검정

 

When the A/A Test Fails

  • p-value의 균등 분포에 대한 적합도 테스트가 실패하는 일반적인 시나리오
    • 분포가 치우쳐 있고 명확하게 균등하지 않은 경우 → 분산 추정 문제
      • 랜덤화 단위와 분석 단위가 달라서 독립성 가정이 위반됐을 수 있음 → 델타 방법, 부트스트래핑 활용
      • 지표가 매우 치우쳐진 분포 → 제한된 지표 or 최소 표본 크기 설정으로 해결
    • p-value가 0.32 주변에 몰려있는 경우 → 이상치 문제
      • 이상치의 원인을 조사하거나 데이터를 제한해야 함
    • 분포가 큰 간격으로 값이 몇 개의 점에 몰려있는 경우 → 대부분 단일 값을 가지고 몇 개의 0이 아닌 값을 가질 때 발생
      • 새로운 실험이 희소한 사건을 더 빈번하게 발생시키므로 실험효과가 더 커지고 통계적으로 유의하게 될 수 있음
  • A/A 테스트 통과 이후에도 A/B 테스트와 동시에 정기적으로 A/A 테스트를 실행해서 문제를 사전 대응하는 것을 권장

 

20. Triggering for Improved Sensitivity

  • 트리거링: 실험의 영향을 받지 않았을 사용자가 생성한 노이즈를 필터링해서 민감도를 개선할 수 있는 방법

 

Examples of Triggering

  • 변경의 영향을 받았을 가능성이 있는 사용자만 분석 → 민감도 or 통계적 검정력을 크게 향상할 수 있음
  • Intentional Partial Exposure
    • e.g. 특정 지역만 대상으로 분석을 해야 하는 경우
    • treatment 대상이 실험 전의 데이터를 기반으로 명확하게 정의되어야 함
    • treatment에 의해서 정의 자체가 영향을 받지 않아야 함
  • Conditional Exposure
    • 사용자가 특정 조건을 만족하는 것 자체가 차이를 만들게 됨 → 변경 사항에 사용자가 노출되자마자 실험에 트리거 됨
  • Coverage Increase
    • e.g. 무료 배송 가격 조건을 변경하는 실험 ($35 → $25)
    • $25~$35에 해당되는 사용자만 트리거링
  • Coverage Change
    • 적용 범위가 변경되는 경우는 확대보다 복잡함
    • 변형군 모두 counterfactual을 평가하고, 두 변형 군 간에 차이가 있는 경우에만 사용자가 트리거 된 것으로 표시
      • 실험군과 대조군의 각각의 차집합에 해당되는 부분을 의미
  • Counterfactual Triggering for Machine Learning Models
    • 새로운 ML 모델이 대부분 사용자에 대해 기존 ML 모델과 중복된다면 실험효과는 없음
      • counterfactual을 생성해야 함
        • 대조군에서 기존/신규 모델을 모두 실행하고 출력값을 로그에 기록
        • 출력에 차이가 있는 사용자만 트리거
      • 계산 비용이 증가하는 단점이 있음
      • 모델이 병렬로 실행되지 않으면 지연시간도 영향을 받을 수 있음

 

A Numerical Example

  • 최소 표본 크기 산출
    • \(n = \displaystyle {16\sigma^2\over \Delta^2}\)
  • e.g. 방문한 사용자 중, 5%만 실제 구매를 하는 경우
    • \(n=16*0.05(1-0.05)/(0.05\cdot 0.05)^2=121,600\)
  • e.g. 사용자 10%가 결제를 시작하고 5%의 구매율이 주어진 경우
    • 결제 완료 = 5%/10% = 50%
    • \(n=16*0.5(1-0.5)/(0.5\cdot 0.05)^2=64,000\)
    • 절반의 시간 내에 동일한 검정력을 가질 수 있음

 

Optimal and Conservative Triggering

  • 최적의 트리거 조건: 변수 적용으로 인해, 차이가 발생한 사용자에게만 분석을 하는 것
    • 다중 실험군의 경우, 모든 변형군에 대한 사실(actual plus)과 반사실(counterfactual)을 기록하는 것이 이상적임
    • 상당히 많은 비용이 소모됨 → 반사실을 생성하기 위해 여러 모델을 실행해야 함
  • 보수적인 트리거링: 최적보다 많은 사용자를 포함하는 것
    • 통계적 검정력이 떨어질 수 있음

 

Overall Treatment Effect

  • 트리거 된 모집단에 의한 실험 효과를 계산할 때, 반드시 효과를 전체 사용자 기반으로 희석해야 함
    • e.g. 사용자 10%에 대해 수익이 3% 증가 → 전체 수익이 10% * 3% = 0.3% 증가한 것이 아님
    • 심슨의 역설을 유발할 수 있음
  • Formulation
    • 기호
      • \(w\): 전체 사용자
      • \(\theta\): 트리거 된 사용자
      • \(C\): 대조군
      • \(T\): 실험군
      • \(N\): 사용자 수
    • 트리거된 모집단의 절대 효과: \(\Delta_{\theta} = M_{\theta T} - M_{\theta C}\)
    • 트리거된 모집단의 상대 효과: \(\delta_{\theta} = \Delta_{\theta} / M_{\theta C}\)
    • 트리거링 비율: \(\tau = N_{\theta C} / N_{wC}\)
      • 실험군과 대조군을 결합한 비율: \((N_{\theta C} + N_{\theta T}) / (N_{wC} + N_{wT})\)
  • 희석된 백분율 효과를 다루는 방법
    • 실험 효과를 전체로 나누는 경우
      • \(\displaystyle{{\Delta_{\theta} * N_{\theta C}}\over M_{wC} * N_{wC}}\)
    • 트리거 되지 않은 지표에 대한 실험 효과 비율과 트리거링 비율을 곱하는 경우
      • 트리거 되지 않은 지표에 대한 실험 효과 비율: 10% 사용자에 대해 3% 수익 개선이 있는 경우 전체 수익이 10%*3% = 0.3% 개선된다는 것을 의미
      • \(\displaystyle{\Delta_{\theta}\over M_{wC}} * \tau\)

 

Trustworthy Triggering

  • 신뢰할 수 있는 트리거링을 위해 2가지 검사가 필요
  • SRM (Sample Ratio Mismatch)
    • 전체 실험에 SRM이 없지만, 트리거된 분석이 SRM을 보여준다면 약간의 편향이 도입된 것
    • 반사실 트리거링이 제대로 수행되지 않았을 경우 주로 나타남
  • Complement analysis
    • 한 번도 트리거 되지 않은 사용자에 대한 점수를 생성하고 A/A 테스트 점수를 구해서 확인
    • 예상한 지표보다 통계적으로 유의미한 경우, 트리거 조건이 올바르지 않을 가능성이 높음

 

Common Pitfalls

  • Experimenting on tiny segments that are hard to generalize
    • Amdahl’s law: 전체 실행 시간의 작은 부분을 차지하는 시스템 일부분의 속도를 높이는 것을 피하기 위해 언급됨
  • A triggered user is not properly triggered for the remaining experiment duration
  • Performance impact of counterfactual logging
    • A/A’/B 실험을 실행
      • A: original system (대조군)
      • A’: 반사실 기록이 있는 original system
      • B: 반사실 로깅이 있는 새 실험군
    • A, A’이 크게 다를 경우, 반사실의 로그가 영향을 받고 있다는 경고가 됨
  • Open questions
    • Triggering unit: 어느 시점에서 진행하는 것이 좋을까?
      • 계산상으로는 사용자가 트리거 되는 경우, 실험 시작부터의 데이터를 갖고 고려하는 것이 쉽지만, 통계적 검정력이 약간 손실됨
    • Plotting metrics over time
      • 매일 그날 방문한 사용자를 보여주는 그래프를 시간 경과에 따라 살펴보는 것이 가장 좋음
      • 당일 방문해서 트리거 된 사용자로 매일 시각화하는 것이 좋음
        • 첫째 날 트리거된 일부 사용자가 방문을 둘째 날에 할 수 있기 때문

 

21. Sample Ratio Mismatch and Other Trust-Related Guardrail Metrics

  • Guardrail Metrics: 가정이 위반될 경우 실험자에게 경고하기 위해 설계된 지표
    • 조직 관련 지표와 신뢰 관련 주표가 있음
  • SRM(Sample Ratio Mismatch): 신뢰 관련 가드레일 지표

 

Sample Ratio Mismatch

  • 일반적으로 실험군, 대조군과 같은 두 변형군 사이의 사용자 비율을 확인
  • SRM에서 실험 설계 시, p-value가 낮은 경우 SRM이 있고 다른 모든 지표도 유효하지 않을 수 있음
    • 표준 t-test or chi-squared test로 계산 가능
  • 발생 원인
    • Buggy randomization of users
    • Data pipeline issues
    • Residual effects
    • Bad trigger condition
    • Triggering based on attributes impacted by the experiment

 

Debugging SRMs

  • Sample Ratio guardrail metric에 대한 p-value가 낮다면, 시스템 어딘가에 버그가 있다고 가정해야 함
  • common directions
    • 랜덤화 시점 or 트리거 시점 이전 단계에 차이가 없는지 검증
    • 실험군, 대조군 할당이 올바른지 검증
    • 데이터 처리 파이프라인의 단계별 SRM의 원인이 있는지 확인
    • 실험 시작 후, 초기 기간을 제외
    • 세그먼트의 샘플 비율을 확인
    • 다른 실험과의 공통점을 확인

 

Other Trust-Related Guardrail Metrics

  • Telemetry fidelity
  • Cache hit rates
  • Cookie write rate

 

22. Leakage and Interference between Variants

  • Rubin causal model
    • 종합 대조 실험을 분석하기 위한 표준 프레임워크
    • SUTVA(stable unit treatment value assumption)를 가정함
      • 각 실험단위의 행동은 다른 실험단위에 대한 변형군 할당에 의해 영향을 받지 않는다는 것
  • interference: SUTVA 가정을 위반한 것
    • 실험 간 spillover or leakage로도 불림
    • direct or indirect 연결로 interference가 발생할 수 있음
      • direct: SNS 상에서 친구 거나 동시에 동일한 물리적 공간을 방문한 경우
      • indirect: 잠재 변수 or 공유 리소스로 인해 생기는 연결
      • 실험군과 대조군을 연결하고 상호작용하는 중간 매개체가 있다는 공통점이 있음

 

Direct Connections

  • 직접 연결된 두 단위는 실험군과 대조군으로 분리되어 실험 간의 간섭을 유발할 수 있음
    • SNS에서 사용자의 행동은 이웃의 행동에 영향을 받을 가능성이 있음
    • 더 많은 이웃이 특정 기능을 사용할수록 사용자는 그 기능을 사용하려고 함
  • A/B test에서 실험군이 사용자에게 상당한 영향을 미치는 경우 효과가 점진적으로 퍼질 수 있음
    • B(신규) 안에 대한 이점을 완전히 포착하지 못할 수 있음

출처: Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing

 

Indirect Connections

  • 직접 연결과 마찬가지로 간섭을 유발하거나 변수 적용 효과의 편향된 결론을 야기할 수 있음
  • 사례
    • Airbnb: 실험군 사용자의 구매 전환 흐름 개선
      • 더 많은 예약을 실험군에게 유도하면 대조군 사용자의 재고가 줄어듦 → 대조군 발생 수익이 적어짐 ⇒ 실험효과가 과대 평가됨
    • Uber/Lyft: 할증 요금 알고리즘 테스트
      • 알고리즘의 반응이 좋아서 실험군 고객들이 더 많이 이용 → 운전자 적어짐 → 대조군 가격이 올라감 ⇒ 델타가 과대 평가됨
    • eBay: 구매자의 할인 or 판촉과 같은 입찰 장려
      • 변경군은 동일한 아이템에 대해 경쟁
      • 실험군의 입찰가격이 높을수록 대조군 사용자의 경매 승산율이 낮아짐 ⇒ 총 거래수가 지표라면 델타는 과대 평가됨

 

Some Practical Solutions

  • Rule-of-Thumb: Ecosystem Value of an Action
    • 다운스트림 영향을 나타낼 수 있는 지표를 활용
      • e.g. 작성된 총 게시물 수 및 받은 총 좋아요/댓글 수
      • 1차 행동으로 인한 잠재적으로 생태계 내에 미치는 영향의 깊이와 폭을 추정할 수 있음
      • 각 행동이 전체 생태계에 대한 가치 또는 참여로 어떻게 변환되는지에 대한 일반적인 지침을 설정할 수 있음
    • 다운스트림 영향이 있다고 입증된 과거 실험을 사용하여, 영향을 도구 변수 방법을 사용하여 사용자 행동 X/Y/Z의 다운스트림 영향에 외삽하는 것으로 추정 가능
    • 생태계 가치를 한 번만 구축하면 됨
    • 베르누이 무작위 실험에도 적용 가능
    • 모든 시나리오에 작동하지 않을 수 있는 단점이 존재
  • Isolation
    • 실험군과 대조군을 연결하는 매개체를 격리시켜서 잠재적인 간섭을 제거 가능
    • 방법
      • Splitting shared resources
      • Geo-based randomization
      • Time-based randomization
      • Network-cluster randomization
      • Network ego-centric randomization
    • 가능하다면 격리 방법을 결합하여 더 큰 표본 크기를 얻는 것이 좋음

 

23. Measuring Long-Term Treatment Effects

What Are Long-Term Effects?

  • 단기 효과: 짧은 기간에 측정된 실험 효과
    • 대부분의 실험에서 단기 효과는 안정적임
    • 장기 실험 효과로 일반화될 수 있음
  • 때로는 장기 효과와 단기 효과가 다른 시나리오가 존재할 수 있음
    • e.g. 가격을 올리기 → 단기 수익은 증가, 장기 수익은 감소
  • 장기 효과: 몇 년 후에도 지속될 수 있는 실험의 점근적 효과
    • 3개월 이상, 노출 횟수(e.g. 10회 이상 노출된 사용자)를 기준으로 정하는 것이 일반적임

 

Reasons the Treatment Effect May Differ between Short-Term and Long-Term

  • User-learned effects
  • Network effects
  • Delayed experience and measurement
  • Ecosystem change
    • Launching other new features
    • Seasonality
    • Competitive landscape
    • Government policies
    • Concept drift
    • Software rot

 

Why Measure Long-Term Effects?

  • Attribution: 새로운 기능을 도입하기 전후 어떤 모습일지 확인 가능
  • Institutional learning
  • Generalization

 

Long-Running Experiments

  • 장기 효과를 측정하는 일반적인 접근법 → 실험을 장기간 실행하는 것
  • 실험 시작과 종료에 실험 효과를 측정할 수 있음

출처: Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing

 

Long-Running Experiments

  • 장기 효과를 측정하는 일반적인 접근법 → 실험을 장기간 실행하는 것
  • 실험 시작과 종료에 실험 효과를 측정할 수 있음
  • attribution: 장기 실험의 종료 시점의 측정값은 장기 실험 효과를 나타내지 않을 수 있음
    • 실험 효과 희석(dilution)
    • 사용자의 사용 기기 or 진입 방법 증가
    • 쿠키 기반 실험 단위 선정 시, 쿠키가 삭제되거나 브라우저 문제로 인해 방해받을 수 있음
    • 네트워크 효과가 있는 경우, 변형군 간에 완벽한 격리가 없으면 실험효과가 실험군에서 대조군으로 유출될 수 있음
  • Survivorship bias
    • 변형군 간에 생존율이 다른 경우 SRM을 유발할 수 있음
  • Interaction with other new features
    • 새로운 기능은 시간이 지남에 따라 실험의 성과를 떨어뜨릴 수 있음
  • For measuring a time-extrapolated effect(외삽 효과)

 

Alternative Methods for Long-Running Experiments

  • Cohort Analysis
    • 안정적인 식별장치에 기반한 코호트 이용 (ex. 로그인한 사용자 ID)
    • 코호트가 전체 모집단을 대표하는지 외적 타당성 문제 검증
      • 계층화를 기반으로 한, 가중치 조정과 같은 추가적인 방법을 사용하여 일반화 성능을 개선 가능
  • Post-Period Analysis
    • 실험을 한동안 실행한 후, 실행을 중지하고 T~T+1 시간 동안 실험군 사용자와 대조군 사용자 간의 차이를 계산
    • 측정 기간 동안 변형군 사용자 모두 정확히 동일한 기능에 노출되었는지가 중요
    • 그룹 간에 차이가 발생하는 이유
      • 실험군이 대조군이 노출되지 않은 기능 세트에 노출되는 경우
      • ramping up case: 실험군이 대조군보다 더 오랜 시간 동안 기능에 노출된 경우
    • learning effect: effect measured during the post-period
      • User-learned effect
      • System-learned effect
    • 학습된 효과를 시스템 파라미터 기반으로 추정한 다음, 새로운 단기 실험으로부터 장기 효과를 추정할 수 있음
      • 실험군, 대조군 사용자가 같은 기능 세트에 노출되는 A/A 사후 기간과 같이 시스템 학습 효과가 없을 때 합리적임
    • 시간이 지남에 따라 변경되는 외부 요인과 새로 출시된 다른 기능과의 잠재적 상호작용과 같은 영향을 격리하는데 효과적임
    • 학습효과를 개별적으로 측정할 수 있으므로, 단기효과와 장기효과가 다른 이유에 대해서 더 많은 통찰력을 제공함

출처: Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing

 

  • Time-Staggered Treatments
    • 측정 시간을 정하기 위해 동일한 실험군에 시차를 둔 두 가지 실험을 수행할 수 있음
      • \(T_0\): t=0에서 시작
      • \(T_1\): t=1에서 시작
      • 실험에 노출되는 기간 차이만 제외하면 A/A test와 동일
      • \(T_1(t)\)와 \(T_0(t)\)의 차이가 통계적으로 유의한지 확인 → two-sample t-test
    • 장기 효과를 측정하기 위해 시간 t이후 사후 분석을 적용할 수 있음

출처: Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing

 

  • Holdback and Reverse Experiment
    • 모든 사용자에게 실험을 시작해야 하는 시간적 압박이 있을 때 대안
      • Holdback, Reverse Experiment
    • holdback: 90% 사용자에 대해 실험한 후 몇 주(or 몇 달) 동안 사용자의 10%를 대조군으로 유지하는 방법
      • 장기 실험의 전형적인 형태
      • 대조군의 표본 크기가 작기 때문에 최적의 경보다 적은 검정력을 갖는 경향이 있음
    • Reverse Experiment: 사용자의 100%로 실험군을 런칭한 몇 주(or 몇 달) 후 10%의 사용자를 대조군으로 다시 변경
      • 모든 사람이 한동안 실험 효과를 받았다는 장점이 있음
      • 네트워크 효과가 중요하거나 시장에서 공급이 제한되는 경우, 새로운 균형에 도달할 수 있는 시간을 줌
      • 실험군에서 눈에 띄는 변화가 관찰되는 중에, 사용자를 다시 대조군으로 변경하면 혼란스러운 단점이 있음
반응형

댓글