# [[Learning to Rank (LTR)]]

## 📌 Brief Summary
Learning to Rank(LTR)은 기계 학습(Machine Learning) 알고리즘을 활용하여 정보 검색 및 추천 시스템의 랭킹(순위 지정) 모델을 구축하고 최적화하는 기법이다 [1, 2]. 과거 수작업으로 튜닝하던 랭킹 함수를 대체하여, 데이터에 기반해 사용자 질의와 문서 간의 관련성 점수를 자동 계산한다 [3]. 일반적으로 빠르고 단순한 1차 검색 알고리즘이 추출한 후보 문서들을 대상으로 2차 단계에서 순위를 정교하게 재조정(Re-ranking)하는 데 사용되며, 이를 통해 검색 결과의 정확성과 사용자 만족도를 극대화한다 [1, 4-6].

## 📖 Core Content
**1. LTR의 작동 아키텍처 (Two-phase Scheme)**
웹 검색과 같은 대규모 환경에서는 밀리초 단위의 빠른 응답이 요구되므로, 전체 문서에 대해 복잡한 LTR 모델을 직접 적용하는 것은 불가능하다 [4]. 따라서 LTR은 주로 '2단계 검색' 구조에서 작동한다 [4, 5]. 첫 번째 단계에서는 벡터 공간 모델이나 BM25와 같은 가볍고 빠른 알고리즘을 통해 수십~수백 개의 잠재적 관련 문서를 1차로 추려내고, 두 번째 단계에서 머신러닝 기반의 LTR 모델이 이 후보 문서들의 최종 순위를 재조정(Re-rank)한다 [1, 4, 5].

**2. 훈련 데이터: 판단 리스트 (Judgment List)**
LTR 모델의 학습을 위해서는 질의(Query)와 문서(Document)의 쌍, 그리고 이들 간의 관련성 등급(예: 이진 판별 또는 0~4점 척도)이 포함된 '판단 리스트'가 필수적이다 [2, 7]. 이 리스트는 사람이 직접 평가하여 만들 수도 있지만, 실무에서는 주로 클릭률(CTR), 체류 시간, 구매 내역 등 사용자 행동 데이터를 수집 및 분석하는 '클릭 모델링'을 통해 자동으로 구성된다 [3, 7-9]. 다양한 쿼리 유형에 대해 긍정적 예시와 부정적 예시의 균형을 맞춘 고품질의 판단 리스트를 확보하는 것이 LTR 모델 성능의 핵심이다 [10].

**3. 랭킹을 위한 특징 추출 (Feature Extraction)**
단순한 질의-문서 쌍만으로는 머신러닝 모델을 훈련시키기 부족하므로, 검색 관련성을 결정짓는 다양한 속성(Feature)들을 추출해야 한다 [11, 12]. 
*   **문서 특징 (Query-independent):** 질의와 무관한 문서 고유의 속성으로, PageRank, 문서 길이, 제품 가격 등이 포함된다 [11, 13].
*   **질의 특징 (Query-level):** 검색어의 단어 수 등 사용자가 입력한 질의 자체에서 계산되는 특성이다 [11, 13].
*   **질의-문서 특징 (Query-dependent):** 특정 질의어에 대한 문서의 TF-IDF 점수, BM25 점수 등 질의와 문서 양자 간의 상관관계를 나타내는 특성이다 [11, 13].

**4. LTR의 세 가지 주요 접근법**
LTR 모델은 입력 공간과 손실 함수(Loss Function)의 구조에 따라 크게 세 가지 방법론으로 분류된다 [3, 14].
*   **Pointwise (점별 접근법):** 단일 질의-문서 쌍의 점수를 직접 예측하는 회귀 또는 분류 문제로 접근한다. 구조가 직관적이지만 문서 간의 상대적 순위를 고려하지 않는 한계가 있다 [3, 15].
*   **Pairwise (쌍별 접근법):** 두 문서를 한 쌍으로 묶어, 어떤 문서의 순위가 더 높아야 하는지를 판별하는 분류 문제로 접근한다. 순위의 역전 횟수와 크기를 최소화하는 방식으로 학습하며 RankNet 등이 대표적이다 [3, 16, 17].
*   **Listwise (목록별 접근법):** 검색 결과 리스트 전체의 순위를 한꺼번에 최적화하는 방식이다. nDCG, MAP와 같은 정보 검색 평가 지표를 직접적인 최적화 목표로 삼아 가장 우수한 성능을 내는 경우가 많다 [3, 18]. 대표적으로 GBDT(Gradient Boosted Decision Trees) 기반의 LambdaMART 모델이 낮은 추론 지연 시간과 강력한 성능으로 널리 사용된다 [18, 19].

## ⚖️ Trade-offs & Caveats
*   **컴퓨팅 리소스 및 훈련 시간 증가:** LTR 모델을 정교하게 만들기 위해 피처(Feature)를 추가할수록 부스팅 트리의 노드가 깊어지고 늘어난다 [20]. 이는 모델이 수렴(Convergence)하는 데 필요한 훈련 시간과 컴퓨팅 리소스를 크게 증가시키는 반대 급부를 낳는다 [20]. 또한, 모델의 추론(Inference) 비용이 높기 때문에 모든 데이터에 적용하지 못하고 반드시 1차 검색 모델을 병행해야 하는 아키텍처 상의 제약이 존재한다 [4, 5].
*   **데이터 의존성과 콜드 스타트(Cold Start) 문제:** LTR은 대량의 사용자 트래킹 데이터 및 판단 리스트가 반드시 필요하다 [7, 9]. 사용자의 행동 데이터가 충분히 수집되지 않은 초기 단계나 새로운 콘텐츠가 추가된 직후에는 정확한 순위 예측에 필요한 근거가 부족하여 검색 품질이 저하되는 '콜드 스타트' 문제에 직면하게 된다 [9, 21].
*   **행동 데이터 편향(Bias)의 내재화 위험:** 사용자 클릭 로그를 훈련 데이터로 삼을 경우 다양한 편향이 모델에 스며들 위험이 크다 [9]. 특히, 검색 결과 상단에 위치한 문서일수록 내용과 무관하게 더 많이 클릭되는 경향(Position Bias / Selection Bias)이 존재하며, 이를 보정하지 않으면 LTR 모델은 단순히 기존 검색 엔진의 편향을 반복 학습하는 결과를 낳게 된다 [8, 9].
*   **과적합(Overfitting) 발생 가능성:** 수집된 판단 리스트가 특정 쿼리 유형에 편중되거나 긍정/부정 예시의 불균형이 심할 경우, 모델이 특정 패턴에만 과적합되어 새로운 형태의 질의에 대해 효과적으로 대응(일반화)하지 못할 제약이 있다 [10].

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