한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2017.02.23 Data Science

    데이터 분석을 이용한 게임 고객 모델링 #2

    게임 회사는 고객들의 유형과 특성을 정확히 파악하는 것이 매우 중요합니다.

    이는 고객들을 위한 맞춤형 콘텐츠를 기획하고, 보다 편리한 서비스를 제공하기 위함인데요.

    고객 유형 분석에 쓰이는 다양한 데이터 분석 방법을, 엔씨소프트 데이터분석팀 이은조 팀장이 소개합니다.  (*´∀`*)


    1편에서 다양한 고객의 특징을 파악해서 세분화하는 방법으로 ‘군집화’ 를 소개했습니다.

    이는 유사한 특성을 지닌 고객 유형을 군집으로 묶는 데이터 마이닝 기법인데요.

    이번에는 고객을 군집화하는 구체적인 방법을 소개하도록 하겠습니다.

    유용한 정보로 가득하니 잘 따라와달라냥 #집중 

    군집화의 첫 단계는 각 고객들이 얼마나 비슷한지 그 비슷함의 정도를 측정하는 것입니다. 이 값을 ‘유사도’ 혹은 ‘거리’라고 합니다.

    유사도는 두 개체가 비슷할수록 높은 값을 주고, 거리는 두 개체가 서로 다를 수록 높은 값을 준다는 차이가 있을 뿐 개념 자체는 비슷합니다.

    유사도가 높은 경우.jpg 

    데이터의 속성에 따라 여러 가지 방법으로 유사도와 거리를 측정할 수 있는데요.

    이중에서 가장 널리 사용하는 방법은 ‘k 평균 군집화 (k-means clustering)’ 입니다.

    대상들을 좌표상의 점으로 표현한 후, 좌표 사이의 거리를 구해서 가깝게 몰려있는 점들끼리 군집을 묶는 기법이죠.

    두 개의 데이터를 이용한 군집화 도표 

    위의 도표는 일주일 동안 게임을 플레이한 시간과, 이때 획득한 경험치를 각각 X와 Y 좌표상의 점으로 표시한 것입니다. 서로 몰려 있는 점들을 네 그룹으로 묶을 수 있는데요.

    왼쪽 하단부터 시계 방향으로 각각 ‘플레이 시간이 적고 성장도 느린 유형(Type1)’, ‘플레이는 적게 하지만 성장은 빠른 유형(Type2)’, ‘플레이 시간이 많고 성장도 빠른 유형(Type3)’, ‘플레이 시간은 많지만 성장은 느린 유형(Type4)’으로 분류할 수 있겠죠.

    하지만 고객의 성향과 행동 패턴은 영원불변한 게 아니므로, 주기적으로 유형을 갱신해 줘야 합니다.

    그때마다 매번 위의 작업을 반복한다면 무척 번거롭겠죠. 이때 최초로 군집화 결과를 이용해서 이후의 분류를 자동으로 할 수 있습니다.

    구체적인 방법은 군집화 알고리즘에 따라 조금씩 다른데, k 평균 군집화의 경우 각 유형별 개체들의 평균점을 기억했다가 이후 새로운 데이터에 대해서 각 평균점들과의 거리를 측정한 후, 가장 가까운 평균점에 해당하는 유형으로 분류할 수 있습니다.

    k 평균 군집화로 유형을 분류하는 과정 

    이렇게 고객의 게임 활동 유형을 주기적으로 갱신하면, 시간이 지남에 따라 매 주기마다 고객별로 분류했던 유형의 이력이 쌓입니다.

    그러면 이 정보를 이용해서 아래와 같은 시퀀스 데이터를 생성할 수 있겠죠?

    그리고 이 데이터가 서로 비슷한 고객끼리 다시 유형을 분류할 수 있습니다.

    고객별 유형 분류 이력을 시퀀스 데이터로 만든 예

    시퀀스 데이터의 유형을 분류할 때는 주로 ‘계층적 군집화 (Hierarchical clustering)’ 라는 방법을 이용합니다.

    이 알고리즘은 고객별 시퀀스 데이터 사이의 유사도를 측정한 후, 서로 비슷한 고객들을 같은 하위 계층으로 묶어서 계층 구조를 만드는 방식이죠.

    시퀀스 데이터 간의 유사성을 토대로 계층 구조를 만든 예

    이렇게 계층 구조를 만들고 나면, 아래 그림처럼 같은 하위 계층에 있는 고객끼리 군집을 묶어서 유형을 분류할 수 있습니다.

    계층 구조를 이용한 군집화 예 

    이처럼 게임 활동 유형의 변화에 따라 고객 유형을 분류하면, 처음에는 같은 유형에 속했던 고객들도 시간이 흐를수록 다른 특성을 보인다는 것을 알 수 있습니다.

    아래 그림은 계층적 군집화 방법을 이용해서 활동 유형의 변화 패턴이 비슷한 고객끼리 군집화한 자료입니다.

    처음에 주황색으로 분류했던 고객들을 시퀀스 클러스터링(*유사성 등의 개념에 기초해 데이터를 몇몇의 그룹으로 분류하는 방법)을 이용해 비슷한 시퀀스끼리 군집화하면, 총 4가지 형태로 분류할 수 있죠.

    이를 토대로 각 시퀀스 유형별 고객의 변화 원인을 분석하거나, 혹은 게임 활동으로 미처 탐지하지 못한 차이가 있는 등을 좀 더 장기적인 관점에서 분석할 수 있습니다.

    각 시퀀스 유형별 고객들의 1인당 평균 매출 비교 

    더 나아가 위의 이미지처럼 각 시퀀스 유형별 고객들의 1인당 평균 매출을 비교해 보면, 빨간색 박스로 표시한 시퀀스 유형(Type3)의 매출이 다른 유형에 비해 유독 높은 것을 알 수 있습니다.

    그러면 Type3 고객과 다른 고객의 차이를 분석해서 의사 결정을 하는데 도움이 될 수 있겠죠.

    지금까지 게임 활동과 시간에 따른 변화 패턴을 토대로 고객을 유형화하는 방법을 소개했는데요.

    그렇다면 이렇게 개개인의 특성을 분석하는 것만으로 고객의 모든 것을 파악할 수 있을까요?

    잠시 머리도 식힐겸 영화 얘기를 해 보겠습니다.

    지금은 고인이 된 크리스토퍼 리브가 주연을 맡은 <슈퍼맨> 시리즈를 기억하실지 모르겠네요.

    슈퍼맨 시리즈 중 3편 마지막을 보면, 슈퍼맨이 어린 시절 짝사랑했던 여자 친구에게 선물을 하려고 석탄 한 웅큼을 쥐어서 다이아몬드(!!!)로 만드는 장면이 나옵니다.

    진정한 금손, 아니 다이아몬드손이 여기 있습니다 

    뭐 이런 말도 안 되는 (부러운) 설정이 다 있나…하고 생각하시는 분들도 계시겠지만, 이건 과학적으로 충분히 가능한 설정입니다.

    석탄과 다이아몬드는 둘 다 탄소로 이루어진 물질이기 때문에, 석탄에 충분한 압력을 가하면 다이아몬드로 바꿀 수 있죠.

    우리가 주변에서 흔히 볼 수 있는 연필심도 마찬가지입니다.

    연필심도 탄소로 이루어져 있으니 잘만 하면....  ( ͡° ͜ʖ ͡°)

    이렇게 다이아몬드와 연필심, 석탄이 입자 수준에서 보면 완전히 같은 물질임에도 불구하고 전혀 다른 외형과 특성을 갖는 이유는 입자끼리 서로 얽힌 구조가 다르기 때문입니다.

    같은 입자로 이루어져 있어도 어떻게 연결되는냐에 따라 전혀 다른 물질이 되죠 

    게임 고객 역시 마찬가지입니다. 개개인의 데이터는 매우 비슷해 보여도, 다른 고객들과 어떤 사회 관계를 맺고 있느냐에 따라 전혀 다른 유형으로 나뉠 수 있죠.

    따라서 고객을 잘 세분화하려면, 개개인의 특성뿐만 아니라 고객과 고객 사이의 관계 구조도 함께 분석해야 합니다.

    1편에서 잠깐 소개해 드렸듯이 이렇게 고객들 사이의 관계 구조를 분석하는 기법을 ‘사회 연결망 분석(Social network analysis)’이라고 하는데요, 다음 편에서 자세히 소개하도록 하겠습니다.

    그럼 다음에 만나요~