# Measuring similarity from embeddings

You now have embeddings for any pair of examples. A supervised similarity
measure takes these embeddings and returns a number measuring their similarity.
Remember that embeddings are vectors of numbers. To find the similarity between
two vectors \\(A = \[a_1,a_2,...,a_n\]\\) and \\(B = \[b_1,b_2,...,b_n\]\\),
choose one of these three similarity measures:

| Measure | Meaning | Formula | As similarity increases, this measure... |
|---|---|---|---|
| Euclidean distance | Distance between ends of vectors | \\(\\sqrt{(a_1-b_1)\^2+(a_2-b_2)\^2+...+(a_N-b_N)\^2}\\) | Decreases |
| Cosine | Cosine of angle \\(\\theta\\) between vectors | \\(\\frac{a\^T b}{\|a\| \\cdot \|b\|}\\) | Increases |
| Dot product | Cosine multiplied by lengths of both vectors | \\(a_1b_1+a_2b_2+...+a_nb_n\\) \\(=\|a\|\|b\|cos(\\theta)\\) | Increases. Also increases with length of vectors. |

## Choosing a similarity measure

In contrast to the cosine, the dot product is proportional to the vector length.
This is important because examples that appear very frequently in the training
set (for example, popular YouTube videos) tend to have embedding vectors with
large lengths.

If you
want to capture popularity, then choose dot product. However, the risk is that
popular examples may skew the similarity metric. To balance this skew, you can
raise the length to an exponent \\(\\alpha\\ \< 1\\) to calculate the dot product
as \\(\|a\|\^{\\alpha}\|b\|\^{\\alpha}\\cos(\\theta)\\).

To better understand how vector length changes the similarity measure, normalize
the vector lengths to 1 and notice that the three measures become proportional
to each other.
Proof: Proportionality of Similarity Measures After normalizing a and b such that \\(\|\|a\|\|=1\\) and \\(\|\|b\|\|=1\\), these three measures are related as:

- Euclidean distance = \\(\|\|a-b\|\| = \\sqrt{\|\|a\|\|\^2 + \|\|b\|\|\^2 - 2a\^{T}b} = \\sqrt{2-2\\cos(\\theta_{ab})}\\).
- Dot product = \\( \|a\|\|b\| \\cos(\\theta_{ab}) = 1\\cdot1\\cdot \\cos(\\theta_{ab}) = cos(\\theta_{ab})\\).
- Cosine = \\(\\cos(\\theta_{ab})\\).
Thus, all three similarity measures are equivalent because they are proportional to \\(cos(\\theta_{ab})\\).

## Review of similarity measures

A similarity measure quantifies the similarity between a pair of
examples, relative to other pairs of examples. The two types, manual and
supervised, are compared below:

| Type | How to create | Best for | Implications |
|---|---|---|---|
| Manual | Manually combine feature data. | Small datasets with features that are straightforward to combine. | Gives insight into results of similarity calculations. If feature data changes, you must manually update the similarity measure. |
| Supervised | Measure distance between embeddings generated by a supervised DNN. | Large datasets with hard-to-combine features. | Gives no insight into results. However, a DNN can automatically adapt to changing feature data. |