https://milvus.io/ai-quick-reference/what-is-the-difference-between-feature-vectors-and-embeddings
What is the difference between feature vectors and embeddings?
Feature vectors and embeddings are both numerical representations of data, but they differ in how they are created and what they capture. A feature vector is a collection of explicit, hand-engineered features that describe a data point. For example, in ima
milvus.io

들어가며....
최근 엘라스틱 서치와 벡터 검색에 대한 도서 "엘라스틱에서 벡터 검색 시작하기"를 읽고 있다.
관련해서 벡터라는 표현과 임베딩이라는 표현이 자주 사용되는데, 어떤 상황에서는 "벡터"라는 표현을 사용하고
어떤 상황에서는 "임베딩"이라는 표현을 사용하는지, 이 둘은 어떤 의미적 차이를 가지는지 궁금하게 되었다.
실무에서도 기획자와 얘기를 할 때, 벡터와 임베딩을 혼용해서 쓰곤 하는데.
이 참에 정의의 차이점을 알고 넘어가면 도움이 될 듯하다.
관련 내용은 위의 milvus 기술 블로그 글을 참고했다. [milvus 기술 블로그에는 좋은 글들이 정말 많다.]
어떻게 생성되었고, 어떤 정보를 잡고(capture) 있냐의 차이점
임베딩과 벡터(특징 벡터) 모두 데이터를 수치(numeric)로 표현한 방식 [특정 차원을 가진 숫자 배열 정보]이다.
하지만 이 둘은 "어떤 방식으로" 생성되었는가 "어떤 정보"를 가지고 있느냐로 구분될 수 있다.
feature vector (특징 벡터)
A feature vector is a collection of explicit, hand-engineered features that describe a data point. For example, in image processing, a feature vector might include pixel values, histogram statistics, or edge detection outputs.
"데이터 개체"를 설명하기 위한 명시적이고 "사람이 직접 설계한" 특징들의 모음이다.
예를 들어 이미지에서는 픽셀 정보, 히스토그램의 통계 정보, 에지 추출 정보들이 특징 벡터에 포함될 수 있다.
이런 정보들은 "도메인 지식"을 활용해 강조된 어떠한 특징을 담은 데이터로 구성된 배열이라고 볼 수 있다.
embedding
an embedding is a learned, dense vector representation that maps data into a lower-dimensional space.
학습된, 밀집된(조밀한 dense vector) 벡터 표현으로 데이터를 저차원의 공간으로 반영한 정보이다.
신경망 (word2vec, vert, cnn)을 통해 생성되는 정보이다.
데이터에 명시적으로 드러나지 않지만 "숨겨져 있는 관계"를 의미하며, 자동으로 패턴과 관계를 학습한 모델에 의해 생성되는 정보이다.
둘을 구분하는 가장 큰 특징 = 수동적인 로직으로 생성하는가, 자동화된 로직으로 생성하는가
데이터를 보고 어떠한 특징점을 추출하는 로직을 구현해, 해당 데이터를 추출한다면 특징 벡터라고 표현할 수 있다.
반면 임베딩의 경우는 신경망으로 데이터 자체를 스스로 학습하도록 훈련한 모델을 통해 생성하는 것이다. [의미론적 유사도 학습]
벡터 정보의 특징으로도 둘을 구분할 수 있다.
feature vector의 경우 로직을 통해 구분된 값을 저장하다 보니,
고차원의 공간적 특성을 가지며, 값의 분포가 sparse(빈약한) 특징을 가진다.
반면에 임베딩의 경우는 저차원 정보로 압축되면서 데이터의 구성은 조밀한(dense) 정보 구조를 가진다.
벡터 DB 기반으로 검색하는 모든 벡터 정보는 "임베딩"이라고 표현하는 게 옳다고 생각된다.
dense vector 특징.
해당 벡터를 생성하는 특정 모델(임베딩 모델)이 존재한다는 점.
수치로 표현된 저 차원 벡터 공간이 "의미론적 유사도"에 활용될 수 있다는 점이 그러하다.
개인적으로는 검색과 관련해서는 벡터가 가지는 특징을 활용해야 하기 때문에 (내적, 거리 계산, ANN, KNN) 벡터라는 표현을 쓰고
그 외의 검색 도메인에서는 "임베딩"한다가 자연스러운 표현이 될 것 같다.
'직장 생활 > 질문 응답' 카테고리의 다른 글
| 에이전트에서 툴 결과 응답만 내려주도록 구현하기 [feat: langchain] (0) | 2025.12.08 |
|---|---|
| 랭그래프에 등록된 노드에서 호출한 에이전트의 writer 이벤트 전달하기 (tool) (0) | 2025.12.08 |
| 에이전트 애플리케이션 고민. 자율성과 신뢰성의 트레이드 오프 (3) | 2025.06.07 |