English translation is not available yet. Showing Russian content.
Что такое 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 состоит из двух этапов:
- Быстрый поиск (retrieval|first-stage retrieval) — BM25, поиск|векторный поиск, гибридный. Возвращает top-k (например, 100–500 чанков).
- Реранжирование (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:
- Индексация: документы разбиваются на чанки, строятся эмбеддинги и инвертированный индекс.
- First-stage retrieval: по запросу получаем top-k (например, 200 чанков) с помощью BM25 + векторный поиск.
- Извлечение фичей: для каждой пары (запрос, чанк) вычисляются фичи (см. раздел 4).
- Реранжирование LTR: обученная модель (например, LambdaMART) вычисляет score для каждого чанка.
- Отбор top-n: берём n лучших (например, 5) и подаём в контекст LLM.
- Генерация ответа: LLM формирует ответ на основе отобранных чанков.
Преимущества такого подхода:
- Качество: LTR учитывает больше сигналов, чем один эмбеддинг.
- Гибкость: можно добавить доменные фичи (например, для юридических документов — дата, статус).
- Интерпретируемость: LambdaMART показывает важность фичей.
Недостатки:
- Дополнительная задержка: вычисление фичей и прогон модели (обычно 10–50 мс на запрос).
- Необходимость размеченных данных: для обучения нужны пары запрос-документ с оценками релевантности.
8. Преимущества и ограничения LTR
| Преимущества | Ограничения |
|---|---|
| Улучшает релевантность по сравнению с простыми методами | Требует качественных обучающих данных (релевантность размечена экспертами или implicit feedback) |
| Может комбинировать текстовые, структурные и поведенческие признаки | Вычислительные затраты на этапе инференса (feature engineering + модель) |
| Хорошо обобщается на новые запросы, если фичи информативны | Сложность в поддержке: при изменении корпуса или запросов модель может устареть |
| Интерпретируемость (важность фичей) | Не решает проблему "холодного старта" для новых документов без истории |
9. Пет-проект для закрепления
Задача: Реализовать LTR-реранкер для небольшого корпуса научных статей (например, 1000 документов) и сравнить качество retrieval с baseline (только косинусная близость).
Инструменты:
- Python, lightgbm, scikit-learn, sentence-transformers
- Датасет: TREC или собственный (статьи из arXiv, вопросы от ChatGPT)
- Метрики: NDCG@5, MRR
Шаги:
- Собрать корпус документов (чанки по 256 токенов).
- Сгенерировать 100 запросов и вручную разметить релевантность (0/1/2) для top-20 документов от BM25.
- Вычислить фичи: BM25, cosine similarity (all-MiniLM-L6-v2), длину документа, overlap униграмм.
- Обучить LambdaMART (lightgbm) на парах (pairwise).
- На тестовых запросах оценить NDCG@5 для baseline (только cosine) и LTR.
- Визуализировать важность фичей.
Ожидаемый результат: LTR улучшает NDCG@5 на 10–20% по сравнению с baseline. Вы увидите, что BM25 и cosine similarity — самые важные фичи, но добавление длины документа даёт дополнительный прирост.
10. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 5 | Оценка качества retrieval (метрики) |
| 7 | Уменьшение latency RAG (LTR как компромисс скорость/качество) |
| 9 | Обновление документов (как переобучать LTR при изменении корпуса) |
| 12 | Гибридный поиск (BM25 + векторный — источник фичей для LTR) |
| 15 | Fine-tuning эмбеддингов (альтернатива LTR для улучшения retrieval) |
| 20 | Self-RAG (LTR может использоваться внутри для ранжирования собственных генераций) |
11. Навигация
- Предыдущий: 372
- Следующий: 374
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 372
- Следующий: 374
- Индекс: 00. Индекс разборов