A/B 테스트
1. A/B 테스트란?
A/B 테스트란 디지털 환경에서 전체 실사용자를 대상으로 대조군(Control Group)과 실험군(Experimental Group)으로 나누어서 어떤 특정한 알고리즘의 효과를 비교하는 방법론이다.
- A와 B 알고리즘의 성능을 비교 평가
- 하나의 서비스에 여러 개의 추천 컨셉 및 알고리즘 적용 가능
- Ex) 음악 서비스
서비스 만족도를 향상시키기 위해서 어떤 알고리즘의 성능이 우수한지 비교 평가하는 것이 중요하다.
2. Online A/B 테스트 vs Offline A/B 테스트
- Online A/B 테스트
- 실제 서비스에 A와 B 알고리즘을 적용해서 성능을 비교 평가
- Offline A/B 테스트 보다 결과가 더 정확
- Offline A/B 테스트
- 과거 A 알고리즘이 실제 서비스에 적용되었던 histroy 데이터를 이용하여 B 모델의 실제 성능을 추론
Online A/B 테스트의 높은 비용
- 결과를 신뢰할 수 있지만, 충분한 양의 데이터가 수집되기 까지 많은 시간이 소요되고 리스크가 큼
- 만약 테스트 알고리즘의 성능이 좋지 않을 경우 사용자가 서비스를 탈퇴할 수 있음
- 광고/오픈마켓의 경우 클릭이 수익으로 직결되기 때문에 매출이 하락할 수 있음
Offline A/B 테스트를 대안으로 사용
- 사용자의 경험비용 최소화
- 새로운 아이디어를 빠르게 확인하여, 사전에 성능이 떨어지는 알고리즘은 미리 제외하고 성능이 보장된 알고리즘만 online에 적용 가능
출처 : [NDC21-데이터분석] 추천알고리즘 Offline A/B 테스트 (feat. PAIGE 프로야구 서비스)
하지만, 많은 가정이 필요하고 Offline 테스트 결과가 실제 결과와 다를 수 있다는 리스크 존재한다.
Offline A/B 테스트의 결과는 실제와 다름
- 과거 데이터는 A 알고리즘과 그로 부터 생성된 사용자의 반응에 편향되어 있음
- 즉, 이미 적용된 알고리즘을 통해 추천된 콘텐츠에 대해서만 반응을 평가할 수 있고 테스트 알고리즘이 새롭게 제시할 콘텐츠에 대한 사용자의 선호도를 평가하기 어려움
Counterfactual thinking 접근
‘만약 ~ 했다면(조건), ~했을 텐데(결과)’
- 즉, 만약 과거 A 알고리즘을 통해 추천된 콘텐츠가 B 알고리즘에 의해 추천되었다면, 20%의 확률로 추천 되었을 텐데
- B 알고리즘의 아이템 추천 확률 개념을 이용해서 사용자의 반응을 re-weighting하는 방법
최근 Offline A/B 테스트
- 최근에 AI/머신러닝 관련 학술지에 Offline A/B 테스트 주제의 논문들이 증가하는 추세
- 2018년에는 이 주제로 RECSYS workshop이 진행됨
- 추천 알고리즘 외에도 적용 가능
- User-Interaction 시스템
- Ex) 상품 검색, 소셜미디어 피드 랭킹, 뉴스 추천 등
3. Offline A/B 테스트 추론 방법
Importance weight 개념
- 관측된 데이터
랭킹 | A 알고리즘 추천 콘텐츠 | 반응 | A 알고리즘 내 추천 확률 | B 알고리즘 내 추천 확률 | weight |
---|---|---|---|---|---|
1 | 0 | 0.8 | 0.2 | 0.25 | |
2 | naver | 1 | 0.6 | 0.2 | 0.33 |
3 | yahoo | 1 | 0.7 | 0.9 | 1.3 |
A 알고리즘에서 각 콘텐츠가 k번째 추천될 확률 존재
B 알고리즘을 적용했을 때, 각 노래가 추천될 확률을 계산
- Monte carlo simulation 기법 적용 n번 추천리스트를 생성한 다음 각 아이템이 k번째 추천될 확률 계산 → A, B 모두 stochastic 알고리즘
weight = (B 알고리즘 내 k번째 추천될 확률) / (A 알고리즘 내 k번째 추천될 확률 + $\epsilon$)
- $\epsilon$ : 확률이 0이 되는 것을 방지
B 알고리즘 추청 반응률
$$
\frac{1}{n}\sum{w \cdot r }
$$- w : weight
- r : 반응
- n : 데이터 개수
IS(Importance Sampling) 기법: weight를 기반으로 사용자의 반응을 보정
A 알고리즘에 비해서 B 알고리즘의 성능이 얼마나 향상할지 혹은 감소할지 추정
IS에 의한 B 알고리즘의 추정 반응률 = (0 + 0.33 + 1.3) / 3 = 1.63 / 3 = 54.3%
IS 기법의 weight 문제점
- A 알고리즘에서 매우 낮은 확률로 콘텐츠가 추천되는 경우, 굉장히 큰 weight가 생성될 수 있음
- 하나의 데이터 weight가 전체 결과에 큰 영향을 미침
랭킹 | A 알고리즘 추천 콘텐츠 | 반응 | A 알고리즘 내 추천 확률 | B 알고리즘 내 추천 확률 | weight |
---|---|---|---|---|---|
1 | 0 | 0.8 | 0.2 | 0.25 | |
2 | naver | 1 | 0.6 | 0.2 | 0.33 |
3 | yahoo | 1 | 0.7 0.1 | 0.9 | 1.3 9 |
- B 알고리즘의 추정 반응률 = (0 + 0.33 + 9) / 3 = 9.33 / 3 = 311%
CIS, weight를 제한하는 방법
CIS(Capping Importance Sampling)
특정 값 c 보다 weight가 큰 경우, c로 대체
B 알고리즘 추청 반응률
$$
\frac{1}{n}\sum{\overline{w} \cdot r }, \quad \overline{w} = min(w,c)
$$- c : capping value
랭킹 | A 알고리즘 추천 콘텐츠 | 반응 | A 알고리즘 내 추천 확률 | B 알고리즘 내 추천 확률 | weight |
---|---|---|---|---|---|
1 | 0 | 0.8 | 0.2 | 0.25 | |
2 | naver | 1 | 0.6 | 0.2 | 0.33 |
3 | yahoo | 1 | 0.7 0.1 | 0.9 | 1.3 9→2 |
- B 알고리즘의 추정 반응률 = (0 + 0.33 + 2) / 3 = 2.33 / 3 = 77.6%
NCIS, 정규화 기법 적용
- NCIS(Normalized Capping Importance Sampling)
- CIS값을 정규화하여 예측 에러를 최소화 시킨 Esimator
- B 알고리즘 추청 반응률
$$
\frac{\frac{1}{n}\sum{\overline{w} \cdot r }}{\frac{1}{n}\sum{\overline{w}}}
$$
- 추가적인 방법론
- pieceNCIS : 데이터를 적절한 그룹별로 나눠서 normalization
- pointNCIS : 데이터 각각을 normalization
deterministic 알고리즘
- 위의 stochastic 알고리즘과 달리 deterministic 알고리즘은 user-item pair에 대해 score가 변하지 않기 때문에, 추가적으로 stochastic model로 근사화 해야함
- Ranking score 기반의 weighted sampling을 통해 추천확률을 생성할 수 있음
- 또는, Doubly Robust 방법론을 적용해 볼 수 있음
4. A/B 테스트에서 사용자를 분리 방법
보통 A/B 테스트를 간단히 수행할 때, 단순히 트래픽 비율을 나누는 방법을 사용한다. 하지만 실제 A/B 테스트를 수행할 때 서로 다른 대조군과 실험군을 보여주는 방법은 1) 노출 빈도 분산 방식, 2) 사용자 분산 방식, 3) 시간대 분산 방식의 3가지 방식이 존재한다.
노출 빈도 분산 방식 | 사용자 분산 방식 | 시간대 분산 방식 | |
---|---|---|---|
방법론 | A/B 테스트가 진행되는 페이지가 렌더링 될 때, 비율로 A와 B를 다르게 노출 | 사용자를 A그룹과 B그룹으로 분리하여, 고정적으로 다른 Variation을 노출 | 초~분 단위 정도로 시간대를 세밀하게 분할하여 A안과 B안을 노출 |
특징 | 가장 통계적 유의성이 높지만, UI/UX의 경우 사용자들에게 혼란을 줄 수 있음 | 사용자 별로 고정 UI/UX가 나오기 때문에 UI/UX 테스트에 적합하지만, 특정 Heavy User에 의해 결과값이 왜곡될 수 있음 | 보안/설계 상의 문제로 분산 방식을 사용하기 어려울 때, 상대적으로 쉽게 활용 가능 |
적합한 테스트 | 알고리즘 테스트 | UI/UX 테스트 | 노출/사용자 분산 방식을 사용할 수 없는 경우 대안으로 활용 |
- 노출 빈도 분산 방식 : 테스트가 진행되는 페이지가 렌더링될 때 마다, 특정 비율(50%:50% or 80%:20%)에 따라 A안과 B안을 다르게 노출시키는 방식으로 특정 Heavy User가 매우 많은 Action을 보여주더라도 노출 빈도에 따라 A안과 B안 모두에 포함이 될 수 있기 때문에 상대적으로 통계적 유의성이 더 높다. 하지만 동일한 사용자더라도 매번 UI/UX가 다르게 나올 수 있기 때문에 사용자들에게 혼란을 주고 오히려 결과값에 Bias를 만들 수 있기 때문에 UI/UX 테스트 보다는 알고리즘 테스트 등에 더 적합하다.
- 사용자 분산 방식 : 특정한 사용자 ID에 따라 사용자 그룹을 나누고, 각 사용자 그룹에 대해 A안과 B안을 노출시키는 방식이다. 이 방식은 앞서 말한 노출 빈도 분산 방식보다는 UI/UX가 사용자 그룹별로 고정되어 있어서 혼란을 덜 주는 장점이 있지만, 반면에 특정 Heavy User의 Outlier들에 의해 전체 결과값이 왜곡될 수 있기 때문에 결과값 검증 절차가 필요하다.
- 시간대 분산 방식 : 시스템 설계 상 노출이나 사용자 분산이 불가능할 경우, 시간 단위로 시간 대역을 분할하여 테스트를 수행하는 방식이다. 과거에는 일부 금융사나 통신사 등 보안과 하드웨어 특성 때문에 이러한 방식을 사용하였지만 현재는 많이 활용되는 방식은 아니다.
5. 추천 알고리즘
deterministic 알고리즘
- deterministic 알고리즘은 user-item pair에 대해 score가 변하지 않기 때문에, 추가적으로 stochastic model로 근사화 해야함
- Ranking score 기반의 weighted sampling을 통해 추천확률을 생성할 수 있음
- 또는, Doubly Robust 방법론을 적용해 볼 수 있음
기본 추천 알고리즘
- Thompson sampling (TS)
- Multi-armed bandit 기반 알고리즘
- Exploration(탐색) + Exploitation(활용)을 적절하게 수행
- 최신성과 인기성을 반영하여 추천 ranking을 결정
References
'추천 시스템 > Study' 카테고리의 다른 글
MAB (Multi-Armed Bandit) 알고리즘 (0) | 2022.02.14 |
---|---|
연관 분석 (Association Analysis) (0) | 2022.02.10 |
댓글