MAB(Multi-Armed Bandit) 기반 접근
지난 글에서는 CRM 마케팅에서 최적의 메시지 발송 빈도를 결정하는 방법으로 최적 제어 이론((Optimal Control Theory)을 소개했습니다. 하지만 실무에서는 반드시 시간이 흐른 후 최적의 정책을 적용하는 방식만 있는 것은 아닙니다. 즉각적인 고객 반응을 실시간으로 반영하면서 최적의 메시지 발송 전략을 찾아가는 방법도 필요합니다.
예를 들어, 한 쇼핑몰이 고객에게 프로모션 메시지를 보낼 때, 1일 1회 / 2일 1회 / 3일 1회 발송 중 어떤 빈도가 가장 높은 전환율을 가져오는지 알고 싶다고 가정해 봅시다.
✔️ 기존 A/B 테스트 방식
모든 고객을 그룹으로 나누고 각 그룹에 미리 정한 발송 빈도로 메시지를 보낸 후, 일정 기간이 지난 뒤 성과를 비교하여 최적의 빈도를 선택합니다.
✔️ MAB 방식
실시간으로 고객의 반응(클릭, 구매, 수신 거부 등)을 학습하면서, 초반에는 여러 발송 빈도를 테스트하고, 시간이 지나면서 성과가 좋은 빈도를 자동으로 더 많이 선택하는 방식을 사용합니다.
즉, MAB는 A/B 테스트처럼 한 번 정해진 실험 설계를 유지하는 것이 아니라, 고객의 반응을 즉각적으로 반영하면서 최적의 발송 빈도를 학습하는 방식입니다.
그렇다면, MAB는 어떻게 이러한 최적의 선택을 실시간으로 찾아낼 수 있을까요? 그리고 어떤 알고리즘을 활용하면 이를 효과적으로 구현할 수 있을까요? 이번 글에서는 Multi-Armed Bandit (MAB) 알고리즘을 활용한 메시지 최적화 방법을 소개하고, 실무에서 활용할 수 있는 방법을 설명해 보겠습니다.
MAB는 어떻게 최적의 선택을 학습할까?
Multi-Armed Bandit(다중 무작위 대조군 실험, MAB)은 한정된 자원을 활용해 최상의 결과를 얻을 수 있도록 실시간으로 학습하는 알고리즘입니다. 이 개념을 쉽게 이해하기 위해 "슬롯머신(One-Armed Bandit)"을 예로 들어보겠습니다.
슬롯머신(One-Armed Bandit) 비유로 이해하는 MAB
카지노에 여러 개의 슬롯머신이 있다고 가정해 봅시다. 각 슬롯머신은 서로 다른 확률로 보상을 제공합니다. 하지만 우리는 처음에는 어떤 슬롯머신이 가장 높은 보상을 줄지 알 수 없습니다. 이 상황에서 플레이어(=마케터)가 선택할 수 있는 전략은 크게 두 가지입니다.
1. 탐색(Exploration)
각 슬롯머신을 여러 번 시도해 보면서, 어떤 머신이 높은 보상을 주는지 탐색하는 과정입니다.
하지만 탐색만 하다 보면 보상이 낮은 머신을 계속 시도할 수도 있습니다.
2. 활용(Exploitation)
이미 보상이 높은 슬롯머신을 찾았다면, 그 머신을 계속 활용하여 최대한의 보상을 얻으려는 전략입니다.
하지만 특정 머신에만 집중하면, 더 좋은 보상을 주는 머신을 놓칠 수도 있습니다.
MAB는 이 두 가지 전략을 균형 있게 조정하여, 탐색을 통해 최적의 선택을 찾아가면서도 점점 더 높은 보상을 받을 수 있도록 학습하는 방식입니다.
CRM 마케팅에서는 어떻게 적용될까?
슬롯머신의 레버를 당기는 것과 마찬가지로, CRM 마케팅에서도 여러 개의 메시지 발송 전략 중 최적의 선택을 실시간으로 학습하는 과정이 필요합니다.
예를 들어, 고객에게 보낼 메시지의 빈도를 결정하는 상황을 생각해 봅시다.
✔️ 1일 1회 발송
✔️ 1일 2회 발송
✔️ 1일 3회 발송
처음에는 모든 발송 빈도를 고르게 테스트해 보지만, 시간이 지나면서 가장 높은 전환율(클릭률, 구매율 등)을 보이는 빈도를 자동으로 더 많이 선택하는 것이 MAB의 핵심 원리입니다. 이를 통해 고객의 반응 데이터를 실시간으로 반영하며 최적의 메시지 발송 빈도를 찾을 수 있습니다.
MAB를 활용하여 최적의 메시지 발송 빈도를 찾아가는 과정에서, 가장 중요한 것은 탐색(Exploration)과 활용(Exploitation)의 균형을 맞추는 것입니다.
이를 해결하는 대표적인 두 가지 알고리즘이 Thompson Sampling과 UCB(Upper Confidence Bound)입니다. 이제 각각의 알고리즘이 어떻게 작동하는지 살펴보고, 실무에서 어떻게 활용될 수 있는지 설명하겠습니다.
Thompson Sampling은 확률적(베이지안) 접근법을 이용하여 최적의 행동을 선택하는 방식입니다.
✔️ 원리
1️⃣ 각 메시지 발송 빈도(예: 1일 1회, 1일 2회, 1일 3회 등)에 대해 베타 분포(Beta Distribution)를 설정합니다.
2️⃣ 새로운 메시지를 보낼 때마다 각 발송 빈도에 대한 보상(클릭률, 구매율 등)을 업데이트합니다.
3️⃣ 확률적으로 가장 높은 기댓값을 가진 메시지 발송 빈도를 선택합니다.
4️⃣ 시간이 지남에 따라 최적의 선택을 찾아가며, 클릭률이 높은 발송 빈도를 더 자주 선택하게 됩니다.
✔️ 실무 적용 예시
예를 들어, 1일 1회, 1일 2회, 1일 3회 발송 중 어떤 빈도가 가장 높은 클릭률을 가져오는지 모르는 상황을 가정해 봅시다.
1️⃣ 초반에는 모든 발송 빈도를 동일하게 테스트하며 탐색합니다.
2️⃣ 시간이 지나면서 클릭률이 높은 발송 빈도가 점점 더 많이 선택됩니다.
3️⃣ 특정 메시지 빈도가 높은 성과를 보이면, 그 빈도를 더 자주 선택하게 됩니다.
✔️ Thompson Sampling의 특징
1️⃣ 실시간으로 고객 반응을 반영하여 최적의 발송 빈도를 동적으로 조정
2️⃣ 초기에는 다양한 옵션을 탐색(Exploration)하고, 시간이 지나면 성과가 좋은 옵션을 더 많이 활용(Exploitation)
3️⃣ 실험이 계속될수록 고객 반응이 가장 좋은 메시지 발송 전략을 자동으로 선택
UCB 알고리즘은 Thompson Sampling과 달리, 신뢰 구간(Confidence Interval)을 활용하여 탐색과 활용을 균형 있게 조정하는 방식입니다.
✔️ 원리
1️⃣ 각 메시지 발송 빈도(1일 1회, 1일 2회, 1일 3회 등)에 대해 평균 클릭률을 계산합니다.
2️⃣ 보상이 낮은 옵션도 어느 정도 테스트해야 하므로, 신뢰 구간을 추가하여 탐색을 유도합니다.
3️⃣ 실험을 반복하면서, 최적의 메시지 발송 빈도를 점점 더 많이 선택합니다.
4️⃣ 아직 충분히 실험되지 않은 옵션을 우선적으로 탐색합니다.
✔️ 실무 적용 예시
새로운 메시지 발송 전략을 테스트할 때, 클릭률이 높은 빈도를 더 많이 활용하지만, 특정 빈도가 충분히 실험되지 않았다면 탐색을 유도하여 실험 기회를 줍니다. 예를 들어, "1일 3회" 발송이 클릭률이 낮더라도 충분한 실험이 이루어지지 않았다면 일정 횟수 이상 테스트가 진행됩니다.
✔️ UCB의 특징
1️⃣ Thompson Sampling보다 결정론적(deterministic) 접근법을 사용
2️⃣ 성과가 좋은 옵션을 선택하는 동시에, 아직 실험되지 않은 옵션도 탐색
3️⃣ 탐색(Exploration)과 활용(Exploitation)의 균형을 맞춰 안정적인 선택을 보장
실시간 최적화가 필요하다면 "Thompson Sampling", 안정적인 클릭률을 기반으로 선택하고 싶다면 "UCB"를 사용하는 것이 좋습니다.
1. 신규 고객을 대상으로 최적의 메시지 발송 빈도를 실험할 때 (신규 유저 메시지 온보딩)
초반에는 여러 빈도를 고르게 탐색(Exploration)
일정 시간이 지나면 클릭률이 높은 발송 빈도를 자동으로 더 많이 선택(Exploitation)
2. 기존 활성 고객을 대상으로 한 리텐션(Retention) 캠페인 운영
고객 반응 데이터를 실시간으로 반영하여 메시지 발송 빈도를 조정
너무 자주 메시지를 보내면 피로도가 높아질 수 있기 때문에, UCB 알고리즘을 활용하여 탐색과 활용을 균형 있게 맞춤
3. 제품 추천 메시지를 최적화할 때
고객별로 어떤 메시지가 가장 높은 클릭률을 보이는지 실시간으로 학습
Thompson Sampling을 활용하여 반응이 좋은 메시지 유형을 점점 더 많이 활용
이제 MAB의 대표적인 알고리즘인 Thompson Sampling과 UCB가 어떻게 작동하는지 이해했으니, 다음으로는 실제 Python 코드로 구현하여 실험해 볼 수 있는 방법을 다뤄보겠습니다
앞서 설명한 Thompson Sampling과 UCB(Upper Confidence Bound) 알고리즘을 실제로 Python을 활용해 구현해 보겠습니다. 실험을 통해 어떤 발송 빈도가 가장 효과적인지 학습하는 과정을 직접 확인할 수 있습니다.
실험 개요
CRM 마케팅에서 고객에게 보낼 메시지의 발송 빈도를 최적화하는 과정을 실험해 봅니다.
예제 시나리오
✔️ 1일 1회 발송
✔️ 1일 2회 발송
✔️ 1일 3회 발송
각 메시지 발송 빈도에 대해 고객의 클릭률(CTR)을 가정하고, MAB 알고리즘을 적용하여 최적의 발송 빈도를 찾아가는 과정을 실험합니다.
실험 목표
✔️ 초기에는 각 발송 빈도를 동일하게 테스트(탐색 Exploration)
✔️ 실험이 진행될수록 가장 높은 클릭률을 보이는 빈도를 자동으로 더 많이 선택(활용 Exploitation)
✔️ Thompson Sampling과 UCB 알고리즘이 어떻게 다르게 학습하는지 비교
이제 Python을 사용해 직접 구현해 보겠습니다. 각 알고리즘을 활용해 실험을 진행한 후, 어떤 메시지 발송 빈도가 가장 많이 선택되었는지 확인해 보겠습니다.
Thompson Sampling을 활용하여 예제 데이터 기반으로 최적의 메시지 발송 빈도를 찾아가는 과정을 살펴보겠습니다. 이 코드는 고객 반응 데이터를 실시간으로 반영하여 최적의 메시지 발송 빈도를 결정하는 방식입니다.
이 코드는 단순한 예제이지만, 실무에서는 다음과 같이 응용할 수 있습니다.
1. 실시간 고객 반응 데이터를 활용
✔️ CRM 시스템에서 고객의 메시지 반응 데이터를 실시간으로 수집
✔️ 메시지 클릭, 구매 전환 여부를 기록하여 successes와 failures 업데이트
2. 주기적인 최적 메시지 발송 정책 업데이트
✔️ 특정 기간(예: 1주 또는 1개월)마다 데이터를 수집하여 베타 분포 기반으로 최적 메시지 발송 빈도를 자동 업데이트
✔️ Thompson Sampling을 활용하여 최적의 발송 빈도를 지속적으로 개선
3. 여러 마케팅 캠페인에 적용
✔️ 메시지 발송 빈도뿐만 아니라, 광고 노출 빈도, 할인 쿠폰 발송 빈도 등 다양한 마케팅 캠페인 최적화 가능
4. 고객 세그먼트별 최적화
✔️ 모든 고객에게 동일한 발송 빈도를 적용하는 것이 아니라, VIP 고객, 신규 고객, 장기 휴면 고객 등 고객 그룹별로 최적 메시지 발송 정책을 따로 적용 가능
Thompson Sampling과 함께 대표적인 MAB (Multi-Armed Bandit) 알고리즘인 UCB (Upper Confidence Bound)를 활용하여 메시지 발송 빈도를 최적화하는 방법을 살펴보겠습니다.
UCB는 탐색(Exploration)과 활용(Exploitation)의 균형을 맞추는 방법 중 하나입니다. 특정 메시지 발송 빈도(예: 1일 1회, 1일 2회, 1일 3회)에 대해 신뢰 구간을 계산하여 가장 높은 점수를 가진 옵션을 선택하는 방식입니다.
UCB 점수 공식
1. 평균 클릭률
특정 메시지 빈도의 평균 클릭률을 계산합니다.
클릭 수가 많을수록 더 좋은 선택이므로 점수가 높아집니다.
2. 신뢰 구간
신뢰 구간은 특정 메시지 발송 빈도가 아직 충분히 실험되지 않았을 경우 더 많은 탐색을 유도하는 역할을 합니다.
신뢰 구간이 큰 옵션은 더 많이 탐색
발송 횟수가 적은 메시지 빈도는 신뢰 구간이 커져서 더 많이 선택됩니다.
시간이 지나면서 신뢰 구간이 줄어들고, 결국 평균 클릭률이 높은 옵션이 선택됩니다
실무에서는 UCB 알고리즘을 다음과 같이 활용할 수 있습니다.
(Thompson Sampling과 동일한 방식으로 활용 가능)
1. 실시간 고객 반응 데이터 활용
✔️ CRM 시스템에서 고객의 메시지 반응 데이터를 실시간으로 수집
✔️ 메시지 클릭, 구매 전환 여부를 기록하여 successes와 failures 업데이트
2. 주기적인 최적 메시지 발송 정책 업데이트
✔️ 특정 기간(예: 1주 또는 1개월)마다 데이터를 수집하여 베타 분포 기반으로 최적 메시지 발송 빈도를 자동 업데이트
✔️ UCB 알고리즘을 활용하여 최적의 발송 빈도를 지속적으로 개선
3. 여러 마케팅 캠페인에 적용
✔️ 메시지 발송 빈도뿐만 아니라, 광고 노출 빈도, 할인 쿠폰 발송 빈도 등 다양한 마케팅 캠페인 최적화 가능
4. 고객 세그먼트별 최적화
✔️ 모든 고객에게 동일한 발송 빈도를 적용하는 것이 아니라, VIP 고객, 신규 고객, 장기 휴면 고객 등 고객 그룹별로 최적 메시지 발송 정책을 따로 적용 가능
이제까지 살펴본 Thompson Sampling과 UCB(Upper Confidence Bound) 알고리즘을 실무에서 어떻게 활용할 수 있는지 다시 한번 정리해 보겠습니다. CRM 및 마케팅 자동화에서 MAB(Multi-Armed Bandit) 알고리즘을 적용하면 보다 정교하고 실시간 반응형 캠페인을 운영할 수 있습니다.
메시지 발송 빈도 최적화뿐만 아니라 아래와 같이 다양한 CRM 마케팅 전략에도 MAB를 적용할 수 있습니다.
✔️ 사례 1. 신규 가입 고객 대상 웰컴 메시지 최적화
신규 가입 고객에게 웰컴 메시지를 언제 보내는 것이 가장 효과적인지 실험
발송 타이밍을 가입 직후 / 1시간 후 / 24시간 후 등의 여러 옵션으로 설정
Thompson Sampling을 적용하여 고객의 반응을 실시간 학습하면서 최적의 웰컴 메시지 발송 시점 결정
✔️ 사례 2. 쿠폰 메시지 발송 최적화 (재구매 유도)
특정 기간 동안 재구매 유도 메시지를 1일 1회 / 2일 1회 / 3일 1회 등으로 실험
클릭률과 구매 전환율을 지속적으로 학습하면서 가장 효과적인 빈도를 자동으로 선택
UCB 알고리즘을 적용하여 초반에는 다양한 발송 빈도를 탐색하고, 이후에는 가장 효과적인 옵션을 활용
✔️ 사례 3. VIP 고객 대상 맞춤형 프로모션 운영
VIP 고객군에게 제공하는 프로모션 메시지의 최적 발송 빈도 및 채널(A/B 테스트 포함)
푸시, SMS, 카카오 메시지 등 여러 채널을 실험하고, 클릭률 및 구매 전환율이 높은 조합을 실시간 최적화
각 고객 세그먼트별로 MAB 알고리즘을 적용하여 개인화된 메시지 발송 가능
A/B 테스트는 한정된 실험 환경에서 비교적 빠른 결론을 도출하는 데 유용하지만, 실시간 반응 기반의 MAB 알고리즘을 활용하면 지속적인 최적화가 가능하여 보다 효율적인 마케팅 운영이 가능합니다.
MAB 기반 마케팅 자동화를 도입하면 어떤 이점이 있을까?
✔️ 운영 자동화 : 마케터가 일일이 발송 빈도를 조정하지 않아도 최적화 가능
✔️ 실시간 최적화 : 고객 반응을 반영하여 지속적으로 메시지 발송 전략 개선
✔️ 개인화 강화 : 고객별 최적의 메시지 빈도를 적용하여 마케팅 성과 극대화
✔️ A/B 테스트 대비 효율적 : 탐색과 활용을 동시에 진행하여 빠르게 최적의 결과 도출
MAB 알고리즘을 활용하면 마케팅 자동화의 수준을 한 단계 높일 수 있습니다. 이를 통해 고객 경험을 개선하고, 전환율을 높이며, 마케팅 ROI를 극대화하는 전략을 구현해 보세요.