개요
요즘 추천시스템 개발 업무를 진행하면서 추천시스템 성능을 어떻게 측정할까, 어떻게 객관적인 성능을 제시할 수 있을까에 대해 고민하고 있습니다.
추천시스템의 성능, 인과효과를 측정하기 위한 다양한 방법들 중 A/B test가 가장 보편적이며 유용하게 사용되고 있으며 마케팅 효과 측정 등 다양한 분야에서 적용되고 있습니다.
하지만 어렵지 않아 보이는 세팅으로 장점을 가지는 A/B test에도 한계점들이 분명히 있으며 신뢰할 수 있는 온라인 실험환경을 위해 다양한 연구들이 진행되고 있습니다.
이번 포스팅은 A/B test의 한계점에 대해서 알아보고 이를 개선하기 위한 방안 중 대표적인 Multi Armed Bandits test에 대해서 알아보겠습니다.
A/B test는 만능일까?
수많은 의사결정이 사람의 직관이 아닌 데이터를 통해 이뤄지기 위해 많은 기업들이 노력하고 있습니다.
기업들의 관심사가 높아지면서 A/B test가 데이터 분석가뿐만 아니라 마케터, 디자인 등 다양한 직무의 큰 관심사가 되었습니다.
예를 들어 웹사이트의 디자인을 바꾸면 클릭율이 높아질지, 쿠폰 마케팅 효과로 구매율이 높아질지, 추천시스템을 변경하면 매출액이 향상될지 등 다양한 가설을 검증하기 위해 A/B test를 활용하고 있습니다.
가장 보편적이며 유용한 이유는 직관적인 셋팅이라고 생각합니다. 예를 들어, 웹사이트 디자인 변경의 효과를 확인하기 위해서는 A 그룹에는 현재 디자인을 유지하고, B 그룹에는 새로운 디자인을 적용하여 각각의 그룹에서의 사용자 행동을 관찰하면 됩니다. 이렇게 직관적인 세팅은 A/B test를 사용하는 데 있어서 진입 장벽을 낮추어주고, 다양한 직무 영역에서도 쉽게 활용할 수 있도록 합니다.
그렇다면 A/B test로 모든 의사결정을 할 수 있을까요?
1. 비용의 문제
A/B test는 설정한 실험기간동안 세팅한 대조군, 실험군에게 같은 실험을 반복하게 됩니다.
예를 들어, 3가지 추천시스템의 성능 검증을 위해 A/B test를 진행하는 상황을 가정해 보겠습니다. 이를 위해 고객을 3개의 그룹군으로 나누어서 동일한 기간 동안 3가지 추천을 진행하게 됩니다.
실험이 끝나고 결과를 분석했을때 A라는 모델의 추천시스템 성능이 압도적으로 높게 나오고 B, C모델의 성능들이 굉장히 낮게 나왔습니다. 만약 사전에 A라는 모델의 성능이 높게 나올 것이라는 가설이 충분히 있었으면 예상대로 나온 결과일 겁니다.
하지만 당연할거라 생각한 결과를 확인하기 위해 B, C추천을 받은 고객들은 만족스럽지 않은 추천에 이탈로 이어질 수도 있습니다. 또 실험에서 얻은 매출액 합계와 전부 A를 추천(추천 방법들 중 최적의 추천)을 했으면 얻었을 매출액 합계를 비교를 했을 때 비용문제가 발생하게 됩니다. 그리고 실험해야 할 가설이 많을 텐데 모든 결과를 분석하고 의사결정하기에는 직원들의 리소스도 클 것입니다.
이처럼 A/B test는 사전에 셋팅한 조건으로 특정 실험 기간 동안 진행해야 하는데 정확한 대조를 위해 실험 기간 동안 조건들을 바꿀 수 없어 비용 문제가 발생하게 됩니다.
2. 시간의 문제
A/B test 실험 설계 과정에서 고객 설정만큼 중요한 실험 기간 설정과정이 있습니다. 어느기간동안 얼마나 실험을 해야 할까요?
아마 해당 질문이 A/B test에서 가장 어려운 문제라고 생각합니다. 통상적으로 실험 기간은 '길지도 짧지도 않은 적당한 기간'
으로 설정하라고 추천합니다.
A/B test에서 최종 의사결정은 통계직 기반으로 결정하게 되는데 이때 결과에 대한 신뢰성을 보장하기 위해서는 충분한 표본크기를 필요로 합니다. 해당 내용은 어느 정도 표본크기가 필요하나에 대한 검정력 분석, 최소 표본크기에 대한 글을 참고해 주시기 바랍니다.
그럼 최소 표본크기를 계산하고 실험기간을 설정하면 해결되는 걸까요? 이외에도 '비즈니스 산업을 고려한 사이클'을 고려할 수 있어야 합니다. 만약 실험 날짜에 특정 주말, 계절이 있다면 객관적인 결과가 나오지 않게 됩니다. 예를 들어 다른 요인으로 성능이 높을 거라 예상되는 기간에만 실험을 진행한다면, 성능이 높은 경우를 실험에 포함하지 않는다면 실험 결과에 대한 신뢰성이 떨어지게 되겠죠.
이외에도 대조군, 실험군에 대한 신빙성, 통제하기 힘든 외부 요인, 의사결정에서 주관적인 결정 등 다양한 문제점이 있습니다. 위에서 언급한 A/B test의 문제점으로 대표적으로 제시되는 비용, 시간의 문제를 해결하기 위한 방안으로 유명한 MAB(Multi Armed Bandits Algorithm)가 있습니다.
MAB
MAB는 위에서 언급한 A/B test의 2가지 문제점인 비용, 시간의 문제점을 해소할 수 있는 강화학습 방법론입니다.
위키피디아 정의에서 살펴보면 Multi Armed Bandit Problem은 의사결정자가 여러 개의 Armed 중 하나의 Armed을 반복적으로 선택하는 문제입니다. 즉 '여러 개의 선택지 중 어떤 Armed을 무슨 기준으로 결정하는가'가 핵심입니다.
MAB는 도박꾼이 카지노에서 여러 슬롯머신의 레버(Multi Armed)를 당겨서 최대의 이익을 달성하려는 모습에서 유래되었다고 합니다. 우리가 카지노에 가서 최대의 이익을 달성하려면 무슨 기준으로 어떤 슬롯 머신의 레버를 당겨야 할까요?
어느 슬롯머신이 수익률이 좋은지 확인할 수 있으면 베스트지만 많은 비용이 발생활 거고(비용의 문제) 한두 번씩 레버를 당겼다고 해당 슬롯머신의 최고라고 단정 지을 수 없습니다.(시간의 문제) 이처럼 카지노에서도 A/B test의 문제점이 같은 논리도 적용하게 됩니다. 따라서 비용, 시간을 최적화하여 적절한 슬롯머신의 레버를 선택하고 수익률을 극대화하는 방법론이 MAB라고 할 수 있습니다.
MAB 특징
A/B test 대비 MAB 알고리즘의 특성에 대해서 자세히 살펴보겠습니다.
1. 비용 절감
MAB는 A/B 테스트에 비해 비용을 절감할 수 있습니다. A/B test는 실험이 끝날때까지 같은 조건으로 실험을 진행해야하는 반면 MAB는 목표 지표를 최적화하는 과정에서 성능이 좋은 선택지를 택하기에 비용을 절감하게 됩니다.
예를 들어, 추천시스템 성능 검증을 해야하는 상황을 가정해보겠습니다. 위 A/B test 문제 사례에서 설명했듯이 일부 추천시스템의 성능이 너무 낮다면 그만큼 하락된 매출액을 감당해야합니다. 하지만 MAB는 실험 중에도 높은 구매율, 매출액을 보이는 추천시스템 알고리즘의 비중을 높여서 비용을 절감할 수 있습니다.
2. 시간 절감
MAB는 실험 결과를 실시간으로 학습하고 적응할 수 있으므로 결과 도출에 소요되는 시간을 단축할 수 있습니다. A/B 테스트는 일정 기간 동안 대조군과 실험군을 분리하여 데이터를 수집한 후에야 결과를 분석할 수 있습니다. 반면에 MAB는 데이터를 수집하면서 동시에 최적의 선택을 학습하고 적용하여 결과를 빠르게 도출할 수 있습니다.
추천시스템 성능 검증을 위한 실험에서 A/B 테스트를 사용하면 각 알고리즘에 대한 별도의 실험을 실행한 후에야 결과를 분석할 수 있습니다. 그러나 MAB를 사용하면 단일 실험 그룹에서 여러 알고리즘을 동시에 테스트하고, 수집된 데이터를 실시간으로 분석하여 최적의 알고리즘을 선택할 수 있습니다. 이렇게 하면 실험에 소요되는 시간을 단축할 수 있습니다.
3. 적응성, 실시간성
MAB는 실험 도중에도 알고리즘이 학습하여 최적의 선택을 적응적으로 조정할 수 있습니다. 즉, 실험을 실행하는 동안 발생하는 데이터를 기반으로 알고리즘이 자동으로 최적의 선택을 업데이트할 수 있습니다. 실시간성이 중요한 도메인에서 특히 유용한 장점입니다.
이러한 특징들로 인해 MAB는 비용을 절감하고 시간을 단축하면서도 실험 결과를 신속하게 도출하고 적응적으로 최적화할 수 있는 효과적인 방법론으로 평가됩니다.
마치며
다음 시간에는 비용, 시간의 문제를 최적화하여 의사결정을 하는 MAB의 원리와 대표적인 알고리즘 종류에 대해서 알아보겠습니다.