


사용자를 무작위로 나눠 비교해 제품 변경이 효과 있는지 확인하기 (A/B 테스트)
제품 변경이 정말 도움이 되는지 알고 싶을 때 쓴다. 무엇을 결정하고 무엇을 잴지 묻고, 그룹 나누는 방법, 필요한 인원, 테스트 기간, 나쁜 영향 감시 방법을 정한 뒤, 효과의 크기와 얼마나 확실한지를 함께 알려 준다.
이 AI 규칙을 사용하려면
## 비교 테스트로 알고 싶은 것에 답할 수 있는지 먼저 판단하기
증거가 뒷받침해야 할 결정부터 명확히 한다.
변경 사항을 배정할 수 있고, 결과를 측정할 수 있으며, 노출을 안전하게 관리할 수 있을 때 통제 온라인 실험이 유용하다.
다음을 확인한다.
- 개입이 테스트 기간 동안 충분히 안정적이다.
- 적격 단위를 용납할 수 없는 간섭 없이 배정할 수 있다.
- 관찰 가능한 기간 안에 결과가 발생할 수 있다.
- 예상되는 학습 가치가 트래픽, 시간 및 위험을 감수할 만하다.
- 조직이 각각의 타당한 결과에 따라 행동할 수 있다.
정의되지 않은 문제나 신뢰할 수 없는 계측 체계를 보완하기 위해 실험을 사용하지 않는다.
질문이 행동이 일어나는 이유, 드물게 발생하는 피해, 장기적 효과 또는 배정할 수 없는 변경에 관한 것이라면 정성적 연구, 운영 분석, 시뮬레이션 또는 관찰 방법을 사용한다.
## 결과마다 다음 행동까지 정한 예측 쓰기
구현하기 전에 제안된 변경, 영향을 받는 모집단, 예상되는 행동 메커니즘, 주요 결과, 효과의 방향 및 결정에 미치는 영향을 명시한다.
임의의 표면적 변경을 테스트하지 말고 기존 증거를 바탕으로 가설을 세운다.
유용한 가설은 다음을 명시한다.
- 현재 문제와 이를 뒷받침하는 관찰
- 개입과 변경되지 않는 사항
- 예상 반응과 그 메커니즘
- 주요 지표와 분석 기간
- 행동에 나설 가치가 있는 최소 효과
- 긍정적, 중립적, 유해한 결과에 각각 취할 행동
탐색과 확인을 구분한다.
어떤 결과가 결정을 바꿀지 팀이 설명할 수 없다면 실험 트래픽을 사용하기 전에 질문을 다듬는다.
## 누구를 테스트 대상으로 하고 어떻게 그룹을 나눌지 정하기
실험 단위, 등록 자격이 있는 모집단 및 배정이 이루어지는 시점을 명시한다.
단위는 개인, 계정, 기기, 세션, 위치 또는 다른 개체일 수 있지만, 개입과 결과가 전파되는 방식에 맞게 선택해야 한다.
다음을 기록한다.
- 포함 및 제외 규칙
- 배분 비율
- 무작위화 또는 매칭 절차
- 여러 방문에 걸친 배정의 지속성
- 신규 단위 및 재방문 단위의 처리 방식
- 단위 사이에 알려진 상호작용
설계가 반복 노출을 명시적으로 모델링하지 않는 한, 하나의 단위가 서로 양립할 수 없는 변형을 받지 않도록 한다.
한 집단의 구성원이 서로 영향을 준다면 집단 수준에서 배정하거나 설계와 분석에서 간섭을 고려한다.
## 확인하고 싶은 부분만 바꾼 테스트 버전 만들기
가설이 요구하는 사항만 변경하고 관련 없는 동작은 일관되게 유지한다.
비교에서는 추적할 수 없는 여러 변경을 한데 묶지 말고 의미 있는 개입 하나를 분리해야 한다.
각 변형에 대해 다음을 기록한다.
- 사용자에게 보이는 차이와 시스템 수준의 정확한 차이
- 구현 책임자와 버전
- 예상 노출 조건
- 접근성, 개인정보 보호 및 운영 위험
- 전달에 실패했을 때의 대체 동작
- 의도한 변형이 실제로 제공되었음을 입증하는 검사
여러 변경을 동시에 적용하면 변경 묶음의 효과는 추정할 수 있지만, 어느 구성 요소가 그 효과를 일으켰는지는 파악할 수 없다.
표본, 분석 계획 및 결정상의 필요가 추가 복잡성을 정당화할 때만 요인 설계나 다변량 설계를 사용한다.
## 가장 중요하게 볼 숫자와 나쁜 영향을 감시할 숫자를 미리 정하기
가설에서 제시한 행동을 나타내고 실험 단위 수준에서 해석할 수 있는 주요 결정 지표 하나를 선택한다.
분자, 분모, 단위, 기여도 산정 기간, 제외 사항 및 반복 이벤트 처리 방식을 정의한다.
주요 지표가 가릴 수 있는 효과를 확인하기 위해 가드레일 지표를 추가한다.
- 유지 또는 반복 사용
- 작업 완료 및 오류
- 지연 시간 및 신뢰성
- 환불, 불만 또는 지원 수요
- 매출, 비용 또는 마진
- 개인정보 보호, 공정성 또는 안전 지표
데이터를 관찰한 뒤 성공의 정의를 바꾸지 않는다.
진단 지표는 보조 지표로 표시하고, 설명, 모니터링 또는 향후 가설 생성 중 무엇을 지원하는지 밝힌다.
## 시작 전에 필요한 인원과 테스트를 멈출 기준 정하기
기준 비율 또는 분산, 최소 검출 가능 효과, 통계적 오류 기준, 배분 및 계획된 분석 방법을 바탕으로 필요한 표본을 추정한다.
우연히 편리하게 구할 수 있는 표본이 아니라 실질적 가치와 구현 비용을 바탕으로 최소 효과를 선택한다.
출시 전에 다음을 기록한다.
- 예상 적격 트래픽
- 변형별 목표 표본
- 알려진 주기를 포괄하는 데 필요한 최소 실행 기간
- 최대 실행 기간 또는 만료 조건
- 고정 기간 분석법 또는 순차 분석법
- 피해 또는 기술적 실패로 인한 중단 규칙
통계적 유의성은 충분한 노출이나 대표성 있는 시기를 대신하지 못한다.
일반적인 고정 기간 테스트를 반복해서 살펴보다가 유리한 임계값을 처음 넘는 순간 중단해서는 안 된다.
## 결과를 보기 전에 그룹 나누기와 데이터 기록이 제대로 되는지 확인하기
결과를 해석하기 전에 배정, 노출, 이벤트 수집 및 지표 계산을 검증한다.
테스트 계정이나 합성 이벤트로 전체 처리 과정을 실행한 다음 기록된 데이터를 예상 동작과 비교한다.
다음을 확인한다.
- 배분이 설정된 비율과 일치한다.
- 식별자가 안정적으로 유지되고 변형 간 누출이 없다.
- 기여도를 산정할 수 있는 결과보다 먼저 노출이 기록된다.
- 이벤트가 중복되거나 아무런 표시 없이 누락되지 않는다.
- 시계, 시간대 및 기간이 일치한다.
- 지표 쿼리가 알려진 예시를 재현한다.
동일한 변형끼리 비교하면 배분, 계측 체계 또는 분석의 결함을 발견할 수 있지만, 이후 모든 개입이 유효하다는 사실까지 입증하지는 못한다.
결과를 검토하기 전에 허용 가능한 진단 허용오차를 정의한다.
## 적은 사용자로 시작하고 나쁜 영향이 없는지 지켜보기
개입이 매출, 신뢰성, 신뢰 또는 참여자의 복지에 영향을 줄 수 있다면 제한된 노출부터 시작한다.
전달 검사와 가드레일 검사가 사전에 정의된 한도 안에서 유지된 뒤에만 배분을 늘린다.
다음과 같은 운영 신호를 모니터링한다.
- 배정 수와 노출 수
- 오류율과 지연 시간
- 누락되거나 형식이 잘못된 이벤트
- 가드레일 지표의 심각한 변동
- 지원 요청 또는 사고 보고
- 실험 전 중요 속성의 불균형
긴급 모니터링과 결과 분석을 분리한다.
확인된 피해나 전달 장애로 중단하면 참여자와 데이터 품질을 보호할 수 있지만, 초기 추정치가 매력적이지 않다는 이유로 중단하면 통계적 계약이 달라진다.
## 테스트 도중에 내용과 조건을 바꾸지 않기
안전이나 정확성을 위해 개입해야 하는 경우가 아니라면 계획된 테스트 동안 변형 논리, 적격성, 지표 및 분석 코드를 안정적으로 유지한다.
노출이나 측정을 바꿀 수 있는 모든 운영 이벤트를 기록한다.
다음을 피한다.
- 모델링되지 않은 상호작용이 있는 중복 실험
- 한 변형에만 영향을 주는 캠페인 또는 출시
- 선택한 단위의 수동 재배정
- 배정 후 행동을 근거로 관찰값을 제외하는 행위
- 원하는 결과를 얻기 위해 테스트를 연장하거나 단축하는 행위
중대한 변경이 발생하면 다시 시작할지, 분석 계획을 수정할지, 또는 결과가 훼손되었다고 보고할지 결정한다.
서로 양립할 수 없는 정의에 따라 수집된 데이터를 알리지 않고 합치지 않는다.
## 효과의 크기와 얼마나 확실한지를 함께 알리기
사전에 지정한 설계에서 다른 추정 대상을 요구하지 않는 한, 단위가 배정된 조건에 따라 분석한다.
임계값 분류만 보고하지 말고 효과 크기와 불확실성을 보고한다.
분석에는 다음이 포함되어야 한다.
- 변형별 표본 수와 노출 수
- 데이터 품질 및 균형 검사
- 주요 지표 및 가드레일 지표의 추정치
- 의미가 있는 경우 절대 효과와 상대 효과
- 신뢰구간 또는 신용구간
- 결측 데이터 분석 및 민감도 분석
- 계획된 방법과의 편차
통계적 유의성과 실질적 중요성을 구분한다.
정밀하게 추정된 사소한 효과는 구현을 정당화하지 못할 수 있으며, 불확실한 추정치는 효과가 없다고 주장하기보다 더 많은 증거가 필요함을 의미할 수 있다.
## 사용자를 잘게 나눠 본 결과가 우연이 아닌지 주의하기
하위 집단 및 보조 지표에 관한 발견은 주의해서 다룬다. 특히 결과를 본 뒤 선택한 발견이라면 더욱 주의한다.
비교가 하나씩 늘어날 때마다 우연히 눈에 띄는 결과가 나타날 가능성도 커진다.
세분 집단 효과가 있다고 주장하기 전에 다음을 수행한다.
- 처리 후 행동과 독립적으로 세분 집단을 정의한다.
- 충분한 표본과 중첩을 확인한다.
- 서로 다른 유의성 분류를 비교하지 말고 상호작용을 검정한다.
- 계획된 다중성 통제를 적용한다.
- 발견이 중대한 결과를 낳을 결정을 좌우한다면 반복 검증한다.
탐색적 분할은 가설을 생성하는 데 사용하며, 원래 테스트를 다시 쓰는 데 사용하지 않는다.
독자가 선택 위험을 평가할 수 있도록 검토한 모든 중요한 비교를 보고한다.
## 결과를 보고 변경을 출시할지 정하고 기록 남기기
실험 추정치에 구현 비용, 정성적 증거, 운영 제약, 윤리적 고려 사항 및 예상 효과 지속 기간을 함께 고려한다.
출시, 거부, 수정, 반복 또는 추가 조사 중 무엇을 할지 명시적으로 선택한다.
최종 기록에는 다음을 보존한다.
- 원래 가설과 결정 규칙
- 모집단, 변형, 날짜 및 표본
- 지표 정의와 분석 방법
- 효과 추정치와 불확실성
- 가드레일 지표 결과와 사고
- 한계, 제외 사항 및 편차
- 결정, 책임자 및 후속 측정값
하나의 실험이 행동이 바뀐 이유를 설명하거나 그 효과가 다른 모집단 또는 맥락에서도 지속될 것임을 입증한다고 주장하지 않는다.
재현 가능한 분석을 보관하고 구현된 변경을 모니터링하여 이후의 증거가 결정을 확인하거나, 한정하거나, 뒤집을 수 있게 한다.
