게임 애플리케이션을 경향 모델링

BigQuery ML을 사용하여 경향 모델의 여러 유형으로부터 학습, 평가 및 예측을 수행하는 방법을 알아봅니다. 경향 모델은 특정 사용자가 앱으로 복귀할 가능성을 확인하는 데 도움을 줄 수 있습니다. 이러한 정보는 마케팅 의사결정에 사용될 수 있습니다.

개요

모바일 게임 개발자의 경우 사용자 유지가 중요한 과제 중 하나일 수 있습니다. 2019년 모바일 게임 산업 분석에 따르면 대부분의 모바일 게임에서 처음 출시 이후 사용자 유지율이 25%에 불과한 것으로 나타났습니다. 이후 사용자 유지율을 높이기 위해서는 복귀 가능성이 높은 사용자에게 동기를 부여하고 보상을 제공하는 단계를 수행할 수 있습니다. 하지만 이러한 사용자를 대상화하기 위해서는 처음 24시간 이후 복귀하는 특정 사용자의 경향을 식별해야 합니다. 잠재고객 손실 감소를 우선으로 하는 다른 유형의 온라인 애플리케이션을 개발하는 경우에도 이 방식이 도움이 될 수 있습니다.

이 문서에 설명된 접근 방식을 구현하려면 이 노트북을 사용합니다.

이 문서에서는 다음을 포함하여 경향 모델링의 접근 방식에 대해 간단히 설명합니다.

  • 머신러닝(ML) 모델 학습에 사용될 수 있도록 게임 데이터 준비
  • 사용할 경향 모델 유형 선택
  • 모델 학습 및 평가
  • 모델에서 예측 수행
  • 마케팅 캠페인에 사용하기 위한 예측 데이터 내보내기

잠재고객

이 솔루션은 특히 모바일 게임 개발자와 같은 온라인 애플리케이션 개발자를 위해 작성되었습니다. 여기에서는 사용자가 다음 기본 지식을 갖고 있다고 가정합니다.

  • 머신러닝 개념
  • 표준 SQL

샘플 데이터 세트

이 솔루션에서는 공개 firebase-public-project.analytics_153293282.events_20181003 데이터 세트가 사용됩니다. 이 데이터 세트에는 'Flood It!'이라는 실제 모바일 게임 앱의 Google Analytics 4(GA4) 데이터가 포함되어 있습니다. 이 데이터 세트에는 15,000명으로부터 발생하는 570만 건의 이벤트 정보가 포함되어 있습니다.

GA4에는 이벤트 기반 측정 모델이 사용됩니다. 이 데이터 세트의 각 행은 이벤트 매개변수에 대해 중첩된 필드가 포함된 고유 이벤트입니다. 데이터 구조에 대해 자세히 알아보려면 BigQuery Export를 위한 스키마를 참조하세요.

Google 애널리틱스 데이터를 BigQuery로 내보내기

샘플 데이터 대신 GA4 속성에서 고유 데이터를 사용하려면 (GA4)BigQuery Export 내보내기의 안내에 따라 데이터를 내보낼 수 있습니다.

데이터 처리

학습 데이터로 사용하기에 올바른 모양 및 형식이 되도록 이벤트 데이터를 처리해야 합니다. 데이터 처리로 다음 목적을 수행합니다.

  • 앱으로 복귀할 가능성이 없는 사용자를 필터링합니다.
  • 사용자 인구통계 데이터에 대한 특성을 만듭니다.
  • 사용자 행동 데이터에 대한 특성을 만듭니다.

인구통계 데이터 및 행동 데이터를 결합하면 더 효과적인 예측 모델을 만드는 데 도움이 됩니다.

처리 후 학습 데이터의 각 행은 user_pseudo_id 열로 식별된 순 사용자의 데이터를 나타냅니다.

사용자 라벨 지정

데이터 처리를 위해 앱으로 복귀할 가능성이 없어 보이는 사용자를 식별하는 레코드 라벨 지정을 시작합니다. 이 솔루션에서는 애플리케이션과의 상호작용에 따라 분류할 레코드에 라벨을 지정합니다.

먼저 처음 방문 시 앱 사용 시간이 10분 미만인 사용자를 필터링합니다. 이러한 사용자는 라벨을 이탈로 지정합니다.

그런 후 남은 사용 중에서 처음 애플리케이션에 참여하고 나서 24시간 후 해당 사용자에 대한 이벤트 데이터가 없으면 해당 사용자에 대한 라벨을 손실됨으로 지정합니다. 또는 앱에 참여하고 나서 24시간 후 사용자 이벤트 레코드가 하나 이상 있으면 사용자 라벨을 복귀됨으로 지정합니다. 이 모델은 학습 중 이러한 라벨을 사용해서 사용자를 각 카테고리로 분류할 수 있는 가능성을 식별하는 방법을 알아봅니다. 그런 후 학습된 모델을 사용하여 특정 사용자에 대해 이러한 가능성을 예측할 수 있습니다.

다른 사용 사례가 있는 경우 다른 여러 기준을 사용하여 이탈 또는 손실 고객을 식별할 수 있습니다. 잠재고객 손실 이외의 항목을 예측하고 싶으면 다음을 고려해볼 수 있습니다.

  • 사용자가 인게임 화폐에 비용을 지불할지 여부
  • 사용자가 n 게임 레벨을 완료할 가능성
  • 사용자가 게임 내에서 n 시간을 소비할 가능성

인구통계 특성 처리

데이터 처리 중 다음 단계는 사용자 인구통계에 대한 특성을 추가하는 것입니다. 이 솔루션에서는 다음 필드를 인구통계 특성으로 사용합니다.

  • geo.country
  • device.operating_system
  • device.language

하지만 사용 사례에 따라 더 효과적인 필드가 있으면 이를 선택할 수도 있습니다.

이러한 필드에는 여러 고유 값이 포함될 수 있습니다. 예를 들어 사용자가 앱을 사용한 기기가 2개 이상인지에 대한 값이 포함될 수 있습니다. 단순성을 위해 이 솔루션에서는 첫 번째 사용자 참여 이벤트의 값이 사용됩니다.

행동 특성 처리

데이터 처리의 마지막 단계는 사용자 행동에 대한 특성을 추가하는 것입니다.

데이터로부터 사용자 행동을 추출하기 위해 이 솔루션은 사용자 참여 시점으로부터 처음 24시간 동안 각 사용자의 활동을 분석합니다. 애널리틱스로 자동으로 수집된 이벤트 외에도, 사용자 행동을 이해하기 위해 탐색할 수 있는 권장되는 게임 이벤트가 있습니다. 이 경우 사용자 손실을 예측하기 위해 솔루션은 첫 번째 사용자 참여로부터 24시간 내에 각 사용자에 대해 다음 이벤트가 수집된 횟수를 계산합니다.

  • user_engagement
  • level_start_quickplay
  • level_end_quickplay
  • level_complete_quickplay
  • level_reset_quickplay
  • post_score
  • spend_virtual_currency
  • ad_reward
  • challenge_a_friend
  • completed_5_levels
  • use_extra_steps

사용 사례가 여기에 설명된 것과 다른 경우 다른 이벤트 집합을 사용할 수 있습니다. 사용 가능한 이벤트 목록을 보려면 다음 쿼리를 사용합니다.

SELECT
    event_name,
    COUNT(event_name) as event_count
FROM
    firebase-public-project.analytics_153293282.events_*
GROUP BY 1
ORDER BY
   event_count DESC

모델 선택

학습 데이터가 준비되었으면 ML 모델을 만들 준비가 되었습니다. 모델에 대한 여러 분류 알고리즘 중에서 선택할 수 있습니다. 다음 표에서는 이러한 모델 유형과 각 유형의 장단점을 보여줍니다.

모델 model_type 장점 단점
로지스틱 회귀 LOGISTIC_REG 다른 모델 유형보다 학습 속도가 빠릅니다. 성능이 최고가 아닐 수 있습니다.
XGBoost BOOSTED_TREE_CLASSIFIER
  • LOGISTIC_REG 모델보다 성능이 높습니다.
  • 특성 중요도를 검사할 수 있습니다.
LOGISTIC_REG 모델보다 학습 속도가 느립니다.
심층신경망 DNN_CLASSIFIER LOGISTIC_REG 모델보다 성능이 높습니다. LOGISTIC_REG 모델보다 학습 속도가 느립니다.
AutoML Tables AUTOML_CLASSIFIER LOGISTIC_REG 모델보다 성능이 높습니다.
  • 다른 모델 유형보다 학습 시간이 오래 걸릴 수 있습니다.
  • 모델 설명 기능이 제한적입니다.

이 솔루션은 학습 속도가 가장 빠르기 때문에 기본적으로 로지스틱 회귀 모델을 사용합니다. 하지만 노트북에서는 필요에 따라 다른 모델 유형 중 하나를 사용하도록 선택할 수 있습니다.

모델 학습

BigQuery ML을 사용하여 분류 모델을 학습시킵니다. 학습된 모델은 사용자 손실 가능성을 나타내는 경향 점수를 출력합니다. 손실 가능성 100%는 churned=1로 표시되고, 복귀 가능성 100%는 churned=0으로 표시됩니다. 대부분의 결과는 이러한 경계 사이에 존재합니다.

CREATE MODEL 문을 사용할 때 BigQuery ML은 학습 데이터를 자동으로 학습 세트 및 테스트 세트로 분할합니다. 이렇게 하면 정확도를 확인할 수 있도록 학습이 완료된 후 모델을 평가할 수 있습니다.

아래 쿼리는 모델 학습을 위한 CREATE OR REPLACE MODEL 문을 보여줍니다.

CREATE OR REPLACE MODEL bqmlga4.churn_logreg

TRANSFORM(
  EXTRACT(MONTH from user_first_engagement) as month,
  EXTRACT(DAYOFYEAR from user_first_engagement) as julianday,
  EXTRACT(DAYOFWEEK from user_first_engagement) as dayofweek,
  EXTRACT(HOUR from user_first_engagement) as hour,
  * EXCEPT(user_first_engagement, user_pseudo_id)
)

OPTIONS(
  MODEL_TYPE="LOGISTIC_REG",
  INPUT_LABEL_COLS=["churned"]
) AS

SELECT
 *
FROM
  Bqmlga4.train

이 쿼리는 학습 전 수행할 수 있는 추가적인 특성 사전 처리의 예시로 datetimetimestamp 열에서 month, julianday, dayofweek 값을 추출합니다. CREATE MODEL 쿼리의 TRANSFORM() 함수는 모델이 추출된 값을 다시 학습시킬 수 있게 해줍니다. 이렇게 해서, 이 모델을 사용하여 이후 예측을 수행할 때, 해당 값을 다시 추출할 필요가 없습니다.

XGBoost, 심층신경망, AutoML Tables 모델의 학습 방법에 대한 예시를 보려면 노트북을 확인합니다.

모델 평가

모델 학습이 완료된 후 모델을 평가하여 수행 방법을 확인합니다.

이 솔루션은 ML.EVALUATE 문을 사용하여 모델에 대해 precision, recall, accuracy, f1_score 측정항목을 생성합니다. 여러 모델을 학습시킨 후 해당 평가 측정항목을 비교하면 데이터에 가장 적합한 모델을 결정하는 데 도움이 될 수 있습니다.

이 솔루션은 또한 혼동 행렬을 사용하여 실제 라벨과 비교되는 모델의 라벨 예측 성능을 조사합니다. 혼동 행렬은 기본 임곗값 0.5를 사용하여 생성됩니다. 두 값의 재현율, 정밀도, 균형을 위해서는 이 임곗값을 최적화해야 할 수 있습니다. 선택적인 THRESHOLD 매개변수를 사용하여 기본 임곗값을 수정할 수 있습니다.

예측 수행

모델이 학습되고 평가된 다음 이를 사용하여 예측을 얻을 수 있습니다.

이 솔루션은 ML.PREDICT 문을 사용하여 모델에서 예측을 요청합니다.

경향 모델링의 경우 예측 출력은 행동 발생 가능성입니다. 예측된 가능성이 1에 가까울수록 사용자가 복귀할 가능성이 높습니다. 예측 가능성이 0에 가까울수록 사용자가 손실될 가능성이 높습니다.

예측 내보내기

모델에서 예측을 가져온 후 이 데이터를 마케팅 활성화에 사용할 수 있습니다. 이를 수행하기 위한 일반적인 방법은 애널리틱스 또는 Firebase에 사용하도록 데이터를 내보내는 것입니다.

Google 애널리틱스에서 예측 사용

애널리틱스에서 마케팅 캠페인을 위해 예측 데이터를 사용할 수 있습니다. Google 애널리틱스 4를 위한 데이터 가져오기 기능을 사용하여 애널리틱스로 모델 예측을 다시 사용자 속성으로 가져올 수 있습니다. 예측 값에 따라 잠재고객을 만들고 수정할 수 있고 사용자 타겟팅을 수행할 수도 있습니다. 예를 들어 그 자체로 복귀할 가능성이 없지만 복귀 인센티브를 제공할 수 있는 0.4~0.7 사이의 예측 가능성이 있는 사용자를 기준으로 잠재고객을 정의할 수 있습니다.

Firebase에서 예측 사용

Firebase 애플리케이션의 경우 세그먼트 가져오기 기능을 사용하여 예측 데이터를 가져올 수 있습니다. 이 데이터를 사용할 경우 원격 구성, 클라우드 메시징, 인앱 메시지와 같은 Firebase 서비스를 통해 식별된 사용자를 타겟팅하여 사용자 환경을 맞춤설정할 수 있습니다. 이를 통해 사용자에 대한 알림 전송, 사용자를 위한 앱 구성, 기기 간 사용자 경험 추적 등을 수행할 수 있습니다.

지속적 모델 평가

사용자로부터 생성되는 데이터가 늘어날수록 모델 품질이 감소되는 것이 확인될 때 새로운 데이터를 사용하여 모델을 정기적으로 평가하고 모델을 다시 학습시키길 원할 수 있습니다.

새 데이터를 사용해서 프로덕션 머신러닝 모델이 올바르게 수행되도록 하는 이러한 프로세스를 지속적 평가라고 부르며, 모든 ML 워크플로의 핵심 부분입니다. 지속적 평가를 수행하면 모델 학습을 위해 사용되는 데이터가 예측 요청을 위해 사용되는 데이터를 더 이상 반영하지 않을 때 발생하는 현상인 모델 드리프트를 포착하는 데 도움이 될 수 있습니다.

지속적 모델 평가를 수행하는 방법은 BigQuery ML, 저장 프로시져, Cloud Scheduler를 사용한 지속적 모델 평가를 참조하세요.

다음 단계