Successfully reported this slideshow.
Your SlideShare is downloading. ×

프로덕트를 빠르게 개선하기 위한 베이지안 A/B 테스트

프로덕트를 빠르게 개선하기 위한 베이지안 A/B 테스트

Download to read offline

2021-07-16 잔디콘 시즌6 발표자료
- 베이지안 방법론에 Expected Loss를 활용하여 프로덕트 개선 속도를 높이는 방법에 대해 알아봅니다.
- 개발자 및 통계학 전공자가 아닌 분들을 대상으로 한 발표입니다. 다소 엄밀하지 못한 설명이 포함되었을 수 있으니 양해 부탁드립니다. 잘못된 부분은 답글로 달아주시면 감사하겠습니다.

원본 파일은 다음 링크로 다운로드 받으실 수 있습니다 :)
https://www.dropbox.com/s/zo1er99muu2oj5l/leeminho_til6_bayesian_abtest.pdf?dl=0

2021-07-16 잔디콘 시즌6 발표자료
- 베이지안 방법론에 Expected Loss를 활용하여 프로덕트 개선 속도를 높이는 방법에 대해 알아봅니다.
- 개발자 및 통계학 전공자가 아닌 분들을 대상으로 한 발표입니다. 다소 엄밀하지 못한 설명이 포함되었을 수 있으니 양해 부탁드립니다. 잘못된 부분은 답글로 달아주시면 감사하겠습니다.

원본 파일은 다음 링크로 다운로드 받으실 수 있습니다 :)
https://www.dropbox.com/s/zo1er99muu2oj5l/leeminho_til6_bayesian_abtest.pdf?dl=0

More Related Content

프로덕트를 빠르게 개선하기 위한 베이지안 A/B 테스트

  1. 1. 데이터라이즈 PO 이민호 프로덕트를 빠르게 개선하기 위한 
 베이지안 A/B 테스트 정원사들 시즌 6 : 잔디콘 그런데 이제 Expected Loss를 곁들인
  2. 2. 안녕하세요! 이민호 Miika 데이터라이즈에서 Product Owner 를 맡고 있습니다! 기획, 개발, 데이터, UX 등 다양한 분야에 관심이 많아요! 이번 시즌 잔디 모임에서는 
 인과추론, 베이지안 통계, A/B 테스트, 그리고 JS를 주로 공부했어요 :) lumiamitie@gmail.com
  3. 3. 날이 갈수록 중요해지고 있는 A/B 테스트 A/B 테스트를 통해 어떤 방안이 좋은지 데이터를 바탕으로 평가할 수 있다. > A/B 테스트를 이론적으로 뒷받침하는 RCTRandomized Controlled Trial는 인과적인 효과를 가장 효과적으로 추정할 수 있는 방법이다. 실험을 통한 개선이 장기적으로 반복되면 그 효과가 복리처럼 누적되어 큰 성과로 이어진다. > 매달 5%씩 지표를 향상시킬 수 있다면, 1년간 80%의 개선이 이루어진다. 대부분의 실험은 원하는 결과를 얻는데 실패하기 때문에 실험의 양이 중요하며, 
 많은 실험을 안정적으로 수행하기 위해 체계적인 실험 사이클이 필요하다. > AB 테스트의 성공 확률은 (집계한 곳마다 다르지만) 평균적으로 10% 내외로 보는 것 같다.
  4. 4. 일반적으로 사용하는 A/B 테스트 평가 방법 NHST Null hypothesis significance testing (1) 귀무가설 Null Hypothesis 을 선택한다. 보통 A, B안 사이에 차이가 없을 것이라고 가정하게 된다. (2) 이제 실험을 수행하고, 통계량을 구한다. (3) p-value를 계산한다. A/B 테스트 환경에서 p-value 가 의미하는 것은 아래와 같다. "동일한 샘플 크기로 A/A 테스트를 수행했을 때, 
 방금 본 결과와 같거나 더 극단적인 결과가 나올 확률이 p값보다 작다."
  5. 5. 의사결정을 위한 통계학의 두 가지 접근 방법 Frequentist Bayesian 빈도주의 베이지안 아까 살펴본 NHST는 이쪽!!
  6. 6. 의사결정을 위한 통계학의 두 가지 접근 방법 아니 사실 이건 좀 극단적인 것 같긴 한데요.... ㅋㅋㅋ
  7. 7. 의사결정을 위한 통계학의 두 가지 접근 방법 (1) Frequentist 법정의 논리 무죄 추정의 원칙 → 증거가 모자라면 증거 불충분 (1) 일단 A안과 B안은 큰 차이가 없다고 보자. (2) 두 안이 차이가 없다고 가정하면, 지금 데이터가 그 가정을 깰 수 있는 강한 증거가 될까? (3) 강한 증거를 찾지 못하면 증거 불충분으로 결론 내린다. "최대한 보수적인 가설을 세우고, 현재 데이터가 가설을 깰 수 있는지를 기준으로 판단한다."
  8. 8. 의사결정을 위한 통계학의 두 가지 접근 방법 (2) Bayesian 베팅의 원리 (블랙잭 카드 카운팅?) 사전 정보 → 데이터(증거) 반영 → 사후 정보 (1) 그 동안의 실험을 보면 우리의 B안은 보통 전환율이 2% 정도 더 높았어. (2) 생각보다 전환이 더 잘되는데?? B안 더 기대해봐도 되나?? (3) 지금까지 데이터로는 B안 전환율이 A안보다 4%는 더 높을 것 같아. "과거의 정보(또는 믿음)에 현재의 데이터를 반영하여 판단한다."
  9. 9. 기존의 NHST 방식은 빠른 프로덕트 개선에 적합하지 않을 수 있다. 이유1. 귀무가설에 우호적이어서, 개선폭이 적으면 귀무가설을 채택하려는 경향이 있다. 이유2. Frequentist 방식은 모든 False Positive 를 동일하게 평가한다. > 10% vs 10.1% 와 10% vs 15%가 같은가? 이유3. p-value 라는 개념 자체가 비즈니스적으로 해석하기 어려운 수치다. > p-value 는 B안이 A안보다 좋을 확률을 의미하는 것이 아니지만, 그렇게 사용되는 경우가 있다.
  10. 10. 기존의 NHST 방식은 빠른 프로덕트 개선에 적합하지 않을 수 있다. 이유1. 귀무가설에 우호적이어서, 개선폭이 적으면 귀무가설을 채택하려는 경향이 있다. 이유2. Frequentist 방식은 모든 False Positive 를 동일하게 평가한다. > 10% vs 10.1% 와 10% vs 15%가 같은가? 이유3. p-value 라는 개념 자체가 비즈니스적으로 해석하기 어려운 수치다. > p-value 는 B안이 A안보다 좋을 확률을 의미하는 것이 아니지만, 그렇게 사용되는 경우가 있다. 그렇다면 대안이 있나요?
  11. 11. Bayesian A/B Test, 그런데 이제 Expected Loss를 곁들인 (1) 실험에서 목표로 하는 에러 허용치 e 를 정한다. (2) 실험 진행 : A안과 B안 중 하나를 랜덤하게 유저에게 보여준다. (3) A, B안의 기대 손실을 계산한다. (4) A안과 B안의 기대 손실 중 에러 허용치보다 작은 값이 있는지 확인한다.
  12. 12. Bayesian A/B Test, 그런데 이제 Expected Loss를 곁들인 (1) 실험에서 목표로 하는 에러 허용치 e 를 정한다. (2) 실험 진행 : A안과 B안 중 하나를 랜덤하게 유저에게 보여준다. (3) A, B안의 기대 손실을 계산한다. (4) A안과 B안의 기대 손실 중 에러 허용치보다 작은 값이 있는지 확인한다. e는 우리가 잘못된 선택을 했을 때, 해당 선택을 함으로써 발생하는 손실 따라서 발생하더라도 크게 신경쓰이지 않는 낮은 숫자를 설정해야 한다.
 뒤에 나올 코드 예시에서는 0.01로 설정했다.
  13. 13. Bayesian A/B Test, 그런데 이제 Expected Loss를 곁들인 (1) 실험에서 목표로 하는 에러 허용치 e 를 정한다. (2) 실험 진행 : A안과 B안 중 하나를 랜덤하게 유저에게 보여준다. (3) A, B안의 기대 손실을 계산한다. (4) A안과 B안의 기대 손실 중 에러 허용치보다 작은 값이 있는지 확인한다. 각 안의 노출 및 전환 횟수를 수집해야 한다.
  14. 14. Bayesian A/B Test, 그런데 이제 Expected Loss를 곁들인 (1) 실험에서 목표로 하는 에러 허용치 e 를 정한다. (2) 실험 진행 : A안과 B안 중 하나를 랜덤하게 유저에게 보여준다. (3) A, B안의 기대 손실을 계산한다. (4) A안과 B안의 기대 손실 중 에러 허용치보다 작은 값이 있는지 확인한다. Loss Function 을 
 "예상되는 손실의 양을 나타나는 함수"로 정의한다. A안의 Loss Function = max(B안 전환율 - A안 전환율, 0)
 B안의 Loss Function = max(A안 전환율 - B안 전환율, 0) 기대 손실은 
 "Loss Function으로 계산한 값의 기대값"을 구하면 된다.
  15. 15. Bayesian A/B Test, 그런데 이제 Expected Loss를 곁들인 (1) 실험에서 목표로 하는 에러 허용치 e 를 정한다. (2) 실험 진행 : A안과 B안 중 하나를 랜덤하게 유저에게 보여준다. (3) A, B안의 기대 손실을 계산한다. (4) A안과 B안의 기대 손실 중 에러 허용치보다 작은 값이 있는지 확인한다. 없는 경우 → 실험을 계속한다. 있는 경우 → 실험을 멈추고 기대 손실이 e 보다 작은 안을 선택한다.
  16. 16. Expected Loss를 사용하는 Bayesian A/B Test 의 장점 (1) 작은 개선에도 열려있기 때문에, 새로운 안으로 변경하는 위험이 적은 비즈니스 환경에 적합하다. > 최근의 비즈니스 환경에서는 중요한 지표를 개선하기 위해 다양한 실험을 반복하는 경우가 많다. 
 > 작은 수치라도 개선되는 방안을 빠르게 선택하면, 결과적으로 더 많은 실험을 빠르게 수행하여 지표를 최대한 개선할 수 있게 된다. (2) Loss Function 으로 인해 중요한 부분에서 발생한 에러가 의사 결정에 더 큰 영향을 미친다. > 10% vs 10.1% 보다는 10% vs 15% 일 때 더 큰 영향을 미친다. (3) B안이 A안보다 좋을 확률을 직접 계산할 수 있다. > p-value와 다르게 더 직관적으로 해석할 수 있다.
  17. 17. 코드로 살펴보자 (1) Python + PyMC3 Python (PyMC3) Python (PyMC3)
  18. 18. 코드로 살펴보자 (2) R + Stan Stan R
  19. 19. 고민 여전히 남아있는 고민 : 신중한 큰 걸음 vs 신속한 잰 걸음 > 이 방식은 새로운 방안을 선택하는 비용이 생각보다 적다는 것을 전제로 하고 있다. 정말로 그럴까? NHST 에 익숙한 사람들 > 많은 사람들은 여전히 "p-value가 유의수준(보통 0.05) 보다 작을 때 선택한다" 라는 명확한 기준이 존재하는 NHST를 선호한다. 베이지안 통계 도구의 진입장벽 > 사실 Frequentist 테스트 방법과 비교하면 PyMC3 나 Stan 모두 사용하기 어려운 편이다. MAB(특히 톰슨 샘플링)와 A/B 테스트의 역할 분배 > 최적화와 의사결정. 사실 둘 다 중요한데 각각 어떻게 활용하는 것이 최선의 선택일까?
  20. 20. 저는 데이터라이즈에서 이커머스를 위한 올인원 그로스 서비스 다이버스를 만들고 있습니다. > 실제 비즈니스에 데이터를 적용해보고 싶으신가요? > 끊임없이 데이터가 흐르는 파이프라인을 다루어보고 싶으신가요? > 모든 사람이 데이터의 혜택을 받을 수 있도록 사용하기 쉬운 솔루션을 만들어보고 싶으신가요? 
 혹시 해당되는 항목이 있나요? 그렇다면 언젠가 저희와 함께 할지도 모르겠네요!
 먼저 가서 기다리고 있을게요 :) 데이터라이즈에서 같이 고민해요! 데이터라이즈에서 함께 고민해요! https://team.datarize.ai/
  21. 21. 참고자료 https://cdn2.hubspot.net/hubfs/310840/VWO_SmartStats_technical_whitepaper.pdf https://cxl.com/blog/bayesian-frequentist-ab-testing/ https://medium.com/convoy-tech/the-power-of-bayesian-a-b-testing-f859d2219d5
  22. 22. 감사합니다 :D

×