-
A/B Test란? (feat. p-value)잡담 2021. 12. 3. 16:13반응형
2021.12.03 - [분류 전체보기] - p-value란?
이전 글에서 가설검정, 유의수준, p-value에 대해서 알아봤습니다.
그럼 실제로 A/B Test가 무엇인지 알아보고 p-value가 어떻게 쓰이는지 보겠습니다.
A/B Test
AB Test란 동일한 앱, 웹 페이지에서 원본과 일정부분 수정한 수정본을 보여준 뒤 어떤 것이 더 좋은 성능을 보이는지 평가하는 방법입니다. 수정은 디자인, 인터페이스, 상품 배치, 등 다양한 방식으로 이루어지며 성능은 전환율과 같은 지표를 사용하는 것이 일반적입니다.
사용자 분리 방법?
AB Test를 실제 수행할 땐 당연히 실제 서비스를 활용합니다. 그러기 위해서는 원본(A)과 수정본(B)을 어떻게 누구에게 보여줄지도 정해야 합니다. 만약에 젊은 사람에겐 원본만 보여주고 고령층에겐 수정본만 보여준다면 테스트의 의미가 없어질 것입니다. 일반적으로 사용자를 분리하는 방법은 (1) 노출 분산 방식, (2) 사용자 분산 방식, (3) 시간대 분산 방식의 3가지 방식을 사용합니다.
노출 분산 방식 사용자 분산 방식 시간대 분산 방식 방법론 일정 비율로 A와 B를 노출 시킴.무엇을 보여줄지는 랜덤. 사용자의 그룹을 분리하여 고정적으로 A or B를 보여줌. 시간대를 분할하여 A or B를 보여줌. 특징 일반적으로 가장 통계적으로 유의하지만, 같은 사용자가 AB 모두 보면서 혼란스러울 수 있음. 그룹끼리 서로 다른 선호도를 가질 경우 실험의 의미가 퇴색됨. 설계 상의 문제로 앞의 방식을 사용하기 어려울 때, 쉽게 사용할 수 있음. 노출 분산 방식은 특정 비율(5:5 또는 9:1)을 정해 놓고 그에 맞춰 A안과 B안을 노출시키는 방법입니다. 동일한 사용자에게도 여러 안을 보여줌으로써 결과가 편향될 가능성이 거의 없습니다. 하지만 사용자 입장에서 A안과 B안 모두에 노출되다 보니 접속할 때마다 혼란스러울 수 있습니다.
사용자 분산 방식은 사용자 그룹을 분리하여 A안과 B안을 노출시킵니다. 사용자 그룹을 나눌 때는 특별할 이유가 없다면 특정 성향이 치우치지 않게 해야 합니다. 연령, 성별, 이용등급 등이 그룹 간 차이가 존재한다면 실험 결과에 왜곡이 발생하게 됩니다. 이 방법은 노출 분산 방식에서 사용자에게 혼란을 준다는 점을 보완하기 위해 사용됩니다.
시간대 분산 방식은 시간대를 분할하여 A안과 B안을 노출시킵니다. 앞의 방식들을 설계 상의 문제로 수행하기 어려울 때 대체할 수 있는 방법입니다. 다만 특정 이벤트가 발생할 경우 왜곡이 불가피하기 때문에 여러 번 수행하여 왜곡을 제거할 필요가 있습니다.
Netflix AB Test Example
우리가 아는 대부분의 IT회사에서는 AB Test를 하고 있다고 생각하시면 됩니다. 그중 Netflix의 예시를 가져와봤습니다.
이미지 상 잘 안보이긴 하지만 A안은 영화 목록이 좌우로 스크롤되고 B 안은 위아래로 스크롤됩니다.
그다음 넷플릭스는 사용자 분산 방식을 활용했습니다. 랜덤으로 샘플링하여 그룹을 형성하고 각 그룹에 A안과 B 안을 노출시킨 것이죠.
그 결과 위와 같이 각 그룹별 engagement가 측정되었습니다.(참여율 정도로 이해해주시면 될 거 같습니다...)
넷플릭스 블로그에서는 그래프상 B 안이 오히려 성능이 하락되었다고 하고 마치고 있습니다. 하지만 여기서 조금 더 자세히 들어가 보겠습니다.
"실험상 A 안이 성능이 더 좋아보이기는 하는데.... 이 실험에서만 그런거면 어떡해?" 라는 생각이 들 수 밖에 없습니다. 그러면 분석하는 입장에서 "95% 확률로 A안이 좋습니다."라고 말해줄 수 있다면 서비스하는 입장에서 신뢰하고 A 안을 채택할 것입니다. 여기서 사용되는 것이 이전 글에서 얘기했던 p-value입니다.
p-value 활용
위의 예시를 그대로 사용하고 싶은데 정확한 수치가 없어서 예시를 만들어보겠습니다.
A안 : 10명에게 노출시켰더니 4명이 결제했다.
B안 : 10명에게 노출시켰더니 6명이 결제했다.
계산을 돌려봤더니 p-value가 0.1807로 유의미하지 않다고 나왔습니다. 이 경우에는 표본수가 너무 작은 게 문제입니다. 표본수를 100으로 늘려보겠습니다.
이번엔 p-value가 0.0019로 유의미하다고 나왔습니다. 이렇게 많은 경우 표본수를 늘리면 AB Test가 유의미해집니다. 이번엔 B안의 성능을 줄여볼까요?
B안의 전환 수를 50으로 줄였더니 p-value가 0.0766으로 줄어 유의미하지 않았습니다.
이렇게 p-value를 이용하면 AB Test를 할 때 어떤 것을 채택할지, 표본은 얼마나 할지를 결정할 수 있게 해 줍니다.
반응형'잡담' 카테고리의 다른 글
p-value란? (0) 2021.12.03 가설 검정과 유의수준을 알아보자 (0) 2021.12.02 빅데이터 분석기사 후기 (0) 2021.09.15 [git] RPC failed; curl 92 에러 (0) 2021.01.24 아마존 리눅스와 Nginx를 이용해 리액트 웹 서버 구축하기(3) (0) 2021.01.05