BM25 → 신경망 재랭킹 2단계 아키텍처
검색 시스템 설계 시 저는 회수(recall)와 정밀도(precision) 트레이드오프를 단계별로 분리하는 접근을 택합니다. 1단계는 BM25로 후보 500개를 빠르게 추리고, 2단계에서 Cross-Encoder 모델로 상위 50개를 재랭킹합니다. 랭킹 신호로는 텍스트 유사도 외에 클릭률, 최신성, 사용자 선호 히스토리를 피처로 추가했습니다. 지표는 nDCG@10을 주 지표로 삼되, 온라인 실험에서는 CTR과 세션 이탈률을 함께 추적합니다. 이 2단계 구조에서 레이턴시를 50ms 이내로 유지하면서 nDCG +12%를 달성한 경험이 있습니다.
회수와 정밀도를 단계로 분리하는 접근은 운영 중 각 단계를 독립적으로 교체할 수 있어 장기적으로도 유지보수가 수월합니다.