What is this?
GameGlobs is a visualization suite that can be used to discover new games, learn
about the videogame medium, or learn about the field of
machine learning.
More specifically, it is a series of videogame clustering visualizations, where each clustering
is a partitioning of 11,829 games into discrete groups, called clusters. The tool
was built using techniques from machine learning, as well as
natural language
processing. We think it offers interesting comparisons to conventional ways of partitioning
games into groups, for instance in commercial game genre. GameGlobs is not currently optimized for
mobile viewing.
How do I use it?
Click one of the buttons to indicate which visualization you'd like to see first. After some
loading, this will take you to a new screen with your selected visualization on display. Here, you'll see
a number of circles of various sizes; these are the clusters for that visualization. Bigger clusters will
include more games, and you can click on any cluster to see which games it comprises. When doing this,
the games will be listed as hyperlinks to their entries in another tool we have created, called
GameNet. When viewing a visualization,
you can zoom and pan using conventional mouse controls.
Why doesn't it include the game I want to start at?
GameGlobs includes 11,829 games. If the game you're looking for was released after mid-2014,
then it will not be in the system (due to the its underlying model being constructed at that time). We
are planning to update GameGlobs to add in these recent games. Second, if your game does not have a Wikipedia
article about it, or if its Wikipedia article is a stub, then it will not be included in the current version
of GameGlobs. The model that currently underpins system was constructed by processing Wikipedia articles about
games, as we explain below, and so only games with such articles are featured at this time.
Who made it?
How does it work?
We built GameGlobs by submitting Wikipedia articles about games to
a technique from natural language processing called latent semantic analysis (LSA).
LSA works from the premises that words that occur in similar contexts will tend to have
similar meanings and that texts that are composed of similar words will tend to be
topically similar. By the technique, words get attributed computable representations that
are determined by the contexts in which they appear (in our case, the Wikipedia articles) and
the contexts themselves (those Wikipedia articles) likewise get attributed computable representations
according to which words appear in them. The cool thing about LSA is that it may be able to
infer that two words that
do not appear together in any context (perhaps dialectal variants that denote the same thing,
like 'gas' and 'petrol') are in fact highly semantically related. By the same token, it may infer
the semantic relatedness of two contexts that have no terms in common. This ability to learn
global associations from local co-occurrences is the achievement of LSA and what led to it becoming
one of the major natural language processing techniques of the last twenty years. For this project, we extracted 11,829
Wikipedia articles that describe individual games and submitted these to LSA. By taking the computable
representation that LSA gave to the games' Wikipedia articles and using them as a way of representing the
games themselves, we can automatically determine how related any game is to any other game among the
11,829 included in our model. Having this ability, we proceeded to cluster games using the classic
k-means algorithm. For more information about GameGlobs, see
this short paper that accompanied a demo of the tool at a recent academic conference.
Can you say more about LSA and your model?
From a corpus of text, a co-occurrence matrix of its words and documents (the
individual texts that make up the corpus) is built; this matrix specifies
which words occurred in which documents (and thereby which documents words occurred in). The columns and
rows in this matrix can be thought of as vectors that represent the meanings, in an approximate sense,
of the words and documents that they correspond to; this is called a vector space model of semantics.
LSA is an example of such a model, but its hallmark is that it reduces the dimensionality of these vectors
by a matrix-factorization algorithm called singular value decomposition. Remarkably,
doing this allows the model to, as we've said above, infer semantic associations that are not encoded in the full
co-occurrence matrix. Having an LSA model, one can easily calculate how semantically related any of its
documents are by taking the cosine between their LSA vectors. In corpora in which each document pertains
to a specific individual concept, such as a corpus comprising encyclopedia entries, these relatedness scores
can reasonably be utilized as a measure of the relatedness of the concepts themselves. Crucially, we
relied on this notion in training our LSA model on the corpus comprising Wikipedia articles for
11,829 videogames, which we mentioned above. By this model,
we can quantify how related any two of these games are by taking the cosine between their LSA vectors.
If this isn't detailed enough, check out
this conference paper in which we explain our implementation in greater depth.
Feel free to
shoot us an email too.
What languages and tools did you use to build it?
Python, gensim, scikit-learn, Flask, JavaScript, jQuery, D3.