정보 검색 Information Retrieval
- 방대한 양의 비정형 데이터(주로 텍스트 문서) 집합에서 사용자의 정보 요구(Query)에 부합하는 관련성 높은 정보(문서)를 찾아 제공하는 과정 및 기술
- 인터넷, 소셜 미디어 등으로 인해 정보의 양이 폭발적으로 증가하면서 효과적인 정보 접근 방법이 필수
- 텍스트 분석과 자연어 처리 ↔ 정보 검색은 상호 발전 관계
- 활용:
- 웹 검색: Google, Naver 등
- 서비스기업/조직 내 검색: 사내 문서, 자료 관리 및 활용
- 질의응답 시스템 (Question Answering): 발전된 형태의 정보 검색
- 추천 시스템 (Recommender Systems): 사용자의 관심사에 맞는 정보/아이템 제공 (검색과 밀접)
- 검색 증강 생성(RAG): 다음 장
검색 증강 생성 Retrieval Augmented Generation
- 대형언어모델(LLM)은 지식이 제한
- 신규 정보를 빨리 추가하기 어려움(미세 조정 필요)
- 환각(hallucination) 문제: 사실이 아닌 정보를 생성
- 입력할 수 있는 맥락 범위의 한계: 대화에 필요한 모든 정보를 한 번에 입력할 수 없음
- 검색 증강 생성(RAG): 사용자의 질의에 대해 검색을 통해 얻어진 정보를 LLM에 질의와 함께 입력하여 사실적으로 정확한 답변을 제공
정보 검색 시스템의 구성 요소
- 문서 집합 (Document Collection / Corpus): 검색의 대상이 되는 원본 데이터의 모음
- 텍스트 문서, 웹 페이지, 이미지, 영상 등 다양한 형태 가능 (주로 텍스트)
- 예: 웹 문서 전체, 회사 내부 보고서, 논문 DB
- 색인 (Indexing): 검색 속도를 높이기 위해 문서를 미리 가공하여 구조화된 형태로 저장하는 과정
- 역색인 (Inverted Index) 구조가 대표적 (단어 -> 해당 단어가 포함된 문서 목록)
- 예: 책의 '찾아보기' 또는 '색인' 역할
- 질의 (Query): 사용자가 찾는 정보를 표현하기 위해 시스템에 입력하는 질문이나 키워드
- 자연어 형태, 키워드 조합, 불리언 표현 등 다양
- 랭킹 (Ranking): 질의와 문서 집합 내 각 문서의 관련성을 계산하여 점수를 매기는 과정
- 점수가 높은 문서를 사용자에게 우선적으로 보여주기 위해 순서를 결정
- 사용자 인터페이스 (User Interface): 사용자가 질의를 입력하고 검색 결과를 확인하는 화면
- 검색 결과 페이지, 필터링/정렬 옵션 등을 포함
검색 속도의 문제
- 수백억 개의 웹문서 × 문서당 1나노초(=10억분의 1초) ≒ 몇 분
- 문서가 많음 → 느린 저장장치 → 더 느린 검색
인덱스
- 미리 각 단어를 포함하고 있는 문서들을 정리한 인덱싱(index)를 만들어 시간을 절약
- forward 인덱스: 문서 → 단어 방향의 인덱스
- 역(inverted) 인덱스: 단어 → 문서 방향의 인덱스
- 검색 엔진에는 역 인덱스를 사용