본문 바로가기

KEEP ON/알고리즘

[검색] 벡터 검색

벡터 검색을 도입해야한다. 벡터 검색이 정확히 무엇인지 알아보자. 

벡터 검색이 생기기 전? 

전통적으로 사용하던 검색 방식은 "키워드 매칭"을 이용한 방식을 사용했다. 사용자가 입력한 단어가 문서에 정확히 포함되어있는지를 찾아 결과를 보여주는 방식이다. 

예를 들어, "고양이"를 검색했을 때 -> "고양이"라는 단어가 포함된 문서만 찾아준다. 

따라서 얌전한 고양이는 나오지만, 귀여운 야옹이는 "고양이" 키워드가 없어서 찾지 못하고, 아무 설명 없는 고양이 사진도 찾지 못해 검색 결과에 나오지 않았다.

물론, 요즘은 동의어처리나 유사어 단어 검색 등 기능을 제공하지만 지속적인 관리가 필요하거나 이마저도 검색의 범위는 한계가 있다. 

 

이런 문제를 해결하기 위해 탄생 것이 바로 벡터 검색이다. 

벡터 검색

벡터 검색은 단어, 문장, 이미지 등 모든 데이터를 벡터화(수치화) 하여, 벡터 간의 유사도를 계산하고 비슷한 의미를 가진(=관련된) 데이터를 검색하는 기술이다. 

https://odsc.medium.com/a-gentle-introduction-to-vector-search-3c0511bc6771

 

사진처럼 고양이와 가까운 곳에 있는 데이터들을 검색하는 방식으로, 키워드 검색과 다르게 "고양이"를 검색하면 얌전한 고양이는 물론 전에 못찾았던 귀여운 야옹이, 아무 설명 없는 고양이 사진까지 전부 검색을 할 수 있다. 


벡터 검색의 응용 분야

추천 시스템, 이미지 검색, 자연어 처리, 데이터 분석 등 다양한 분야에서 사용되고 있다.