[A/B 테스트] 5부 실험 분석을 위한 고급 주제_ch.21 샘플 비율 불일치 및 기타 신뢰성 관련 가드레일 지표
<A/B 테스트> 의 '5부 실험 분석을 위한 고급 주제_ch.21 샘플 비율 불일치 및 기타 신뢰성 관련 가드레일 지표'의 내용을 요약 및 정리한 내용입니다.
https://product.kyobobook.co.kr/detail/S000060625360
A/B 테스트 | 론 코하비 - 교보문고
A/B 테스트 | 신뢰도 높은 실험을 설계하는 가이드를 제공한다. 특히 각각 과정이 더욱 정확하게 측정가능한 온라인을 대상으로 한다. 구글, 링크드인과 마이크로소프트의 빅테크 기업에서 전 세
product.kyobobook.co.kr
0. 주목해야 하는 이유
가드레일 지표는 가정이 위반될 경우에 실험자에게 경고하기 위해 설계된 중요한 지표입니다.
가드레일 지표의 유형으로 조직 관련 지표와 신뢰 관련 지표가 있습니다.
이번에서는 신뢰 관련 가드레일 지표인 샘플 비율 불일치에 대해 알아봅니다.
SRM 가드레일은 실험 결과의 내적 타당성과 신뢰성을 보장하는 데 사용되므로 모든 실험에 포함돼야 하며, 이와 더불어 다른 몇 가지 신뢰성 관련 가드레일 지표도 함께 알아보겠습니다.
많은 사람들은 실험이 설계에 따라 실행될 것이라고 가정합니다. 하지만 그 가정이 실패하고 또 예상하는 것보다 더 자주 실패한다면 분석은 일반적으로 심하게 편향되고 일부 결론이 유효하지 않게 됩니다.
이미 여러 회사에서 SRM을 사용하고 있으며, 해당 테스트의 값을 가드레일로써 중요하게 사용하고 있습니다.
1. 샘플 비율 불일치
SRM 지표는 일반적으로 실험군 및 대조군과 같은 두 변형군 사이의 사용자 비율을 확인합니다.
실험 설계에서 특정 비율의 사용자를 두 변형군에 노출해야 하는 경우 해당 결과는 설계와 거의 일치해야 합니다.
그렇기에 실험에 의해 영향을 받을 수 있는 지표와 달리 사용자를 변형군에 노출시키는 의사결정은 실험과 독립적이어야 하기 때문에 변형군 내의 사용자 비율이 실험 설계와 일치해야 합니다.
예를 들어 동전을 10번 던질 때 앞면 4번과 뒷면 6번이 나오는 것은 놀라운 일이 아닙니다. 그러나 대수의 법칙에 따라 크기가 커지면서 따라 비율이 1:1에 가까워져야 합니다.
따라 샘플 비율 지표에서 실험 설계 시 그 값보다 더 극단적인 경우를 관찰할 확률인 p값이 낮은 경우, 샘플 비율 불일치(SRM)이 있으며 아마도 다른 모든 지표도 유효하지 않게 됩니다. 이러한 p값은 표준 t-검정 또는 카이 제곱 검정을 사용해서 계산할 수 있다.
시나리오 1
이 실험에서 대조군과 실험군에 각각 사용자의 50%가 할당됩니다.
따라 각각의 사용자 수가 거의 동일할 것으로 예상하지만 결과는 다음과 같습니다.
대조군 : 사용자 821,588명
실험군 : 사용자 815,482명
결과에서 둘 사이의 비율을 0.993이지만 설계당 비율은 1.0 이어야 합니다.
위의 0.993 표본 비율의 p값은 1.8E-6이므로 대조군 및 실험군 내 동일한 수의 사용자가 있는 설계에서 이 비율이 더욱 극단적인 경우를 볼 확률은 1.8E-6 또는 500,000분의 1 이하를 의미합니다. 이는 일어날 가능성이 매우 희박합니다.
그렇기에 실험 구현에 버그가 있을 가능성이 높기 때문에 다른 지표들을 역시 신뢰해서는 안 됩니다.
시나리오 2
해당 실험 역시 사용자의 50%가 할당된 대조군 및 실험군과 함께 실행되며 비율은 0.994 입니다.
p값을 계산하면 2E-5인데 여전히 가능성이 희박합니다.
이는 작은 비율인데, 지표가 얼마나 차이가 발생할까요? 정말 결과를 버려야만 할까요?
이러한 대답은 빙의 사례로 알 수 있습니다.
빙에서의 실험 결과에는 실험군, 대조군, 델타, 델타 %, p값 및 P-MOVE 가 표시됩니다.
이때, 세션 수/UU(UU = 순 사용자)으로 시작해 다섯 가지 지표가 모두 향상되었고, p-값은 작거나(모두 0.05 미만) 매우 작은 것(하위 4개의 지표의 경우 0.0001 미만)을 알 수 있습니다. 오른쪽 열은 96%가 약간 넘는 사용자를 보여줍니다.
해당 실험에서 제외된 사용자는 SRM의 원인이었던 이전 버전의 크롬 브라우저를 사용한 사용자였으며, 실험의 일부 변경으로 봇 또한 제대로 분류되지 않아 SRM이 발생했습니다.
세그먼트가 없으면 나머지 96%의 사용자는 적절하게 균형을 이뤘고 5개월의 지표에서 통계적으로 유의한 움직임을 보이지 않았습니다!
2. SRM의 원인
SRM이 잘못된 결과를 발생시킨다고 이미 많이 알려졌으며, 마이크로소프트에서는 약 6%의 실험에서 SRM이 나타났습니다.
SRM의 몇 가지 원인은 아래와 같습니다.
1. 사용자 랜덤화의 버그
대조군과 실험군에 할당된 비율을 기반으로 한 사용자의 단순한 베르누이 무작위 추출은 생각해 내기는 쉽지만 램프업 절차(예 : 1%에서 실험을 시작해서 최대 50%로 증가), 제외(실험X에 참여한 사용자는 실험 Y에 있어서는 안 됨), 과거 데이터를 통한 공변량 균형잡기 시도로 인해 실제로는 예상보다 더욱 복잡해집니다.
예로 마이크로소프트 내의 마이크로소프트 오피스 조직에 100%로 노출된 다음 외부 사용자에게 10% / 10%로 노출되는 동일한 실험한 실험의 경우입니다. 실험군의 포함된 마이크로소프트 조직의 오피스 사용자는 결과를 왜곡하고 실험 효과를 인위적으로 좋게 보이게하는 효과를 발생시켰습니다. SRM은 결과의 신뢰성을 위한 유용한 가드레일 역할을 수행했으며, 결론적으로 내부 마이크로소프트 사용자를 제거한 경우 기존과는 달리 강력한 실험 효과가 사라진 모습을 보였습니다.
2. 봇 필터링과 같은 데이터 파이프라인 문제
시나리오 2에서와 같이 봇 필터링이 제대로 작동하지 않아 봇이 제대로 분류되지 않는다면 SRM이 발생합니다.
3. 잔여 효과
때때로 버그를 수정한 후 실험이 다시 재개됩니다. 실험이 사용자에게 적용되고 난 후에 다시 랜덤화(re-randomize)를 하는 것은 좋지 않기 때문에 분석 시작일은 버그 수정이 도입된 시점으로 설정됩니다. 하지만 사용자가 이탈할 만큼 버그가 심각했다면 SRM이 발생했을 가능성이 높습니다.
4. 잘못된 트리거 조건
트리거 조건은 영향을 받을 수 있는 모든 사용자를 포함해야 합니다. 일반적인 예로는 리디렉션이 있습니다.
웹사이트 A는 특정 사용자들을 그들이 구축 및 실험중인 새로운 웹사이트 A'로 리디렉션합니다. 이때 리디렉션으로 인해 약간의 손실이 발생하기 때문에 웹사이트 A'로 이동하는 사용자만 만약 실험군에 있다면 일반적으로 SRM이 발생합니다.
5. 실험의 영향을 받은 속성을 기반으로 하는 트리거링
예를 들어 사용자 프로필 데이터 베이스에 저장된 휴면 속성을 기반으로 휴면 사용자에 대해 캠페인을 실행한다고 가정해보겠습니다. 실험이 일부 휴면 사용자를 다시 돌아오게 만든다면, 실험 종료 시 기존 속성을 기반으로 사용자를 식별하는 것은 SRM을 유발하게 됩니다.
초기에 휴면 상태였고 현재 활성화된 사용자는 트리거 조건에 의해 제외됩니다. 분석은 실험이 시작되기전 휴면 속성 상태로 트리거돼야 합니다. 따라 머신러닝 알고리즘에 기반한 트리거 조건은 실험이 실행되는 동안 모델이 업데이트되고 실험 효과의 영향을 받을 수 있기 때문에 주의가 필요합니다.
3. SRM 디버깅
앞서 말한 것처럼 샘플 비율 가드레일 비표에 대한 p값이 낮으면 설계가 제대로 구현됐다는 가설을 거부하고 시스템 어딘가에 버그가 있다고 가정해야 합니다. 이때 문제를 디버깅하는데 도움이 되는 경우를 제외하고는 절대 다른 지표의 결과는 보지 말아야 합니다.
SRM 디버깅은 어렵기 때문에 아래의 제안사항을 참고해 SRM 디버깅을 할 수 있는 내부적인 도구를 마련하는 것이 좋습니다. 일반적인 검사 지침들은 아래와 같습니다.
1. 랜덤화 시점 또는 트리거 변경 시점의 이전 단계에 차이가 없는지 검증하라.
예를 들어 결제 기능을 변경하여 결제 시점에서 시작하는 사용자를 분석하는 경우입니다.
이 경우, 해당 시점의 이전의 변수 간에 차이가 없는지 확인해야 합니다.
또한 결제 시점에서의 50% 할인과 "원 플러스 원"을 평가하는 경우, 홈페이지에서 이러한 옵션을 언급해서는 안됩니다.
만약 홈페이지에서 이를 언급한다면, 홈페이지에서부터 사용자를 분석해야만 합니다.
빙 이미지 팀은 빙 이미지를 사용해 검색하는 사용자에 대한 실험을 실행합니다. 이를 통해 때때로 실험이 이미지 검색 결과를 일반 빙 웹 검색 결과와 함께 제공해 검색 결과에 영향을 미치고 종종 SRM을 유발한다는 것을 발견했습니다.
2. 실험군 및 대조군 할당이 올바른지 검증하라.
사용자가 데이터 파이프라인의 상단에서 적절히 랜덤화되었나요?
대부분의 할당 시스템은 사용자 ID 해싱을 기반으로 하는 간단한 랜덤화 방법으로 시작하지만, 시간이 지남에 따라 서로 다른 실험이 같은 사용자에게 노출되지 않도록 하는 동시 실험, 그룹 격리 등을 수행하기 위해 복잡해지게 됩니다.
예를 들어 글꼴 색상을 검은 색에서 진한 파란색으로 변경하는 실험을 하는 동시에 글꼴이 검은색으로 걸정된 사용자들만을 대상으로 배경색을 변경하는 실험을 하는 경우라면, 코드가 실행되는 방식으로 인해 두 번째 실험은 첫 번째 실험으로부터 글꼴 색상을 검은색으로 설정하고 있는 사용자를 훔치게 됩니다. 이는 SRM을 유발하게 됩니다.
3. 데이터 처리 파이프라인의 단계를 따라 SRM의 원인이 있는지 확인하라.
예를 들어 매우 흔한 SRM의 원인은 봇 필터링입니다. 봇은 노이즈를 증가시켜 분석의 민감도를 낮추기 때문에 봇을 제외하며, 일반적으로 경험 법칙을 따르게 됩니다.
빙은 미국에서 트래픽의 50% 이상이 봇으로 필터링되고 중국과 러시아에서는 트래픽의 90%가 봇으로 생성됩니다. MSN의 한 극단적인 경우에서 실험군의 사용량 증가가 매우 커서, 특히 최다 사용자들은 경험적인 사용량 임계값을 넘어 봇으로 분류되기도 했습니다. 이는 분명한 버그가 맞으나, SMR 문제를 고려하지 않고 실험 결과를 봤을 때는 이런 사용자들이 제외됐기 때문에 실험군이 훨씬 더 나빠진것으로 차이가 발생하게 되었습니다.
4. 실험 시작 후 초기 기간을 제외하라.
두 변형군이 함께 시작되지 않는 것이 가능한가요?
일부 시스템에서는 대조군이 여러 실험에서 공유됩니다.
나중에 실험을 시작하는 경우라면, 분석기간을 실험이 시작된 이후로 잡더라도 여러 문제가 발생할 수도 있습니다.
예를 들어, 캐시가 채워지는데 시간이 걸리고, 앱이 푸시되는 데 역시 시간이 걸리며, 휴대폰이 오프라인이어서 지연을 일으킬 수도 있습니다.
5. 세그먼트의 샘플 비율을 확인하라.
세그먼트 샘플 비율은 아래의 질문 등으로 매일 개별적으로 살펴봐야 합니다.
- 이상이 감지됐을 때 특별한 사건이 있었는가?
- 특정한 시기에 누군가가 실험군에 대한 실험 비율을 증가시켰는가? 아니면 또 다른 실험이 시작돼 트래픽을 훔쳤는가?
- 위의 시나리오 2에서와 같이 눈에 띄는 브라우저 세그먼트가 있는가?
- 신규 사용자와 재 방문 사용자의 비율이 서로 다른가?
6. 다른 실험과 공통점을 살펴보라.
실험군과 대조군의 할당 비율은 다른 실험과 유사해야 합니다.
어떤 경우에서는, SRM을 이해하면 분석 단계에서 원인(예 : 봇)을 고칠 수 있습니다. 그러나 다른 경우에는 트래픽 제거(예: 해당 브라우저의 버그로 인한 브라우저 제거)는 일부 세그먼트가 실험에 제대로 노출되지 않았음을 의미하므로 실험을 다시 실행하는 것이 좋을 수도 있습니다.
4. 기타 신뢰성 관련 가드레일 지표
SRM 외에 무언가 잘못됐음을 나타내는 다른 지표 역시 존재합니다. 이러한 문제는 때때로 심층 조사로 이어지며, 소프트웨어 버그와 관련이 있는 경우도 역시 존재합니다.
1. 원격측정 정확도
클릭 추적은 일반적으로 클릭의 일부가 손실되는 결함이 있는 것으로 알려진 웹 비콘을 통해 수행됩니다.
실험이 손실률에 영향을 미치는 경우, 결과는 실제 사용자 경험보다 좋거나 나빠 보일 수 있는 등 정확하지 않은 결과가 발생합니다. 이런 경우, 웹사이트 대한 내부 리퍼러 혹은 이중 로깅을 사용하는 클릭을 통해 결함을 평가할 수 있는 지표가 있으면 정확도 문제가 발견할 수 있습니다.
2. 캐시 적중률
공유 리소스는 SUTVA를 위반할 수 있습니다. 이때 캐시 적중률과 같은 공유 리소스에 대한 지표를 사용하면 실험의 신뢰성에 영향을 미치는 예상치 못한 요인을 식별하는 데 도움이 될 수 있습니다.
3. 쿠키 쓰기 속도
실험군 및 대조군에서 영구전 쿠키를 쓰는 속도, 즉 쿠키 클로버링이라고 불리는 이 현상은 브라우저 버그로 인해 다른 지표에 심각한 왜곡을 일으킬 수 있습니다. 빙의 한 실험에서는 어디에도 사용되지 않는 쿠키를 작성하고 그것을 모든 검색 응답 페이지에서 임의의 숫자로 설정했습니다. 그 결과 사용자당 세션 수, 사용자당 쿼리 및 사용자당 수익을 포함한 모든 주요 지표에서 엄청난 사용자 저하가 나타났습니다.
4. 빠른 쿼리
"빠른 쿼리"는 동일한 사용자로부터 1초 이내에 검색 엔진에 도착하는 둘 이상의 검색 쿼리를 의미합니다. 구글과 빙은 모두 이 현상을 관찰했지만 현재까지 그 원인을 설명할 수 없습니다. 지금 까지 알 수 있는 것은 일부 실험이 빠른 쿼리의 비율을 늘리거나 줄이고, 이러한 결과는 신뢰할 수 없다는 것 입니다.
Q. 확인 문제
1. 다음중 옳은 것은 무엇인가요?
① 가드레일 지표의 유형으로 조직 관련 지표와 신뢰 관련 지표가 있으며, 샘플 비율 불일치는 조직 관련 지표로 가정이 위반될 경우에 실험자에게 경고하기 위해 설계된 중요한 지표이다.
② 실험에 의해 영향을 받을 수 있는 지표와 달리 사용자를 변형군에 노출시키는 의사결정은 실험과 독립적이어야 하기 때문에 변형군 내의 사용자 비율이 실험 설계와 일치해야 한다.
③ SRM 디버깅을 위해서는 랜덤화 시점 혹은 트리거 변경 시점의 이전 단계와 차이가 없는지 검증하는 것이 필요하며, 이때 신뢰성 확보를 위해 모든 기간의 실험을 사용하는 것이 중요하다.
④ SRM 외 기타 신뢰성 지표로는 원격측정 정확도, 캐시 적중률, 쿠키 쓰기 속도, 빠른 쿼리 등이 있으며 모두 명확하게 원인을 설명할 수 있어 버그 수정을 통해 실험의 신뢰성을 높일 수 있다.
2. SRM의 원인이 아닌 것은 무엇인가요?
① 사용자 랜덤화의 버그
② 데이터 파이프라인 문제
③ 초두 효과
④ 잘못된 트리거 조건
⑤ 실험의 영향을 받는 속성을 기반으로 하는 트리거링
A. 정답
번호의 아래를 드래그하면 정답이 나옵니다 :)
1.
정답 :
② 실험에 의해 영향을 받을 수 있는 지표와 달리 사용자를 변형군에 노출시키는 의사결정은 실험과 독립적이어야 하기 때문에 변형군 내의 사용자 비율이 실험 설계와 일치해야 한다.
오답 :
① 샘플 비율 불일치는 신뢰 관련 지표이다.
③ 신뢰성 확보를 위해 실험 시작 후 초기 기간은 제외해야 한다.
④ 빠른 쿼리의 경우에는 아직까지 명확하게 원인을 설명할 수 없다.
2.
정답 : ③ 초두효과 -> 잔존효과