Elasticsearch는 여러분의 사용 사례에 가장 적합한 검색 솔루션을 구축하는 데 도움이 되는 새로운 기능으로 가득 차 있습니다. 최신 검색 AI 경험 구축에 관한 실습형 웨비나에서 이러한 기능을 실제로 활용하는 방법을 배워 보세요. 지금 무료 클라우드 체험을 시작하거나, 내 로컬 기기에서 Elastic을 사용해 볼 수 있습니다.
판단 목록을 만드는 것은 검색 결과 품질을 최적화하는 데 중요한 단계이지만 복잡하고 어려운 작업일 수 있습니다. 판단 목록은 해당 결과에 대한 관련성 등급과 짝을 이루는 큐레이션된 검색어 집합으로, 테스트 컬렉션이라고도 합니다. 이 목록을 사용하여 계산된 메트릭은 검색 엔진의 성능을 측정하는 벤치마크 역할을 합니다. 판단 목록을 만드는 프로세스를 간소화하기 위해 오픈소스 커넥션 팀은 Quepid를 개발했습니다. 판단은 명시적일 수도 있고 사용자의 암묵적인 피드백을 기반으로 할 수도 있습니다. 이 블로그에서는 모든 평가 목록의 기초가 되는 명시적 평가를 효과적으로 수행할 수 있도록 큐피드에서 공동 작업 환경을 설정하는 방법을 안내합니다.
Quepid는 검색 품질 평가 프로세스에서 검색 팀을 지원합니다:
- 쿼리 집합 구축
- 판단 목록 만들기
- 검색 품질 지표 계산
- 계산된 검색 품질 지표를 기반으로 다양한 검색 알고리즘/랭커를 비교하세요.
블로그에서는 영화 대여점을 운영하며 검색 결과 품질을 개선하는 것이 목표라고 가정해 보겠습니다.
필수 구성 요소
이 블로그에서는 es-tmdb 리포지토리의 데이터와 매핑을 사용합니다. 데이터는 영화 데이터베이스에서 가져온 것입니다. 따라 하려면 매핑을 사용하여 tmdb라는 인덱스를 설정하고 데이터를 인덱싱하세요. 이를 위해 로컬 인스턴스를 설정하든 Elastic Cloud 배포를 사용하든 상관없으며 둘 다 잘 작동합니다. 이 블로그에서는 Elastic Cloud 배포를 가정합니다. 데이터 인덱싱 방법에 대한 정보는 es-tmdb 리포지토리의 README에서 찾을 수 있습니다.
제목 필드에서 rocky 에 대한 간단한 일치 쿼리를 수행하여 검색할 데이터가 있는지 확인합니다:
8개의 결과가 표시되어야 합니다.
Quepid에 로그인
Quepid는 사용자가 검색 결과 품질을 측정하고 이를 개선하기 위해 오프라인 실험을 실행할 수 있는 도구입니다.
공개적으로 사용 가능한 무료 호스팅 버전( https://app.quepid.com)을 사용하거나, 두 가지 방법으로 Quepid를 사용할 수 있습니다, 를 클릭하거나 액세스 권한이 있는 컴퓨터에서 Quepid를 설정하세요. 이 게시물은 무료 호스팅 버전을 사용한다고 가정합니다. 사용자 환경에서 Quepid 인스턴스를 설정하려면 설치 가이드를 따르세요.
어떤 설정을 선택하든 아직 계정이 없는 경우 계정을 만들어야 합니다.
Quepid 케이스 설정
Quepid는 "케이스를 중심으로 구성됩니다." 케이스는 연관성 튜닝 설정 및 검색 엔진과의 연결 설정 방법과 함께 쿼리를 저장합니다.
- 처음 사용하는 경우 첫 번째 관련성 사례 만들기를 선택합니다.
- 복귀 사용자는 최상위 메뉴에서 관련성 사례를 선택하고 + 사례 만들기를 클릭할 수 있습니다.
예를 들어, "영화 검색 기준," 기준 검색을 측정하고 개선하려는 경우와 같이 사례의 이름을 설명적으로 지정합니다.

계속을 선택하여 이름을 확인합니다.
다음으로 Quepid에서 검색 엔진으로 연결을 설정합니다. Quepid는 Elasticsearch를 비롯한 다양한 검색 엔진에 연결할 수 있습니다.
구성은 Elasticsearch 및 Quepid 설정에 따라 달라집니다. Quepid를 Elastic Cloud 배포에 연결하려면, Elastic Cloud 배포에 대해 CORS를 활성화 및 구성하고 API 키를 준비해야 합니다. 자세한 지침은 Quepid 문서에 있는 해당 방법에 나와 있습니다.
Elasticsearch 엔드포인트 정보(https://YOUR_ES_HOST:PORT/tmdb/_search)와 연결에 필요한 추가 정보( 고급 구성 옵션의 Elastic Cloud 배포의 경우 API 키)를 입력하고, ping을 클릭하여 연결을 테스트한 후 계속을 선택하여 다음 단계로 이동합니다.

이제 케이스에 표시할 필드를 정의합니다. 나중에 인간 평가자가 특정 쿼리에 대한 문서의 관련성을 평가하는 데 도움이 되는 모든 항목을 선택합니다.
title 을 제목 필드로 설정하고 _id 을 ID 필드로 그대로 둔 다음 overview, tagline, cast, vote_average, thumb:poster_path 을 추가 표시 필드에 추가합니다. 마지막 항목은 결과에서 영화의 작은 썸네일 이미지를 표시하여 우리와 인간 평가자를 시각적으로 안내합니다.
계속 버튼을 선택하여 표시 설정을 확인합니다.

마지막 단계는 케이스에 검색어를 추가하는 것입니다. 입력란에 스타워즈, 해리슨 포드, 최고의 액션 영화라는 세 가지 검색어를 하나씩 추가하고 계속을 클릭합니다.
케이스에는 실제 사용자 쿼리를 나타내고 다양한 유형의 쿼리를 설명하는 쿼리가 포함되어 있는 것이 이상적입니다. 현재로서는 스타워즈는 영화 제목에 대한 모든 쿼리를, 해리슨 포드는 출연진에 대한 모든 쿼리를, 최고의 액션 영화는 특정 장르의 영화를 검색하는 모든 쿼리를 나타내는 쿼리라고 상상할 수 있습니다. 이를 일반적으로 쿼리 집합이라고 합니다.

프로덕션 시나리오에서는 확률 비례 크기 샘플링과 같은 통계 기법을 적용하여 이벤트 추적 데이터에서 쿼리를 샘플링하고, 이렇게 샘플링된 쿼리를 Quepid로 가져와 빈도에 따라 헤드(빈번한 쿼리)와 테일(드문 쿼리)의 쿼리를 포함시킵니다. 즉, 빈번하지 않은 쿼리는 제외하지 않고 빈번한 쿼리에 편향성을 부여합니다.
마지막으로 마침을 선택하면 정의된 세 가지 쿼리가 표시되는 대소문자 인터페이스로 이동합니다.
쿼리 및 정보 요구 사항
판단 목록이라는 중요한 목표에 도달하기 위해서는 인간 평가자가 주어진 쿼리에 대한 검색 결과(일반적으로 문서)를 판단해야 합니다. 이를 쿼리/문서 쌍이라고 합니다.
때로는 쿼리를 보면 사용자가 원하는 것이 무엇인지 쉽게 알 수 있습니다. 쿼리( harrison ford )의 의도는 배우 해리슨 포드가 출연한 영화를 찾는 것입니다. action? 사용자의 의도가 액션 장르에 속하는 영화를 찾는 것이라고 말하고 싶을 수도 있습니다. 하지만 어떤 것일까요? 가장 최근의 것, 가장 인기 있는 것, 사용자 평가에 따른 최고의 것? 아니면 사용자가 '액션'이라는 제목의 모든 영화를 찾고 싶을까요? 영화 데이터베이스에는 '액션'이라는 제목의 영화가 최소 12개(!) 있으며, 제목에 붙은 느낌표의 개수가 주로 다릅니다.
의도가 불분명한 쿼리에 대해 두 사람의 평가자가 해석을 달리할 수 있습니다. 정보 필요를 입력합니다: 정보 욕구란 정보에 대한 의식적 또는 무의식적 욕구를 말합니다. 정보 요구 사항을 정의하면 인간 평가자가 쿼리에 대한 문서를 판단하는 데 도움이 되므로 판단 목록을 작성하는 과정에서 중요한 역할을 합니다. 전문 사용자 또는 주제별 전문가가 정보 요구 사항을 지정하는 데 적합합니다. 검색 결과가 충족해야 하는 것은 사용자의 요구이므로 사용자의 관점에서 정보 요구사항을 정의하는 것이 좋습니다.
'영화 검색 기준' 사례의 쿼리에 필요한 정보입니다:
- 스타워즈: 사용자가 스타워즈 프랜차이즈의 영화나 프로그램을 찾고자 합니다. 스타워즈에 관한 다큐멘터리가 관련성이 있을 수 있습니다.
- 해리슨 포드: 사용자가 배우 해리슨 포드가 출연한 영화를 찾고자 합니다. 해리슨 포드가 내레이터와 같은 다른 역할을 맡은 영화도 관련성이 있을 수 있습니다.
- 최고의 액션 영화: 사용자는 액션 영화, 가급적이면 사용자 평균 투표 수가 높은 영화를 찾고 싶어합니다.
Quepid에서 정보 요구 사항 정의
Quepid에서 정보 요구 사항을 정의하려면 케이스 인터페이스에 액세스하세요:
1. 쿼리(예:스타 워즈)를 열고 메모 토글을선택합니다.
2. 첫 번째 필드에 필요한 정보를 입력하고 두 번째 필드에 추가 메모를 입력합니다:

3. 저장을 클릭합니다.
소수의 쿼리의 경우 이 프로세스를 사용해도 괜찮습니다. 그러나 사례를 3개에서 100개 쿼리로 확장하는 경우(Quepid 사례는 보통 50~100개 쿼리 범위인 경우가 많습니다.) Quepid 외부(예: 스프레드시트)에서 정보 요구 사항을 정의한 다음 가져오기를 통해 업로드하고 정보 요구 사항을 선택해야 할 수 있습니다.
Quepid에서 팀 만들기 및 사례 공유
협업적 판단은 관련성 평가의 품질을 향상시킵니다. 팀을 설정하려면 다음과 같이 하세요:
1. 1. 최상위 메뉴에서 Teams로 이동합니다.

2. 새로 추가를 클릭하고 팀 이름(예: "검색 관련성 평가자")을 입력한 다음 만들기를 클릭합니다.
3. 이메일 주소를 입력하고 사용자 추가를 클릭하여 구성원을 추가합니다.
4. 케이스 인터페이스에서 케이스 공유를 선택합니다.
5. 적절한 팀을 선택하고 확인합니다.
심판의 책 만들기
Quepid의 Book을 사용하면 여러 평가자가 쿼리/문서 쌍을 체계적으로 평가할 수 있습니다. 생성하려면
1. 사건 인터페이스에서 판결로 이동하여 + 책 만들기를 클릭합니다.

2. 설명이 포함된 이름으로 책을 구성하고, 팀에 할당하고, 채점 방법(예: DCG@10)을 선택하고, 채점 전략(단일 또는 복수 채점자)을 설정합니다. 책에 대해 다음 설정을 사용합니다:
- 이름: "영화 검색 0-3 스케일"
- 이 책을 공유할 팀: 만든 팀과 함께 확인란을 선택합니다.
- 득점자: DCG@10
3. 3 . 책 만들기를 클릭합니다 .
이름은 설명적이며 검색 대상('영화')에 대한 정보와 심사 점수('0~3')를 포함합니다. 선택한 점수 DCG@10은 검색 지표가 계산되는 방식을 정의합니다. 'DCG'는 할인 누적 수익의 약자이며 '@10'은 메트릭을 계산할 때 고려되는 상위 결과의 수입니다.
이 경우 정보 획득을 측정하고 이를 포지션 가중치와 결합하는 메트릭을 사용하고 있습니다. 사용 사례에 더 적합한 다른 검색 지표가 있을 수 있으며 올바른 지표를 선택하는 것 자체가 어려운 일입니다.
쿼리/문서 쌍으로 책 채우기
연관성 평가를 위해 쿼리/문서 쌍을 추가하려면 다음 단계를 따르세요:
1. 케이스 인터페이스에서 "판정으로 이동합니다."

2. 생성한 책을 선택합니다.
3. " 책 채우기" 를 클릭하고 "책에 대한 쿼리/문서 쌍 새로 고침을 선택하여 확인합니다."
이 작업은 각 쿼리에 대한 상위 검색 결과를 기반으로 쌍을 생성하여 팀에서 평가할 수 있도록 준비합니다.
인간 평가자 팀이 판단하게 하세요
지금까지 완료된 단계는 상당히 기술적이고 관리적인 작업이었습니다. 이 필수적인 준비가 완료되었으니 이제 심사위원단에게 맡기면 됩니다. 기본적으로 심사위원의 임무는 주어진 쿼리에 대한 특정 문서의 관련성을 평가하는 것입니다. 이 프로세스의 결과는 판정된 쿼리 문서 쌍에 대한 모든 관련성 레이블이 포함된 판정 목록입니다. 다음으로 이 프로세스와 이에 대한 인터페이스에 대해 자세히 설명합니다.
휴먼 평가 인터페이스 개요

Quepid의 인간 평가 인터페이스는 효율적인 평가를 위해 설계되었습니다:
- 쿼리: 검색어를 표시합니다.
- 정보 필요: 사용자의 의도를 표시합니다.
- 채점 가이드라인: 일관된 평가를 위한 지침을 제공합니다.
- 문서 메타데이터: 문서에 대한 관련 세부 정보를 표시합니다.
- 평가 버튼: 평가자가 해당 키보드 단축키를 사용하여 평가를 할당할 수 있습니다.
휴먼 평가 인터페이스 사용
인간 평가자로서 저는 책 개요를 통해 인터페이스에 액세스합니다:
1. 케이스 인터페이스로 이동하여 판결을 클릭합니다.

2. 더 많은 판단이 필요합니다! 를 클릭합니다.
시스템은 아직 평가되지 않았으며 추가 판단이 필요한 쿼리/문서 쌍을 표시합니다. 이는 도서의 선택 전략에 따라 결정됩니다:
- 단일 평가자: 쿼리/문서 쌍당 단일 평가.
- 여러 평가자: 쿼리/문서 쌍당 최대 3개의 평가.
평가 쿼리/문서 쌍
몇 가지 예를 살펴보겠습니다. 이 가이드를 따라가다 보면 다른 영화가 표시될 가능성이 높습니다. 그러나 평점 원칙은 동일하게 유지됩니다.
첫 번째 예는 영화 ' 해리슨 포드'에 대한 쿼리 '히어로즈'입니다:

먼저 쿼리를 살펴본 다음 필요한 정보를 확인한 다음 주어진 메타데이터를 기반으로 영화를 판단합니다.
이 영화는 해리슨 포드가 출연하기 때문에 검색어와 관련된 결과입니다. 주관적으로 최신 영화가 더 관련성이 높다고 생각할 수 있지만 이는 정보 요구 사항의 일부가 아닙니다. 따라서 이 문서의 등급은 3점 만점에 3점인 '완벽'으로 평가합니다.
다음 예는 영화 '포드 대 페라리'에 대한 쿼리 ' 해리슨 포드'입니다:

동일한 관행에 따라 쿼리, 정보 요구 사항, 그리고 문서의 메타데이터가 정보 요구 사항과 얼마나 잘 일치하는지 살펴봄으로써 이 쿼리/문서를 판단합니다.
이는 좋지 않은 결과입니다. 이 결과는 검색어 중 하나인 'ford'가 제목과 일치하기 때문일 수 있습니다. 하지만 해리슨 포드는 이 영화에서 다른 어떤 역할도 맡지 않았습니다. 따라서 이 문서의 등급은 0점인 '미흡'으로 평가합니다.
세 번째 예는 ' 최고의 액션 영화'라는 쿼리에 대한 영화 '액션 잭슨'입니다:

액션 영화처럼 보이므로 정보에 대한 요구는 적어도 부분적으로 충족됩니다. 그러나 투표 평균은 10점 만점에 5.4점입니다. 그래서 이 영화는 저희 컬렉션에서 최고의 액션 영화가 아닐 수도 있습니다. 따라서 심사위원으로서 저는 이 문서를 등급 척도에서 1점인 '보통'으로 평가합니다.
이 예는 특히 쿼리/문서 쌍을 Quepid로 평가하는 프로세스를 높은 수준에서 그리고 일반적으로 설명합니다.
모범 사례 인간 평가자
표시된 예시를 보면 명확한 판단을 내리는 것이 간단해 보일 수 있습니다. 하지만 신뢰할 수 있는 인적 평가 프로그램을 구축하는 것은 쉬운 일이 아닙니다. 이 과정은 데이터의 품질을 쉽게 손상시킬 수 있는 문제들로 가득 차 있습니다:
- 인간 평가자는 반복적인 작업으로 인해 피로를 느낄 수 있습니다.
- 개인적인 취향에 따라 판단이 왜곡될 수 있습니다.
- 도메인 전문 지식의 수준은 판사마다 다릅니다.
- 평가자는 종종 여러 가지 책임을 맡고 있습니다.
- 문서의 인지된 관련성이 쿼리에 대한 실제 관련성과 일치하지 않을 수 있습니다.
이러한 요인으로 인해 일관성이 없고 품질이 낮은 판단이 내려질 수 있습니다. 하지만 걱정하지 마세요. 이러한 문제를 최소화하고 보다 강력하고 신뢰할 수 있는 평가 프로세스를 구축하는 데 도움이 되는 입증된 모범 사례가 있습니다:
- 일관된 평가: 쿼리, 정보 요구 사항, 문서 메타데이터를 순서대로 검토하세요.
- 가이드라인을 참조하십시오: 채점 가이드라인을 사용하여 일관성을 유지하세요. 채점 가이드라인에는 언제 어떤 등급을 적용할지 예시를 들어 심사 과정을 설명할 수 있습니다. 첫 번째 판정 후 인간 평가자들과 체크인하는 것은 까다로운 엣지 사례와 추가 지원이 필요한 부분을 파악하는 데 좋은 관행으로 입증되었습니다.
- 옵션을 활용합니다: 확실하지 않은 경우 "나중에 판단하겠습니다" 또는 "알 수 없음," 필요한 경우 설명을 제공합니다.
- 휴식을 취하세요: 규칙적인 휴식은 판단력을 유지하는 데 도움이 됩니다. 퀘피드는 인간 평가자가 심사를 마칠 때마다 색종이를 터뜨려 규칙적인 휴식을 취하도록 도와줍니다.
이러한 단계를 수행하면 Quepid에서 판단 목록을 만드는 체계적이고 협업적인 접근 방식을 구축하여 검색 연관성 최적화 노력의 효율성을 높일 수 있습니다.
다음 단계
이제 어디로 가야 하나요? 판단 목록은 검색 결과 품질을 개선하기 위한 하나의 기초 단계에 불과합니다. 다음 단계는 다음과 같습니다:
메트릭 계산 및 실험 시작하기
판단 목록을 사용할 수 있게 되면 판단을 활용하고 검색 품질 지표를 계산하는 것은 자연스러운 과정입니다. 판단이 가능한 경우 현재 사례에 대해 구성된 메트릭을 자동으로 계산합니다. 지표는 '채점자'로 구현되며, 지원되는 지표에 원하는 지표가 포함되지 않은 경우 직접 지표를 제공할 수 있습니다!
케이스 인터페이스로 이동하여 득점자 선택으로 이동하고 DCG@10을 선택한 다음 득점자 선택을 클릭하여 확인합니다. 이제 Quepid는 쿼리당 DCG@10을 계산하고 전체 쿼리의 평균을 계산하여 케이스의 검색 결과 품질을 정량화합니다.

이제 검색 결과 품질이 정량화되었으므로 첫 번째 실험을 실행할 수 있습니다. 실험은 가설을 세우는 것에서 시작됩니다. 스크린샷의 세 가지 검색어를 평가한 후 살펴보면 검색 품질 지표 측면에서 세 검색어의 실적이 매우 다르다는 것을 알 수 있습니다. '스타워즈' 는 꽤 잘 수행되고 ' 해리슨 포드 '도 괜찮아 보이지만 가장 큰 잠재력은 ' 최고의 액션 영화'에 있습니다.
이 쿼리를 확장하면 결과를 확인할 수 있으며, 문서가 일치하는 이유와 점수에 영향을 미치는 요인을 자세히 살펴볼 수 있습니다:

"쿼리 설명"을 클릭하고 "구문 분석" 탭에 들어가면 쿼리가 캐스팅, 개요 및 제목의 세 가지 필드에서 검색하는 DisjunctionMaxxQuery임을 확인할 수 있습니다:

일반적으로 검색 엔지니어는 검색 플랫폼에 대한 몇 가지 도메인별 정보를 알고 있습니다. 이 경우 장르 필드가 있다는 것을 알 수 있습니다. 이를 쿼리에 추가하여 검색 품질이 개선되는지 확인해 보겠습니다.
케이스 인터페이스에서 관련성 조정을 선택하면 열리는 쿼리 샌드박스를 사용합니다. 검색하는 장르 필드를 추가하여 탐색해 보세요:
내 검색 다시 실행을 클릭하세요! 그리고 결과를 확인합니다. 변경되었나요? 안타깝게도 그렇지 않습니다. 이제 탐색할 수 있는 옵션이 많아졌습니다. 기본적으로 Elasticsearch가 제공하는 모든 쿼리 옵션이 있습니다:
- 장르 필드의 필드 가중치를 높일 수 있습니다.
- 투표 평균에 따라 문서 등급을 높이는 기능을 추가할 수 있습니다.
- 장르가 많이 일치하는 경우에만 투표 평균에 따라 문서를 끌어올리는 더 복잡한 쿼리를 만들 수 있습니다.
- …
이러한 모든 옵션을 Quepid에서 탐색할 때 가장 좋은 점은 개선하려는 하나의 쿼리뿐만 아니라 모든 쿼리에 대한 효과를 정량화할 수 있다는 점입니다. 따라서 실적이 저조한 하나의 검색어를 개선하기 위해 다른 검색어의 검색 결과 품질을 희생할 수 없습니다. 빠르고 저렴하게 반복하고 위험 부담 없이 가설의 가치를 검증할 수 있으므로 오프라인 실험은 모든 검색 팀의 기본 역량으로 자리 잡았습니다.
평가자 간 신뢰도 측정
작업 설명, 정보 요구 사항, Quepid가 제공하는 것과 같은 인간 평가자 인터페이스가 있어도 인간 평가자는 동의하지 않을 수 있습니다.
의견 불일치 자체가 나쁜 것은 아니며, 오히려 의견 불일치를 측정하면 해결해야 할 문제가 드러날 수 있습니다. 관련성은 주관적일 수 있고, 쿼리가 모호할 수 있으며, 데이터가 불완전하거나 부정확할 수 있습니다. Fleiss의 카파는 평가자 간의 합의에 대한 통계적 척도이며, Quepid에 사용할 수 있는 예제 노트북이 있습니다. 찾으려면 최상위 탐색 메뉴에서 노트북을 선택하고 예제 폴더에서 Fleiss Kappa.ipynb 노트북을 선택합니다.

결론
가장 복잡한 검색 연관성 문제도 해결할 수 있도록 지원하고 계속 발전하고 있습니다. 버전 8부터는 판단 생성 프로세스를 확장하려는 팀에게 특히 유용한 AI 생성 판단을 지원합니다.
Quepid 워크플로우를 사용하면 확장 가능한 판단 목록을 효율적으로 생성하여 궁극적으로 사용자의 요구를 진정으로 충족하는 검색 결과를 얻을 수 있습니다. 판단 목록을 설정하면 검색 관련성을 측정하고, 개선 사항을 반복하며, 더 나은 사용자 경험을 제공하기 위한 강력한 기반을 마련할 수 있습니다.
앞으로 나아가면서 관련성 튜닝은 지속적인 과정이라는 점을 기억하세요. 판단 목록을 사용하면 진행 상황을 체계적으로 평가할 수 있지만, 실험, 메트릭 분석 및 반복적인 개선과 함께 사용할 때 가장 강력한 효과를 발휘합니다.
추가 읽기
- Quepid 문서:
- 퀘피드 깃허브 리포지토리
- 이커머스 검색 개선에 관한 블로그 시리즈, Pete를 만나보세요.
- 관련성 슬랙: #quepid 채널 가입하기
오픈 소스 커넥션과 협력하여 검색 및 AI 기능을 혁신하고 팀이 이를 지속적으로 발전시킬 수 있도록 역량을 강화하세요. 전 세계 고객들이 검색 품질, 팀 역량, 비즈니스 성과에서 지속적으로 획기적인 개선을 달성하며 입증된 실적을 보유하고 있습니다. 자세한 내용은 지금 바로 문의하세요.




