
AI
AI 스타일 검색 1편 : OpenSearch Efficient KNN Filtering 도입기
두줄요약
OpenSearch KNN과 필터 조합에서 결과 누락이 발생한 원인을 쿼리 구조에서 찾았습니다. pre-filtering 기반 Efficient KNN Filtering으로 검색 품질과 지연 시간을 함께 개선했습니다.
문제 상황
- 미리캔버스 AI 스타일 검색에서 수천만 건 요소 중 고객 작업 맥락에 맞는 요소를 추천해야 하는 상황
- 키워드 노이즈 누적과 채택 데이터 부족으로 검색 결과 누락, 관련성 저하, 지연 시간 증가 발생
원인 분석
- 채택 이력만 후보군으로 쓰면 롱테일 영역에서 결과가 비는 문제 발생
- OpenSearch에서 bool filter와 knn 조합이 선 필터가 아니라 후 필터처럼 동작
- Top-K 제한과 ANN 특성으로 필터 적용 시 후보 유실 확대
해결 방법
- HNSW의 ef_construction, ef_search를 조정해 검색 품질과 속도 절충
- filter를 knn 내부로 옮겨 pre-filtering 수행하는 Efficient KNN Filtering 적용
- 메타데이터 조건을 벡터 검색 이전에 적용해 후보군 축소 후 유사도 정렬
성능/운영 포인트
- 검색 레이턴시 80ms에서 10ms로 개선
- 채택률 약 13% 상승
- 동일 패턴의 다른 기능에도 적용해 채택률 40%에서 60%로 상승
