Slack을 통해 연락하세요:
PISA는 대규모 문서 모음에서 실행할 수 있는 텍스트 검색 엔진입니다. 이를 통해 연구자는 최첨단 기술을 실험할 수 있어 신속한 개발을 위한 이상적인 환경을 조성할 수 있습니다.
PISA의 일부 기능은 다음과 같습니다.
PISA는 텍스트 검색 엔진이지만 "PISA 프로젝트"는 색인 생성 및 쿼리 처리를 실험하는 데 도움이 되는 도구 세트입니다. 텍스트 컬렉션이 주어지면 PISA는 이 말뭉치에 대해 반전된 색인을 구축하여 말뭉치를 검색할 수 있습니다. 간단히 말해서 역색인은 각 고유 용어에 대한 문서 목록을 저장하여 문서 코퍼스를 나타내는 효율적인 데이터 구조입니다(여기 참조). 쿼리 시 PISA는 빠른 검색을 위해 인덱스를 주 메모리에 저장합니다.
매우 간단히 말해서 PISA는 텍스트 검색 엔진입니다. 예를 들어 Wikipedia와 같은 문서 모음에서 시작하여 PISA는 Wikipedia 컬렉션을 빠르게 검색할 수 있는 역색인 을 구축할 수 있습니다. 가장 기본적인 수준에서는 부울 AND
및 OR
쿼리가 지원됩니다. 검색어 "oolong tea" 와 일치하는 모든 Wikipedia 문서를 찾고 싶다고 가정해 보겠습니다. 부울 연결사( oolong AND
tea )를 실행할 수 있습니다. 대신 oolong 이나 tea (또는 둘 다)가 포함된 문서를 찾는 데 관심이 있을 수 있으며, 이 경우 부울 분리( oolong OR
tea )를 실행할 수 있습니다.
위에서 설명한 것처럼 단순한 부울 일치를 넘어 실제로 문서의 순위를 매길 수 있습니다. 자세히 설명하지 않고도 문서는 용어가 희귀 할수록 해당 단어가 더 중요 하다고 가정하는 기능에 따라 순위가 매겨집니다. 또한 이러한 순위 지정자는 문서에 단어가 더 자주 나타날수록 문서가 해당 단어에 관한 것일 가능성이 더 높다고 가정합니다. 마지막으로 긴 문서에는 더 많은 단어가 포함되어 있으므로 짧은 문서보다 높은 점수를 얻을 가능성이 높으므로 모든 문서가 동일하게 처리되도록 정규화가 수행됩니다. 관심 있는 독자는 TF/IDF Wikipedia 기사를 검토하여 이 순위 지정 방법에 대해 자세히 알아볼 수 있습니다.
예를 들어 이것은 동일한 유형의 검색 grep
아닙니다. 이는 널리 사용되는 Lucene 검색 엔진과 더 밀접하게 관련되어 있지만 현재 Lucene만큼 많은 쿼리 유형을 지원하지는 않습니다. 앞에서 설명한 것처럼 PISA의 주요 기본 데이터 구조는 반전된 인덱스 입니다. 역색인은 각 용어에 대해 해당 용어를 포함하는 문서 목록을 저장합니다. 이러한 목록을 신속하게 탐색하여 쿼리 용어와 일치하는 문서를 찾을 수 있으며, 그런 다음 이러한 문서에 점수를 매기고 순위를 매긴 후 사용자에게 반환할 수 있습니다.
PISA의 주요 사용 사례는 정보 검색(IR) 분야에 대한 이해를 심화하기 위한 실험을 수행하는 것입니다. IR 분야에는 결과 품질(효과성) 향상부터 검색 시스템의 확장성 및 효율성 향상에 이르기까지 다양한 주요 연구 방향이 있습니다. PISA는 주로 IR 연구의 확장성과 효율성 측면에 중점을 두고 있으며 PISA가 "Performant Indexes and Search for Academia"를 의미하는 이유입니다. 간단히 말해서, PISA는 효율적인 검색의 새로운 혁신을 개발하기 위한 플랫폼입니다.
PISA는 실험을 위한 기반이 되는 데 중점을 두고 있지만 단순한 범용 색인 및 검색 시스템으로도 사용하기에 완벽하게 적합합니다.
PISA는 대규모 텍스트 컬렉션을 처리할 수 있습니다. 예를 들어, PISA는 각각 5천만 개 이상의 웹 문서와 500GiB에 가까운 압축 텍스트 데이터를 포함하는 ClueWeb09B 또는 ClueWeb12B 말뭉치를 쉽게 색인화할 수 있으므로 압축 코덱에 따라 10-40GiB 범위의 색인이 생성됩니다. 사용된. 일부 세부 사항에 따라 이러한 인덱스는 약 10~20시간 내에 처음부터 구축할 수 있습니다. 또한 대규모 컬렉션은 대규모 코퍼스를 더 작은 하위 집합(샤드)으로 나누는 인덱스 샤딩을 통해 처리할 수 있습니다. 그러나 PISA는 전적으로 메인 메모리에 있는 인덱스를 기반으로 쿼리를 제공하는 것을 목표로 하는 인메모리 시스템입니다. 따라서 가능한 규모는 메인 메모리에 의해 제한됩니다.
최근 몇 가지 연구에서는 PISA를 벤치마킹했습니다. 예를 들어 ECIR 2019에 등장한 Antonio Mallia, Michal Siedlaczek 및 Torsten Suel의 인덱스 압축 및 DAAT 쿼리 처리 방법에 대한 실험적 연구에서는 PISA가 평균 대기 시간으로 상위 10개 및 상위 1000개 문서를 반환할 수 있음을 보여주었습니다. 5천만 개의 웹 문서가 포함된 컬렉션에서 각각 10~40밀리초 및 20~50 밀리 초의 범위입니다.
PISA는 탄티비(Tantivy)의 검색엔진 벤치마크 게임에도 포함되어 있으며, 탄티비(Tantivy), 루씬(Lucene), 루씬(Rucene)도 경쟁사로 있다.
PISA는 Giuseppe Ottaviano가 시작한 ds2i 프로젝트의 포크입니다. ds2i 프로젝트에는 "Partitioned Elias-Fano" 압축 방법을 포함하여 IR의 여러 중요한 효율성 혁신에 대한 소스 코드가 포함되어 있습니다.
PISA 작업에 관심이 있는 분들은 다음 리소스를 검토해 보시기 바랍니다.
PISA에 참여하고 싶다면 기여 페이지를 확인하세요.
연구 논문에서 PISA를 사용하는 경우 다음 참고 자료를 인용해 주세요.
@inproceedings{MSMS2019,
author = {Antonio Mallia and Michal Siedlaczek and Joel Mackenzie and Torsten Suel},
title = {{PISA:} Performant Indexes and Search for Academia},
booktitle = {Proceedings of the Open-Source {IR} Replicability Challenge co-located
with 42nd International {ACM} {SIGIR} Conference on Research and Development
in Information Retrieval, OSIRRC@SIGIR 2019, Paris, France, July 25,
2019.},
pages = {50--56},
year = {2019},
url = {http://ceur-ws.org/Vol-2409/docker08.pdf}
}