I trained a simple neural network on 77k professional Dota 2 matches to learn which heroes tend to be picked together during drafts.
From that, I extracted 32-dimensional hero embeddings - the model's "understanding" of each character - and projected them into 2D. The result is a surprisingly coherent similarity map, showing how the game's structure emerges naturally from data.
The post includes visuals, code, and an explanation of how it works.
Author here: Elo is commonly used and most gamers understand it. It's nice to be able to show each player their Elo.
I love the idea to use per-player embedding and to add a nonlinear model on top. I think it may improve the model dramatically, but I'm afraid that the model may be overfitting strongly as we have only 35 games in the historical for now. Anyway - I think I'll try this out.
Yeah, 35 games is hard to work with. My rule of thumb is to not go above 1 parameter per 10 data points in order to prevent overfitting and memorization, so I'm not sure how well it will work in your case.
From that, I extracted 32-dimensional hero embeddings - the model's "understanding" of each character - and projected them into 2D. The result is a surprisingly coherent similarity map, showing how the game's structure emerges naturally from data.
The post includes visuals, code, and an explanation of how it works.
Happy to discuss details or answer any questions!
reply