고객을 다양한 기준에 따라 세분화하여 각 그룹에 맞춘 ‘개인화 마케팅 전략’을 실행하는 것은 이제 CRM(Customer Relationship Management) 마케터들에게 필수적인 전략이 되었습니다. 이에 따라 다양한 채널에서 수집된 빅데이터를 효과적으로 처리하고, 데이터 내부의 패턴을 학습하는 머신러닝 기술을 습득하는 능력 역시 고도화된 CRM 마케팅 전략을 위해 중요한 자질로 자리 잡고 있습니다. 그러나 이러한 기술을 배우는 것은 상당히 도전적인 일이며, 학습해야 하는 양과 내용도 매우 방대합니다.
블럭스(Blux)는 현재 CRM 마케터들이 데이터 처리와 머신러닝 기술 습득에 많은 시간을 할애하지 않고, 마케팅 본연의 업무에 집중할 수 있도록 ‘차세대 All-in-One 메시지 솔루션’을 개발하고 있습니다. 이번 글을 포함한 '인공지능 모델 제작기' 시리즈를 통해 블럭스가 어떤 고민을 안고, 무슨 방법을 통해 최고의 솔루션을 개발했는지에 대해 다루고자 합니다. 오늘은 그 첫 번째 이야기로, 고객을 세분화하는 데 가장 보편적으로 사용되는 ‘이탈 위험 감지 머신러닝 기술’을 솔루션에 탑재하기 위해 블럭스가 고민한 내용들을 공유하고자 합니다.
솔루션이기에, 범용적으로
우선 블럭스가 만들고 있는 서비스는 다양한 클라이언트들을 대상으로 하는 ‘솔루션’입니다. 그 때문에 자사 서비스를 위해 데이터를 분석하고, 이에 기반한 인공지능 모델을 제작하는 것과는 접근 방식이 달랐습니다.
일반적으로 이탈 고객 예측에는 ‘이진분류(Binary Classification) 알고리즘’을 사용합니다. 이진분류는 입력값에 따라 모델이 분류한 카테고리가 두 가지인 분류 알고리즘입니다. 대표적으로 ‘로지스틱 회귀(Logistic Regression)’, ‘의사결정트리(Decision Tree)’, ‘서포트 벡터 머신(Support Vector Machine, SVM)’ 등이 있습니다.
이들은 훈련 데이터로서 사용자의 인구통계학적 정보(성별, 나이대 등)와 도메인에 맞게 처리된 데이터들을 인풋으로 받고, 이러한 데이터 특성을 가진 사용자가 이탈 고객인지 활성 고객인지 맞히는 학습을 진행합니다. 즉, 데이터 학습을 위해서는 해당 사용자가 이탈 고객인지 아닌지에 대한 정보가 필요합니다.
그렇지만 이탈 고객을 정의하는 기준은 클라이언트마다 다양합니다. 커머스 업종의 기업이라면 n일 이상 접속하지 않은 고객일 수도 있고, 구독 기반 서비스를 제공하는 기업이라면 구독 해지가 고객 이탈이 될 것입니다. 이진분류 알고리즘을 학습하기 위해서는 블럭스 서비스를 사용하는 클라이언트들에게 이탈 정의 기준을 받거나 내부 개발자들이 임의로 처리해야 합니다. ‘전자는 클라이언트들의 부담이 늘고, 후자는 서비스의 신뢰가 떨어질 수 있으니 이진분류 알고리즘은 활용할 수 없다’는 결론에 도달했습니다.
사용자 마음은 갈대 같으니까, 모델은 더 유연하게
‘이탈 위험 감지 머신러닝 기술’을 탑재하기 위한 다른 방법으로 ‘얼마나 최근에 구매했는가(Recency)’, ‘얼마나 자주 구매했는가(Frequency)’, ‘얼마나 많이 구매했는가(Monetary)’에 대한 정보를 추출해 분석하는 ‘RFM 분석’을 시도하려고 했습니다. 데이터가 단순한 만큼 직관적이고 해석이 쉽기 때문입니다. 그렇지만 세 가지 정보를 조합하기 위해서는 클라이언트가 데이터를 분석하여 최적의 조합을 찾아야 했고, 무엇보다 이 정보들만으로는 갈대 같은 고객의 마음을 파악하기에 부족하다고 판단했습니다.
사실 웹앱 기반 서비스는 플랫폼 간 비교하는 데 드는 비용이 거의 없기 때문에 고객 이탈이 쉽습니다. 예를 들어, 고객은 저녁을 먹기 위해 ‘배달의민족’과 ‘쿠팡잇츠’를 동시에 열어서 살펴본 뒤 마음에 드는 서비스를 사용해 주문하게 됩니다. 이처럼 고객의 행동이 매우 동적으로(Dynamic) 나타나기 때문에 분석하기가 쉽지 않습니다. 어제까지 매일 플랫폼에서 활발하게 구매하던 고객이 한순간에 접속을 안 할 수 있고, 한동안 접속하지 않던 고객이 갑자기 활발하게 활동하는 행동 패턴 역시 그리 놀라운 일이 아닙니다.
따라서 이들의 행동을 단순히 RMF로 나누어 분석하는 건 고객이 표현하는 정보 중 매우 일부만을 활용하는 일이라고 결론을 지었습니다. 특히 ‘어떤 요소가 고객을 이탈하게 했는지’, ‘반대로 어떤 내용이 고객을 다시 돌아오게 이끌었는지’ 등 다양한 정보를 유연하게 활용할 수 있어야 현재 개발하는 신규 블럭스 서비스의 원활한 제공이 가능하다고 생각했습니다.
개인 정보는 소중하니까, 최대한 적게
또 다른 고민은 '개인정보보호'였습니다. 최근 몇 년간 개인정보보호는 항상 뜨거운 이슈였습니다. 특히 구글이 서드파티 쿠키 지원을 종료하기로 발표하면서, 많은 IT 서비스들이 개인정보보호를 강화하기 위해 노력하고 있습니다. 블럭스 역시 개인정보보호를 위해 큰 노력을 기울였으며, 이미 개인정보를 최대한 배재하고도 최고의 성능을 낼 수 있는 ‘개인화 추천 서비스’를 많은 클라이언트들에게 제공하고 있습니다.
하지만 이탈 위험 감지 모델에 주로 활용되는 정형 데이터 기반의 머신러닝 모델에서 사용되는 대부분의 정보는 개인정보입니다. 이 데이터를 제외하면 고객 정보를 학습할 데이터가 부족해 새로 개발하는 솔루션의 성능이 크게 저하될 수 있습니다.
이를 해결하기 위해 먼저 현재 블럭스가 제공하는 데이터 연동 ‘스크립트(Script)’와 ‘소프트웨어 개발 도구(Software Development Kit, SDK)’를 활용하기로 했습니다. 이를 사용하면 고객이 언제, 어떤 상품을, 어떻게(Click, Like, Purchase 등) 상호작용했는지에 대한 정보가 수집됩니다. 특히 이 데이터들은 사용자 행동 로그데이터로 ‘비정형 데이터’라서 개인정보를 최소화할 수 있었습니다. 이와 함께 비정형 데이터 속의 정보를 최대한 유지하면서 유연하게 학습이 가능한 ‘뉴럴 네트워크(Neural Network, 신경망)’도 병행하기로 했습니다.
고민 끝, 새로운 문제 시작?
지금까지 ‘이탈 위험 감지 머신러닝 기술’을 새로 만드는 솔루션에 탑재하기 위해 고려한 점들을 요약하면 아래와 같습니다.
클라이언트마다 다른 이탈 고객 정의에 구속받지 않을 것
비정형 데이터도 유연하게 활용할 수 있는 모델일 것
개인정보는 최대한 적게 사용할 것
이를 위해서는 학습 데이터에서 이탈 고객과 활성 고객을 구분하는 정보를 ‘범주형(Categorical)’이 아닌 다른 방식으로 정의해야 했습니다. 또한 개인정보를 사용하지 않으면서도 최대한 많은 비정형 데이터를 활용하기 위해 행동 데이터에서 나타나는 패턴을 잘 포착할 수 있는 모델이 필요했습니다.
저희는 우선 고객 행동 데이터에서 추출할 수 있는 것 중 이탈 위험과 관련된 정보들을 검토했습니다. 여러 정보가 있었지만, 고객이 서비스에 다시 접속한 시간차를 계산할 수 있었습니다. 오랜 분석 끝에 이 정보가 고객 이탈 위험과 제일 맞닿아 있다고 판단했습니다. 구체적으로 설명하자면 고객별로 상이하게 나타나는 재접속 시간차에 대한 패턴을 학습하면, 이를 활용해 고객이 서비스에 다시 돌아올 확률을 모델링으로 구현할 수 있다고 생각했습니다. 서비스에 돌아올 확률이 적다는 것은 이탈 확률이 높은 것으로 해석할 수 있기 때문입니다.
또한 비정형 데이터인 ‘고객 행동 데이터’를 유연하게 활용하는 방법으로 블럭스에서 꾸준히 연구하고 있는 추천 모델이 이를 잘 표현하기 적합하다고 결정했습니다. 이에 따라 저희는 이러한 항목들을 통합할 수 있는 새로운 모델을 구상하기 시작했습니다.
➡️ 블럭스 인공지능 모델 알아보기: Blux 개인화 추천, 어떻게 하는데? (1)
결론적으로 솔루션에 탑재하는 '이탈 위험 감지 머신러닝 기술'은 고객이 서비스에 다시 돌아올 확률을 이용해 모델링하기로 결정했습니다. 또한 동적으로 변하는 고객 행동을 유연하게 표현하기 위해 통계학의 '서바이벌 애널리시스(Survival Analysis, 생존분석)'와 '뉴럴 네트워크(Neural Network)'를 접목하기로 했습니다. 지금까지 솔루션에 탑재할 기술에 대한 고민을 설명했으니, 다음 글에서는 어떤 데이터와 논리로 범용적인 모델을 제작했는지 설명해 보겠습니다.
글쓴이 김회인(Simon) Machine Learning Engineer 새로운 미션에 거침 없이 도전하고, 폭풍처럼 성장하는 미래가 목표인 블럭스의 ML 엔지니어로, AI 시대로 급변하는 마케팅 시장의 문제를 구성원들과 함께 고민하고 해결하며 나아가고 있습니다. |