IR: 정보 검색(Information Retreival)은 대규모 컬렉션(일반적으로 컴퓨터에 저장) 내에서 정보 요구를 충족하는 비정형적인 특성(일반적으로 텍스트)의 자료(일반적으로 문서)를 찾는 것
IR은 규모에 따라 3가지로 나눌 수 있음
web search
personal infromation retreival
enterprise, institutional, and domain-specific search
1.1 An example information retrieval problem
셰익스피어의 작품 중 특정 단어는 포함하고, 특정 단어는 포함하지 않는 작품을 고르는건 정렬을 이용해서 해결할 수 있음 (정렬해서 확인하면 됨)
문서가 빠르게 급증하는 상황, 유연한 매칭 (특정 단어가 아니라, 특정 단어가 또 다른 단어 주변에 있는 경우 등)이 필요한 경우, 랭킹이 필요한 경우 등은 정렬이 아닌 무언가가 더 필요
각 쿼리마다 텍스트를 순차적으로 스캔하는 것을 피하기 위한 방법 중 하나가 문서를 사전에 색인 (index) 하는 것
위의 예시 (셰익스피어) 에서 instance matrix를 만든다면 110100 AND 110111 AND 101111 = 100100 연산을 통해 Brutus와 Caesar는 포함하고, Calpurnia는 포함하지 않는 문서 (작품)을 찾을 수 있음
Boolean retrieval model
Document: 검색 시스템을 구축하기로 결정한 모든 단위 (책의 개별 메모 혹은 챕터 등을 의미할 수 있음)
Collection: 검색을 수행하는 문서 (document) 그룹 (corpuse 라고도 함)
Ad hoc retrieval: 가장 대표적인 IR task. user information need 와 관련된 컬렉션 내의 문서를 제공하는 것이 목표
Information need: 사용자가 더 알고 싶어하는 주제 ( != query)
Query: 사용자가 information need 를 전달하기 위해 컴퓨터에 전달하는 것
사용자가 information need 와 관련하여 가치 있는 정보를 포함하는 것으로 판단하는 문서를 relevant 하다고 함.
일반적으로 사용자는 "pipeline leak"와 같은 주제에 관심이 있고 해당 단어를 정확하게 사용하는지 또는 다른 단어로 개념을 표현하는지에 관계없이 관련 문서를 찾고자 함
검색 결과의 품질을 평가하기 위해 precision, recall
Precision: 검색 결과 중 infromation need와 관련된 비중
Recall: 컬렉션의 관련 문서 중 검색 결과에 포함된 정도 (검색 시스템에 의해 리턴된 정도)
instance matrix는 너무 sparse 함 (용량 ↑) -> 발생한 것들만 기록하자! inverted matrix
inverted matrix: dictionary를 유지하고, 각 term이 발생한 documents를 기록
1.2 A first take at building an inverted index
1.3 Processing Boolean queries
Brutus AND Calpurnia
inverted index 에서 Brutus를 포함한 문서 리스트 (postings list) 를 찾고, Calpurnia를 포함한 문서 리스트 (postings list) 를 찾아서 intersection 연산
연산량을 줄이기 위해서 Query optimization 필요
Brutus AND Caesar AND Calpurnia -> (Calpurnia AND Brutus) AND Caesar
가장 작은 postings list 두 개를 intersection 하는 것부터 시작한다면, 모든 중간 결과는 가장 작은 postings list 보다 작을 것임
document frequency가 증가하는 순으로 문서 처리하기
많은 경우 쿼리는 conjunctive (접속사로만 이루어진다.) ?? -> 이 경우, postings lists merge를 두 개의 입력과 뚜렷한 출력이 있는 함수로 보기보다는 검색된 각 postings lists를 메모리의 현재 중간 결과와 intersection 하여, 가장 빈도가 낮은 용어의 게시글 목록을 로드하여 중간 결과를 초기화하는 것이 더 효율적
중간 results list는 메모리에 있는 반면 교집합이 되는 list는 디스크에서, 중간 results list는 항상 적어도 다른 list만큼 짧음 (보통은 훨씬 . 더짧음)
1.4 The extended Boolean model versus ranked retrieval
1990대 초반까지는 boolean model을 사용함
strict boolean operation은 너무 제적이라 term proximity operators와 같은 추가 연산을 추가하여 extended Boolean retrieval models을 구현
proximity operators: 쿼리 내의 두 term이 문서에 가깝게 존재해야함을 정하는 방법으로 closeness는 두 term 사이에 존재해도 되는 단어 개수를 제한하거나, 문장이나 문단같은 구조적 단위를 참고해서 정해짐.