# [[피처 추출 (Feature Extraction)]]

## 📌 Brief Summary
피처 추출(Feature Extraction) 또는 피처 엔지니어링은 머신러닝 기반 랭킹(Learning To Rank, LTR) 모델을 훈련하기 위해 질의(Query)와 문서(Document)의 속성을 수치화된 벡터 형태의 특성(Feature)으로 변환하는 과정이다 [1-3]. 단순한 질의-문서 쌍과 관련성 점수만으로는 모델을 학습시키기에 불충분하므로, 문서의 관련성을 결정하는 다양한 속성을 피처로 추출해 훈련 데이터셋을 구성해야 한다 [1]. 이 과정을 통해 추출된 피처들은 검색 모델이 사용자의 의도와 문서의 적합성을 깊이 있게 이해하고 정교한 검색 결과를 제공하는 핵심 기반이 된다 [1, 2].

## 📖 Core Content
**피처 추출의 개념 및 데이터 변환**
* 머신러닝 알고리즘(MLR)의 편의를 위해 질의-문서 쌍은 숫자 형태의 '피처 벡터(Feature vectors)'로 표현되어야 하며, 이러한 접근법은 종종 '피처 백(bag of features)'이라고도 불린다 [2]. 
* LTR 모델의 훈련 데이터셋은 판단 리스트(judgment list)에 추출된 피처들이 추가되는 방식으로 구성된다 [1].
* 모델에 사용되는 모든 피처는 반드시 숫자(numeric) 형태여야 한다 [3]. 따라서 범주형(categorical) 피처의 경우에는 정수로 표현된 레이블을 사용할지, 다중 이진 레이블의 원-핫 인코딩(one-hot encoding)을 사용할지 결정하여 변환해야 한다 [3]. 

**피처의 3가지 주요 범주**
추출되는 피처, 요인(factors) 또는 랭킹 신호(ranking signals)는 크게 다음 세 가지 범주로 나뉜다 [1, 2, 4].
* **문서 피처 (Document features / Query-independent features):** 질의와 무관하게 문서 자체의 속성에서 직접 파생되는 피처이다 [1, 4]. 전자상거래 상점의 제품 가격, 문서의 길이, 페이지랭크(PageRank) 등이 포함되며, 색인 과정 중 오프라인 모드에서 미리 계산해 둘 수 있다 [1, 4].
* **질의 피처 (Query features / Query-level features):** 사용자가 제출한 질의에만 의존하여 직접 계산되는 피처이다 [1, 4]. 질의에 포함된 단어의 수 등이 이에 해당한다 [1, 4].
* **질의-문서 피처 (Query-document features / Query-dependent features):** 특정 질의의 맥락에서 문서에 대한 정보를 제공하는 피처이다 [1, 4]. 질의와 문서 내용 양쪽 모두에 의존하며, 문서 제목 필드에 대한 BM25 점수나 TF-IDF 점수 등이 대표적인 예이다 [1, 4].

**검색 시스템에서의 추출 및 적용**
* Elasticsearch와 같은 시스템에서는 훈련 데이터셋을 구축할 때와 실제 검색 쿼리 시점(추론 시점) 모두에 템플릿화된 질의를 사용하여 피처를 추출한다 [5].
* 개인화된 검색을 구현할 때는 사용자의 속성(예: 음악 장르 선호도)을 조회(look up)한 후, 이를 피처 로거(feature logger)로 전달하여 피처 추출에 활용하며 검색 시점에도 쿼리에 해당 피처 값을 추가해야 한다 [6, 7]. 좋은 피처를 선택하고 설계하는 것을 피처 엔지니어링이라고 하며, 이는 머신러닝에서 매우 중요한 영역이다 [8].

## ⚖️ Trade-offs & Caveats
* **훈련 시간 및 리소스 소모 증가:** 시스템에 더 많은 피처가 추가될수록 결정 트리(decision tree) 모델에서 이를 활용하기 위해 더 많은 노드가 필요하게 된다 [9]. 그 결과, 훈련 과정에서 모델이 수렴(convergence)하는 데 훨씬 더 많은 시간과 시스템 리소스가 요구된다는 제약이 있다 [9].
* **설계의 불확실성과 최적화의 어려움:** 어떤 사용자 기능과 문서 피처가 함께 작동하여 검색의 품질을 높일 수 있을지 이론적으로 상상할 수 없다면, 새로운 피처를 추가하는 것은 무의미할 수 있다 [3]. 따라서 처음부터 과도하게 피처를 늘리기보다는 작게 시작하여 오프라인 및 온라인(A/B 테스트)에서 개선 사항을 측정한 후 단계적으로 확장해 나가는 최적화 전략이 필수적이다 [3, 9].
* **데이터 변환의 제약:** 모든 피처를 수치화해야 한다는 제약 조건 때문에, 의미 있는 범주형 데이터를 모델이 이해할 수 있도록 어떤 인코딩 방식을 적용할지 설계하는 데 추가적인 노력과 고민이 필요하다 [3]. 

---
*Last updated: 2026-05-04*