TREC
고친 사람 github-actions[bot]
TREC 은 여러 검색 시스템을 같은 시험지로 채점해서 비교하게 해 주는 평가 대회입니다. 미국 국립표준기술연구소가 해마다 엽니다. 대회가 끝나도 시험지와 정답 판정이 남습니다. 그래서 나중에 온 연구자도 같은 시험을 다시 치를 수 있습니다.
쉽고 빠른 이해
무슨 일을 하나 — 검색 시스템들에게 같은 글 더미와 같은 질문을 나눠 줍니다. 각 시스템이 찾아낸 글 목록을 같은 잣대로 채점합니다. 「전기차 배터리 재활용」을 찾는 질문에 팀마다 목록을 내면, 그 목록이 얼마나 맞았는지 점수가 나옵니다.
왜 필요한가 — 검색에는 정답이 하나로 정해져 있지 않습니다. 저마다 다른 글과 다른 질문으로 시험하면 누구의 방법이 나은지 견줄 수 없습니다.
어떻게 도나
- 주최 측이 글 더미와 질문 묶음을 참가팀에게 나눠 줍니다
- 참가팀은 질문마다 찾아낸 글을 순서대로 적어 냅니다
- 주최 측이 결과를 모아 사람에게 맞았는지 판정을 받고 점수를 매깁니다
대가 — 사람이 글을 전부 읽을 수는 없어서 일부만 판정합니다. 판정을 못 받은 글 가운데 맞는 글이 숨어 있을 수 있습니다. 대회의 글은 신문 기사 같은 공개된 글이라서 내 서비스의 글과 성격이 다를 수 있습니다.
언제 쓰나 — 검색 방법을 바꿨을 때 남과 같은 잣대로 비교하는 데 씁니다. 내 서비스에서 얼마나 잘 찾는지는 따로 재야 합니다.
상세
이 절은 TREC 이 왜 필요한지, 무엇을 나눠 주고 어떻게 채점하는지를 봅니다.
학교마다 자기 시험지로 시험을 치르면 90점끼리도 견줄 수 없습니다. 어느 학교 시험이 쉬웠는지 모르기 때문입니다. 전국 모의고사는 같은 날 같은 시험지를 나눠 주고 같은 기준으로 채점합니다. 그래야 점수가 같은 잣대가 됩니다.
TREC(Text REtrieval Conference, 텍스트 검색 컨퍼런스)은 검색 시스템이 치르는 모의고사입니다. 여기서 검색은 많은 글 가운데 사람이 찾는 글을 골라 순서대로 내주는 일입니다. 웹 검색 엔진이나 사내 문서 검색이 그런 일을 합니다.
TREC 은 NIST(National Institute of Standards and Technology, 미국 국립표준기술연구소)가 주관하고 미국 국방부가 함께 후원합니다. 1992년에 시작해 해마다 열립니다. 대학과 기업과 정부 기관이 같은 시험을 치르고 결과를 나누는 공개 마당이 되는 것이 목표입니다.
정답이 하나가 아닌 시험
데이터베이스에서 주문 번호로 행을 찾으면 맞는 행이 하나로 정해져 있습니다. 검색은 다릅니다. 「전기차 배터리 재활용」을 찾는 사람에게 어떤 글이 쓸모 있는지는 사람이 읽어 봐야 압니다.
적합성은 글이 사람이 찾던 것인지 아닌지를 가리킵니다. 적합성은 글을 읽고 판정하는 사람(판정자)이 정합니다. 그래서 검색 방법끼리 비교하려면 글과 질문뿐 아니라 판정자의 판정까지 모두 같아야 합니다.
이런 시험지를 처음 세운 것은 1960년대 영국의 Cranfield 실험입니다. 글 더미 · 질문 · 판정 세 가지로 채점하는 방식이 여기서 나왔습니다. 다만 그때의 글 더미는 천여 건으로 작았습니다. TREC 은 같은 방식을 훨씬 큰 글 더미로 키웠습니다.
시험지를 이루는 세 가지
TREC 이 참가팀에게 나눠 주는 시험지 묶음이 테스트 컬렉션입니다. 같은 테스트 컬렉션으로 채점한 점수라야 서로 비교할 수 있습니다.
검색하는 사람은 마음속에 「이런 걸 알고 싶다」를 품고 있습니다. 이것을 정보 요구라고 합니다. 검색창에 치는 몇 낱말은 이 정보 요구를 짧게 줄인 것일 뿐입니다.
TREC 은 정보 요구를 풀어 적은 글을 주제(topic)라고 부릅니다. 대회에서 질문 하나가 주제 하나입니다. 그래서 주제는 검색어 몇 낱말보다 훨씬 깁니다.
| 구성 | 무엇인가 | 왜 필요한가 |
|---|---|---|
| 문서 모음 | 검색 대상이 되는 글 더미. 신문 기사처럼 공개된 글 | 모두가 같은 글 더미에서 찾아야 결과를 비교할 수 있다 |
| 주제 | 정보 요구를 적은 글. 짧은 제목과 풀어 쓴 설명이 붙는다 | 검색어만으로는 무엇이 맞는 글인지 판정자가 알 수 없다 |
| 적합성 판정 | 주제마다 어느 문서가 맞고 어느 문서가 틀렸는지 적은 목록 | 이 목록이 있어야 사람 없이 다시 채점할 수 있다 |
표에서 주제가 왜 긴 글인지 예를 하나 봅니다. 제목은 「전기차 배터리 재활용」 세 낱말입니다. 설명에는 「재활용 공정을 다룬 글은 맞다. 판매량만 다룬 글은 맞지 않다」 같은 판정 기준이 적힙니다. 참가 시스템은 제목이나 설명을 받아 검색어로 씁니다.
한 해 대회의 흐름
대회 한 번에는 주체가 셋 나옵니다. 주최하는 NIST, 시스템을 내는 참가팀, 문서를 읽고 판정하는 판정자입니다.
대회는 NIST 가 문서 모음과 주제를 나눠 주는 데서 시작합니다. 참가팀은 자기 시스템으로 주제마다 문서 순위 목록을 만들어 냅니다. 이 결과 한 벌이 런(run)입니다.
NIST 는 모든 팀의 런을 모아 판정할 문서를 추립니다. 판정자가 그 문서를 읽고 맞는지 판정합니다. 그 판정으로 매긴 점수가 참가팀에 돌아갑니다. 한 해의 끝에는 워크숍을 열어 참가팀이 결과와 경험을 나눕니다.
sequenceDiagram
participant N as NIST
participant T as 참가팀
participant J as 판정자
N->>T: 문서 모음과 주제
T->>N: 런 · 주제마다 문서 순위 목록
Note over N: 런을 모아 판정할 문서를 추린다
N->>J: 추린 문서
J-->>N: 맞다 · 틀리다 판정
N-->>T: 점수
Note over N,T: 워크숍에서 결과를 나눈다
판정할 문서를 추리는 풀링
문서 모음에는 문서가 너무 많습니다. 판정자가 주제마다 문서를 전부 읽을 수는 없습니다. 그래서 TREC 은 읽을 문서를 먼저 추립니다.
추리는 법은 이렇습니다. 각 런에서 위쪽 k등까지만 가져옵니다. k 는 대회마다 정하는 등수입니다. 여러 런에 겹쳐 나온 문서는 하나로 칩니다.
이렇게 모은 묶음을 판정 풀이라고 부릅니다. 판정 풀을 모으는 이 방법이 풀링입니다.
판정 풀 밖의 문서는 아무도 읽지 않았으니 틀린 문서로 칩니다. 여러 시스템이 저마다 다른 방법으로 찾았으니, 맞는 문서라면 대개 어느 런의 위쪽에는 걸렸으리라고 보는 것입니다.
flowchart TD
D["문서 모음"] --> A["팀 A 의 런"]
D --> B["팀 B 의 런"]
D --> C["팀 C 의 런"]
A -->|"위쪽 k등"| P["판정 풀 · 겹친 문서는 하나로"]
B -->|"위쪽 k등"| P
C -->|"위쪽 k등"| P
P --> J["판정자가 읽고 판정"]
D -->|"나머지"| R["판정 풀 밖의 문서 · 어느 런의 위쪽 k등에도 못 든 것"]
R --> X["읽지 않고 틀린 문서로 친다"]
대가도 여기서 나옵니다. 판정 풀에 못 든 맞는 문서가 있으면, 그 문서를 찾아낸 시스템은 점수를 못 받습니다. 대회 뒤에 나온 새 방법이 남들과 아주 다른 문서를 찾으면 이 손해를 보기 쉽습니다.
과제마다 나뉜 트랙
TREC 은 한 해에 과제를 여러 개 엽니다. 이 과제 하나하나가 트랙입니다. 트랙마다 문서 모음과 주제와 채점 방법이 따로 있습니다.
글 더미에서 문서를 찾는 기본 과제 말고도 여러 트랙이 열렸습니다. 질문에 답 자체를 내는 질의응답, 다른 언어로 쓴 글을 찾는 교차 언어 검색, 음성 검색과 동영상 검색이 그 예입니다.
대회가 끝난 뒤에 남는 테스트 컬렉션
대회가 끝나면 문서 모음과 주제와 적합성 판정이 테스트 컬렉션으로 남습니다. 연구자는 이것을 받아 새 검색 방법을 언제든 채점합니다. 판정자를 다시 부를 필요가 없습니다. 판정 목록과 자기 결과를 맞대 보면 점수가 나옵니다.
점수는 몇 가지 지표로 냅니다. 한 장면으로 봅니다. 어떤 주제에 맞는 문서가 문서 모음에 모두 여섯 건 있습니다. 시스템이 열 건을 냈고, 그 가운데 세 건이 맞았습니다.
정밀도는 낸 문서 가운데 맞은 문서의 비율입니다. 열 건 중 세 건이 맞았으니 정밀도는 30퍼센트입니다. 엉뚱한 문서를 많이 섞어 낼수록 떨어집니다.
재현율은 맞는 문서 가운데 찾아낸 문서의 비율입니다. 여섯 건 중 세 건을 찾았으니 재현율은 50퍼센트입니다. 맞는 문서를 많이 놓칠수록 떨어집니다.
두 지표는 목록의 순서를 보지 않습니다. 맞는 문서가 목록 위쪽에 몰렸는지는 평균 정밀도 같은 순위 지표가 따로 봅니다.
TREC 컬렉션은 검색 쪽의 테스트 세트입니다. 테스트 세트는 머신러닝에서 다 만든 프로그램을 마지막에 채점하려고 떼어 둔 데이터입니다. 다른 점은 TREC 컬렉션이 여럿이 나눠 쓰는 공개 시험지라는 것입니다.
서비스 검색과 TREC 점수의 거리
TREC 컬렉션은 순위를 매기는 방법을 바꿨을 때 남과 같은 잣대로 비교하는 데 씁니다. 논문이 「이 방법이 낫다」를 보일 때 흔히 TREC 컬렉션의 점수를 댑니다.
그 점수가 내 서비스의 성능까지 말해 주지는 않습니다. 대회의 문서는 신문 기사 같은 공개된 글입니다. 주제도 대회가 정한 것입니다.
쇼핑몰 상품 검색은 사정이 다릅니다. 문서는 상품명과 가격 같은 짧은 항목입니다. 질문도 「무선 이어폰」처럼 두세 낱말입니다. 그럴 때는 자기 서비스에 들어온 검색어와 문서로 같은 방식의 컬렉션을 직접 만들어 채점합니다.
같은 컬렉션으로 오래 시험하면 그 컬렉션에만 잘 맞는 방법이 나오기 쉽습니다. 시험지를 거듭 들여다보며 방법을 고르면 새 문제에서는 점수가 떨어집니다. 이것을 과적합이라고 부릅니다.
관련 항목
TREC 시험지를 이루는 구성 요소
테스트 컬렉션 · 정보 요구 · 적합성 · 적합성 판정 · 질의 · 풀링 (검색 평가) · 판정 풀
TREC 이 결과를 재는 지표
정밀도 · 재현율 · 정밀도와 재현율 · 평균 정밀도 · nDCG · 상위 k 정밀도
TREC 과 같은 방식을 따르는 평가 대회와 데이터셋
Cranfield 실험 · CLEF · NTCIR · MS MARCO · BEIR · ILSVRC
TREC 이 열어 온 트랙
애드혹 검색 · 질의응답 · 교차 언어 검색 · 음성 검색 · 동영상 검색
TREC 점수로 비교해 온 순위 방법
BM25 · Okapi · 순위 모델 · 역문서 빈도 · 랭킹
TREC 점수를 흐리는 문제
TREC 이 속하는 분야와 주관 기관
다른 이름: Text REtrieval Conference · 텍스트 검색 컨퍼런스 · TREC 대회