Motivation
- 기존 RAG 구조
Preprocessing: TF-IDF, Embedding 모델로 문서 인덱싱
Runtime: 쿼리를 DB에서 검색 후 LLM이 답변
- 하지만 단순한 벡터 검색으로는 문맥 이해가 부족
- Retreival Methods
- Term-based
- 키워드 일치
- TF-IDF, BM25
- 빠르지만 의미적 유사도 반영 x
- Embedding-based
- 문장 벡터화
- 의미 유사도 고려하지만 계산량 많음
- Generation-based
- LLM이 검색을 생성적으로 수행 (GenRet)
- 새로운 문거 생성 가능하지만 편차가 큼
Introduction
- Information Retrieval ?
- 사용자의 정보 요구에 맞는 문서를 비정형 데이터에서 찾아주는 과정
- e.g: 웹 검색, 이메일 검색, 법률 검색
- IR basic assumption
- 세상에 이미 많은 문서 컬렉션이 존재한다.
- IR은 그중에서 사용자의 Query와 가장 관련성(Relevalance) 높은 문서를 찾아내는 것
- Evalutaion
- Precision
- 검색된 문서 중 실제로 관련 있는 문서 비율
- 10개 검색 중 6개가 실제 관련 = P = 6/10
- Recall
- 전체 관련 문서 중 시스템이 찾아낸 문서 비율
- 전체가 30개일 때 10개 검색 6개 관련 = 6/30
Keyword-based IR
Qustion: Brutas, Caesar but not Calpurnia
- Approach0:
- 직접 문자열 검색
- 문제: 속도, 결과의 맥락 제어
- 한계: 복잡한 검색 불가능
- e.g “romans” near “countrymen” : 두 단어의 거리를 고려할 수 없음
- Approach1: Term-document matrix
- 문서마다 특정 단어를 포함하는지 0,1로 기록한 binary matrix
- 장점: 단순한 boolean 검색 가능, 벡터 계산으로 효율적
- 문제:
- 저장 공간 비효율 (단어 수 x 문서 수)
- 빈도 정보 없음 (몇 번 등장)
- 관련성 점수 계산 불가
- Approach2: Inverted index
- 각 단어마다 어떤 문서에서 등장하는지 찾는 구조
- 각 단어를 key로 해시로 관리하는 딕셔너리 생성
- 장점: 빈도 (TF), 위치 정보 저장 가능, 빠른 검색(메모리 효율성)
- 문제:
- 정확한 단어 요구: (Artificial intelligence vs AI)
- 결과의 수가 불균형: and: 너무 좁음(문서 놓침) or:너무 넓음(문서 과다)
- Jaccard coefficient (Ranked retrieval)
- 두 집합 A,B의 겹치는 정도(overlap)를 0~1 사이 값으로 나타냄 순위화
- 완전 일치 J=1/ 완전 불일치 J=0
- e.g "what a beautiful day”, "what the beautiful date”
J(A,B) = 2/6
- 장점: 계산 간단
- 문제:
- TF 고려 x (단어가 여러 번 등장해도 한번만 계산)
- 문서 길이 고려 x (긴 문서는 교집합이 작아져서 불리)
- 희귀 단어 가중치 없음 (자주 쓰이는 단어 vs 정보량이 많은 단어)
- Query-Document proximity
- 목표: 쿼리와 문서를 같은 벡터 공간에서 표현하고 가까움(proximity)를 계산해 랭킹화
- Euclidean Distance
- 문제:
- 문서 길이 영향 큼 (문서가 길면 벡터 크기도 커져 거리가 멀어짐 → 유사도 왜곡)
- 방향 고려 X
- 단어 빈도 과대 반영 (단어가 많이 반복된 문서가 오히려 멀게 인식 됨)
- Cosine Distance
- 두 벡터의 각도가 작을수록 의미상 유사
- 장점:
- 문서 길이 불변성 (길이 정규화 효과)
- 의미 중심 비교 (방향으로 비교)
- 랭킹 가능 (유사도가 높은 순서로 문서 정렬)
- Okapi BM25
- TF-IDF에 문서 길이 보정과 TF빈도 포화 효과 추가
- TF: 빈도가 증가할수록 점수 증가, 하지만 점점 포화 (영향 제한)
- IDF: 드문 단어일수록 정보량 많음 → 희귀 단어 가중치 ↑
- 문서 길이: 문서 길수록 TF 증가, 패널티로 보정
- 평균 문서 길이: 전체 문서가 짧으면 긴 문서의 점수 감소