Dense Vector Field 에서 지정할 수 있는 유사도 검색 파라미터에 대해 알아보자.

 

similarity 파라미터:

  • kNN 검색에서 사용할 벡터 유사도 메트릭을 지정할 수 있는 파라미터임..
  • 옵션이지만, index가 true일 때만 지정할 수 있다.
  • 기본값은 cosine 이다.

 

l2_norm (L2 거리, 유클리드 거리):

  • 벡터 간의 절대적인 거리가 중요할 때
  • 데이터 포인트의 실제 위치나 크기가 의미가 있을 때
  • 고차원 데이터에는 유용하지 않음.
  • 이상치 탐지나 클러스터링 작업에서 유용 (데이터 포인트간의 거리 차이로 이상치를 탐색함.)

 

dot_product:

  • 모든 벡터가 이미 정규화되어 있을 때 (cosine 유사도의 최적화 버전)
  • 대규모 데이터셋에서는 계산 효율성이 중요할 수 있으며, 이 경우 cosine 보다는 dot_product가 유리할 수 있다.

 

cosine (코사인 유사도):

  • 벡터의 방향이 중요하고 크기는 덜 중요할 때
  • 텍스트 문서의 유사성을 비교할 때
  • 고차원 데이터에서 작동이 잘 될 때
  • 예시: 문서 유사도 검색, 추천 시스템 자연어 처리 작업

 

max_inner_product:

  • 벡터의 방향과 크기가 중요한 의미를 가질 때
  • 정규화되지 않은 벡터를 다룰 때
  • 양수와 음수 값을 모두 고려해야 할 때
  • 예: 추천 시스템에서 사용자-아이템 상호작용 강도를 고려할 때, 특성의 중요도가 서로 다른 기계학습 모델의 결과를 비교할 때

 

각 similarity metric 을 선택해야하는 기준:

  • 데이터가 방향만 중요한지, 절대적 크기도 중요한지 생각. 크기가 중요하지 않고 방향만 중요하다면 cosine, dot_product 만을 고려. 둘 다 중요하면 max_inner_product, 크기만 중요하다면 l2_norm
  • 데이터가 이미 정규화되어 있는지. 정규화 되어 있다면 dot_product 나 cosine 이 효율적일 수 있음.
  • 대규모 데이터셋에서는 계산 효율성이 중요할 수 있으며, 이 경우 dot_product 가 cosine 보다 유리할 수 있음.
  • 음수를 지원하는지. cosine 은 [-1, 1] 까지 지원하지만 dot_product 는 양수만 지원. 그래서 cosine 이 더 넓은 유사도 범위를 탐지할 수 있음.
  • dot_product 는 정규화 벡터에서만 동작. cosine 은 알아서 정규화 해준다.

 

dot_product vs cosine:

  • 둘 다 벡터의 방향이 더 중요
  • cosine 은 -1 ~ 1 까지 지원, dot_product 는 양수만 지원. 그래서 cosine 이 더 넓은 유사도 범위를 할 수 있음.
  • dot_product 는 cosine 보다 계산이 간단해서 대규모 데이터에서 더 빠름.
  • dot_product 는 정규화 벡터에서만 동작. cosine 은 알아서 정규화해줌.

 

max_inner_product vs l2_norm

  • max_inner_product 는 벡터의 방향과 크기도 고려하는 반면에, l2_norm 은 순수 거리만을 측정한다.

+ Recent posts