코사인 유사도(Cosine Similarity)란 내적공간의 두 벡터간 각도의 코사인 값을 이용하여 측정된 벡터간의 유사한 정도를 의미한다. 코사인 유사도는 -1부터 1까지의 값을 가진다.
두 벡터의 방향이 같은 경우: 1
두 벡터의 방향이 직각인 경우(독립): 0
두 벡터의 방향이 반대인 경우: -1
코사인 유사도는 유클리디안 스칼라곱에서 유도된다.
$\mathbf{a} \cdot \mathbf{b} = ||\mathbf{a}|| \ ||\mathbf{b}|| \cos{\theta}$
이에 따라, 코사인 유사도 cos(θ)는 아래와 같이 표현된다.
$\text{cosine similarity}(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{||\mathbf{a}|| \ ||\mathbf{b}||} = \frac{\sum_{i=1}^{n} a_i b_i}{\sqrt{\sum_{i=1}^{n} a_i^2} \ \sqrt{\sum_{i=1}^{n} b_i^2}}$
코사인 유사도는 자연어처리 분야에서 임베딩 벡터를 이용해 문서 유사도를 구하거나 추천시스템의 협업 필터링 등에 사용된다.