Что такое learning-to-rank (LTR) и как он применяется к retrieval для LLM?

Краткий тезис

Learning-to-rank (LTR) — это класс методов машинного обучения, предназначенных для построения модели, которая упорядочивает набор объектов (документов, чанков) по релевантности запросу. В контексте retrieval для LLM LTR используется как реранкер: после быстрого первого этапа (например, BM25 или поиск|векторный поиск) LTR-модель переупорядочивает top-k результатов, используя множество признаков (фичей). Это повышает качество контекста, подаваемого LLM, что критически важно для точности ответов в RAG-системах и снижает риск галлюцинаций.


1. Что такое Learning-to-Rank (LTR)

Learning-to-rank — это задача обучения с учителем, где модель учится предсказывать порядок (ранжирование) элементов для данного запроса. В отличие от классификации или регрессии, здесь важна относительная упорядоченность, а не абсолютные значения.

Термин «Ранжирование» (ranking) — процесс сортировки документов по убыванию релевантности. LTR автоматизирует построение функции ранжирования на основе данных.

Основные компоненты LTR:

  • Запрос (query) — пользовательский ввод.
  • Документы (documents) — кандидаты на выдачу.
  • Фичи (features) — числовые признаки, описывающие пару запрос-документ.
  • Метки релевантности (relevance labels) — целевые значения (например, 0/1/2/3 или continuous).
  • Модель — алгоритм, который по фичам предсказывает score, по которому сортируются документы.

2. Зачем LTR в retrieval для LLM

В типичной RAG-системе retrieval состоит из двух этапов:

  1. Быстрый поиск (retrieval|first-stage retrieval) — BM25, поиск|векторный поиск, гибридный. Возвращает top-k (например, 100–500 чанков).
  2. Реранжирование (reranking) — более точная, но более медленная модель, которая переупорядочивает top-k, чтобы подать LLM только самые релевантные (обычно 3–10).

LTR идеально подходит для второго этапа, потому что:

  • Учитывает множество сигналов (семантическая близость, частотные характеристики, позиционные признаки).
  • Обучается на исторических данных (клики, оценки экспертов).
  • Может быть адаптирован под конкретный домен.

Без LTR реранкер часто использует только косинусную близость эмбеддингов, что не учитывает, например, длину документа, важность ключевых слов или структуру.


3. Основные подходы LTR: pointwise, pairwise, listwise

ПодходИдеяПримеры моделейПлюсыМинусы
PointwiseПредсказать абсолютную релевантность каждого документа (регрессия или классификация).Linear Regression, Gradient Boosting (XGBoost), нейросетиПростота, можно использовать стандартные ML-моделиНе учитывает относительный порядок между документами
PairwiseОбучаться на парах документов: какой из двух более релевантен.RankNet, LambdaRank, LambdaMARTУчитывает относительные предпочтения, хорошо работает на практикеСложность O(n²) для одного запроса
ListwiseОптимизировать метрику ранжирования напрямую (NDCG, MAP) или аппроксимировать её.ListNet, SoftRank, LambdaLossТеоретически оптимальноСложная оптимизация, часто требует специальных функций потерь

Для retrieval в LLM чаще всего используется pairwise подход (особенно LambdaMART) из-за хорошего баланса качества и скорости.


4. Фичи (признаки) для LTR в retrieval

Фичи — основа LTR. Их можно разделить на группы:

4.1 Query-document фичи

  • BM25 score — классическая текстовая релевантность.
  • Косинусная близость эмбеддингов (cosine similarity) — семантическая близость.
  • Пересечение n-грамм (например, доля общих униграмм).
  • TF-IDF weighted overlap.
  • BERTScore (если позволяет latency).

4.2 Document фичи

  • Длина документа (количество токенов).
  • Структурные признаки (наличие заголовков, списков).
  • Возраст документа (для новостных систем).
  • Авторитетность источника (PageRank, domain authority).

4.3 Query фичи

  • Длина запроса (количество слов).
  • Частота терминов запроса в корпусе (IDF).
  • Тип запроса (вопрос, команда, навигационный).

4.4 Контекстные фичи (для LLM)

  • Позиция документа в исходном top-k (ранг от первого этапа).
  • Разнообразие (например, отличие эмбеддинга от соседних документов).
  • Оценка уверенности LLM (если используется self-consistency).

Пример набора фичей для одного запроса и документа:

features = {
    'bm25': 12.5,
    'cosine_sim': 0.87,
    'doc_len': 512,
    'query_len': 4,
    'overlap_unigrams': 0.45,
    'original_rank': 3,
    'page_rank': 0.02
}

5. Популярные модели LTR

5.1 RankNet (Burges et al., 2005)

  • Нейросеть с pairwise loss (cross-entropy на парах).
  • Предсказывает вероятность, что документ A релевантнее B.
  • Простая, но не оптимизирует метрики напрямую.

5.2 LambdaRank (Burges et al., 2006)

  • Улучшение RankNet: градиент умножается на изменение NDCG при перестановке пары.
  • Учитывает, насколько важна перестановка для метрики.

5.3 LambdaMART (Wu et al., 2010)

  • Комбинация LambdaRank и Gradient Boosted Trees (MART).
  • Самая популярная модель LTR в индустрии (используется в поисковых системах).
  • Работает с табличными фичами, устойчива к выбросам, интерпретируема.

Пример обучения LambdaMART с помощью lightgbm:

import lightgbm as lgb

# Данные: group — количество документов на запрос
train_data = lgb.Dataset(X_train, label=y_train, group=q_group_train)
params = {
    'objective': 'lambdarank',
    'metric': 'ndcg',
    'ndcg_eval_at': [5, 10],
    'boosting_type': 'gbdt',
    'num_leaves': 31,
    'learning_rate': 0.1,
}
model = lgb.train(params, train_data, valid_sets=[val_data])

5.4 Нейросетевые LTR (DNN, Transformers)

  • Используют эмбеддинги запроса и документа как вход.
  • Пример: ColBERT (late interaction), SetRank, Transformer-based ранжирование.
  • Требуют больше ресурсов, но могут захватывать сложные взаимодействия.

6. Метрики оценки ранжирования

Для оценки LTR-модели используются метрики, учитывающие порядок:

МетрикаОписаниеДиапазонКогда использовать
NDCG@k (Normalized Discounted Cumulative Gain)Учитывает graded relevance (несколько уровней) и штрафует за низкие позиции релевантных документов.[0, 1]Основная метрика для LTR
MAP (Mean Average Precision)Средняя точность для каждого запроса, учитывает только бинарную релевантность.[0, 1]Когда релевантность бинарна
MRR (Mean Reciprocal Rank)Среднее обратного ранга первого релевантного документа.[0, 1]Когда важен только первый результат
Recall@kДоля релевантных документов в top-k.[0, 1]Дополнительная метрика

Пример расчёта NDCG@3:

  • Идеальный порядок: [3, 2, 1] (relevance scores)
  • Предсказанный: [2, 3, 1]
  • DCG = 2/log2(2) + 3/log2(3) + 1/log2(4) = 2 + 1.89 + 0.5 = 4.39
  • IDCG = 3/log2(2) + 2/log2(3) + 1/log2(4) = 3 + 1.26 + 0.5 = 4.76
  • NDCG = 4.39 / 4.76 ≈ 0.92

7. Применение LTR в пайплайне retrieval для LLM

Типичный пайплайн с LTR:

  1. Индексация: документы разбиваются на чанки, строятся эмбеддинги и инвертированный индекс.
  2. First-stage retrieval: по запросу получаем top-k (например, 200 чанков) с помощью BM25 + векторный поиск.
  3. Извлечение фичей: для каждой пары (запрос, чанк) вычисляются фичи (см. раздел 4).
  4. Реранжирование LTR: обученная модель (например, LambdaMART) вычисляет score для каждого чанка.
  5. Отбор top-n: берём n лучших (например, 5) и подаём в контекст LLM.
  6. Генерация ответа: LLM формирует ответ на основе отобранных чанков.

Преимущества такого подхода:

  • Качество: LTR учитывает больше сигналов, чем один эмбеддинг.
  • Гибкость: можно добавить доменные фичи (например, для юридических документов — дата, статус).
  • Интерпретируемость: LambdaMART показывает важность фичей.

Недостатки:

  • Дополнительная задержка: вычисление фичей и прогон модели (обычно 10–50 мс на запрос).
  • Необходимость размеченных данных: для обучения нужны пары запрос-документ с оценками релевантности.

8. Преимущества и ограничения LTR

ПреимуществаОграничения
Улучшает релевантность по сравнению с простыми методамиТребует качественных обучающих данных (релевантность размечена экспертами или implicit feedback)
Может комбинировать текстовые, структурные и поведенческие признакиВычислительные затраты на этапе инференса (feature engineering + модель)
Хорошо обобщается на новые запросы, если фичи информативныСложность в поддержке: при изменении корпуса или запросов модель может устареть
Интерпретируемость (важность фичей)Не решает проблему "холодного старта" для новых документов без истории

9. Пет-проект для закрепления

Задача: Реализовать LTR-реранкер для небольшого корпуса научных статей (например, 1000 документов) и сравнить качество retrieval с baseline (только косинусная близость).

Инструменты:

Шаги:

  1. Собрать корпус документов (чанки по 256 токенов).
  2. Сгенерировать 100 запросов и вручную разметить релевантность (0/1/2) для top-20 документов от BM25.
  3. Вычислить фичи: BM25, cosine similarity (all-MiniLM-L6-v2), длину документа, overlap униграмм.
  4. Обучить LambdaMART (lightgbm) на парах (pairwise).
  5. На тестовых запросах оценить NDCG@5 для baseline (только cosine) и LTR.
  6. Визуализировать важность фичей.

Ожидаемый результат: LTR улучшает NDCG@5 на 10–20% по сравнению с baseline. Вы увидите, что BM25 и cosine similarity — самые важные фичи, но добавление длины документа даёт дополнительный прирост.


10. Связь с другими вопросами

ВопросТема
5Оценка качества retrieval (метрики)
7Уменьшение latency RAG (LTR как компромисс скорость/качество)
9Обновление документов (как переобучать LTR при изменении корпуса)
12Гибридный поиск (BM25 + векторный — источник фичей для LTR)
15Fine-tuning эмбеддингов (альтернатива LTR для улучшения retrieval)
20Self-RAG (LTR может использоваться внутри для ранжирования собственных генераций)

11. Навигация


Навигация