不知道要拿来做什么但觉得很有意思的个人博客
l2 normalization vs Cosine Similarity
l2 normalization vs Cosine Similarity

l2 normalization vs Cosine Similarity

一个在text mining最经常用到的metric是cosine similarity,我们一般这么定义它:

Under Euclidean space, assuming column vectors $x$, $y$:

$$cos(x, y) = \frac{x^T y}{\|{x}\|_2\|{y}\|_2} = \left(\frac{x}{\|x\|_2}\right)^T\left(\frac{y}{\|y\|_2}\right)$$

那么一般来说,我们的cosine similarity distance可以被这么定义

$$cosine\_similarity\_dist(x,y) = 1 – cos(x,y)$$

回过头来再看看l2 norm是怎么做的,我们这里取 squared of l2 norm,

$$\begin{eqnarray}\|x – y\|_2^2 &=& (x-y)^T (x-y)\\&=&\|x\|_2^2+\|y\|_2^2-2x^Ty\end{eqnarray}$$

如果我们假设$x,y$均是normalized的vectors,即 $\|x\|_2 = \|y\|_2 = 1$,

那么我们又会有,

$$\begin{eqnarray}\|x – y\|_2^2 &=&2 – 2x^Ty\\&=&2 – 2cos(x,y)\end{eqnarray}$$

也就是说,在normalized的vector上,应该要满足squared Euclidean distance is proportional to the cosine similarity distance.

发表评论

您的电子邮箱地址不会被公开。