El Elo: prácticamente una regresión logística entrenada en línea

Los jugadores $A$ y $B$ se enfrentan al ajedrez. El Elo de A y B son dos números $E_A$ y $E_B$ tales que la probabilidad de que $A$ gane la partida a $B$ es

$$P(A-B) = \frac{1}{1 + 10^{(E_B - E_A) / 400}} = \frac{1}{1 + \exp(-k(E_A - E_B))}$$

para un determinado valor de $k$ que no me voy a molestar en calcular.

Omitiendo la complicación de que las partidas de ajedrez pueden terminar en tablas, podríamos entender el Elo como —prácticamente— los coeficientes de una regresión logística ajustada sobre unos datos, un histórico de partidas de ajedrez, con una matriz de diseño muy particular:

  • sus columnas corresponderían a jugadores,
  • cada fila tendría todas las entradas nulas menos dos,
  • que tendrían valores 1 y -1.

Sin embargo, el modelo no se entrena en batch a partir de un histórico completo de las partidas relevantes, sino en línea: los coeficientes se van actualizando según se juegan las partidas utilizando el método del gradiente. Los detalles concretos, poco relevantes, están por ahí.

Solo quiero hacer constar una pequeña objeción al sistema que no sé cómo se habrá resuelto en la práctica: la expresión anterior depende únicamente de la diferencia $(E_B - E_A)$, que es invariante frente a traslaciones. Es decir, como

$$(E_B - E_A) = ((E_B + \delta) - (E_A + \delta)),$$

nuestro universo es prácticamente igual o otro en el que a cada federado le hubiesen regalado porque sí 1000 puntos más de Elo. Además, tampoco está claro por qué 2000 puntos de Elo hoy significan lo mismo que 2000 puntos de Elo hace 20 años. Si alguien sabe si estas cuestiones tienen un respuesta feliz, puede dejar una nota en los comentarios.