
- 텍스트, 이미지, 음성 등 서로 다른 형태의 입력을 결합해 검색하는 방식
- "이 사진처럼 밝은 톤의 가디건 찾아줘"처럼 이미지와 텍스트를 동시에 입력할 수 있는 구조
- 핵심은 서로 다른 모달리티를 하나의 공통 벡터 공간에서 비교 가능한 형태로 변환하는 것
- 프로세스는 멀티모달 입력 처리 → 멀티모달 인코딩 → 벡터 처리 → 벡터 검색 순으로 이어짐
멀티모달 입력 처리 : 텍스트(스타일 설명, 속성 등), 이미지(업로드한 참조 이미지), 음성(ASR로 텍스트 변환) 등 다양한 모달리티를 인식하고 분류. 각 모달리티를 별도 처리 경로로 안내
멀티모달 인코딩 : 텍스트는 BERT/SBERT로, 이미지는 ResNet/DINOv2로 각각 벡터화. 문제는 두 벡터가 서로 다른 공간에 존재해 직접 비교가 불가능하다는 점. CLIP/BLIP/Flamingo 같은 멀티모달 인코더가 이미지-텍스트 쌍을 함께 학습해 두 모달리티를 같은 벡터 공간으로 정렬. 이후 텍스트 벡터와 이미지 벡터를 직접 비교할 수 있게 됨
벡터 처리 : 여러 모달리티 벡터를 통합하고 검색에 맞게 최적화하는 단계
- 벡터 통합 : 가중치 기반 결합(모달리티별 중요도에 따라 가중 평균), 벡터 연결(두 벡터를 이어붙여 하나의 긴 벡터 생성), 크로스 어텐션 기반 통합(두 모달리티 간 관계를 동적으로 계산) 세 가지 방식 활용
- 벡터 조정 : PCA/MLP로 차원 축소, 정규화(벡터 길이를 1로 통일), 특성 강화(색상 검색이면 색상 관련 차원에 가중치 부여)
- 질의 재구성 : 의미적 쿼리 확장(“캐주얼” → “캐주얼, 일상복, 편안한, 데일리룩”), 벡터+키워드 통합 하이브리드 질의 생성
벡터 검색 : FAISS/Qdrant/Weaviate로 ANN(근사 최근접 이웃) 기반 유사도 검색. 벡터 검색과 키워드 검색을 결합한 하이브리드 검색이 실무에서 일반적. 결과 재랭킹 시 인기도/재고/모달리티별 가중치 조정 적용. 파이프라인 구축에는 LangChain/LlamaIndex, 워크플로우 자동화에는 Apache Airflow 활용