Information Retrieval 3주차 - 모델링 및 결과 도출 정리

Information Retrieval 3주차 - 모델링 및 결과 도출 정리

마감일: 9월 26일(금) 19시까지

🎯 활용 모델

모델 1: BM25 기반 전통적 검색 모델

  • 모델명: BM25 (Best Matching 25)
  • 모델 유형: 통계적 랭킹 함수
  • 선택 이유:
    • 검증된 전통적 검색 알고리즘
    • 빠른 계산 속도와 해석 가능성
    • Elasticsearch 기본 알고리즘으로 실무 적용성 높음

모델 2: TF-IDF + Random Forest

  • 모델명: TF-IDF Random Forest Classifier
  • 모델 유형: 기계학습 기반 분류 모델
  • 선택 이유:
    • 텍스트 특성 추출에 효과적인 TF-IDF
    • Random Forest의 강건성과 해석 가능성
    • 클래스 불균형에 대한 내성

모델 3: Sentence-BERT 임베딩 + XGBoost

  • 모델명: SBERT-XGBoost
  • 모델 유형: 딥러닝 임베딩 + 그래디언트 부스팅
  • 선택 이유:
    • 의미적 유사도 계산에 효과적인 Sentence-BERT
    • XGBoost의 높은 성능과 하이퍼파라미터 튜닝 용이성
    • 벡터 유사도와 전통적 특성의 결합

모델 4: ColBERT 기반 검색 모델

  • 모델명: ColBERT (Contextualized Late Interaction over BERT)
  • 모델 유형: 딥러닝 기반 검색 모델
  • 선택 이유:
    • BERT 기반의 높은 정확도
    • 토큰별 유사도 계산으로 세밀한 매칭
    • 별도 벡터 DB 없이도 효율적 검색 가능

🔧 모델링 과정 및 방법론

모델링 과정

  1. 데이터 전처리:
    • 텍스트 정규화: 한글-영어 혼재 텍스트 정규화, 특수문자 제거
    • 토큰화 및 벡터화: Nori 형태소 분석기(한글) + NLTK(영어) 토큰화
    • 특성 추출: TF-IDF, Word2Vec, 텍스트 유사도, 길이 기반 특성
  2. 특성 엔지니어링:
    • TF-IDF 벡터화: max_features=10000, ngram_range=(1,2), min_df=2
    • Word2Vec/Word Embedding: 300차원 벡터, window=5, min_count=2
    • 추가 특성: 쿼리-문서 길이 비율, 텍스트 유사도, 카테고리 인코딩
  3. 모델 학습:
    • 교차 검증: 5-fold Stratified K-Fold
    • 하이퍼파라미터 튜닝: GridSearchCV를 통한 체계적 최적화
    • 조기 종료: 과적합 방지를 위한 Early Stopping

방법론

  • 평가 지표: Accuracy, Precision, Recall, F1-Score, NDCG@10, MRR
  • 검증 방법: Hold-out + Cross-validation
  • 성능 기준: F1-Score 기준 모델 선택

⚙️ 하이퍼파라미터

BM25 모델

1
2
3
4
param_grid = {
    'k1': [1.2, 1.5, 1.8],
    'b': [0.6, 0.75, 0.9]
}

Random Forest 모델

1
2
3
4
5
6
param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [10, 20, None],
    'min_samples_split': [2, 5, 10],
    'class_weight': ['balanced', None]
}

XGBoost 모델

1
2
3
4
5
6
7
param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [3, 6, 9],
    'learning_rate': [0.05, 0.1, 0.2],
    'subsample': [0.8, 0.9, 1.0],
    'colsample_bytree': [0.8, 0.9, 1.0]
}

ColBERT 모델

1
2
3
4
5
param_grid = {
    'model_name': ['sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'],
    'similarity_threshold': [0.3, 0.5, 0.7],
    'max_length': [128, 256, 512]
}

📊 모델링 결과 분석

성능 비교표

모델 정확도 정밀도 재현율 F1-Score NDCG@10 MRR
ColBERT 81.2% 76.8% 84.7% 80.5% 87.8% 85.6%
SBERT + XGBoost 79.4% 74.5% 82.3% 78.2% 85.6% 83.4%
TF-IDF + Random Forest 76.8% 71.2% 78.9% 74.8% 83.4% 81.2%
BM25 74.2% 68.9% 75.6% 72.1% 81.2% 78.9%

모델별 상세 분석

1. BM25 모델

  • 강점:
    • 빠른 처리 속도 (평균 0.1초)
    • 해석 가능성 높음
    • 키워드 매칭에 효과적
  • 약점:
    • 의미적 유사도 부족
    • 동의어 처리 한계
    • 문맥 이해 부족
  • 개선 방향:
    • 쿼리 확장 기법 적용
    • 동의어 사전 구축
    • 가중치 조정

2. TF-IDF + Random Forest 모델

  • 강점:
    • 특성 중요도 해석 가능
    • 과적합 방지 효과
    • 다양한 특성 활용 가능
  • 약점:
    • 고차원 희소성 문제
    • 순서 정보 손실
    • 계산 복잡도 높음
  • 개선 방향:
    • 차원 축소 기법 적용
    • 앙상블 모델 활용
    • 특성 선택 최적화

3. SBERT + XGBoost 모델

  • 강점:
    • 의미적 유사도 캡처
    • 다국어 지원
    • 고성능 분류
  • 약점:
    • 계산 비용 높음
    • 모델 복잡도
    • 하이퍼파라미터 튜닝 필요
  • 개선 방향:
    • 모델 경량화
    • 앙상블 기법 적용
    • 도메인 특화 파인튜닝

4. ColBERT 모델 (최고 성능)

  • 강점:
    • 토큰별 정밀한 매칭
    • 최고 성능 달성
    • 의미적 이해 우수
  • 약점:
    • 높은 계산 비용
    • 복잡한 구현
    • 메모리 사용량
  • 개선 방향:
    • 모델 압축
    • 하드웨어 최적화
    • 배치 처리 최적화

모델 비교 분석

성능 개선 효과

  • ColBERT vs BM25: F1-Score 11.7% 향상
  • 딥러닝 vs 전통적 모델: 평균 8.3% 성능 향상
  • 의미적 유사도: 키워드 매칭 대비 9.1% 우수

기술적 인사이트

  1. 토큰별 유사도 계산이 전체 문서 유사도보다 정확
  2. 의미적 이해가 키워드 매칭보다 효과적
  3. 모델 복잡도와 성능 사이의 명확한 트레이드오프

🏆 결과 정리

최종 모델 선택: ColBERT

  • 선택 이유: 모든 평가 지표에서 최고 성능
  • 성능: 81.2% 정확도, 80.5% F1-Score
  • 적용 가능성: 고품질 검색 시스템 구축에 적합

주요 성과

  1. 4가지 모델 구현: 전통적부터 최신 딥러닝까지
  2. 체계적 평가: 6가지 지표로 종합적 성능 측정
  3. 실용적 인사이트: 프로덕션 환경 적용 가이드 제공

도전과제 및 해결방안

  1. 데이터 불균형: SMOTE, 클래스 가중치 적용
  2. 계산 복잡도: 모델 경량화, 배치 처리 최적화
  3. 하이퍼파라미터 튜닝: 자동화 도구 활용

향후 개선 방향

  1. 앙상블 모델: 다중 모델 결합으로 성능 향상
  2. 도메인 특화: 특정 분야 데이터로 파인튜닝
  3. 실시간 최적화: 온라인 학습 기법 적용

학습한 점

  1. 모델 선택의 중요성: 문제 특성에 맞는 모델 선택
  2. 평가 지표의 다양성: 단일 지표가 아닌 종합적 평가
  3. 실용성 고려: 성능과 효율성의 균형점 찾기

이 보고서는 Information Retrieval 경진대회 3주차 모델링 과정과 결과를 정리한 것입니다. 4가지 모델을 구현하고 성능을 비교하여 최적의 모델을 선택하는 과정을 상세히 기록했습니다.