cd /news/natural-language-processing/what-counts-as-a-large-cosine-simila… · home topics natural-language-processing article
[ARTICLE · art-130454] src=johndcook.com ↗ pub= topic=natural-language-processing verified=true sentiment=· neutral

What counts as a large cosine similarity?

In 200-dimensional word embeddings such as gensim's glove-twitter-200, a cosine similarity of 0.656 — corresponding to an angle of about 49° — counts as a large similarity, according to an analysis by John D. Cook. The vector arithmetic "king" − "man" + "woman" ≈ "queen" yields a cosine similarity of 0.656 between the computed vector and "queen", while the angle between "king" and "fireplace" is 89.25°. Because nearly all vectors in high dimensions are nearly perpendicular, the proportion of a 200-dimensional sphere's area within 49° of a given point is on the order of 10^−26, versus 17% for a 3-dimensional sphere.

by read2 min views3 publishedSep 15, 2026
What counts as a large cosine similarity?
Image: Johndcook (auto-discovered)

Machine learning represents words as vectors and measures the similarity of words by the angles between the vectors.

For vectors x and y, where θ is the angle between the vectors, and so

This is the cosine similarity between the words represented by x and y.

Small angles have large cosines, and so words with larger cosine similarities are closer together than words with smaller cosine similarities. The cosine similarity between a word and itself equals 1, and we’d expect unrelated words to have a cosine similarity near 0.

You can do a sort of arithmetic with vector embeddings of words. The canonical example is that

“king” − “man” + “woman” ≈ “queen”

Implicit in this equation is that we’re really adding vector representations of the words. Let abc, and d be the vector embeddings of the words kingmanwoman, and queen. What we’re really asserting is that

a − bc ≈ d,

except that’s not true! Or at least it’s not true unless you view it in the right context.

The angle between a − bc and d is about 49°, which corresponds to a cosine similarity of 0.656. Here I’m using the gensim glove-twitter-200 embedding that represents words as 200-dimensional vectors.

The way to interpret the equation above is not that a 49° degree angle is approximately 0, or that a similarity of 0.656 is approximately 1.

In high dimensions, such as 200-dimensional word embeddings, nearly all vectors are nearly perpendicular. I wrote a post about this here. So the angle between randomly selected words will usually be close to 90°, and so in that context an angle of 49° is relatively small. For example, the angle between the vector representations of king and fireplace is 89.25°.

If you divide word vectors by their norm, you can think of each vector as a point on a high-dimensional sphere, in our case a sphere in 200 dimensions. The proportion of vectors within 49° of a given point is surprisingly small in high dimensions. Let’s say our point of interest is the north pole of an n-dimensional sphere. We’d like to calculate the proportion of the area of the sphere that is within an angle θ of the pole. I go through the calculations here.

When n = 3, 17% of the area is with 49 degrees of the pole. But when n = 200, the proportion is on the order of 10<sup>−26</sup>, essentially zero.

The vector d above representing queen is within a relatively tiny region around the vector a − bc.

In terms of cosine similarity, 0.656 is a large similarity. Words with a cosine similarity in this range are quite close, even though we wouldn’t normally think of 0.656 being close to 1. In this context, 0.656 is close to 1.

── more in #natural-language-processing 4 stories · sorted by recency
── more on @john d. cook 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/what-counts-as-a-lar…] indexed:0 read:2min 2026-09-15 ·