카테고리:

벡터 유사성 함수

VECTOR_COSINE_SIMILARITY

벡터 사이의 코사인 유사도를 계산합니다.

코사인 유사성은 다차원 공간에서 두 벡터 사이의 각도를 기반으로 하며, 벡터의 크기는 고려되지 않습니다. 코사인 유사도 값은 벡터의 내적을 길이의 곱으로 나눈 값입니다. 코사인 유사도는 항상 [-1, 1] 구간에 있습니다. 예를 들어, 동일한 벡터는 코사인 유사도 1, 두 개의 직교 벡터는 유사도 0, 두 개의 반대 벡터는 유사도 -1 을 갖습니다.

참고 항목:

VECTOR_INNER_PRODUCT , VECTOR_L2_DISTANCE , 벡터 임베딩

구문

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

인자

vector

각도 계산을 시작할 VECTOR 값입니다.

vector

각도 계산을 종료할 VECTOR 값입니다.

반환

두 입력 벡터 사이의 코사인 유사성을 나타내는 [-1, 1] 간격의 FLOAT 값을 반환합니다.

사용법 노트

  • 벡터 비교 함수의 계산 최적화로 인해 부동소수점 오차가 평소보다 약간 더 클 수 있습니다(예: 약 1e-4).

이 예제는 VECTOR_COSINE_SIMILARITY 함수를 호출하여 [1,2,3] 에 가장 가까운 벡터를 찾습니다.

SELECT a, VECTOR_COSINE_SIMILARITY(a, [1,2,3]::VECTOR(FLOAT, 3)) AS similarity
  FROM vectors
  ORDER BY similarity DESC
  LIMIT 1;
Copy
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+