안녕하세요~! 딥롱롱입니다! 오늘은 정보검색 시스템의 이론부터 평가에 대한 내용을 가져와보았습니다! 😁
1. 역색인과 정보검색 기초
정보검색 시스템(Information Retrieval System)은 대량의 문서에서 사용자가 원하는 정보를 빠르고 정확하게 찾아주는 시스템입니다. 현대의 검색 엔진들은 이 기술을 기반으로 작동하고 있습니다.
1.1 색인(Indexing)의 기본 개념
색인은 문서 검색의 효율성을 높이기 위한 전처리 과정입니다. 도서관의 카탈로그와 유사하게, 문서의 내용을 쉽게 찾을 수 있는 형태로 구조화합니다.
색인 과정은 다음과 같은 단계로 이루어집니다:
- 텍스트 추출: 다양한 형식(PDF, DOC, HTML 등)의 문서에서 순수 텍스트를 추출
- 토큰 추출: 텍스트를 의미 있는 단위로 분해
- 불용어 처리: 검색에 불필요한 단어 제거
- 정규화: 단어의 기본형 추출
- 역색인 생성: 검색을 위한 데이터 구조 생성
1.2 역색인(Inverted Index)의 구조
역색인은 단어를 키(key)로 하고, 해당 단어가 등장하는 문서들을 값(value)으로 가지는 데이터 구조입니다.
예시:
단어 : [문서ID, 위치, 빈도]
"인공지능" : [doc1:pos[1,5,8]:freq3, doc4:pos[2]:freq1, ...]
"머신러닝" : [doc2:pos[3]:freq1, doc4:pos[6,9]:freq2, ...]
2. 형태소 분석과 자연어 처리
2.1 형태소 분석의 중요성
한국어는 교착어로서, 하나의 단어가 여러 형태소의 결합으로 이루어집니다. 이러한 특성 때문에 효과적인 검색을 위해서는 형태소 분석이 필수적입니다.
한국어의 주요 특성:
- 조사와 어미가 단어에 붙어서 사용됨
- 복합명사가 빈번하게 출현
- 띄어쓰기가 선택적인 경우가 많음
- 동음이의어와 다의어가 많음
2.2 주요 형태소 분석기
- 은전한닢(Mecab-ko)
- 특징: CRF 기반의 통계적 모델 사용
- 장점: 빠른 처리 속도, 높은 정확도
- 활용: 네이버, 카카오 등 대형 포털에서 사용
- Komoran
- 특징: Java 기반 구현, 사용자 사전 관리 용이
- 장점: 신조어 처리 능력 우수
- 활용: 자바 기반 시스템에서 널리 사용
- 꼬꼬마(KKMA)
- 특징: 세밀한 품사 태깅
- 장점: 복합명사 분해 성능 우수
- 단점: 상대적으로 느린 처리 속도
2.3 형태소 분석의 주요 과제
- 중의성 해소(Word Sense Disambiguation)
- 예: "배가 맛있다" vs "배가 항해한다"
- 해결방안: 문맥 정보 활용, 통계적 방법 적용
- 복합명사 처리
- 예: "정보검색시스템" → "정보/검색/시스템"
- 해결방안: 사전 기반 접근, 통계적 방법 활용
3. 검색 모델의 이론적 기반
3.1 Boolean 모델
가장 기본적인 검색 모델로, 논리 연산자를 사용합니다.
특징:
- AND, OR, NOT 연산 지원
- 이진 가중치 사용
- 순위화가 어려움
수식:
sim(d,q) = 1 if Boolean expression is satisfied
= 0 otherwise
3.2 Vector Space 모델
문서와 질의를 다차원 벡터 공간에서 표현하는 모델입니다.
TF-IDF 가중치 계산:
TF-IDF(t,d) = tf(t,d) × idf(t)
idf(t) = log(N/df(t))
여기서:
tf(t,d): 문서 d에서 단어 t의 빈도
N: 전체 문서 수
df(t): 단어 t가 출현한 문서 수
코사인 유사도 계산:
similarity(d,q) = cos(θ) = (d·q)/(|d|×|q|)
3.3 확률 모델
3.3.1 Binary Independence Model (BIM)
기본적인 확률 검색 모델입니다.
수식:
RSV(d,q) = Σ log((pi(1-ri))/(ri(1-pi)))
여기서:
pi: P(term i appears | relevant)
ri: P(term i appears | non-relevant)
3.3.2 BM25 모델
실제 검색 시스템에서 가장 널리 사용되는 모델입니다.
수식:
BM25(D,Q) = Σ IDF(qi) × ((tf(qi,D) × (k1 + 1))/(tf(qi,D) + k1 × (1 - b + b × |D|/avgdl)))
여기서:
k1: 단어 빈도 상한값 조절 파라미터 (일반적으로 1.2~2.0)
b: 문서 길이 정규화 파라미터 (일반적으로 0.75)
|D|: 문서 길이
avgdl: 평균 문서 길이
3.4 언어 모델
문서를 확률적 언어 생성 모델로 보는 접근 방식입니다.
Query Likelihood Model:
P(Q|D) = Π P(qi|D) for qi in Q
Dirichlet 스무딩:
P(w|D) = (c(w,D) + μP(w|C))/(|D| + μ)
여기서:
μ: 스무딩 파라미터
P(w|C): 전체 컬렉션에서의 단어 확률
4. 문서 품질과 피드백 시스템
4.1 문서 품질 평가 요소
- PageRank
- 웹 그래프 구조를 이용한 중요도 계산
- 수식: PR(A) = (1-d) + d × Σ(PR(Ti)/C(Ti))
- 시간적 신선도(Freshness)
- 로그 기반 감쇠: score = log(1 + 1/age)
- 지수 감쇠: score = exp(-λ × age)
4.2 피드백 시스템
- 명시적 피드백
- 사용자 평가, 별점 등
- 신뢰도는 높지만 수집이 어려움
- 암묵적 피드백
- 클릭률, 체류시간 등
- 수집은 쉽지만 노이즈가 많음
5. 검색 시스템 평가 방법론
5.1 기본 평가 지표
- Precision과 Recall
Precision = TP/(TP + FP)
Recall = TP/(TP + FN)
F1 = 2 × (Precision × Recall)/(Precision + Recall)
- MAP (Mean Average Precision)
AP = Σ(P(k) × rel(k))/관련문서수
MAP = Σ AP/질의수
- NDCG (Normalized Discounted Cumulative Gain)
DCG = rel1 + Σ(reli/log2(i)) (i=2부터 p까지)
NDCG = DCG/IDCG
5.2 사용자 중심 평가
- 클릭률(CTR)
- 이탈률(Bounce Rate)
- 세션 지속시간
- 사용자 만족도 설문
References
[1] Upstage AI Lab 패스트캠퍼스
'Upstage_AILAB > Information Retrieval(FastCampus 정리)' 카테고리의 다른 글
현대 검색 시스템의 진화(IR부터 LLM까지) (4) | 2024.12.09 |
---|