AI 용어집 · 기초 · 언어 모델
시맨틱 검색 Semantic search, 의미 검색
시맨틱 검색은 검색어에 들어 있는 낱말이 문서에 그대로 있는지가 아니라, 검색어와 문서의 '뜻'이 얼마나 가까운지를 따져 결과를 찾아 주는 검색 방식이다.
어떻게 작동하나
먼저 문장이나 문서를 '임베딩'이라는 숫자 묶음(벡터)으로 바꾼다. 임베딩은 뜻이 비슷한 글일수록 서로 가까운 위치에 놓이도록 만든 일종의 좌표다. 사용자가 검색어를 넣으면 검색어도 같은 방식으로 좌표로 바꾼 뒤, 그 좌표와 가장 가까운 문서들을 찾는다. 이렇게 '가장 가까운 점 찾기'를 최근접 이웃 검색이라고 부르며, 문서가 많을 때는 이를 빠르게 처리하려고 벡터 DB를 함께 쓰는 경우가 많다.
어떻게 발전해 왔나
예전 검색은 TF-IDF나 BM25처럼 검색어 낱말이 문서에 얼마나 자주, 얼마나 특징적으로 나오는지를 세는 '어휘 검색'이 기본이었다. 2019년 Sentence-BERT 논문(Reimers·Gurevych)은 BERT라는 언어 모델을 고쳐 문장 하나하나를 비교 가능한 임베딩으로 바꾸는 방법을 내놓았다. 이 논문은 원래 BERT로 1만 개 문장 중 가장 비슷한 쌍을 찾는 데 약 65시간 걸리던 일을 약 5초로 줄이면서도 정확도를 유지했다고 밝혔다. 이어 2020년 Dense Passage Retrieval 논문(Karpukhin 등)은 질문과 문단을 각각 임베딩으로 바꾸는 두 개의 인코더를 학습시켜, 임베딩만으로도 BM25 기반 검색보다 관련 문단을 더 잘 찾을 수 있음을 보였다. 이런 흐름 덕분에 '뜻으로 찾는 검색'이 실제로 쓸 만한 기술이 됐다.
왜 중요한가
사람들은 문서에 적힌 낱말과 다른 표현으로 검색하는 일이 많다. 예를 들어 '노트북 배터리가 빨리 닳아요'라고 검색했는데 문서에는 '전력 소모 줄이는 법'이라고 적혀 있으면, 낱말 일치만 보는 검색은 이를 놓치기 쉽다. 시맨틱 검색은 이런 표현 차이를 넘어서 의도를 맞춰 준다. 특히 LLM이 답변하기 전에 관련 자료를 찾아오는 RAG에서 핵심 부품으로 쓰인다.
알아 둘 점
뜻이 비슷한 글을 잘 찾는 대신, 제품 번호나 고유명사처럼 글자가 정확히 맞아야 하는 검색에는 오히려 약할 수 있다. 그래서 실제 서비스에서는 BM25 같은 어휘 검색과 시맨틱 검색을 함께 쓰는 하이브리드 검색을 많이 쓰고, 그 결과를 리랭커로 다시 정렬하기도 한다. 결과 품질은 어떤 임베딩 모델을 쓰는지, 문서를 어떤 크기로 잘라 넣는지(청킹)에 크게 좌우된다. 한편 '시맨틱 검색'이라는 말은 온톨로지나 지식 그래프처럼 구조화된 지식을 활용하는 검색을 가리킬 때도 있어 문맥에 따라 뜻이 조금 다를 수 있다.
예시
사내 문서 도우미 챗봇이 대표적인 예다. 직원이 "출장 갈 때 숙박비는 얼마까지 돼?"라고 물으면, 챗봇은 시맨틱 검색으로 '국내외 출장 경비 기준'처럼 표현은 다르지만 뜻이 맞는 규정 문서를 찾아온 뒤, 그 내용을 바탕으로 LLM이 답을 만든다. 쇼핑몰에서 '여름에 시원한 출근용 바지'처럼 풀어 쓴 검색어로 알맞은 상품을 찾아 주는 기능에도 같은 원리가 쓰인다.