MCP로 연결 →

계산 입력

공식

광고

결과

코사인 유사도
0.974632
범위 −1 ~ 1
내적 (A·B) 32
크기 |A| 3.741657
크기 |B| 8.774964
벡터 사이 각도 12.93°
사용된 차원 수 3

코사인 유사도란?

코사인 유사도는 두 벡터의 크기가 아니라 두 벡터 사이의 각도를 기준으로 둘이 얼마나 닮았는지를 측정하는 지표입니다. 값은 −1에서 1 사이로 나오는데, 1은 두 벡터가 완전히 같은 방향을 향하는 경우, 0은 서로 직교(즉 아무 관련이 없는 상태)인 경우, −1은 정반대 방향을 향하는 경우를 뜻합니다. 텍스트 마이닝, 추천 시스템, 정보 검색, 머신러닝 등에서 문서·임베딩·특징 벡터를 비교할 때 널리 활용됩니다.

원점을 공유하는 두 벡터와 그 사이의 각도 세타
코사인 유사도는 크기를 무시하고 두 벡터 사이의 각도 \(\theta\)를 측정합니다.

계산기 사용법

벡터 A와 벡터 B의 성분을 쉼표로 구분된 숫자로 입력하세요. 두 벡터는 차원 수(성분 개수)가 같아야 합니다. 만약 길이가 다르면 계산기는 더 짧은 쪽의 길이에 맞춰 계산합니다. 계산 버튼을 누르면 코사인 유사도, 내적, 각 벡터의 크기, 그리고 두 벡터 사이의 각도(도 단위)를 확인할 수 있습니다.

공식 풀이

코사인 유사도는 두 벡터의 내적을 각 벡터의 유클리드 노름(크기)의 곱으로 나눈 값입니다.

$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \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}}}$$

내적 \(\vec{A} \cdot \vec{B}\)는 같은 위치에 있는 성분끼리 곱한 값을 모두 더한 것입니다. 크기 \(\lVert \vec{A} \rVert\)는 각 성분을 제곱해 합한 뒤 제곱근을 취한 값입니다. 크기로 나누어 정규화하기 때문에 결과는 벡터의 길이가 아니라 방향에만 좌우됩니다.

광고
코사인 유사도 공식 구성 요소 도식: 크기의 곱 분의 내적
이 공식은 A와 B의 내적을 두 벡터 크기의 곱으로 나눕니다.

예제로 살펴보기

A = [1, 2, 3], B = [4, 5, 6]이라고 합시다. 내적은 \(1\cdot 4 + 2\cdot 5 + 3\cdot 6 = 4 + 10 + 18 = 32\)입니다. A의 크기는 \(\sqrt{1+4+9} = \sqrt{14} \approx 3.7417\)이고, B의 크기는 \(\sqrt{16+25+36} = \sqrt{77} \approx 8.7750\)입니다. 따라서 \(\cos\theta = 32 / (3.7417 \times 8.7750) \approx 32 / 32.8329 \approx 0.9746\)이 되며, 이는 약 12.93°의 각도에 해당합니다.

자주 묻는 질문

결과가 음수가 될 수도 있나요? 네, 가능합니다. 두 벡터가 대체로 반대 방향을 향하면 코사인 유사도는 음수가 되며, 완전히 정반대일 때는 −1까지 내려갑니다.

두 벡터의 길이가 다르면 어떻게 되나요? 계산기는 겹치는 차원, 즉 더 짧은 벡터의 길이까지만 비교합니다. 의미 있는 결과를 얻으려면 차원이 같은 벡터를 사용하세요.

유클리드 거리와는 어떻게 다른가요? 코사인 유사도는 크기를 무시하고 방향(방향성)에만 집중합니다. 그래서 한 벡터가 다른 벡터보다 훨씬 길더라도 같은 방향을 향하면 완전히 유사한 것으로 봅니다.

최종 업데이트: