마감일: 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 없이도 효율적 검색 가능
🔧 모델링 과정 및 방법론
모델링 과정
- 데이터 전처리:
- 텍스트 정규화: 한글-영어 혼재 텍스트 정규화, 특수문자 제거
- 토큰화 및 벡터화: Nori 형태소 분석기(한글) + NLTK(영어) 토큰화
- 특성 추출: TF-IDF, Word2Vec, 텍스트 유사도, 길이 기반 특성
- 특성 엔지니어링:
- TF-IDF 벡터화: max_features=10000, ngram_range=(1,2), min_df=2
- Word2Vec/Word Embedding: 300차원 벡터, window=5, min_count=2
- 추가 특성: 쿼리-문서 길이 비율, 텍스트 유사도, 카테고리 인코딩
- 모델 학습:
- 교차 검증: 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% 우수
기술적 인사이트
- 토큰별 유사도 계산이 전체 문서 유사도보다 정확
- 의미적 이해가 키워드 매칭보다 효과적
- 모델 복잡도와 성능 사이의 명확한 트레이드오프
🏆 결과 정리
최종 모델 선택: ColBERT
- 선택 이유: 모든 평가 지표에서 최고 성능
- 성능: 81.2% 정확도, 80.5% F1-Score
- 적용 가능성: 고품질 검색 시스템 구축에 적합
주요 성과
- 4가지 모델 구현: 전통적부터 최신 딥러닝까지
- 체계적 평가: 6가지 지표로 종합적 성능 측정
- 실용적 인사이트: 프로덕션 환경 적용 가이드 제공
도전과제 및 해결방안
- 데이터 불균형: SMOTE, 클래스 가중치 적용
- 계산 복잡도: 모델 경량화, 배치 처리 최적화
- 하이퍼파라미터 튜닝: 자동화 도구 활용
향후 개선 방향
- 앙상블 모델: 다중 모델 결합으로 성능 향상
- 도메인 특화: 특정 분야 데이터로 파인튜닝
- 실시간 최적화: 온라인 학습 기법 적용
학습한 점
- 모델 선택의 중요성: 문제 특성에 맞는 모델 선택
- 평가 지표의 다양성: 단일 지표가 아닌 종합적 평가
- 실용성 고려: 성능과 효율성의 균형점 찾기
이 보고서는 Information Retrieval 경진대회 3주차 모델링 과정과 결과를 정리한 것입니다. 4가지 모델을 구현하고 성능을 비교하여 최적의 모델을 선택하는 과정을 상세히 기록했습니다.