Box and Whisker

Optimize the World

A/B 테스팅이란

A/B 테스팅이란 웹 사이트 방문자를 임의로 두 집단으로 나누고, 한 집단에게는 기존 사이트를 보여주고 다른 집단에게는 새로운 사이트를 보여준 다음, 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 측정하여, 새 사이트가 기존 사이트에 비해 좋은지를 정량적으로 평가하는 방식을 말한다. 여기에서 성과란 새 사이트가 목표로 했던 바에 따라 다른데, 보통은 회원 가입율, 재방문율, 구매전환율 등의 지표를 본다.

과학 혹은 의학에서 무작위비교연구(RCT; Randomized-controlled trial)라 불리는 방법을 인터넷 마케팅에 적용한 것이라고 생각하면 된다.

주로 웹사이트의 마케팅과 관련하여 많이 쓰이지만 디자인, 인터페이스, 상품 배치 등을 개선하기 위해서 사용하기도 하며, 웹사이트가 아닌 모바일 앱, 게임 등의 분야에서도 활용된다.

왜 하나

A/B 테스팅을 하는 이유는 상관관계로부터 인과관계 - 정확히 말하면 인과관계일 가능성이 높은 것 - 를 찾아내기 위함이다. 그래야만 우리가 “원인”에 해당하는 요소에 개입을 하여 “결과”에 해당하는 요소가 우리가 원하는 방향으로 변화되도록 할 수 있다. 혹은 이미 “결과”에 변화가 생겼을 때 이 변화의 “원인”이 우리가 했던 그 개입 때문이 맞는지 아닌지 판단할 수 있다.

물놀이 사고를 줄이는 것이 우리의 목표라고 가정하자. 이런저런 조사를 해보니 아이스크림 판매량과 물놀이 사고의 빈도 사이에 높은 양의 상관이 있다는 사실을 찾아냈다. 아이스크림 판매량이 높아지면 물놀이 사고 빈도도 높아지고, 아이스크림 판매량이 낮아지면 물놀이 사고 빈도도 낮아지는 식이다.

이 상관관계를 아래와 같은 인과관계로 해석하면 물놀이 사고를 줄이기 위해 우리가 해야할 일은 명확하다. 아이스크림 가격을 올리는 등 다양한 방법을 써서 아이스크림의 판매량을 줄이는 것이다:

"아이스크림 판매량" -> "물놀이 사고 빈도"

하지만 모든 상관관계가 인과관계인 것은 아니다. “Correlation does not imply causation”이라는 유명한 문구가 바로 위와 같은 상황을 이르는 말이다.

XKCD

http://xkcd.com/552/

아이스크림 판매량 증가는 물놀이 사고 빈도 증가의 원인이 아니다. 아마도 숨어있는 원인이 있을 것이다:

"날씨" -> {"아이스크림 판매량" "물놀이 사고 빈도"}

아이스크림 판매량이 물놀이 사고의 원인이거나 물놀이 사고가 아이스크림 판매량의 원인인 것이 아니라, 날씨라고하는 또다른 요인이 아이스크림 판매량과 물놀이 사고에 공통으로 영향을 주는 원인인 것이다.

이 예시는 누구나 이해할 수 있을만큼 명백하지만, 우리가 현실에서 겪게 될 대부분의 문제는 이보다 복잡하다.

좀 더 현실적인 예를 떠올려보자. 어떤 쇼핑몰 웹 사이트가 있다. 3개월에 걸쳐 디자인 개편 프로젝트를 진행하였고 지난주에 성공적으로 새 디자인을 적용하였다. 그랬더니 갑자기 그 전에 비해 일 매출이 10% 증가했다.

매출 증가가 디자인 덕분이라고 할 수 있을까?

"디자인 개편" -> "매출 증가"

직전의 아이스크림 예시에서 살펴본 바와 같이 두 사건이 함께 일어난다고 해서 하나의 사건이 다른 사건의 원인이라고 가정하는 것은 위험하다. 예를 들면 새 디자인이 적용된 바로 그 날, 하필이면 경쟁 쇼핑몰이 문을 닫았을 수도 있다. 이 경우 매출 증가의 원인은 외부 요인에 있다. 또는 새 디자인이 적용된 바로 그 날, 경쟁력 있는 상품이 입고되었을 수도 있다. 이 경우 매출 증가의 원인은 내부에 있으나 그 성과는 디자인팀이 아니라 영업팀 덕으로 돌려야 한다. 심지어는 갑자기 경기가 좋아졌기 때문일 수도 있다. 다른 쇼핑몰들을 일 매출이 15% 씩 향상되었는데 만약 우리 쇼핑몰만 10% 향상된 것이라면 새 디자인이 매출에 악영향을 준 것일지도 모른다.

A/B 테스팅을 하면 방문자를 “임의로” A, B 두 집단으로 나누고 A 집단의 방문자에게는 기존 디자인을 보여주고, B 집단의 방문자에게만 새 디자인을 보여준다.

새 디자인을 적용하기 전의 매출과 새 디자인을 적용한 후의 매출을 비교하는 대신, A 집단과 B 집단의 매출을 비교하면 시간의 흐름에 따라 발생하는 다른 요인들(경쟁 쇼핑몰 부도, 신상품 입고, 경기 변동 등)을 통제할 수 있기 때문에 순수하게 디자인 변화로 인한 매출 차이만을 가려낼 수 있다. A 집단에 비해 B 집단에서 매출 증가가 있었다면 “디자인 개편”과 “매출 증가” 사이에는 인과관계가 성립할 가능성이 대단히 크다고 말할 수 있다.

주의할 점들

A/B 테스팅을 통해 인과관계를 찾아내려면 두 집단을 임의적으로 나누어야 한다. 이를 임의적 할당(random assignment)이라고 한다. 예를 들어

등 임의적이지 않은 방식을 사용할 경우 두 집단의 차이가 무엇 때문에 발생하는지 가려낼 수 없게 된다.

A/B 테스팅을 통해 찾아낸 결과가 범용성을 지니려면 애초에 실험에 참가한 집단이 모집단을 대표할 수 있어야한다. 이를 임의적 추출(random sampling)이라고 한다. 예를 들어 초등학교 학생들을 대상으로 한 실험의 결과를 초중고등학교 학생 모두에게 적용하거나, 페이스북 사용자를 대상으로 한 실험의 결과를 트위터에 적용하거나 하면 추출된 집단의 성격과 모집단의 성격에 차이가 있기 때문에 기대와 다른 결과가 나올 수 있다.

A/B 테스팅의 단점

글을 마치기 전에 단점에 대해 써보자. 세 가지 정도가 떠오른다.

첫째, 테스트를 많이/자주하면 단기적으로 손해가 발생할 수 있다. 예를 들어 쇼핑몰에서 구매전환율이 높은 상품 이미지가 무엇인지 알아보기 위한 테스팅을 진행한다고 치자. 2주 동안 전체 방문자를 50:50으로 나눠 기존 상품 이미지와 새로운 상품 이미지를 보여주고자 한다. 테스트를 3일 쯤 진행했더니 새로운 이미지를 본 집단에서의 매출이 기존에 비해 절반 밖에 나오지 않는다면 어떻게 해야하나? 애초에 계획했던 2주동안 테스트를 진행하려면 막심한 매출 손해를 감수해야한다.

둘째, A/B 테스팅의 결과는 계절 변화나 취향 변화 등 시간의 흐름에 따라 바뀔 수 있다. 작년 겨울에 A/B 테스팅을 하여 얻은 결론은 언제까지 유효할까? 통제실험은 시공간의 보편성에 대한 가정을 깔고 있다. 이 가정은 물리학이나 화학 수준에서는 대단히 확실히 보장되고, 생물학을 거쳐 사회과학 분야로 가면서 점점 약해지며, 비즈니스 맥락에서는 대단히 약해진다. 어제의 세상과 오늘의 세상이 다르고, 미국과 한국이 다르다. 결국 확실성을 유지하기 위해서는 실험을 지속적으로 반복해서 해야하는데 첫번째 단점(비용 문제)과 엮어서 생각해본다면 곤란한 얘기가 된다.

셋째, A/B 테스팅만 해서는 지역최적점에 머물게 될 위험이 있다. A/B 테스팅이라는 것은 기존 상태에서 작은 변화(되도록 하나의 변수만 살짝 바꾸기)를 가하며 점진적으로 더 나은 상태를 찾아가는 방식으로 진행된다. 하지만 이 방식으로는 지역최적점에 수렴할 수 있을 뿐 전역적인 최적점을 찾을 수 없다.

이 중 첫번째와 두번째 문제에 대해서는 Multi-armed Bandit 알고리즘이라고 불리는 효과적인 해결책이 있다. 이에 대해서는 A-B Testing의 단점과 개선안을 참고하기 바란다. 세번째 단점에 대해서는 별도의 글이 필요할 것 같다.