Embedding

机器学习中Embedding是什么

검색

  • TF-IDF(Term Frequency-Inverse Document Frequency) 단어 빈도와 역 문서 빈도를 곱하여 특정 문서에서 단어의 중요도를 나타내는 통계적 측정 방법입니다.
  • BM25(Best Matching 25) 검색어와 문서 간의 관련성을 계산해 가장 적합한 문서를 찾아주는 검색 랭킹 알고리즘이다.

참고: https://wikidocs.net/289869

Vector Database(벡터DB)

Sparse(희소) Vector 와 Dense(밀집) Vector

글을 벡터DB에 저장할 때, 글 전체 를 임베딩하거나 주요 키워드만 뽑아 임베딩할 수 있습니다. 주요 키워드만 뽑아 서 변환하면 벡터가 표현할 수 있는 차원 중 일부만 사용하게 되고, 나머지 많은 차원은 0으로 '비어' 있게 됩니다. 이를 희소 벡터라고 합니다. 반면 글 전체를 임 베딩 벡터로 변환하면 거의 모든 차원을 사용하게 되는데, 이를 밀집 벡터라고 합니다.

희소 벡터는 특정 키워드에 맞는 단어를 검색하는 데 적합한 구조이며, 밀집 벡 더는 콘텐츠 전체의 의미를 검색하는 데 적합한 구조입니다. 희소 벡터의 장점은 차원 값 대부분이 0이라 압축하기 쉬워 메모리 효율이 좋다는 점입니다. 반면 밀 집 베터는 모든 차원의 값을 가지고 있어 의미를 이해하기 쉽다는 장점이 있습니 다 다만 희소 벡터는 키워드만으로는 완전한 의미를 파악하기 어렵고, 밀집 벡터 는 모든 차원의 값을 저정하므로 메모리 사용량이 높다는 단점이 있습니다. 희소 벡터는 BM25와 같은 키워드 검색에 주로 이용되고, 밀집 벡터는 코사인 유사도 계산을 통해 의미적 유사성을 찾는 데 활용됩니다.

벡터DB 검색 방법

  • HNSW(Hierarchical Navigable Small World) 그래프 기반의 검색 알고리즘으로, 대규모 벡터 데이터베이스에서 빠르게 유사한 벡터를 찾는 데 사용됩니다. HNSW는 벡터 간의 유사성을 기반으로 그래프를 구성하여 검색 효율성을 높입니다.
  • IVF(Inverted File) 벡터를 여러 개의 클러스터로 나누고, 각 클러스터에 대한 인덱스를 생성하여 검색 효율성을 높이는 방법입니다. 검색 시에는 먼저 클러스터를 선택한 후 해당 클러스터 내에서 유사한 벡터를 찾습니다.
  • PQ(Product Quantization) 벡터를 여러 개의 하위 벡터로 분할하여 각 하위 벡터를 양자화하는 방법입니다. 이를 통해 벡터의 차원을 줄이고, 검색 시에는 양자화된 하위 벡터 간의 유사성을 계산하여 빠르게 유사한 벡터를 찾습니다.
  • LSH(Locality-Sensitive Hashing) 유사한 벡터가 동일한 해시 버킷에 매핑되도록 하는 해싱 방법입니다. 이를 통해 검색 시에는 동일한 해시 버킷에 있는 벡터들만 비교하여 유사한 벡터를 빠르게 찾을 수 있습니다.

벡터DB

  • FAISS(Facebook AI Similarity Search) Facebook에서 개발한 라이브러리로, 대규모 벡터 데이터베이스에서 유사한 벡터를 빠르게 검색할 수 있도록 다양한 알고리즘과 인덱싱 방법을 제공합니다. HNSW, IVF, PQ 등 다양한 검색 방법을 지원하며, GPU 가속을 통해 대규모 데이터에서도 효율적으로 검색할 수 있습니다.
  • Annoy(Approximate Nearest Neighbors Oh Yeah) Spotify에서 개발한 라이브러리로, 대규모 벡터 데이터베이스에서 유사한 벡터를 빠르게 검색할 수 있도록 다양한 알고리즘과 인덱싱 방법을 제공합니다. HNSW, IVF, PQ 등 다양한 검색 방법을 지원하며, 메모리 효율적인 인덱싱을 통해 대규모 데이터에서도 효율적으로 검색할 수 있습니다.
  • ScaNN(Scalable Nearest Neighbors) Google에서 개발한 라이브러리로, 대규모 벡터 데이터베이스에서 유사한 벡터를 빠르게 검색할 수 있도록 다양한 알고리즘과 인덱싱 방법을 제공합니다. HNSW, IVF, PQ 등 다양한 검색 방법을 지원하며, GPU 가속을 통해 대규모 데이터에서도 효율적으로 검색할 수 있습니다.
  • NMSLIB(Non-Metric Space Library) 대규모 벡터 데이터베이스에서 유사한 벡터를 빠르게 검색할 수 있도록 다양한 알고리즘과 인덱싱 방법을 제공합니다. HNSW, IVF, PQ 등 다양한 검색 방법을 지원하며, 메모리 효율적인 인덱싱을 통해 대규모 데이터에서도 효율적으로 검색할 수 있습니다.
  • Milvus 대규모 벡터 데이터베이스에서 유사한 벡터를 빠르게 검색할 수 있도록 다양한 알고리즘과 인덱싱 방법을 제공합니다. HNSW, IVF, PQ 등 다양한 검색 방법을 지원하며, GPU 가속을 통해 대규모 데이터에서도 효율적으로 검색할 수 있습니다.

参考链接