DeView'21 발표 Preview
아침저녁으로 쌀쌀해지는 수확의 계절 가을인데요, 저희 Data&Analytics팀에서도 그동안 열심히 연구/개발한 여러 프로젝트들이 하나씩 빛을 보고 있습니다. 그 중 저희 팀 및 파트너들과 개발한 네이버 서치 전체가 사용하는 AB테스트 플랫폼을 조만간 열리는 DeView 컨퍼런스에서 소개하게 되었습니다.
본 글에서는 네이버서치 ABT를 간단히 소개드릴까 합니다. 우선 네이버서치 ABT를 만들었다고 하면 ‘아니 네이버에서 AB테스트를 안 하고 있었어?’ 생각하실수도 있는데요, 사실 여러 팀에서 AB테스트를 하고 있었지만 이번에 네이버서치 전체에서 사용하는 플랫폼을 개발했습니다.
그렇다면 왜 이런 플랫폼이 필요한지에 대해 궁금하실 수도 있는데요, 사실 AB테스트가 개념적으로는 간단하지만, 사용자 그룹 설정 / 분기 처리 / 로깅 / 데이터 수집 및 처리 / 의사 결정에 이르기까지 다양한 오류가능성이 있고요, 이를 개별 엔지니어링 팀에서 제대로 하기는 어려운 부분입니다.
따라서 저희 Data&Analytics팀 및 네이버 검색 인프라를 담당하는 팀을 중심으로 약 10명의 인원이 7월부터 네이버 검색 전체가 사용할 수 있는 플랫폼 개발을 시작했습니다. 우선 저희의 1차 목표는 위에서 설명한 다양한 오류가능성을 최소화하는 것이었고요, 그 밖에도 개별 팀이 동시에 여러 프로젝트를 진행하는 네이버 검색의 요구사항을 만족시키고 최근 AB테스팅 관련 최신 연구 성과와 기술을 반영한 현대적인 AB테스트 플랫폼을 만들고자 했습니다.
과거에는 네이버 검색의 개별 팀에서 ABT를 독자적으로 진행했기 때문에, 제한된 사용자 트래픽을 모든 팀에서 서로 겹치지 않게 나누어 써야 했으며, 전체적인 사용자 영향의 확인, 그리고 실험 결과의 검증 및 고급 분석의 어려움이 있었습니다.
하지만 이번 통합 실험 플랫폼 도입으로 개별 팀이 별도의 실험 레이어를 할당 받아 서로 영향을 끼치지 않으면서 100%의 사용자 트래픽을 실험에 활용할 수 있게 되며, 향후 온라인 실험의 설계 / 수행 / 분석이 일원화되고 (Data&Analytics팀), 네이버 검색의 모든 팀이 같은 지표 및 프로세스를 통해 의사결정하는 모습을 갖추게 됩니다.
AB테스트 결과를 어떻게 검증하나요?
말씀드렸듯이 저희는 무엇보다도 믿을수있는 AB테스트 결과를 만드는데 노력을 기울였는데요, 이를 위해 다양한 검증 방식을 도입했습니다. 우선 한 사용자가 여러 레이어의 실험에 할당될 수 있는 구조의 특성상 실험 간의 간섭이이 없다는 점을 증명했고요, 개별 실험 내부의 트래픽 배분 비율 역시 실험별로 검증하고 있습니다.
또한 개별 실험의 실험군 간에 선험적인 편향이 있는지를 확인하기 위해 A/A테스트를 수행하고, 마지막으로 중요 실험의 경우 반복하여 실제로 같은 결과가 재현되는지를 검증하였습니다. 이런 검증은 노력을 필요로 하지만 실험 결과를 중요 의사결정에 활용하기 위해서는 신뢰성이 근간이 되어야 하기 때문에 분명 가치있는 일입니다.
AB테스트 결과를 어떻게 분석하나요?
실험 결과에 대한 분석 역시 고민할 부분이 많은데요, 우선 전체적인 결과를 점검하고, 시작된지 얼마 되지 않은 실험의 경우에는 일별 트랜드도 점검합니다. 마지막으로 실험 결과를 제대로 이해하기 위해서는 사용자 / 검색 질의군 / 검색 결과 유형별 분석을 수행합니다.
향후 과제 (이제 시작입니다!)
이번에 개발된 AB테스트 플랫폼은 네이버 검색에 적용되어, 이미 5개 이상의 팀과 두자리수 이상의 실험을 하고 있습니다. 4개월이라는 짧은 시간에 여러 팀에서 모인 10명 남짓한 인원이 여기까지 올 수 있도록 노력한 프로젝트 팀에 박수를 보냅니다.
하지만 지금까지의 여정은 시작이라고 생각합니다. 앞으로 더 신뢰받은 AB테스트 플랫폼을 만들기 위해 실시간 오류 및 지표 이상 탐지 기능을 강화할 생각입니다. 또한 더 많은 실험을 동시에 지원하기 위해 실험 분석의 자동화 및 생산성을 높이기 위한 도구를 개발하고 있습니다. 그리고 검색 사용자의 개별 행동(질의어 입력, 클릭, 스크롤 등)에 기반한 지표를 결합하여 사용자의 종합적인 만족/불만족을 지표화하는 작업도 진행중입니다.
이에 더해 AB테스트 자체의 한계를 극복하려는 노력도 진행하고 있습니다. AB테스트는 무작위의 실험군 배정을 가정하고 있는데, 이런 가정이 성립하지 않는 경우가 종종 발생합니다. (예: 실험군에 속한 사용자가 opt-in해야 feature를 사용하기 되는 경우) 이런 경우 Instrumental Variable, Propensity Score Matching등 다양한 Causal Inference 기법이 활용되며, 향후 저희 실험플랫폼에 이런 기능을 추가할 예정입니다.
또한 검색 및 추천 모델의 최적화에는 수백/수천개의 Parameter 조합을 효율적으로 탐색하는 것이 필요합니다. AB테스트 기반으로 파라메터 탐색을 하는 것은 가능하지만 그 스케일에 제한이 있으며, 그 과정에서 다수의 사용자에게 부정적인 경험을 제공할 위험성도 있습니다. 따라서 Parameter Space를 사용자 피드백 기반으로 동적으로 탐색할 수 있는 Contextual Bandit과 같은 기법이 활용되는데, 이 부분에 대해서도 검색 및 추천 모델 개발팀과 협업을 계획중에 있습니다.
그리고 Last but not least, 저희 팀에서 본여정에 함께하실 Data Scientist & Engineer 분들을 한국/미국에서 채용하고 있습니다! (채용사이트 보시고 연락 주시면 됩니다 Email: jin.y.kim@navercorp.com)
본 포스트에서는 네이버 서치 ABT의 기본적인 개발 의도와 결과의 검증 및 분석을 간단히 다루었고요, 자세한 내용은 아래 슬라이드를 참조 바랍니다.
https://www.slideshare.net/lifidea/abt-ab
실제 발표는 컨퍼런스 홈페이지에서 확인하실 수 있고요, (저희 팀 Booth도 운영할 예정입니다) 그 전에 무편집 영상을 보고 싶으신 분은 여기서 보실 수 있습니다~