모바일 게임은 출시 후부터가 진정한 시작이다. 쉽게 접할 수 있단 장점만큼이나 유저들이 쉽게 떠나기 때문이다. 그렇기에 게임사는 각종 이탈 예측 모델을 사용해 유저들이 언제, 왜 떠나는지를 분석해 해결책을 도출한다. 유저가 떠난다는 건 고객이 떠난다는 거로 수익의 감소를 나타내기 때문이다.

하지만 이탈 예측 모델을 통해 데이터를 분석한다고 해도 실제와는 괴리가 있다. 이탈 예측 모델로 이탈률, 이탈 구간을 분석했다 하더라도 반드시 그렇게 되는 건 아니기 때문이다. 그렇다면, 이탈 예측 모델은 실전에서 어떻게 사용해야 할까.

이날 NDC에서는 엔씨소프트의 장윤제 개발자가 강단에 올라 예측 모델을 실제 적용 시 고려해야 할 점들을 소개했다.

※ 내용 전달의 편의성을 위해 강연자 시점으로 서술합니다.

▲ 엔씨소프트 분석모델링 팀 장윤제 개발자



■ 이탈 예측이란?


이탈 예측이란 말은 아마 생소할 거다. 간단히 말하자면 유저가 계속 게임에 남을지 혹은 게임을 접을지 분석하는 작업이다. 이 작업을 하는 이유는 단순하다. 유저의 이탈을 방지해 고객 생애 가치(LTV), 투자 대비 수익(ROI)를 정확히 계산해 데이터 기반의 의사 결정에 일조하기 위해서다.

어렵게 말했지만, 간단히 말하자면 신규 유저를 유입하는 것보다 기존 유저를 유지하는 비용이 더 적게 드니 유저 이탈을 최소화한다는 거다. 이런 유저 이탈 예측은 모바일 시대에는 더욱 중요하게 다가오고 있다.

유저 생존 기간이 짧은 반면, 이탈 방지를 위한 직접적인 방안이 다수 존재하기 때문이다. 이탈 예측을 할 수 있다면 더 효과적으로 이탈자를 미연에 방지할 수 있는 셈이다.



■ 예측 모델링 프로세스 & 고려사항

이탈 예측 모델링 프로세스는 학습 데이터 생성, 데이터 가공, 모델 생성, 성능 평가 식으로 구성되는데 이러한 각 프로세스에서는 고려사항이 존재한다. 첫 번째인 학습 데이터 생성을 보자. 이때 고려할 점은 이탈의 정의나 이탈 예측 대상을 명확히 하는 거다.


학습 데이터 생성은 학습 대상과 레이블로 이뤄진다. 학습 대상은 말 그대로 특정 대상을 칭하는 거지만 이 부분을 명확히 해야 한다. 우리는 모든 유저를 대상으로 할 수 없다. 유저의 성향이 다를 뿐더러 비효율적이기 때문이다. 봇, 악성 유저, 그냥 친구 따라 잠깐 가입한 유저까지 이탈 예측 대상으로 삼을 필요는 없다는 얘기다. 예측 모델을 통해 분석해도 이탈을 막기 어렵고 긍정적인 효과를 보기도 힘들다.

그렇기에 이러한 조건을 제외한 진성 유저를 보통 학습 대상으로 삼는다. 게임을 좋아해 업데이트에 따라 이탈을 막을 수 있는 유저들이다.

다음은 레이블로 간단히 말해 이탈을 정의하는 부분이다. 보통 이탈을 어떻게 판단할까? 탈퇴라고 생각하기 쉬운데 그렇지 않다. 실제 1년 이상 장기 미접속 유저 중 탈퇴한 유저는 0.8%에 불과하다. 즉, 탈퇴가 곧 이탈은 아닌 것이다. 그래서 이 경우에는 장기 미접속 유저를 탈퇴자로 보는 게 좋다. 대신, 이 경우에도 기간을 어떻게 할지 고려해야 한다.


너무 짧으면 비이탈자를 이탈자로 오탐할 가능성이 있고 반대로 너무 길면 떠나간 유저를 돌아오게 할 확률이 줄어든다. 그래서 보통 미접속 기간을 정할 때는 업데이트 주기와 향후 사업 계획 등 내부 요인에 더해 미접속 기간에 따른 복귀/이탈율을 계산해 정하는 게 좋다.

학습 데이터를 생성했다면 다음은 데이터를 가공할 차례다. 대상을 정했으니 어떤 걸 통해 이탈자로 판단할지 보는 거다. 보통 활동이력과 사회활동을 기준으로 한다. 활동이력은 간단히 말해 플레이 시간으로 이탈자의 경우 점차 플레이 시간이 줄어드는 경우가 많다. 즉, 특정 대상이 점차 플레이 시간이 줄어든다는 건 그가 곧 이탈자가 될 가능성이 높다는 얘기다.

사회활동은 클랜, 파티, 길드 등에 가입하고 탈퇴하는 경우로, 이탈자의 경우 가입하고 탈퇴하는 경우가 비이탈자에 비해 많은 걸 확인할 수 있었다.



이탈 대상과 어떤 데이터를 사용할지 정했다면 다음은 그 데이터를 어떤 알고리즘으로 분석할지 고려해야 한다. 이런 이탈 예측 모델 알고리즘은 예측력과 해석력을 통해 크게는 3개로 나누어지기 때문이다. 예측력은 좋은데 왜 유저가 이탈하는지는 모르는 알고리즘, 예측력은 낮지만 왜 이탈하는지는 정확한 알고리즘, 그리고 예측력과 해석력이 적당한 분배를 이룬 알고리즘이다.

예측력이나 해석력 어느 한쪽만 높은 알고리즘의 경우 결국 다른 알고리즘을 또 적용해야 하기에 이 경우 예측력과 해석력 둘 다 균형을 이룬 알고리즘이 가장 좋다. 이 외에도 모델링/예측 목표에 따라 단순 이탈 확률과 생존 기간을 예측하느냐에 따라 모델링 기법이 나뉘기도 하는데 생존 기간 예측 모델링을 쓰는 걸 추천하는 편이다.


어떤 알고리즘을 사용할지 정해졌다면 이제 성능 평가를 할 차례다. 이때 고려할 점으로는 확실히 이탈 예측 가능한 유저만 예측할지, 아니면 최대한 많은 유저들을 잠재 이탈자로 간주할 지다. 그러면서도 정확히 예측했는지도 예의주시해야 한다.

내일 이탈한다고 예측한 유저가 3일 후에 이탈한다고 해보자. 이건 예측했는지 그렇지 않은지 애매하다. 또한, 단순히 출석 체크만을 하는 유저의 경우도 게임 내에선 아무런 활동도 하지 않으니 이탈로 보지만 이 역시 애매하다.

그렇기에 이러한 성능 평가에는 Time Dependent ROC Curve나 IBS(Integerated Brie Score) 등 다수의 평가 데이터를 사용할 필요가 있다.



■ 결론


이탈 예측 모델을 사용할 때에는 이탈의 정의는 무엇인가, 이탈 예측의 대상은 누구인가, 이탈 예측을 위한 데이터는 어떤 것들이 있는가, 어떤 모델링 기법을 사용해야 하는가, 성능 평가 시 고려사항은 무엇인가 등을 생각해야 한다.

그렇기에 오늘 이 자리에서 공유한 내용도 정답은 아니다. 그만큼 고려사항이 많기에 우리가 사용한 대표적인 방법을 공유한 것뿐이다. 그래도 이런 정보를 공유함으로써 좀 더 편하게 이탈 예측 모델을 구현할 수 있길 바란다.