Elasticsearch는 여러분의 사용 사례에 가장 적합한 검색 솔루션을 구축하는 데 도움이 되는 새로운 기능으로 가득 차 있습니다. 최신 검색 AI 경험 구축에 관한 실습형 웨비나에서 이러한 기능을 실제로 활용하는 방법을 배워 보세요. 지금 무료 클라우드 체험을 시작하거나, 내 로컬 기기에서 Elastic을 사용해 볼 수 있습니다.
이전 블로그 게시물에서 복잡한 랭킹 파이프라인을 생성할 수 있도록 처음부터 다시 설계된 검색어 프레임워크를 소개했습니다. 또한 상호 순위 융합(RRF) 검색기가 서로 다른 쿼리의 결과를 병합하여 하이브리드 검색을 가능하게 하는 방법도 살펴봤습니다. RRF는 구현하기 쉽지만, 실제 점수를 무시하고 순전히 상대적인 순위에만 초점을 맞춘다는 한계가 있습니다. 따라서 미세 조정과 최적화가 어렵습니다.
리니어 리트리버를 만나보세요!
이 게시물에서는 하이브리드 검색을 지원하는 최신 기능인 linear 리트리버를 소개합니다! rrf 과 달리 linear 검색기는 문서와 일치하는 모든 쿼리에 대해 가중 합계를 계산합니다. 이 접근 방식은 결과 집합 내에서 각 문서의 상대적 중요도를 유지하면서 각 쿼리가 최종 점수에 미치는 영향을 정밀하게 제어할 수 있습니다. 그 결과, 하이브리드 검색을 보다 직관적이고 유연하게 미세 조정할 수 있는 방법을 제공합니다.
최종 점수가 계산될 리니어 리트리버를 정의합니다:
간단합니다:
얼마나 간단하고 직관적인지 아시나요? (그리고 rrf 와 정말 비슷합니다!) 이 구성을 사용하면 상대 순위에만 의존하는 rrf 과 달리 각 쿼리 유형이 최종 순위에 기여하는 정도를 정밀하게 제어할 수 있습니다.
한 가지 주의할 점은 사용된 유사성 측정지표에 따라 knn 점수가 엄격하게 제한될 수 있다는 점입니다. 예를 들어 코사인 유사도 또는 단위 정규화된 벡터의 도트 곱을 사용하면 점수는 항상 [0, 1] 범위 내에 있습니다. 반면 bm25 점수는 예측 가능성이 낮고 범위가 명확하게 정의되어 있지 않습니다.
점수 확장: kNN 대 BM25
하이브리드 검색의 한 가지 문제점은 검색기마다 다른 척도로 점수를 산출한다는 점입니다. 예를 들어 다음 시나리오를 생각해 보세요:
쿼리 A 점수:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 100 | 1.5 | 1 | 0.5 |
쿼리 B 점수:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 0.63 | 0.01 | 0.3 | 0.4 |
kNN 점수는 0에서 1 사이의 범위인 반면 bm25 점수는 매우 다양합니다. 이러한 차이로 인해 결과 결합을 위한 정적 최적 가중치를 설정하기가 까다롭습니다.
구원의 정규화: MinMax 정규화 도구
이 문제를 해결하기 위해 다음 공식을 사용하여 각 쿼리에 대해 독립적으로 점수를 [0, 1] 범위로 확장하는 minmax 정규화기(선택 사항)를 도입했습니다:
이렇게 하면 쿼리 결과 집합 내에서 각 문서의 상대적 중요도가 유지되므로 서로 다른 검색기의 점수를 쉽게 결합할 수 있습니다. 정규화를 사용하면 점수는 다음과 같이 됩니다:
쿼리 A 점수:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1.00 | 0.01 | 0.005 | 0.000 |
쿼리 B 점수:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1.00 | 0.000 | 0.465 | 0.645 |
이제 모든 점수는 [0, 1] 범위에 속하며, 절대 점수 대신 결과의 (쿼리 대비) 중요도를 파악하고 쿼리 간 일관성을 유지하므로 가중치 합계를 최적화하는 것이 훨씬 더 간단해졌습니다.
리니어 리트리버 예시
이제 예제를 통해 위의 내용이 어떻게 보이는지, linear 리트리버가 rrf 의 몇 가지 단점을 어떻게 해결하는지 살펴보도록 하겠습니다. RRF는 상대적인 순위에만 의존하며 실제 점수 차이는 고려하지 않습니다. 예를 들어 다음과 같은 점수가 주어집니다:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 100 | 1.5 | 1 | 0.5 |
| RRF 점수 | 0.03226 | 0.03252 | 0.03200 | 0.03125 |
rrf는 문서의 순위를 매깁니다:
그러나 doc1은 다른 문서보다 bm25 점수가 훨씬 높은데, rrf 은 상대적인 순위만 보기 때문에 이를 포착하지 못합니다. 정규화와 결합된 linear 리트리버는 점수와 그 차이를 모두 정확하게 설명하여 보다 의미 있는 순위를 생성합니다:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1 | 0.01 | 0.005 | 0 |
위에서 볼 수 있듯이 doc1의 높은 순위와 score 의 bm25 이 적절히 고려되어 최종 점수에 반영되었습니다. 또한 모든 점수는 이제 [0, 1] 범위 내에 있으므로 훨씬 더 직관적인 방식으로 비교하고 결합할 수 있으며 오프라인 최적화 프로세스도 구축할 수 있습니다.
모든 것을 종합하기
정규화를 통해 linear 검색기를 최대한 활용하려면 검색 요청은 다음과 같이 표시되어야 합니다:
이 접근 방식은 linear 리트리버의 유연성과 직관적인 채점 방식을 유지하면서 MinMax 정규화를 통해 일관된 점수 확장을 보장하는 두 가지 장점을 결합한 것입니다.
모든 리트리버와 마찬가지로 linear 리트리버는 설명 기능, 일치 항목 강조 표시, 필드 축소 등을 지원하여 계층적 리트리버 트리의 모든 레벨에 통합할 수 있습니다.
리니어 리트리버를 선택해야 하는 시기 및 리니어 리트리버가 차이를 만드는 이유
linear 리트리버:
- 단순한 순위가 아닌 실제 점수를 활용하여 상대적 중요도를 유지합니다.
- 다양한 쿼리의 가중치 기여도를 사용하여 미세 조정할 수 있습니다.
- 정규화를 사용하여 일관성을 향상시켜 하이브리드 검색을 더욱 강력하고 예측 가능하게 만듭니다.
결론
linear 리트리버는 이미 Elasticsearch 서버리스와 8.18 및 9.0 릴리즈에서 사용할 수 있습니다! 더 많은 예제와 구성 매개변수는 문서에서도 확인할 수 있습니다. 직접 사용해보고 하이브리드 검색 환경을 개선하는 방법을 알아보세요. 여러분의 피드백을 기다리겠습니다. 즐거운 검색 되세요!
자주 묻는 질문
리니어 리트리버는 이전의 상호 순위 융합(RRF) 방식에 비해 하이브리드 검색을 어떻게 개선하나요?
리니어 리트리버는 하이브리드 검색에서 RRF에 비해 몇 가지 장점을 제공합니다. RRF는 상대적 순위에만 초점을 맞추고 실제 점수는 무시하는 반면, 선형 검색기는 쿼리 전체에 가중 합계를 계산하여 각 문서의 상대적 중요도를 유지합니다. 이 접근 방식을 사용하면 다양한 쿼리 유형이 최종 순위에 기여하는 방식을 보다 정밀하게 제어할 수 있습니다. 또한 선형 검색기는 MinMax와 같은 정규화 기술을 지원하므로 여러 검색기의 점수를 결합하고 최종 검색 결과를 최적화하는 것이 더 쉬워집니다. 이러한 유연성과 제어 기능은 보다 직관적이고 세밀하게 조정된 하이브리드 검색 환경을 제공합니다.




