For the complete documentation index, see llms.txt. This page is also available as Markdown.

코사인 유사도

두 임베딩 간의 코사인 유사도를 계산합니다.

두 임베딩 벡터 사이의 각의 코사인을 계산하여 코사인 유사도를 구합니다. 크기와 무관하게 방향의 유사성을 측정하므로, 유사도 비교, 의미적 매칭, 임베딩 기반 검색, 유사도 기반 필터링 워크플로를 가능하게 합니다.

이 블록의 작동 방식

이 블록은 코사인 유사도를 계산합니다. 코사인 유사도는 두 벡터 사이의 각의 코사인을 기반으로 한 유사도 측정값입니다. 이 블록은:

  1. 워크플로 단계(CLIP, Perception Encoder 또는 기타 임베딩 모델 등)에서 두 개의 임베딩 벡터를 받습니다

  2. 임베딩 차원을 검증합니다:

    • 두 임베딩이 동일한 차원(같은 요소 수)을 갖는지 확인합니다

    • 차원이 일치하지 않으면 오류를 발생시킵니다

  3. 코사인 유사도를 계산합니다:

    • 두 임베딩 벡터의 내적을 계산합니다

    • 각 임베딩 벡터의 L2 노름(크기)을 계산합니다

    • 내적을 두 노름의 곱으로 나눕니다: 유사도 = (a · b) / (||a|| × ||b||)

    • 이는 벡터 사이 각의 코사인을 측정하여 방향의 유사성을 나타냅니다

  4. 유사도 점수를 반환합니다:

    • -1에서 1 사이의 유사도 값을 출력합니다

    • 값 1: 벡터가 같은 방향을 가리킵니다(동일하거나 비례함) - 최대 유사도

    • 값 0: 벡터가 직교합니다(수직) - 유사도 없음

    • 값 -1: 벡터가 반대 방향을 가리킵니다 - 최대 비유사도

    • 값이 클수록(1에 가까울수록) 더 높은 유사도를 의미합니다

코사인 유사도는 크기 불변이므로, 크기보다는 방향의 유사도를 측정합니다. 같은 방향을 가리키는 두 벡터는 크기가 다르더라도 높은 코사인 유사도를 갖습니다. 따라서 크기는 달라질 수 있지만 의미적 의미(방향)가 중요한 임베딩 비교에 이상적입니다.

일반적인 사용 사례

  • 의미적 유사도 비교: 임베딩을 사용하여 이미지, 텍스트 또는 기타 데이터 유형 간의 의미적 유사도를 비교합니다(예: 이미지 임베딩 비교, 텍스트를 이미지와 매칭, 유사한 콘텐츠 찾기). 이를 통해 유사도 비교 워크플로를 지원합니다

  • 임베딩 기반 검색: 유사도 점수를 임베딩 기반 검색 및 검색 결과 회수에 사용합니다(예: 유사한 이미지 찾기, 임베딩 유사도로 검색, 유사한 콘텐츠 검색). 이를 통해 임베딩 검색 워크플로를 지원합니다

  • 크로스모달 매칭: 서로 다른 모달리티 간 임베딩을 매칭합니다(예: 이미지를 텍스트와 매칭, 텍스트 설명과 일치하는 이미지 찾기, 텍스트를 이미지와 매칭). 이를 통해 크로스모달 매칭 워크플로를 지원합니다

  • 유사도 기반 필터링: 유사도 임계값을 기준으로 데이터를 필터링합니다(예: 유사한 항목 필터링, 유사도를 사용한 중복 찾기, 거의 중복된 항목 식별). 이를 통해 유사도 필터링 워크플로를 지원합니다

  • 콘텐츠 추천: 콘텐츠 추천 및 매칭에 유사도 점수를 사용합니다(예: 유사한 콘텐츠 추천, 관련 항목 매칭, 유사한 제품 제안). 이를 통해 추천 워크플로를 지원합니다

  • 품질 관리 및 검증: 품질 관리를 위해 임베딩을 검증하거나 임베딩을 비교합니다(예: 임베딩 품질 검증, 일관성을 위한 임베딩 비교, 임베딩 유사도 확인). 이를 통해 품질 관리 워크플로를 지원합니다

다른 블록에 연결하기

이 블록은 임베딩 모델 블록에서 임베딩을 받아 유사도 점수를 생성합니다:

  • 임베딩 모델 블록 다음에 (CLIP, Perception Encoder 등) 임베딩을 비교하기 위해 사용됩니다(예: 이미지와 텍스트 임베딩 비교, 여러 임베딩 비교, 유사도 점수 계산). 이를 통해 임베딩-유사도 워크플로를 지원합니다

  • 로직 블록 이전 Continue If와 같은 블록에서 조건에 유사도 점수를 사용하기 위해 사용됩니다(예: 유사도가 임계값을 초과하면 계속, 유사도를 기준으로 필터링, 유사도를 사용한 의사결정). 이를 통해 유사도 기반 의사결정 워크플로를 지원합니다

  • 필터링 블록 이전 유사도를 기준으로 필터링하는 데 사용됩니다(예: 유사도 임계값으로 필터링, 낮은 유사도 항목 제거, 높은 유사도 일치 항목 유지). 이를 통해 유사도-필터 워크플로를 지원합니다

  • 데이터 저장 블록 앞에서 유사도 점수를 저장하는 데 사용됩니다(예: 유사도 메트릭 저장, 유사도 비교 기록, 유사도 결과 저장). 이를 통해 유사도 저장 워크플로를 지원합니다

  • 알림 블록 앞에서 유사도 기반 알림을 보내는 데 사용됩니다(예: 높은 유사도 일치 항목 알림, 유사도 변경 알림, 유사도 보고서 전송). 이를 통해 유사도 알림 워크플로를 지원합니다

  • 워크플로 출력에서 최종 출력으로 유사도 점수를 제공하는 데 사용됩니다(예: 유사도 비교 출력, 매칭 결과, 유사도 메트릭). 이를 통해 유사도 출력 워크플로를 지원합니다

요구 사항

이 블록은 동일한 차원(같은 요소 수)을 가진 두 임베딩 벡터가 필요합니다. 임베딩은 모든 임베딩 모델(CLIP, Perception Encoder 등)에서 올 수 있으며 이미지, 텍스트 또는 다른 데이터 유형을 나타낼 수 있습니다. 임베딩은 실수(float) 리스트로 전달됩니다. 이 블록은 L2 노름의 곱으로 내적을 나누어 코사인 유사도를 계산하며, -1에서 1 사이의 유사도 점수를 생성합니다. 1에 가까울수록 더 유사함을, 0에 가까울수록 직교 벡터를, -1에 가까울수록 반대 방향을 의미합니다.

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/cosine_similarity@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

워크플로우에서 단계의 고유 이름.

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 코사인 유사도 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • embedding_1 (embedding): 첫 번째로 비교할 임베딩 벡터입니다. embedding_2와 동일한 차원(같은 요소 수)을 가져야 합니다. CLIP, Perception Encoder 등 어떤 임베딩 모델에서든 올 수 있으며 이미지, 텍스트 또는 다른 데이터 유형을 나타낼 수 있습니다. 임베딩 벡터는 고차원 특징 표현을 나타내는 float 리스트입니다..

    • embedding_2 (embedding): 두 번째로 비교할 임베딩 벡터입니다. embedding_1과 동일한 차원(같은 요소 수)을 가져야 합니다. CLIP, Perception Encoder 등 어떤 임베딩 모델에서든 올 수 있으며 이미지, 텍스트 또는 다른 데이터 유형을 나타낼 수 있습니다. 임베딩 벡터는 고차원 특징 표현을 나타내는 float 리스트입니다. 코사인 유사도는 embedding_1과 embedding_2 사이의 유사도를 측정합니다..

  • 출력

    • 유사도 (float): 실수 값입니다.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?