AI VIDEO BRIEFING
시맨틱 검색과 추천 시스템 만드는 법: 임베딩, 벡터 DB, 하이브리드 검색 완전 정리
키워드 검색은 '러닝화'를 찾을 때 '조깅 스니커즈'를 놓친다. 임베딩과 벡터 데이터베이스로 의미 기반 검색과 추천을 만드는 세 단계 구조를, 색인 시간과 질의 지연, 정확도 실측치와 함께 정리했다.

핵심 메시지
쉽게 이해하기
발표자는 넷플릭스와 스포티파이, 아마존이 이용자가 몰랐던 것을 정확히 꺼내 놓는 배경에 같은 기술이 있다고 말한다. 벡터 임베딩에 기반한 의미 검색이다. 자기 데이터베이스에서 '러닝화'를 키워드로 찾으면 '운동화', '조깅 스니커즈', '트레일화' 같은 표현은 통째로 빠지는데, 이 격차를 메우는 것이 이 영상의 목표다.
구조는 세 층이다. 첫째 층에서 상품 설명이나 영화 줄거리 같은 텍스트가 임베딩 모델을 거쳐 숫자 벡터로 바뀐다. 둘째 층인 벡터 데이터베이스는 그 벡터를 저장하고 대규모 유사도 검색을 빠르게 처리한다. 셋째 층에서는 사용자의 질의도 똑같이 벡터로 바꿔 가장 가까운 벡터를 요청하고 그에 해당하는 항목을 돌려준다. 발표자는 이 세 층이 전부라고 정리한다.
임베딩 모델은 두 가지가 소개된다. 1536차원의 소형 모델은 100만 토큰당 약 2센트로 빠르고 대부분의 앱에 기본값으로 권한다. 3072차원의 대형 모델은 100만 토큰당 약 13센트로, 복잡한 검색에서 정확도가 필요할 때 쓴다. 한 번의 요청에 최대 2048개 입력을 묶을 수 있어 문서를 하나씩 임베딩하는 것보다 배치 처리가 훨씬 저렴하다.
일반 데이터베이스로는 이 검색을 감당하기 어렵다. 100만 개의 1536차원 벡터를 순진하게 비교하면 질의 하나마다 수십억 번의 부동소수점 연산이 필요하기 때문이다. 벡터 데이터베이스는 HNSW 같은 근사 최근접 이웃 알고리즘으로 수백만 벡터를 100밀리초 안에 훑는다. 실제로 1만 건 카탈로그를 색인하는 데 2분이 채 걸리지 않고 비용은 20센트 수준이라고 한다.
발표자는 5만 개 상품 카탈로그로 측정한 숫자도 제시한다. 색인에 8분, 평균 질의 지연 45밀리초, 상위 10건 정확도는 키워드 검색 40%에서 의미 검색 81%로 올랐고, 콜드 스타트 사용자 대상 A/B 테스트에서 추천 클릭률은 협업 필터링의 3.1배였다. 여기에 임베딩 캐싱, 200~400토큰 단위 청킹, 네임스페이스 분리, 상위 점수 로깅이라는 네 가지 운영 수칙을 덧붙인다.
주요 인사이트
- 추천이 검색과 같은 연산이라는 점이 이 구조의 힘이다. 질의를 임베딩하는 단계만 건너뛰고 이미 저장된 항목 벡터의 이웃을 찾으면 그대로 추천이 된다.
- 콜드 스타트에서 협업 필터링이 무너지는 이유는 사용자 이력이 없기 때문인데, 콘텐츠 자체의 의미를 쓰는 방식은 그 전제를 아예 요구하지 않는다.
- 의미 검색의 약점은 정확성이 아니라 정확 일치다. 품번이나 사람 이름처럼 문자열이 곧 정답인 질의는 키워드 점수와 섞어야 하고, 발표자는 혼합 비중 0.7 부근을 실무의 기본값으로 제시한다.
- 10쪽짜리 PDF를 벡터 하나로 만들면 문서 전체의 의미가 평균값으로 뭉개진다. 200~400토큰 단위로 쪼개고 50토큰씩 겹치게 하면 검색 정밀도가 크게 올라간다.
- 상위 일치 점수를 계속 기록해 0.5 아래로 내려가는 흐름을 감시하라는 조언은, 검색 품질 저하를 사용자 불만이 아니라 지표로 먼저 발견하자는 이야기다.
자주 묻는 질문
임베딩 모델은 어느 쪽을 골라야 하나?
영상은 1536차원 소형 모델을 기본값으로 권한다. 100만 토큰당 약 2센트로 빠르고 대부분의 애플리케이션에 충분하기 때문이다. 복잡한 검색에서 최대한의 정밀도가 필요할 때만 100만 토큰당 약 13센트인 3072차원 대형 모델을 쓰라고 설명한다.
하이브리드 검색은 왜 필요한가?
순수 의미 검색은 상품 코드나 부품 번호, 사람의 정확한 이름처럼 문자열 일치가 중요한 질의에서 오히려 낮은 점수를 줄 수 있다. 그래서 BM25 키워드 점수와 벡터 유사도를 함께 쓰고, 비중을 조절하는 값을 0.7 근처로 두면 정확 조회와 개념 질의를 한 색인에서 처리할 수 있다.
임베딩을 캐싱해도 결과가 달라지지 않나?
영상은 임베딩이 결정적(deterministic)이라 같은 입력이면 같은 벡터가 나오므로 캐시가 낡을 일이 없다고 설명한다. 같은 질의를 다시 임베딩하면 비용만 두 번 나가므로, 레디스나 단순 딕셔너리로 질의와 벡터의 대응을 저장해 두라고 권한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗