A/B테스트의 신뢰성을 저하하는 현상, SRM(Sampling Ratio Mismatch)

A/B테스트의 신뢰성을 저하하는 현상, SRM(Sampling Ratio Mismatch)
Photo by Chanhee Lee / Unsplash

SRM(Sampling Ratio Mismatch)란?

  • SRM(Sampling Ratio Mismatch)은 A/B 테스트에서 두 개 이상의 그룹에 할당된 샘플 수가 의도한 비율과 일치하지 않는 현상을 말합니다.
  • 예를 들어, A/B 테스트를 진행할 때 A와 B 그룹에 각각 50%씩 트래픽을 할당하는 것이 일반적입니다. 하지만 예상과 다르게, A 그룹에 70%, B 그룹에 30%가 할당되는 문제가 발생하면 이를 SRM이라고 합니다.

예시

  • 새로운 추천 시스템이 **실험군 A(20%)**에 적용되고, 기존 추천 시스템이 **대조군 B(80%)**에 적용되는 A/B 테스트를 진행하고 있습니다.목표는 사용자의 클릭 전환율을 비교하는 것입니다.
  • 만약 실험 설계에서 트래픽을 20% 대 80%로 분배하려고 했는데, 결과적으로 다른 비율로 트래픽이 할당되었다면 SRM 문제가 발생합니다.

SRM이 문제가 되는 이유

  • A/B 테스트의 전제 조건 중 하나는 트래픽의 무작위 할당입니다. 각 그룹에 균등하게 트래픽이 분배되어야만 통계적으로 유효한 결론을 도출할 수 있습니다. SRM이 발생하면 샘플링에 의한 오차가 비대칭적으로 발생하여 실험 결과의 신뢰성이 저하됩니다.
  • 즉, 테스트 결과에서 특정 그룹이 과대표되거나 과소대표되면, 해당 그룹에서 발생한 결과를 일반화하기 어렵게 됩니다.
  • SRM이 발생할 경우, 다음과 같은 문제가 발생합니다:
    • 결과 왜곡: 트래픽이 불균등하게 배분되면, 실험 결과는 해당 그룹에 치우칠 수 있으며 이는 결론의 왜곡을 초래합니다.
    • 전환율 오류: 각 그룹의 전환율 계산이 불균형해져서 통계적으로 유의미한 결과를 얻기 힘듭니다.
    • 테스트 시간 증가: 실험이 제대로 이루어지지 않았기 때문에 더 많은 트래픽을 필요로 하게 되어 실험 기간이 길어집니다.

원인

  • 랜덤화 오류: 트래픽을 무작위로 분배하는 과정에서 시스템 오류가 발생할 수 있습니다.
  • 사용자 세분화 오류: 실험을 위해 특정 사용자 세분화(subgroup)를 설정할 때, 해당 세분화가 잘못 적용되면 특정 그룹으로 트래픽이 쏠릴 수 있습니다.
  • 동일 사용자의 중복 참여: 동일 사용자가 여러 번 참여하거나, 세션이 여러 개 생성되면 트래픽 할당이 왜곡됩니다.
  • 시스템 성능 문제: 서버나 네트워크의 병목 현상으로 트래픽이 특정 그룹으로 집중될 수 있습니다.

SRM 확인방법

  • SRM은 실험이 진행되는 도중에 카이제곱(Chi-Square) 검정을 통해 확인할 수 있습니다. 이 방법은 실제 트래픽 배분이 기대치와 통계적으로 차이가 있는지를 확인합니다.
import numpy as np
from scipy.stats import chisquare

# 각 그룹에 할당된 트래픽 수
group_A = 7000  # A 그룹
group_B = 3000  # B 그룹

# 기대 트래픽 비율 (50:50)
expected_A = 0.5 * (group_A + group_B)
expected_B = 0.5 * (group_A + group_B)

# 카이제곱 검정 수행
chi2_stat, p_value = chisquare([group_A, group_B], f_exp=[expected_A, expected_B])

print(f"Chi2 Statistic: {chi2_stat}, p-value: {p_value}")

if p_value < 0.05:
    print("SRM 발생 가능성이 높습니다.")
else:
    print("SRM이 발생하지 않았습니다.")

해소방안

  • 무작위 할당 검토: 테스트 그룹에 트래픽이 제대로 무작위로 할당되고 있는지 확인합니다. A/B 테스트에서 사용자 세분화와 랜덤화 과정이 문제없이 작동하는지 점검해야 합니다.
  • 샘플링 단계에서 검증: 실험을 시작하기 전, 각 그룹에 대해 샘플을 추출하는 단계에서 샘플링 비율을 미리 확인합니다. 이로 인해 SRM을 사전에 감지할 수 있습니다.
  • 데이터 분석 도구 활용: SRM을 자동으로 감지할 수 있는 도구나 알고리즘을 사용합니다. Google Optimize, Optimizely 같은 A/B 테스트 플랫폼은 SRM을 감지하는 기능을 기본 제공하는 경우가 많습니다.
  • 네트워크 성능 개선: 시스템 성능 문제로 인해 트래픽 분배에 차질이 발생하지 않도록 서버 성능을 점검하거나 네트워크 병목을 해결해야 합니다.
  • SRM 발생 시 실험 중단: SRM이 감지된 경우, 실험을 지속하기보다 일단 중단하고, 문제를 해결한 후 재시작하는 것이 좋습니다.

Read more

내가 놓치고 있던 미래, 먼저 온 미래를 읽고

내가 놓치고 있던 미래, 먼저 온 미래를 읽고

장강명 작가의 책은, 유학시절 읽고 처음이었다. 유학시절 "한국이 싫어서"라는 책은 동기부여가 상당히 되는 책이었다. 한국을 떠나 새로운 정채성을 학생으로서 Build up 해나가고 있던 상황에서 이 책은 제목부터 꽤 솔깃하였다. 물론 결말이 기억날 정도로 인상깊은 책은 아니었지만 말이다. 그렇게 시간이 흘러 장강명 작가의 책은 더 이상 읽지 않던

By Bongho, Lee
고객 경험이란 무엇일까?

고객 경험이란 무엇일까?

고객경험이란 무엇일까? 1. 과거 어느 대형 프로젝트에서 있던 일이다. 신사업을 위해서 예측 모델 값을 제공해야 하는 상황이었다. 데이터도 없고,어느정도의 정확도를 제공해야 하는지 답이 없었다. 점추정을 할 것인가? 구간 추정을 할 것인가를 가지고 논의중이었다. Product Manager 줄기차게 고객경험을 내세우며 점추정으로 해야 한다고 주장하였다. 근거는 오롯이 "고객 경험"이었다.

By Bongho, Lee
수요예측, 수정구슬이 아닌 목표를 향한 냉정한 나침반

수요예측, 수정구슬이 아닌 목표를 향한 냉정한 나침반

수요예측의 정의와 비즈니스에서의 중요성 기업의 성장과 운영 효율화를 위해 **수요예측(Demand Forecasting)**은 선택이 아닌 필수 요소로 자리 잡았다. 많은 경영진들이 수요예측을 미래 판매량을 정확히 맞히는 '예언'으로 기대하지만, 이는 수요예측의 본질을 오해하는 것이다. 수요예측의 진짜 의미: 미래를 점치는 수정구슬이 아니라, 우리가 도달해야 할 '목표'를

By Bongho, Lee