brunch

You can make anything
by writing

C.S.Lewis

by 제니 Mar 08. 2024

솔루션을 위한 범용적인 인공지능 모델 제작기 (1)

이탈위험 유저 예측모델

사용자를 다양한 기준에 맞게 세분화하여 각 사용자군에 맞춘 개인화 마케팅 전략을 구사하는 것은 이 시대 CRM 마케터들의 필수 전략이 되고 있습니다. 그리고 다양한 소스에서 수집되는 빅데이터를 필요에 맞게 처리하는 능력과 데이터 내부에 존재하는 패턴을 학습하는 머신러닝 기술을 익히는 것은 고도화된 마케팅 전략을 위해서 CRM 마케터들이 익혀야할 하나의 자질의 되어 가고 있습니다. 하지만 이러한 기술들은 상당한 장벽을 보유하고 있고, 학습해야하는 양과 내용들에 쉽게 압도됩니다.


Blux는 데이터 처리와 머신러닝 기술에 대한 마케터들의 장벽을 낮추면서 강력한 머신러닝 기능을 쉽게 활용할 수 있도록 차세대 All-in-One 메세징 솔루션을 개발하고 있습니다. 저는 해당 솔루션에서 머신러닝 기능들을 개발하고 있는 ML Research Engineer, Simon입니다. 오늘 글에서는 고객을 세분화하는데 있어 가장 보편적으로 사용되는 이탈 위험을 감지하는 머신러닝 기술을 솔루션에 탑재하기 위해 어떤 부분들을 고려하여 어떻게 제작하고 있는지 소개드리려 합니다.


솔루션이기에, 범용적이어야 한다


우선 Blux가 만들고 있는 메세징 솔루션은 다양한 고객사가 사용하는 ‘솔루션’입니다. 때문에 자사 서비스를 위해 데이터를 분석하고, 이에 기반한 인공지능 모델을 제작하는 것과는 접근 방식이 달라야했습니다. 일반적으로 이탈 유저 예측에는 이진분류기(Binary Classification) 알고리즘을 사용합니다. 대표적인 예로는 로지스틱 회귀(Logistic Regression), 의사결정트리(Decision Tree), 서포트벡터머신(SVM) 등이 있습니다. 이들은 훈련데이터로써 사용자의 인구통계학적 정보(성별, 나이대 등)와 도메인에 맞게 처리된 데이터들을 인풋으로 받고, 이러한 데이터 특성을 가진 사용자가 이탈유저인지, 활성유저인지 맞추는 학습을 진행합니다. 즉, 학습을 위해서는 훈련 데이터로써 해당 유저가 이탈유저인지 아닌지에 대한 정보가 필요합니다.


하지만 이탈유저를 정의하는 기준은 고객사마다 다양합니다. 커머스 도메인의 고객이라면 N일 이상 접속을 하지 않은 유저일 수도 있고, 구독 기반의 서비스를 제공하는 고객이라면 구독 해지가 고객 이탈이 될 것입니다. 이진 분류기 모델을 학습하기 위해서는 저희 솔루션을 활용하는 고객사에게 이탈을 정의하는 기준을 받거나 Blux 엔지니어들이 임의로 처리를 해야합니다. 전자의 경우 고객사의 부담이 늘고, 후자의 경우 솔루션의 신뢰가 떨어질 수 있으니 이진분류 모델은 활용할 수 없다는 결론에 도달하였습니다.


사용자의 마음은 갈대 같으니까, 모델은 더 유연해야한다


물론 최근 구매일자(Recency), 지정된 기간에 몇 번(Frequency)이나 그리고 얼마나 많이 구매했는가(Monetary)에 대한 정보를 추출하여 RFM Modeling을 진행할 수도 있습니다. RFM 모델은 직관적이고, 해석이 쉽다는 장점이 있지만 세가지 정보를 조합하기 위해서는 결국 고객사가 데이터를 분석하여 최적의 조합을 찾아야합니다. 또한 이 세가지 정보만으로는 갈대같은 사용자의 마음을 파악하기에는 부족하다고 생각하였습니다.


앱 혹은 웹 기반의 서비스는 다른 웹앱 기반 서비스와 비교하는데 드는 비용이 거의 0에 가깝습니다. 때문에 사용자의 행동이 매우 동적으로(Dynamic) 나타납니다. 어제까지 활발하게 구매를 진행하던 유저가 한순간에 구매를 그만둘 수도, 한동한 뜸한 유저가 갑자기 활발하게 활동하는 행동패턴은 웹앱 기반 서비스에서는 그리 놀라운 패턴은 아닙니다. 이들의 행동을 단순히 RFM 세가지로 나누어 분석하는 것은 사용자가 표현하는 정보 중 매우 일부만을 활용하는 것이다라는 결론을 내렸습니다. 어떤 요소가 사용자를 이탈하게 했는지, 반대로 사용자를 다시 돌아오게 이끌었는지 모델이 판단하기 위해서는 다양한 정보를 유연하게 활용할 수 있어야 한다고 생각하였습니다.


개인 정보는 소중하니까, 최대한 적게


최근 몇 년간 개인정보 보호는 항상 뜨거운 감자였습니다. 특히 올해는 구글에서 서드 파티 쿠키에 대한 지원을 종료합니다. Blux 역시 개인정보 보호에 대한 의무를 무겁게 받아들이고 있고, 이미 개인화 추천 서비스에서는 개인정보를 최대한 배제하고도 업계 최고의 성능을 낼 수 있는 모델을 개발하여 제공하고 있습니다. 하지만 이탈 위험 감지 모델에 주로 활용되는 정형 데이터 기반의 머신러닝 모델에서 사용되는 사용자 정보들 대다수는 개인정보입니다. 만일 이들을 제외하게 된다면 사용자를 표현하는 정보를 학습할 수 있는 데이터가 적어지게 되기 때문에 모델의 성능은 비약적으로 하락하게 됩니다.


현재 Blux가 제공하는 데이터 연동 Script와 SDK를 사용하면 사용자가 언제, 어떤 상품을, 어떻게(Click, Like, Purchase 등) 상호작용하였는지에 대한 정보가 수집됩니다. 이들은 사용자 행동 로그데이터로 비정형데이터에 속합니다. 하지만 전통적인 머신러닝 알고리즘(의사결정 트리나 서포트벡터 머신)의 경우에는 정형데이터가 필요합니다. 로그데이터를 정형데이터로 가공할 경우 로그 데이터에 포함된 사용자 행동에 대한 맥락정보(Ex. 사용자가 언제, 어떤 순서로 상호작용하였는지)의 손실이 크기 때문에 비정형 데이터 속의 정보를 최대한 유지하면서 유연하게 학습이 가능한 Neural Network를 사용하기로 결정하였습니다.


그래서 어떤 모델인데?


지금까지 솔루션에 탑재하기 위한 범용적인 이탈 위험 감지 모델을 만들기 위해서 고려한 점들을 요약하면 다음과 같습니다.   


고객사마다 다른 이탈유저 정의에 구속받지 않을 것

비정형 데이터도 유연하게 활용할 수 있는 모델일 것

개인정보는 최대한 적게 사용할 것


이를 위해서는 고객사마다 이탈유저 정의에 구속받지 않기 위해서는 학습 데이터의 Label이 이탈유저인지, 활성유저인지를 표현하는 Categorical 정보가 아니면서도 Blux가 수집하는 데이터 내에서 정의할 수 있어야 했습니다. 또한 개인정보를 활용하지 않으면서도 최대한 많은 비정형 데이터를 활용하기 위해서는 행동 데이터에 드러나는 패턴을 잘 표현할 수 있는 모델이 필요하였습니다.


우선 사용자의 행동 데이터에서 추출할 수 있는 데이터들 중 이탈 위험과 관련된 정보들을 검토하였습니다. 여러가지가 있었지만 사용자가 서비스에 다시 접속한 시간차를 계산할 수 있었고, 이 정보가 이탈위험과 제일 맞닿아 있다고 판단하였습니다. 조금 구체적으로는 사용자별로 상이하게 나타나는 재접속 시간차에 대한 패턴을 학습하면, 사용자가 마지막에 접속한 시간부터 현재 시점까지 X시간이 지났는데, 현재 시간 이후 사용자가 서비스에 다시 돌아올 확률을 모델링할 수 있다고 판단하였습니다. 서비스에 돌아올 확률이 적다는 것을 이탈 확률이 높다는 것으로 해석할 수 있기 때문이었습니다.


또한 비정형 데이터인 사용자 행동 데이터를 유연하게 활용하는 방법으로는 Blux에서 꾸준히 디벨롭하고 있는 추천모델이 행동 데이터를 잘 표현하기에 적합하다고 판단하였고, 이들을 접합할 수 있는 모델을 구상하기 시작하였습니다.


마무리하며


결론적으로는 현재 시간 이후 사용자가 서비스에 다시 돌아올 확률을 통해 일탈 확률을 모델링하기로 결정하였고, 동적으로 변하는 사용자의 행동을 유연하게 표현하기 위해서 통계학의 Survival Analysis(Hazard Function)와 Neural Network를 접목하여 모델링을 진행하였습니다. 다음 글에서는 구체적으로 어떤 데이터를 통해 어떤 논리로 범용적인 이탈 위험 감지 모델을 제작하였는지 설명드리도록 하겠습니다.

매거진의 이전글 브레이즈의 고급 기능을 더 쉽게 
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari