Remix.run Logo
▲ netruk44 2 hours ago

I’ve been playing around with mapping steam games + their reviews based on Qwen embeddings. I revisit this project every year around this time to see what improvements I can make to make a “better” map than last year (According to my own preferences). [0/1]

One thing I learned this year is that naive text mapping (embed a corpus of reviews with a Qwen embedding model, use umap to plot, then compare where things fall) primarily compares embedded text length more than anything else. What a review says affects the position less than how long the review is.

This was a little surprising to me. For whatever reason, I didn’t think the embedding would so strongly describe the length of the embedded passage. So most of this year’s time was spent fixing that artifact.

[0]: 2025’s map: https://storage.danieltperry.me/share/steam-map/

[1]: 2026’s map (still a work in progress, both the ui and the review processing are incomplete): https://storage.danieltperry.me/share/steam-map-refresh/

▲PaulHoule 28 minutes ago | parent | next [-]

Length-dependence has been a thing in vector search since bag-of-words!

https://en.wikipedia.org/wiki/Okapi_BM25

was one of very few useful results of the first decade of TREC research... And the main thing it addresses is balancing various factors which could cause a full text search engine to privilege either long or short documents.

▲Jtarii an hour ago | parent | prev | next [-]

Interesting, a way to filter by number of reviews and review score would be nice.

▲netruk44 an hour ago | parent [-]

Yes, I agree. Those are coming. I only added the current filters and pins to the 2026 map yesterday.

▲plagiarist an hour ago | parent | prev [-]

This is an interesting idea, do you find it has more interesting properties than doing cosine similarly by reviewers? Have you found things adjacent to games you enjoyed that were also fun to play?

▲netruk44 37 minutes ago | parent [-]

Yes, I’ve actually found a few interesting games I had never heard of before! So the project has been a success for me already.

But there’s still plenty of places where games are placed strangely on the map, and I like to investigate why that’s happening (it’s usually because Steam reviews are pretty noisy signal).

The first version of this idea was actually based on cosine similarity. The user would enter arbitrary text or an existing steam app id, and would get a list of games back.

The arbitrary text results were never very good because to get related results you needed to write a fake review of the kind of game you were looking for, which is a difficult concept to explain to users. Most users just entered text like "beautiful game", and that lead to bad results. "Not a beautiful game" winds up very close to that.

The results based on steam app id were much better, because it was comparing like-for-like. That lead to me considering different ways of presenting the games based on their review similarity. And so this map was made.

The umap projection does introduce a fair amount of distortion, so it's not a 100% better result than direct cosine similarity of a specific steam game. I'm still playing with the umap parameters to try and find something which causes the least problems.