2 rating questions: beating up on 10k players, is rank loss proportionate to opponent strength

As this site uses the elo system for ratings, the stronger your opponent gets, the more rating point you get, and it is also based on how many games you have played. The less game you played, the more the rating can fluctuate. So in theory you can be 1d by only beating 10k players, but it would take a very long time.

It uses an adapted version of Glicko-2, in fact. It’s comparable enough to Elo that your comment still makes sense, though.

I am unsure if this does diverge to infinity, or if repeatedly winning from 10k’s may instead converge to some finite value, a maximum rank obtainable. I’m too lazy to investigate this, though.

4 Likes

In an Elo rating system, your rating gain from a game result will be proportional to the amount of surprise of that game result.

Elo difference Win surprisiness (using logistic formula)
0 0.5
400 0.09
800 0.01 (1e-2)
1200 0.001 (1e-3)
1600 0.0001 (1e-4)
2000 0.00001 (1e-5)
2400 0.000001 (1e-6)
2800 0.0000001 (1e-7)
3200 0.00000001 (1e-8)

The table shows that as the rating difference grows, the surprisiness decreases exponentially.
So in theory, your rating will keep growing to infinity if you keep winning, but at a slower and slower rate.
However, in practice these computations will be done on a digital computer which has an inherently limited floating point precision.
When using 32-bit (single precision) floating point calculations, I expect a limit will be reached at a surprisiness of ~1e-8 (Elo difference of 3200) and when using 64-bit (double precision) floating point calculations, I expect a limit will be reached at a surprisiness of ~1e-16 (Elo difference of 6400).

4 Likes

But limx​→∞ (log10(x))=∞, so even though the gain is logarithmic, if you play a lot of games against 10ks if can still reach 1d, in fact if you play infinite games you can reach infinite elo, but that will be unrealistic.

To offer a real world related example. As an EGF 3-4d over the last decade of playing real-life tournaments in Britain (so the EGF not Elo rating system), I would be the strongest player at many tournaments and play the same 1-2ds many times and be expected to beat them, which I usually did: I have records like 12-0, 15-2 (with the losses when I was weaker) against such stalwarts of the British go scene. I remember one player after 13 wins I did a whoopsy and lost (unlucky 13!). I never gained much rating points from these small tournaments versus weaker players I was expected to and nearly always did beat, the times my rating went up was when I had chances to play and beat similar or stronger ranked players at bigger tournaments like the London open.

So I dispute the hypothesis that farming small but easy rating points from weaker players is an effective way to increase one’s rating. Nevermind the fact it doesn’t help you actually get stronger, and can make you lazy and actually get weaker.

1 Like

I had to think about this for a minute to be convinced myself, so to help anyone else that is confused: although summing the numbers in that table would converge, this does not stop the rating from (theoretically) diverging since any number of games can be played at each rating.

One way to think of it is: let’s say you have a rating of 1000 and want to achieve a rating of 1 000 000. Calculate how much rating a 1 000 000-rated player would gain by beating a 1000-rated player. This will be some very small, but positive, number D.

As long as you are rated below 1 000 000, you will gain at least D rating for every win, so an upper bound on the number of games you need is 999 000 / D. By this argument, any rating can be achieved in a finite number of games, assuming infinite precision.

Getting back to the real world, how much precision are ratings actually stored with? On EGD, rating updates are reported with 3 decimal places:

image

Is it actually stored more precisely and only rounded when displayed? Because I had previously assumed that it is impossible to gain GoR less than 0.001 (i. e. at a certain rating difference you will be gaining exactly 0.000 points).

And the same question for OGS, do we actually store a full 32/64-bit float for each rating?

(not that either of these questions matter in practice, I’m just curious and figure it’s a quick thing to answer for those that know the systems :slight_smile:)

4 Likes

It seems that the rating is stored with 2 decimals? My rating history for instance:
https://online-go.com/termination-api/player/213965/v5-rating-history

The rank gain is not logarithmic (with respect to number of games played, I presume that’s what you mean), this is not the reason the rating difference keeps growing.

Edit2: Actually, thinking about it a bit more, I do think the rank gain is logarithmic after all. Nevermind… However, the argument does not depend on how fast rating is growing, but rather on the property that for any rank difference the amount of rank gained is a positive number and that it is monotonically decreasing as the difference grows larger.

Perhaps an easy way to show it grows infinitely large is to use an argument by contradiction.

Suppose that the largest rating difference reachable is below some bound B, then the table implies that for any reachable rating difference D one gains approximately 10-D/400 points, and this value is larger than 10-B/400, since D is reachable, so D < B. So if we currently have D rating points, then after (B-D) / 10-B/400 = (B-D)•10B/400 more games, we will have increased by more than (B-D) points, thus our rating is larger than D, contradicting that this was the an unreachable rating.

Edit: I see @antonTobi had the same idea and an explanation that’s easier to follow, I should’ve scrolled down before replying :stuck_out_tongue:

3 Likes

I looked up some EGD data files and source code files that were updated in the EGF rating system update in April 2021, in which I was involved.
As far as I can tell from those files, EGF ratings are stored with 32-bit precision in the database and no rounding takes place when retreiving, calculating or persisting ratings.
So the ratings stored in the database typically have 3-4 digits before the decimal point and 5 digits after the decimal point. Rounding to fewer decimals seems to only take place when displaying ratings in the web UI.

3 Likes

FIFY

(But I think thats what makes the system work, even an 11p cannot win infinite games against a 10k)

Edit: technically it’s not just winning, one needs to win and not lose very much at all.

I’m just trying to unpack it a bit. Each game involves two players, say I’m rated 1000, but there are no players for me to play that have elo above 1000, I can only play weaker players.

I want to reach ELO 1,000,000 and if I could hypothetically play an ELO 1,000,000 player they would likely beat me and gain a small positive amount of rating D which is function of only the rating difference (there’s a few constants in the formula that one fixes, K that random 400 that seems to be used and so on).

The estimate seems to say that you’d need to play at most 999,000 / D games to guarantee to get to at least rating 1,000,000 but of course a game involves two players.

Suppose there were only two players in the rating universe, me at 1000 and my opponent at 500 for example, then maybe this bound might get us to a rating difference of 1,000,000, because if I gain 100 rating points, they have to lose it, and as long as our rating difference is less than 999,000 I gain at least D rating points.

So probably we need to play much more games than that, and the 1000 needs to win them all, to reach rating 1,000,000.

Unless of course one is assumming a limitless supply of 500 rating players to play against or something of the sort.

There’s some assumptions basically that seem to be missing which makes me unsure of the conclusion.

Sorry, I didn’t explain the setup clearly:

Player A (starting at rating 1000) repeatedly plays and wins against player B (with a fixed rating of 1000). Of course a fixed rating is not realistic, but it’s to simulate an endless supply of 1000-rated players you can play against (the original question was something like “can I reach 1d beating only 10 kyus”).

But let’s redo it with beating a single player to show the same thing would work:

Player A and player B are initially both rated 0 (just to make the numbers easy).

They will play repeatedly and player A will win every time. (Note that the sum of their ratings will remain 0, since B loses what A gains. I’m assuming the simple Elo formula here, I don’t know Glicko enough to make any claims about it.)

Is it possible for player A to reach rating 1 000 000?

Yes: start by calculating how much rating A would gain if A (rated 1 000 000) beat B (rated -1 000 000). Call this number D. Since A gains at least D rating for every game, at most 1 000 000 / D games are needed for A to reach 1 000 000.

1 Like

By the way, I believe the FIDE rating calculation (for chess) caps the rating difference at 400, making this particular strategy of inflating your rating much more viable :grin:

Thanks for that, that seems to make more sense to me :slight_smile:

1 Like

Player B will be tired of losing all the time at some point.

1 Like

It works even without fixing the rating of player B, who will just drop rating infinitely.

1 Like

I think there is something both intuitive and counter intuitive about it.

It seems intuitive from playing games that you might be able to keep taking rating from somebody and increasing your own.

The counterintuitive part, I think, seems to be

this E_A or E_B say, where with K=1 then this would also be the rating gain/loss. One might imagine that something decreasing exponentially, like a geometric sequence or faster would mean that you eventually converge to a max rating. However I guess this “surprise” decreases exponentially given a fixed pair of ratings. With each game result the ratings of each player move apart with an update, and presumably this must slow the decrease from exponential to something more like logarithmic, something making the gains divergent.

1 Like

Let’s consider a hypothetical rating system, where a series of all winning games against a fixed rank opponent offers the following increments to one’s rank:

  1. When Alice first beats Bob, her rank goes up by 1 kyu.
  2. Alice beats Bob a second time, and her rank goes up by 1/2 kyu.
  3. Beating Bob a third time, her rank goes up by 1/4 kyu.

And again the pattern repeats with her continuously winning and her rank increasing by increments of 1/8, 1/16, 1/32, … and so on.

Surely, this infinite sum of a positive rank increases must diverge to infinity, right?

It’s also an intriguing rating system in that it doesn’t seem to care what my rank is, only the rank of the person I beat, and how many times I’ve beaten them :slight_smile:

There is this idea that the Elo rating update formula is kind of like a gradient descent method to minimise a certain loss function which is telling you how wrong your current rating is and which direction to adjust to go toward your true rating → Elo rating system - Wikipedia this section (at least my understanding of it), so a player that truely never loses, and can get 100% winrate, or maybe whose winrate approaches 100% in some limit (there might be a way to formalise to account for a finite number of losses) should really have infinitely large rating compared to their opponent in the ELO system.

For instance, one could imagine a go bot which never stops playing and only passes when there are no legal moves. Any human player that understands the concept of two eyes is infinitely better, in that they should never lose a game except for hopefully unlikely issues with clocks, internet and so on. The bot should always kill all of its own stones and the human should always win with the bot having no stones on the board if they play to consecutive passes ( I think :slight_smile: ).

So probably in an Elo system one player should be ranked infinitely higher than the other, with the appropriate formalism of “infinitely higher”, and the rating update should be able to increase unboundedly.

—end attempt at intuition—

Elo can be interpreted as like an online, stochastic gradient descent algorithm that approximates logistic regression.

https://stmorse.github.io/journal/Elo.html

3 Likes