로딩
요청 처리 중입니다...

(데이터 과학) cosine similarity

 (데이터 과학) cosine similarity

코사인 유사도(cosine similarity) 코사인 유사도는 두 벡터 사이의 각도를 이용해 유사성을 측정하는 방법이다. 위 수식에서 분자는 두 벡터 사이의 요소 곱을 사용하므로 이는 벡터의 내적과 같다.

결과가 1에 가까울 수록 방향이 일치하고 결과가 0에 가까울 수록 직교하며 결과가 -1에 가까울 수록 두 벡터가 서로 반대 방향을 가리키고 있다는 의미와 같다. 벡터의 크기가 별로 중요하지 않은 경우 자주 사용되는 유사성 측정 방법 중 하나이다.

일반적으로 자연어 처리(NLP)나 추천 분야에서 자주 사용한다. 벡터의 내적곱이나 벡터의 크기(norm)을 구하는 연산은 메모리를 많이 잡아먹기 때문에 차원의 크기가 크면 클 수로 연산에 사용되는 리소스가 많아진다. def cosine_similarity(x, y) -> torch.Tensor: out = (x * y).sum() / ((x**2).sum()**0.5 * (y**2).sum()**0.5) return out import ...