Booking.com 에서 온라인 실험을 제공하는 법 (요약)

요약

아시는 분들은 잘 아시겠지만, Booking.com 은 숙박 업계에서는 가장 큰 회사 중 하나입니다. Booking Holdings 계열사로 치면 Agoda, Priceline, Kayak, Retnalcars 등 숙박 뿐만 아니라 액티비티 / 교통 / 다이닝 (레스토랑) 플랫폼도 가지고 있습니다.

전 세계적으로 수 많은 사용자를 가지고 있고 글로벌 서비스를 제공하는 Booking.com 에서 10년 이상동안 온라인 실험을 (A/B 테스팅 등) 진행하면서 얻은 팁들 관련해 온라온 글이 있고, 저 또한 사내에서 업무로 실험 플랫폼을 만들고 있어 간단히 요약 (의역) 해보았습니다.

원문은 다음 링크에서 보실 수 있습니다. (혹시 잘못된 부분이 있거나 저작권상의 문제가 있다면 댓글 또는 이메일로 연락 주시면 고맙겠습니다. )

1. 다수의 팀과 Product 에서 사용할 수 있도록 지원

(당시 기준) 1000 개 이상의 동시 실험이 진행되며 다양한 부서와 Product 에서 온라인 실험을 진행할 수 있도록 지원하기 위해 크게 두 가지를 지원합니다.

    • 원하는 누구나 실험에 필요한 Metric 을 생성하고 이 값들은 near real-time 또는 batch 시점에 자동으로 집계
    • 서로 다른 Platform / Product 간 교차 실험을 지원하기 위해 동일 사용자를 (Visitor) 추적할 수 있는 Tracking method 제공

이를 통해 원하는 서비스 팀은 타겟 사용자를 편리하게 지정하고 새로운 기능을 언제든지 추가하고며 관련된 메트릭을 심으면 즉시 실험 플랫폼에서 준-실시간 시점에 확인 가능합니다. 또한 필요하다면 서비스팀에서 원하는 Tracking method 를 추가하는 것을 허용합니다.

2. 교차 데이터 검증 

신뢰성 있는 데이터를 제공하기 위해 다음과 같은 방식으로 검증합니다.

    • 코드를 공유하지 않는, 서로 다른 두개의 팀에서 동일한 메트릭을 적재
    • 하나의 팀은 (5분 이하) 준 실시간 집계를, 다른 팀은 일별 배치 집계를 제공해 두 다른 팀의 같은 메트릭 값을 비교

또한 실험 플랫폼을 위한 데이터 파이프라인 그 전체를 검증하기 위해 AA (동일한 실험을 50% / 50% 나누어) 실험 셋을 유지하고 이 들 AA 실험 내에서의 메트릭을 지속적으로 모니터링 합니다.

3. 실험을 위한 안전장치

어떤 새로운 실험들은 버그 또는 심각한 기능 장애 (결제 불가) 등을 포함할 수 있습니다.  이를 실시간으로 (1분 이내) 모니터링하고 즉시 중단 할 수 있어야 합니다. 서비스에 크리티컬한 악영향을 주는 실험들에 대해 자동화된 실험 중단 기능을 제공하는 것은 기술적으로는 어렵지 않으나 몇 번 더 고민해볼 여지가 있습니다.

예를 들어, 어떤 실험은 매출에는 큰 영향이 없을지 몰라도 사용자 행동을 더 이해하는 결과를 만들 수 있습니다. 따라서 무조건적인 자동화된 실험 중단 시스템을 고안하는 것은, “무조건 이기기만 하는 실험” 을 조장할 수 있습니다

또한 실험에 대한 안전장치로, 실험 등록 시점에 실험자 (실험에 대한 Owner) 가 다음 내용들을 등록하고 리뷰함으로서 p-hacking (역자 – 무의미한 p-value 집착을 의미하는 것으로 이해) 또는 의심스러운 결정들을 제거하는 문화를 만들 수 있습니다.

    • 어떤 사용자들이 영향을 받을 것인지 미리 기술하고
    • 해당 사용자들이 만들어내는 메트릭들이 어떤 방향으로 변화할지 예측

추가적으로, selective attrition (= missing data at not random, 랜덤하지 않게 일부 실험군에서 데이터가 손실되는 것) 방지 하기 위해 이벤트가 (실험 메트릭) 발생하는 동일한 장소에서 통계적인 검증 또한 같이 실시되고 문제가 있을 경우 실험 담당자에게 리포팅 됩니다.

예를 들어, 호텔의 추가적인 이미지를 동기적 (synchronously) 으로 로딩하는 경우, 인터넷이 느린 일부 사용자는 실험에 대한 메트릭을 보내기도 전에 다른 페이지로 이동할 수 있으므로 해당 실험군에서만의 데이터 손실이 존재할 수 있습니다.

정리

일부 내용들은 2020년 지금에는 보편적인 내용들이라 생략하였고 기타 더 자세한 내용들은 원문을 참조하실 수 있습니다.

추가적으로, Booking.com 에서는 별도의 데이터 사이언스 블로그를 운영하며 Experimetnation Platform 관련하여 존재하는 글 몇개 링크를 남깁니다.