[실무개발]/Database

Vector Store, 코사인 유사도

_niel 2024. 2. 24. 14:53

 

AI등 발전으로 이미지와 텍스트 등 비정형 데이터의 활용이 대세로 떠오르기 시작

 

- 임베딩을 통해 생성된 고차원의 벡터 데이터를 효율적으로 저장하고 조회할 수 있도록 설계된 데이터베이스

- 전통적 RDBMS와는 달리, 벡터 간의 거리나 유사도를 기반으로 데이터를 조회

- Faiss, Annoy, ElasticSearch 등의 벡터 데이터베이스는 벡터 간의 유사도 검색을 빠르게 수행할 수 있도록 최적화 되어 있어, 자연어처리나 추천 시스템 등에서 사용

 

코사인 유사도

 

- 자연어처리 분야에서는 주로 Word2Vec, GloVe, FastText 등의 알고리즘을 사용하여 단어나 문장을 벡터로 변환

- 이렇게 변환된 벡터는 비슷한 의미를 가진 단어나 문장이 벡터 공간에서 가까운 위치에 위치하게 된다.

- 워드임베딩(word embedding)이라고 불리는 이 과정을 거치고 나면 우리는 문장과 단어 사이의 유사도(similarity)를 구할 수 있게 됨

 

- 코사인 유사도는 두 벡터 간의 유사도를 측정할 때 많이 사용되는 방법으로, 특히, 자연어 처리 분야에서 텍스트의 임베딩 벡터 간의 유사도를 측정할 때 자주 활용

- 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖기 때문이다.

 

 

출처 : https://blog-ko.superb-ai.com/vector-store/

'[실무개발] > Database' 카테고리의 다른 글

Mysql 문법정리  (0) 2022.04.10
Mysql 외부 아이피에서 접속 허용  (0) 2022.04.09