#Backend

비디오 검색을 위한 멀티모달 인텔리전스 구축

비디오 검색을 위한 멀티모달 인텔리전스 구축
01

Summary

넷플릭스가 수천 시간의 영상 속 '그 장면'을 1초 만에 찾는 비결

카산드라부터 엘라스틱서치까지, 수십억 개의 벡터를 실시간으로 요리하는 데이터 퓨전 아키텍처

본 아티클은 넷플릭스가 수천 시간의 영상 데이터에서 원하는 장면을 즉각적으로 찾아내기 위해 구축한 멀티모달 검색 아키텍처를 소개합니다. 카산드라, 카프카, 엘라스틱서치를 유기적으로 결합하여 수십억 개의 벡터 데이터를 처리하는 파이프라인의 핵심 설계를 심도 있게 다룹니다.

  • 01카산드라를 활용한 고가용성 모델 주석 저장소 구축
  • 02카프카 기반의 비동기 오프라인 데이터 퓨전 파이프라인 설계
  • 03HNSW 알고리즘을 통한 대규모 벡터 데이터의 초고속 검색 구현
  • 04N-Gram 및 퍼지 매칭을 이용한 실시간 타이핑 검색 지원
  • 05합집합(Union) 및 교집합(Intersection) 로직을 통한 검색 결과 재구성

RECOMMENDATION

대규모 미디어 에셋을 관리하거나 벡터 검색 엔진 도입을 고민하는 데이터 및 백엔드 엔지니어에게 실무적인 파이프라인 설계 가이드가 될 것입니다.

The Problem

방대한 양의 원본 영상 데이터에서 원하는 장면을 찾는 과정은 매우 느리고 비효율적이며, 기존의 키워드 매칭 방식으로는 영상의 깊은 맥락과 의도를 파악하기 어렵습니다.

The Solution

카산드라를 이용한 영속성 계층, 카프카 기반의 오프라인 데이터 퓨전 파이프라인, 그리고 엘라스틱서치의 벡터 검색 기능을 결합한 3단계 디커플링 아키텍처를 도입했습니다.

The Result

수십억 개의 데이터 포인트를 처리하면서도 1초 미만의 쿼리 지연 시간을 유지하며, 프레임 단위의 정확한 검색 결과를 제공하여 제작팀의 창의적 흐름을 지원합니다.

Trade-off

오프라인 퓨전 파이프라인에서 발생하는 높은 연산 비용과 메타데이터 증가에 따른 저장 공간 부담이 있으며, 검색 정확도가 개별 AI 모델들의 성능 및 시간 동기화 정밀도에 의존적입니다.

03

Key Concepts

Concept · 01

시간 기반 버킷 맵핑 (Temporal Bucket Mapping)

연속적인 영상 메타데이터를 고정된 크기의 시간 단위로 분할하여 이기종 모델의 데이터를 단일 타임라인으로 정렬하는 기술입니다.

  • 캐릭터 감지와 장면 인식 결과를 1초 단위 버킷으로 묶어 동시 발생 여부 판단
  • 비정형 시간 범위를 이산적인 버킷으로 변환하여 교차 쿼리 성능 최적화
Concept · 02

하이브리드 스코어링 엔진 (Hybrid Scoring Engine)

심볼릭 텍스트 매칭과 시멘틱 벡터 임베딩의 점수를 결합하여 결과의 정확성과 해석 가능성을 동시에 확보하는 방식입니다.

  • 텍스트 레이블과 고차원 벡터 유사도를 가중치에 따라 결합하여 순위 산정
  • 단순한 수학적 유사도를 넘어 실제 영상 편집에 유의미한 장면을 우선 노출
Concept · 03

중첩 문서 인덱싱 (Nested Document Indexing)

Elasticsearch에서 부모 문서와 자녀 문서의 관계를 계층적으로 유지하여 복합적인 속성 검색을 지원하는 인덱싱 기법입니다.

  • 영상 전체 컨텍스트를 루트에, 시간별 주석 데이터를 하위 문서로 구조화
  • 동일 시간 내의 캐릭터, 물체, 대사 등 다중 속성 간의 논리 결합 검색 가능