2020/07/11
<aside> 💡
YOUR.GG는 머신 러닝을 활용해 데이터 서비스를 만들어 가고 있습니다. 최근 라인 추정 정확도를 99.9%까지 올렸습니다. 그 과정에서 있었던 주요 작업을 적어보았습니다.
</aside>
YOUR.GG는 GG(x)라고 부르는 엔진을 통해 경기 중 플레이어가 보여준 승리 기여도를 평가합니다. 승리 기여도를 평가하기 전 라인을 추정하는 것은 매우 중요합니다. 라인에 따라 역할에 따른 기대치가 크게 달라지기 때문입니다. 예로 이즈리얼의 라인 추정이 잘못되어 서폿으로 설정이 된다면 시야와 같은 면에서 수준 낮은 플레이를 한 것으로 평가가 될 것입니다.
이런 이유로 YOUR.GG는 2017년부터 머신 러닝 기반의 라인 추정 모델을 만들어 사용해 왔습니다. 개발 당시 저희가 달성한 라인 추정 정확도는 96.6%였습니다. 수치만 보면 괜찮은 정확도로 보이지만 실제 사용자의 입장에서 보면 그렇지 않았습니다. 사용자 입장에서는 한 경기에 참여한 10명 모두의 라인이 정확해야 하기 때문입니다. 그렇다면 10명의 라인 추정을 모두 올바르게 할 확률은 몇 %일까요?
먼저 위 96.6%는 머신 러닝 작업을 할 때 사용하는 검증셋을 기준으로 측정한 값입니다. 즉, 정답을 기록한 행이 1,000개일 때 이 중 966개의 라인을 정확하게 추정했다는 뜻입니다. 따라서 경기 단위로 보면 10명을 모두 올바르게 추정할 확률은 96.6¹⁰, 즉 70.7%입니다. 70.7%만 보면 서비스 불가능한 수치로 보입니다만, 실제 적용 단계에서는 9명만 정확해도 충돌 해결과 같은 후처리 방법을 통해 대부분 교정이 가능합니다. 이항분포를 이용해 계산해 보면 최소 9명 이상을 올바르게 추정할 확률은 95.6%입니다. 결론적으로 그동안 사용자가 20경기를 볼 때 대략 1경기 정도는 부정확한 경험을 했다고 볼 수 있습니다.
지난 몇 년간 부정확한 라인 추정을 경험하는 사용자는 많았고, 라인 추정이 잘못되었을 때 서비스에 미치는 영향도 적지 않았습니다. 가장 먼저 인분, 팀운과 같은 핵심 수치가 왜곡되었고, 인분, 팀운에 기반한 통계 데이터도 부정확하게 되었습니다. 최근 저희 팀은 라인 추정 정확도의 개선을 더 미룰 수 없다고 판단했습니다. 그리고, 마침내 라인 추정 모델의 정확도를 99.9% 수준으로 크게 개선할 수 있었습니다.
먼저 저희는 학습 데이터를 준비하였습니다. 요즘에는 에이모와 같이 머신 러닝을 하기 위해 필요한 학습 데이터의 구축을 도와주는 회사도 있습니다만, 저희는 도메인 지식에 근거한 종합적인 판단을 해야 하는 다소 특이한 상황이라 직접 진행을 하였습니다. 라이엇 게임즈에서 6년을 재직한 경험으로 도메인 지식이 풍부한 동료가 24,000건의 학습 데이터를 정교하게 만들었습니다. 학습 데이터 범위를 정의할 때도 편향이 없는 분포가 되도록 꽤 많은 신경을 썼습니다.
위에서 언급한 것처럼 기존에는 정답을 기록한 행 단위로 정확도를 측정했습니다. 이는 보편적인 방식이지만 사용자 눈높이에 맞는 품질을 표현하기에는 부족하다고 판단했습니다. 그래서 경기 단위로 정확도를 측정하는 환경을 만들었습니다. 즉, 1,000경기 중 990경기가 정확하면 99%가 나오는 모양입니다. 이렇게 작업을 하니 모델의 정확도를 반복적으로 개선하는 과정에서 사용자 눈높이에 얼마나 가까워졌는지를 쉽게 알 수 있어 참 좋았습니다.
검증셋 구축에서도 저희는 두 가지 방식을 함께 사용했습니다. 학습 데이터 중 일부를 떼어내 검증용으로 사용했고, 그와는 별도로 실제 경기를 눈으로 보고 확인한 검증셋을 새로 만들었습니다. 게다가 이 검증셋에 기계가 맞추기 어려울 것이라 예상하는 경기를 의도적으로 넣었습니다. 이런 까다로운 기준 때문에 처음에는 적지 않은 경기를 잘못 추정했으나 반복적인 개선 작업을 통해 정확도 99.9%를 달성하였습니다.
사실 저희는 EU 스타일[1]을 따르는 경기라면 100% 정확도를 보일 것이라 확신하고 있습니다. 그리고, 위에 언급했던 눈으로 확인한 검증셋의 정확도도 아래 사진처럼 100%입니다. 다만 저희가 아직 발견하지 못한 특이한 사례가 있을 수 있다는 점을 고려해 99.9%로 표현하고 있습니다.
저희는 이번 개선 작업으로 99.9% 정확도의 라인 추정 모델을 갖게 되었습니다. 이로 인해 현재 제공하는 인분과 팀운 같은 수치의 정확도는 더욱 완벽해질 것입니다. 또한, 향후 개발할 새로운 지표의 든든한 기반이 될 것이라 확신합니다.
[1] 리그 오브 레전드의 프로, 아마추어 영역 모두에서 활용되는 표준에 가까운 경기 운영 방식이다. 경기 중 이 스타일을 따르지 않을 자유도는 있지만, 실제로 그렇게 플레이 하는 경기는 찾아보기 어렵다.