AI등 발전으로 이미지와 텍스트 등 비정형 데이터의 활용이 대세로 떠오르기 시작
- 임베딩을 통해 생성된 고차원의 벡터 데이터를 효율적으로 저장하고 조회할 수 있도록 설계된 데이터베이스
- 전통적 RDBMS와는 달리, 벡터 간의 거리나 유사도를 기반으로 데이터를 조회
- Faiss, Annoy, ElasticSearch 등의 벡터 데이터베이스는 벡터 간의 유사도 검색을 빠르게 수행할 수 있도록 최적화 되어 있어, 자연어처리나 추천 시스템 등에서 사용
코사인 유사도
- 자연어처리 분야에서는 주로 Word2Vec, GloVe, FastText 등의 알고리즘을 사용하여 단어나 문장을 벡터로 변환
- 이렇게 변환된 벡터는 비슷한 의미를 가진 단어나 문장이 벡터 공간에서 가까운 위치에 위치하게 된다.
- 워드임베딩(word embedding)이라고 불리는 이 과정을 거치고 나면 우리는 문장과 단어 사이의 유사도(similarity)를 구할 수 있게 됨
- 코사인 유사도는 두 벡터 간의 유사도를 측정할 때 많이 사용되는 방법으로, 특히, 자연어 처리 분야에서 텍스트의 임베딩 벡터 간의 유사도를 측정할 때 자주 활용
- 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖기 때문이다.
'[실무개발] > Database' 카테고리의 다른 글
Mysql 문법정리 (0) | 2022.04.10 |
---|---|
Mysql 외부 아이피에서 접속 허용 (0) | 2022.04.09 |