체스나 특정 온라인 게임에서는 플레이어의 실력을 나타내는 지표를 사용한다. 해당 지표는 단순히 실력을 나타내는 것 뿐만 아니라 비슷한 실력 지표를 갖는 사람끼리 매칭시키는데에도 사용된다.
Elo는 두 플레이어의 Rating 차이를 통해 예상 승률을 추정하고 실제 결과에 따라 패자의 Rating 일부를 승자의 Rating에 더한다. Rating 차이가 클 때, Rating이 높은 플레이어가 이겼다면 적은 Rating을 얻고 Rating이 낮은 플레이어가 이겼다면 예상 승률을 뒤집는 결과를 낸 것이므로 많은 Rating을 얻는다.
Elo Rating을 통해 예상 승률을 추정하는 방식은 아래와 같다.
$$ E_{A} = \frac{1}{1+10^{(R_{B}-R_{A})/400}} $$
$$ \begin{align} R_{A} &: \text{Elo Rating of player A} \\ R_{B} &: \text{Elo Rating of player B} \\ E_{A} &: \text{Expected Win Probability of player A} \end{align} $$
플레이어 A의 예상 승률 \(E_{A}\)는 0에서 1 값을 갖는 로지스틱 함수이다. 플레이어 A와 플레이어 B의 Elo Rating이 비슷할수록 실력이 비슷하다고 판단하여 승률이 1/2에 가까워지고 한 플레이어의 Elo Raing이 압도적으로 높을 경우, 0이나 1에 가까워진다.
위와 같이 예상 승률을 계산할 경우,
$$\begin{align} E_{A} &= \frac{1}{1+10^{(R_{B}-R_{A})/400}} \\ &= \frac{10^{R_{A}/400}}{10^{R_{B}/400}+10^{R_{A}/400}} \\ &= \frac{Q_{A}}{Q_{A}+Q_{B}} \end{align}$$
$$\text{where } Q_{i}=10^{R_{i}/400}$$
위 식에 따라 \(E_{A}+E_{B}=1\)로 표현되고 결국 두 플레이어의 예상 승률의 합은 1이 되어 본인의 예상 승리 확률과 상대의 예상 패배 확률이 다른 논리적 오점을 남기지 않는다.
이처럼 예상 승률을 구했다면, 이제 실제 게임의 결과에 따라 Elo Rating을 업데이트 할 수 있다.
$$R'_{A}=R_{A}+K \cdot (S_{A}-E_{A})$$ $$\begin{align} R'_{A} &: \text{Updated Elo Rating of player A} \\ R_{A} &: \text{Elo Rating of player A} \\ S_{A} &: \text{Game Result (1 if win, 0 if lose, 0.5 if draw) of player A} \\ E_{A} &: \text{Expected Win Probability of player A} \\ K &: \text{constant} \end{align}$$
Elo Rating을 얼마만큼 업데이트할 것인지에 해당하는 \(S_{A}-E_{A}\) 부분은 상대 플레이어와 같은 절댓값의 다른 부호를 가지기 때문에 패자의 점수를 빼았는 것이다.
(만약 플레이어 A가 이겼다면 플레이어 A는 \(1-E_{A}\) 만큼 Elo Rating을 얻고 플레이어 B는 \(0-E_{B}=-1+E_{A}\)만큼 Elo Rating을 얻는다.)
상수 \(K\)는 업데이트할 Elo Rating의 스케일을 결정해준다. \(K\)가 클수록 한 경기가 진행할 때마다 Elo Rating의 변동폭이 클 것이고 작을수록 번동폭도 작을 것이다.
보통 체스 게임에서는 초심자의 경우, 실력의 분산이 클 수 있어 \(K\)를 크게하고 숙련자의 경우에는 실력이 어느 정도 수렴하여 \(K\)를 작게 한다.
그럼에도 실력을 하나의 지표로 본다는 문제가 있어 이후에 True Skill이라는 실력을 하나의 \(\mu\)와 \(\sigma\)를 갖는 분포로 정의하는 Rating 시스템을 리뷰할 것이다.
이런 Elo는 시간이 갈수록 인플레이션된다는 문제가 있다. Elo Rating은 현시점의 여러 게임으로 실력을 정의하는 것이므로 과거와 미래의 Elo Rating과 비교하는 것을 적합하지 않다. 그 이유는 같은 실력이라도 시간이 갈수록 더 높은 Elo Rating을 얻을 수 있기 때문이다, 이를 인플레이션이라고 한다.
시간이 갈수록 게임에는 유저가 많아지고 게임을 하다가 이탈하는 유저도 생긴다. Elo는 상대의 Rating을 뺏어 어느 정도 스케일이 유지되어야 하지만, 유저 수가 많아지고 이탈하는 유저가 많아질수록 해당 유저들의 점수는 상위 플레이어들이 가져가게 된다.
따라서 Elo는 게임 상호작용이 일어나고 있는 같은 시점의 같은 장소에서 비교를 해야하며 따라서 절대적인 실력을 나타내지 않는다.
댓글