문과생을 위한 데이터 알고리즘 - MAB, 톰슨샘플링이란?

March 13, 2022 · 3 mins read

문송합니다,라기엔 과장님도 문과

회사에 새로 오신 데이터 기획 PM 과장님과 함께 데이터 기획 업무를 맡았다. 왜 내가 맡았는지는 모르겠지만 그나마 콘텐츠, 디자인 전공이 많은 대리급에서는 디지털 마케터인 내가 적합해보여서겠지. 그래서 요즘 정말 고군분투 중인데, 매번 외부 협력사에서 온 데이터 사이언티스트와 과장님과 나누는 대화를 들으며 수업을 듣는 느낌이다. 오늘은 그 미팅 중 그래도 자주 나오는 알고리즘에 대해 알아보고자 한다.

Multi-Armed Bandit

다중 팔 강도..!

톰슨샘플링에 대해서 찾아보니, 역시 톰슨님이 만들었다. 다만 온라인에 올라와있는 콘텐츠를 보니 베타함수에, 온갖 수식으로 점철된 문서들만 나와서 이해하기 꽤나 어려웠다. 그래도 내가 이해할 수 있는 선에서 이해된 이야기만 하자면 이렇다.

Multi-Armed Bandit

톰슨 샘플링에 대해 말하기 위해서는 먼저 MAB(Multi-Armed Bandit)에 대해 알아야 한다. 다중 슬롯 머신 문제라고 해석되지만 단순 번역하자면 팔 많은 강도다. bandit은 슬롯머신을, arm은 슬롯머신의 손잡이를 의미한다. 즉, 여러 개의 손잡이로 슬롯머신을 당겨서 최고의 수익을 낼 수 있는 방법론을 의미한다. (욕심짱많..)

최고의 수익을 알기 위해서는 시험해보지 않은 새로운 머신을 당겨보는 ‘탐색’기존의 경험과 정보를 바탕으로 수익이 가장 좋은 손잡이를 선택하는 ‘활용’, 마지막으로 손잡이를 당겨 얻게된 ‘수익’이 활용된다. 이 세가지는 상호보완적이다. 탐색이 잘 되어야 가장 효율이 좋은 머신을 선택할 수 있고, 수익에 따라 머신을 선택해야 하니 활용이 필요하고, 그 어느것도 부족함 없이 적절하게 이루어져야 최적의 수익을 찾을 수 있다.

그리고 결국

톰슨 샘플링(Thompson Sampling)

톰슨샘플링은 여기에서 슬롯머신 대신 광고 배너를 넣고, 수익 대신 사용자의 광고 배너 클릭을 대입한 것이다. 광고 배너를 노출하거나 추천 콘텐츠 중에서 선별하여 노출할 때 사용자의 클릭률(CTR)을 예측하는데 활용된다. 톰슨이 잘못했네,,

Thompson Sampling Graph

  1. 톰슨 샘플링은 아무 데이터가 없는 0에서 시작한다.
  2. 랜덤하게 광고 배너를 노출하고, 랜덤하게 노출한 결과로 얻어진 확률 분포 값에서 각 배너당 1개씩 샘플링을 한다.
  3. 둘 중 샘플의 확률 값이 더 높은 배너를 랜덤으로 노출시키고, 노출 시킨 클릭 여부 결과를 다시 베타 분포에 반영시킨다. 이 과정을 반복한다.
  4. 충분한 반복이 이뤄지면 각 배너의 분포가 크게 변하지 않는 순간이 온다. 여기에서 최고의 수익을 가져오는 배너를 확인할 수 있다.

톰슨 샘플링은 어떤 기대값의 분포를 추정한 후 클릭확률이 높은 아이템을 추천하는 알고리즘으로 피드백을 반영해 기대하는 값의 분포를 지속적으로 업데이트할 수 있다.

콜드스타트 멈춰!

구글에서도 쓰는 그 알고리즘

과장님 말로는 콜드 스타트(기존에 데이터가 아무것도 없어서 호출을 해도 제대로된 결과가 나오지 않는 상태)인 시점에서 톰슨 샘플링을 많이 사용한다고 했다. MAB가 갖는 특징 중 하나가 실시간성인데 사용자의 피드백이 실시간으로 모델에 적용되어 추천 결과에 나타나기 때문에 기존에 데이터가 없는 시점에 사용자가 서비스를 이용하면서 알고리즘을 최적화해 나가는 것이 가능하다.

실제로 광고 배너 a/b테스트에서 많이 사용되는데 구글 애널리틱스, 네이버 광고 시스템에서 톰슨 샘플링 알고리즘이 사용되고 있고, 이외에도 넷플릭스, 카카오 AI에서도 많이 사용되고 있다.

다만 모든 알고리즘이 갖는 본질적 한계인 최적화된 공식을 벗어나는 보상이 발생할 경우 적용이 어렵다는 한계가 있다. 알고리즘이 어느정도 형태를 갖추었을 상태에 확률 분포도를 벗어나는 값이 발생할 경우 적용이 어려울 수밖에 없다.

다음에는 왓챠, 넷플릭스, 유튜브에 많이 사용되는 협업 필터링, 콘텐츠 기반 필터링에 대해 알아보도록 하겠다. 이 두 알고리즘은 유저의 과거 데이터, 콘텐츠의 메타 데이터를 기반으로 매칭하는 형태에 가까우므로 훨씬 더 이해하기 쉽겠다.

[참고] https://sungkee-book.tistory.com/14 https://brunch.co.kr/@chris-song/66 https://tech.kakao.com/2021/06/25/kakao-ai-recommendation-01/ https://techblog-history-younghunjo1.tistory.com/166 https://tech.kakao.com/2021/06/25/kakao-ai-recommendation-01/


comments powered by Disqus