LTR 검색
원본 보기LTR 검색
참고
이 기능은 8.12.0 버전에서 도입되었으며 특정 구독 등급에서만 사용할 수 있습니다. 자세한 내용은 Elastic 자체 관리형 구독을 참조하세요.
LTR 모델을 학습시켜 Elasticsearch에 배포하고 나면, 검색 API와 함께 사용해 검색 결과를 개선하는 방법은 두 가지입니다:
LTR 모델을 검색 API에서 rescorer로 사용하려면 다음 예제를 따르세요:
GET my-index/_search
{
"query": {
"multi_match": {
"fields": ["title", "content"],
"query": "the quick brown fox"
}
},
"rescore": {
"learning_to_rank": {
"model_id": "ltr-model",
"params": {
"query_text": "the quick brown fox"
}
},
"window_size": 100
}
}
- 재점수화할 문서를 제공하는 1차 쿼리입니다.
- Elasticsearch에 업로드된 학습 모델의 고유 식별자입니다.
- 피처에 사용되는 쿼리 템플릿에 전달할 명명된 파라미터입니다.
- 각 샤드에서 rescorer가 검사해야 하는 문서 수입니다.
LTR 모델은 검색 파이프라인에서 retriever로도 사용할 수 있습니다. 다음 예제와 같이 rescorer retriever로 구현할 수 있습니다:
GET my-index/_search
{
"retriever": {
"rescorer": {
"rescore": {
"window_size": 100,
"learning_to_rank": {
"model_id": "ltr-model",
"params": {
"query_text": "the quick brown fox"
}
}
},
"retrievers": [
{
"standard": {
"query": {
"multi_match": {
"fields": ["title", "content"],
"query": "the quick brown fox"
}
}
}
}
]
}
}
}
- 재점수화할 문서를 가져오는 데 사용되는 1차 retriever입니다
- Elasticsearch에 업로드된 학습 모델의 고유 식별자입니다.
- 피처 추출에 사용되는 쿼리 템플릿에 전달할 명명된 파라미터입니다.
- rescorer가 검사해야 하는 문서 수입니다.
LTR 모델이 반환하는 점수는 일반적으로 1차 쿼리가 산출한 점수와 비교할 수 없으며, 재점수화하지 않은 점수보다 낮을 수 있습니다. 이로 인해 재점수화되지 않은 결과 문서가 재점수화된 문서보다 상위에 랭크될 수 있습니다. 이를 방지하기 위해 LTR rescorer에서는 window_size 파라미터가 필수이며, from + size 이상이어야 합니다.
사용자에게 페이지네이션을 노출할 때는 서로 다른 from 값을 전달하며 각 페이지를 이동하는 동안 window_size가 일정하게 유지되어야 합니다. window_size를 변경하면 상위 히트가 달라져 사용자가 페이지를 넘길 때 결과가 혼란스럽게 바뀔 수 있습니다.