코사인 유사도 - Cosine Similarity

데이터 포인트들 간의 유사도를 코사인으로 계산한 것을 말한다. 정확히는 두 벡터의 사잇각을 코사인값으로 나타낸 것이다.

데이터마이닝, 기계학습, 통계학등에서 유사한 데이터를 찾을 때 기본적으로 접근하는 것이 두 데이터 포인트의 거리를 계산하는 것부터 시작한다. 데이터 포인트 간의 거리를 측정하는 방법을 distance measurement라고 하며 매우 많은 것들이 있다. 가장 일반적인 것이 벡터 공간에서의 두 포인트의 직선거리를 구하는 것으로 유클리디안 거리(Eucledean distance)가 있고 원점을 기준은로 두 포인트간의 각을 구하는 것으로 코사인 유사도가 있다.

코사인 유사도는 그 공식이 매우 간단하고 중등수학(고등학교 수준)으로 쓸 수 있다는 점에서 간단하고 좋다. 그래서 공식보다는 어떤 경우에 코사인 유사도를 사용해야 하는지를 이해하는 것이 더 중요하다.

코사인 유사도 공식 - Consine Simiarity Equation

$$ cos(\pmb x, \pmb y) = \frac {\pmb x \cdot \pmb y}{||\pmb x|| \cdot ||\pmb y||} $$

코사인 유사도는 코사인 제2법칙에서 유도할 수 있는데 유도하거나 증명하는 것 보다는 원리를 이해해두는 것이 중요하다.

공식 설명

두 벡터의 내적을 구한 뒤 두 벡터의 크기를 각각 구해 서로 곱한 것으로 나눈다. 직각삼각형에서 내각의 코사인 값은 밑변의 크기를 빗변의 크기로 나누면 되는데 두 벡터의 위치와 원점이 항상 직각삼각형이 되는 것이 아니기 때문에 내적을 이용해서 직각삼각형으로 만들고 내각을 코사안값으로 구하는 것이 이 공식의 전부이다.

자세한 설명은 Cosine Similarity – 코사인 유사도 블로그를 참고하기 바란다.