https://en.wikipedia.org/wiki/Principal_component_analysis
There are a lot of more fancy ways to reduce dimensions and create visualizations like these that tend to preserve more of the higher dimensional structure.
Here's a semi recent paper discussing and comparing some of them, I didn't dig too deep to try to find a more recent or better one : https://pmc.ncbi.nlm.nih.gov/articles/PMC12453773/
Assuming the simplest interpretation of what the analysis did, then it's saying "the variance of the biggest variance direction stays constant". Which in itself is an interesting thread to tug on, but the charts aren't how you'd present such a result.
Isn’t there an obvious answer to this? It’s about visualization. There’s a natural upper limit to dimensions we can see, and 3 is where we hit it.
https://huggingface.co/blog/dleemiller/wordllama-detect
If you just want to see the plot directly: https://cdn-uploads.huggingface.co/production/uploads/65ff92...
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/
(Edit: They're live now, you'll need to hard refresh/clear your cache to get the updated HTML and JS)
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 strictly better result than cosine similarity between specific Steam games. I'm still playing with the umap parameters to try and find something which causes the least problems.
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.
The random fluctuations of individual experience only cancel out bias if and only if the results are truly unbiased normal distributions.
In the case of positive:negative ratio feedback scoring, it only makes sense if you ignore the entire message body of what people enjoyed.
Negative-weighted ratio ranking more accurately describes the end users experience. Any game with paying unique customer greifer total scores under 15% without game-play reliability related complaint keywords is going to be a fairly good game if the genre matches your profile preferences.
Otherwise, people will just see shit scores from the response bias of pissed off users on dodgy OS/Networks. Would recommend checking your conclusions with the average current active players in the SteamDB plugin. If users aren't engaged with the paid gameplay experience 6 months after launch, than the release likely isn't fun or broken garbage. =3
A good game, but takes some skill to play (4270 daily players 10 years later):
https://store.steampowered.com/app/219990/Grim_Dawn/
A similar genre game, but people score it higher (3650 daily players 1 year later):
https://store.steampowered.com/app/1145350/Hades_II/
A top ranked genre game, with a nostalgic series scoring bias (9651 daily players released this year):
https://store.steampowered.com/app/2536520/Diablo_II_Resurre...
Which is of course why Facebook can say they don’t read your conversation content, while still be able to target ads precisely based on conversion metadata.
This is visualizing end states, right? That’s why there are no ‘paths’ between the orange initial cloud and the ‘result’ clouds?
Wouldn’t we expect the languages to be ‘separate’ by that point? The output is necessarily different after all - and ‘more different’ for Chinese and English than for other Latin script languages and English.
It feels like it would be more interesting to see the intermediate states. Do questions about the same topics in Chinese and English ‘traverse’ similar areas in the vector space?
Am I completely misunderstanding?…
Definitive and undeniably digestible proof for linguistic relativity in a single picture?
Or something else a lot less controversial? Are there other visualizations that bunch of things cluster apart beautifully like the olympic games flag?
It made me think what if totally different knowledge bases could exist in a model where as my mental model was similar to OPs translation from pure knowledge source.
It also explains why rewriring prompts to another language sometimes lets you bypass restrictions.
Another interesting (to me) comparison would be between Hindi (using Devanagri) and Urdu (using Arabic script). The two languages are very closely related, being largely mutually intelligible in their spoken forms.