제18회: AI 검색의 기초 – 키워드 검색에서 시맨틱 검색으로의 진화

들어가며

지금까지의 글에서는 키워드 기반의 전문 검색을 중심으로 다루어 왔습니다. 이용자가 적절한 키워드를 입력할 수 있다면 전문 검색은 매우 효과적입니다. 그러나 “어떤 키워드로 검색해야 할지 모르겠다”, “개념적인 질문에 답해 주었으면 한다”와 같은 요구에는 키워드 검색만으로는 대응이 어려운 경우가 있습니다.

이 글에서는 검색 기술의 스펙트럼을 정리하고, 키워드 검색에서 시맨틱 검색으로 어떻게 진화하는지를 설명합니다.

대상 독자

  • AI 검색에 관심이 있지만 개념을 정리하고 싶은 분

  • 시맨틱 검색 도입을 검토하고 있는 분

  • Fess의 AI 관련 기능을 이해하고 싶은 분

검색 기술의 스펙트럼

검색 기술은 단순한 것부터 고도한 것까지 다음과 같은 스펙트럼을 형성하고 있습니다.

검색 기술의 스펙트럼
기술 구조 특징
키워드 검색 입력어와 문서 내 단어를 대조 고속이며 확실함. 단어 일치가 필요
퍼지 검색 유사한 철자의 단어도 대조 오타에 대한 대응
동의어 검색 동의어를 확장하여 대조 표기 차이에 대한 대응(수동 설정)
시맨틱 검색 의미의 유사도로 대조 단어가 일치하지 않아도 관련 문서 발견
하이브리드 검색 키워드 + 시맨틱의 조합 양쪽의 장점을 살림

키워드 검색의 한계

키워드 검색은 많은 경우에 유효하지만, 다음과 같은 경우에 한계가 나타납니다.

어휘 불일치

이용자가 사용하는 말과 문서에서 사용되는 말이 다른 경우입니다.

예: 이용자가 “급여 이체처를 변경하고 싶다”라고 검색해도, 사내 문서에는 “급여 계좌 변경 절차”라고 기재되어 있는 경우 키워드가 일치하지 않을 수 있습니다.

동의어(제8회 참조)로 부분적으로 대응할 수 있지만, 모든 어휘의 조합을 사전에 등록하는 것은 현실적이지 않습니다.

개념적 검색

“원격 근무에 관한 사내 규칙”과 같이 특정 키워드가 아니라 개념으로 검색하고 싶은 경우입니다. 이 경우 “재택 근무”, “텔레워크”, “출근 규칙”, “근태 관리” 등 관련된 다양한 문서가 대상이 될 수 있습니다.

시맨틱 검색의 구조

벡터 표현(임베딩)

시맨틱 검색의 기본은 텍스트를 “벡터(숫자의 배열)”로 변환하는 것입니다. 이 벡터는 텍스트의 “의미”를 수학적으로 표현한 것입니다.

의미가 가까운 텍스트끼리는 벡터 공간상에서 가까운 위치에 배치됩니다. 예를 들어, “개”와 “반려동물”의 벡터는 가깝고, “개”와 “자동차”의 벡터는 멀어집니다.

검색 시의 동작

  1. 이용자가 검색 쿼리를 입력

  2. 쿼리를 벡터로 변환

  3. 인덱스 내 문서 벡터와의 유사도를 계산

  4. 유사도가 높은 순서대로 문서를 반환

이를 통해 키워드가 완전히 일치하지 않아도 의미적으로 관련된 문서를 찾을 수 있습니다.

Fess에서의 시맨틱 검색

Fess는 시맨틱 검색 플러그인을 통해 벡터 기반의 검색을 구현할 수 있습니다.

시맨틱 검색 활성화

  1. 시맨틱 검색 플러그인 설치

  2. 임베딩 모델 설정

  3. 인덱스 재구축(기존 문서의 벡터화)

임베딩 모델 선택

텍스트를 벡터로 변환하기 위한 모델(임베딩 모델)을 선택합니다.

선택 시 고려할 사항은 다음과 같습니다.

  • 언어 지원: 대상 언어를 적절히 처리할 수 있는지

  • 정확도: 벡터의 품질(의미 포착의 정확성)

  • 속도: 변환에 걸리는 시간

  • 비용: API 사용료, 하드웨어 요건

하이브리드 검색: Rank Fusion

시맨틱 검색은 강력하지만 만능은 아닙니다. 고유 명사 검색이나 완전 일치가 필요한 경우에는 키워드 검색이 더 적절합니다.

하이브리드 검색의 개념

하이브리드 검색은 키워드 검색과 시맨틱 검색을 모두 실행하고, 결과를 통합합니다.

Fess에서는 Rank Fusion(랭크 융합)을 사용하여 서로 다른 검색 방법의 결과를 병합합니다. 구체적으로, RRF(Reciprocal Rank Fusion) 알고리즘에 의해 양쪽 검색 결과에서 상위에 오는 문서가 최종적으로 상위에 랭크됩니다.

하이브리드 검색의 장점

  • 키워드 검색의 “확실성”과 시맨틱 검색의 “유연성”을 양립

  • 고유 명사는 키워드 검색으로 커버

  • 개념적인 검색은 시맨틱 검색으로 커버

  • 한쪽만 사용하는 것보다 종합적인 검색 품질이 향상

도입 판단 기준

시맨틱 검색을 모든 환경에 도입해야 하는 것은 아닙니다.

도입을 검토해야 하는 경우

  • 검색 로그에 “제로 히트 쿼리”가 많은 경우

  • 이용자로부터 “키워드를 모르겠다”라는 의견이 있는 경우

  • 자연어 질문에 대응하고 싶은 경우(제19회 RAG의 전제)

  • 다국어 문서의 교차 언어 검색을 강화하고 싶은 경우

아직 불필요한 경우

  • 키워드 검색 + 동의어로 충분한 검색 품질을 얻고 있는 경우

  • 문서 수가 적고, 이용자가 적절한 키워드를 알고 있는 경우

  • 계산 리소스(GPU나 클라우드 API 비용)가 제한적인 경우

단계적 도입

  1. 먼저 키워드 검색 + 동의어(제8회)로 품질을 개선

  2. 그래도 제로 히트가 많은 경우에 시맨틱 검색을 검토

  3. 하이브리드 검색으로 양쪽의 혜택을 얻음

정리

이 글에서는 키워드 검색에서 시맨틱 검색으로의 진화 과정을 정리했습니다.

  • 검색 기술의 스펙트럼(키워드 -> 퍼지 -> 동의어 -> 시맨틱 -> 하이브리드)

  • 시맨틱 검색의 구조(벡터 표현과 유사도 계산)

  • Fess에서의 시맨틱 검색과 하이브리드 검색(Rank Fusion)

  • 도입 판단 기준과 단계적 접근법

다음 회에서는 시맨틱 검색을 더욱 발전시켜 RAG를 활용한 AI 어시스턴트를 구축합니다.

참고 자료