tak's data blog

[게임 데이터 분석] 실전 이탈 예측과 유의사항 본문

프로젝트

[게임 데이터 분석] 실전 이탈 예측과 유의사항

hyuntaek 2021. 8. 1. 18:48
반응형
SMALL

 

 

 

지난 듀토리얼 관련 포스팅에 이어서 이탈 예측과 그에 따른 유의사항에 대해서 포스팅을 진행해보도록 하겠습니다!!

 

출처 : https://www.youtube.com/watch?v=kcE_1n41xdk&t=3s 

 

1) 이탈예측

이탈 예측이란?

유저가 계속 1) 유저로 남아 있을지

                       2) 이탈자로 남아 있을지

 

즉, 개별 생존확률(이탈확률)이 어떻게 되는지? 생존기간이 어떻게 되는지? 유저군의 잔존율은 어떻게 되는지? 라고 할 수 있습니다.

 

목적)

고객의 이탈을 방지하고 고객 생애 가치 (LTV), 투자 대비 수익 (ROI) 등을 정확히 계산하여 데이터 기반의사 결정에 일조하는 것이라고 합니다.

 

중요성)

신규 유저 유입 대비 기존 유저 유지의 비용이 작습니다.

 

또한 모바일 시대에는,1) 유저의 생존기간이 짧고2) 이탈 방지를 위한 직접적인 방안이 존재합니다. -> ex) push메세지 / 출석보상

 

 

 

2) 예측 모델링 프로세스

 

학습 데이터 생성 -> 데이터 가공(변수를 만들고) -> 모델 생성 -> 성능 평가

 

3) 실전 고려 사항

 

 

1. 학습 데이터 생성  : 이탈을 어떻게 정의할지? 누구를 대상으로 정할지?

 

학습 데이터 = 학습 대상 + 각 대상에 대한 정보 + 레이블( ex) 이탈 유무 / 얼마나 생존했는지?)

                         (누구인가?)                                            (이탈했는지 안했는지?)

 

1) 학습 대상을 당연히 유저라고 생각하기 쉽지만, 그렇게 간단하지 않습니다.

그 이유로는 전체 유저에 대해 이탈예측을 하자니  유저마다 성향이 너무 다르다. -> 정확도가 떨어지는 문제점

 

모든 유저를 대상으로 하는 이탈 예측은 성능뿐만 아니라 비용적인 측면에서 비효율적입니다.

(이탈 예측에 의미가 없고 굳이 이탈예측을 해서 방지하는 것이 좋지 않은 유저들이 존재한다. ex) bot/악성유저/재미가없어서 이탈하는 유저)

 

3가지 경우가 아니면서 장기간 플레이를 할 유저는 누구일까??-> 진성유저(해당 게임을 충분히 좋아함이 증명된 유저) <-> 이탈 정책/목표에 맞는 유저군

 

 

2) 레이블(이탈했는지 안했는지?)

목적에 맞는 학습 대상(진성유저)를 선정하고 이들이 이탈했는지 안했는지? 어떻게 알 수 있을까??

 

우선 이탈을 정의해야한다.

이탈이란? 탈퇴? 탈퇴가 아니다. 예를 들어 카드나 통신사 서비스처럼 계정 유지비가 들지 않는 게임의 유저는 탈퇴의 경우가 거의 없습니다.

그러므로 연속 미접속 기간을 기준으로 정의합니다.

 

미접속 기간이 짧으면 -> 비이탈자를 이탈자로 오탐할 경우가 많습니다.

ex) 2일 연속 미접속을 이탈로 정의하면 금요일에 불금으로 인해 거하게 술을 드신분이 숙취로 인해 주말에 접속을 못한 경우도 이탈자로 오인 할 수 있습니다.

 

미접속 기간이 길면 -> 이탈자가 그만큼 방치가 되게 된다.

ex) 4달연속 미접속을 이탈로 정의하면 유저가 이탈했는지 안했는지만 4달이 걸리고 4달후에 알게 되더래도 유저의 마음을 돌리기 어렵습니다.

 

그러므로 적절한 미접속 기간이 필요합니다.

 

내부 요인                            +                          미접속 기간에 따른 복귀/이탈율 을 고려해야한다.

- 업데이트 주기                                            - 1주 미접속 유저가 복귀/이탈하는 비율- 향후 사업 계획 등                                     

                                                                        - N주 미접속 유저가 복귀/이탈하는 비율

 

이탈 기간을 연속 미접속 기간으로 정할 때 충분한 기간동안 windowing을 추천합니다.

(ex) 설연휴, 입대 기간 등의 여러 변수가 존재)

 

 

 

 

2. 데이터 가공(어떤 데이터를 가공하여 사용할지?)

 

활동이력을 사용할 수 있다. 이탈 시점을 도달할 수록 이탈자의 플레이시간은 서서히 감소하지만 비이탈자는 일정한 것을 알 수 있습니다.

(시계열)

 

사회활동 데이터를 사용할 수 있다.(길드, 클랜, 파티, 혈맹 등등)

-> 위의 영상에서 분석해본 결과 비이탈자 대비 이탈자들은 이탈시점에 가까워질수록 사회활동 탈퇴 횟수가 비이탈자에 비해 높은 것을 확인하였다고 합니다.

 

결제이력 등에 대하여 추세, 변동성 등 계산하여 변수가공

 

변수 가공은 도메인 지식 전문가와 협의하는 것이 중요(게임 기획 관련자)

 

 

 

3. 모델 생성(어떤 알고리즘을 사용할까? / 어떤 모델링 기법을 적용할까? )

 

모델링 기법은 크게 예측력 + 해석력으로 구분가능합니다.

 

이탈 예측의 후속작업으로 이탈방지를 하게 되는데 이탈 요인이 무엇인지? 모델에서의 해석력을 통해서 추정하게 된다.

해석력이 떨어지는 모델을 사용하면 이탈 원인 추정이 어려워 이탈방지가 어렵습니다.

(이탈의 원인을 모르면, 정확하게 이탈자를 예측해도 이탈을 방지 할 수 없다.)

 

 

모델링/예측 목표에 따라,

단순 이탈 확률                                       vs                                            생존기간 

 

목표변수가

예측 변수: 이탈자이냐 아니냐                                                              예측 변수 : 유저의 생존기간

Logistic Regression,                                                                            생존분석법 - Cox Regression,

Random Forest, SVM, XGB 등                                                           Survival Random Forest 등

 

 

 

4. 성능 평가(정확도만 높으면 장땡일까?)

 

이탈자냐 아니냐 단순히 classification의 정확도를 측정할 때 가장 많이 쓰이는 것은 

 

Precision                                         vs                                      Recall이다.

확실히                                                                                          최대한 많은 유저들을

이탈 예측 가능한                                                                        잠재 이탈자로 간주할래

유저만 예측할래

 

물론 Precision과 Recall 둘다를 고려하는 F-score도 있지만

어떠한 것을 써라가 아닌 어떤 지표를 쓰기 위해서는 이탈의 정책과 목표를 고려해서 선정해야 합니다.

 

부정확하더래도 많은 잠재 이탈자를 초기에 잡는게 목표인데 precision기반으로 성능을 측정하면 안되는 것과 같이

 

 

내일 이탈 예측 -> 3일후 이탈

(이탈하긴 했는데... 맞췄다고 하긴 좀 그렇다)

 

접속은 하지만 게임 내 활동/구매 X

 

1주후 이탈 예측률 100%, 2주후 이탈 예측률 10%

 

업데이트 전에는 예측률 100%, 업데이트 후 0%

 

이러한 것들을 고려해서 성능을 평가하는 것이 좋습니다.

 

 

 

 

4) 결론

 

1. 이탈의 정의는 무엇인가? -> 탈퇴X, 연속 미접속으로 정의

 

2. 이탈 예측의 대상은 누구인가? -> 이탈 정책에 부합하는 유저군 (e.g. 장기 진성 유저)

 

3. 이탈 예측을 위한 데이터는 어떤 것이 있는가? -> 활동, 결제, 매출, 사회활동 (도메인 지식 전문가의 도움)

 

4. 어떤 모델링 기법을 사용해야 하는가? -> 해석력 + 예측력 (생존기간 (생존분석) 추진)

 

5. 성능 평가시 고려사항은 무엇인가? -> Precision vs Recall (이탈 정책에 맞도록 성능 측정)

 

 

 

 

이탈자 정의 등을 고려할 때 게임의 업데이트 주기를 활용한다거나 성능 평가지표등도 목적에 따라 다르게 활용해야 한다는 점에 대해 더 생각해 볼 수 있는 강의가 되었던 것 같았습니다. 지속적으로 게임 데이터 분석 관련 강의를 공부하여 정리하는 시간을 가지도록 하겠습니다. 또 다시 읽어주셔서 감사합니다 :)

반응형
LIST