К тренажеру
ВопросHardnlp-ragРеальный собес

Как проектировать related articles и reranker

Помимо ответа на free-text вопрос нужно показывать related articles. Как их формировать: заранее или в зависимости от запроса, и где нужен reranker?

Короткий ответ

Baseline: precompute related articles по текстовой/embedding близости. Более сильная схема: query-aware related articles через candidates + reranker, обученный на кликах, переходах и разметке.

Полный разбор

Есть два режима. Precomputed related articles дешевы и стабильны: для каждой статьи заранее считаем похожие статьи по BM25/embeddings/co-clicks. Это хорошо для блока "похожие материалы" без учета конкретного вопроса.

Query-aware related articles лучше, если пользователь пришел с конкретным вопросом. Тогда related candidates должны учитывать и текущий query, и найденную top article, и контекст пользователя. Candidate generator может быть hybrid search, а final reranker — cross-encoder или LLM reranker, если latency/cost позволяют.

Для обучения reranker полезны click logs, последовательные переходы между статьями, explicit feedback, разметка релевантности и "нашел ответ". Важно не забыть privacy, latency и fallback на precomputed related, если online reranker недоступен.

Теория

Related articles — это ranking задача, где релевантность может зависеть от запроса, статьи и пользовательского контекста. Precompute и online reranking решают разные latency/quality trade-off.

Типичные ошибки

  • Всегда показывать статически похожие статьи без учета вопроса.
  • Сразу использовать LLM reranker без latency/cost оценки.
  • Не иметь fallback на precomputed related.

Как отвечать на собеседовании

  • Предложи baseline precompute, затем query-aware reranking.
  • Назови сигналы для обучения: clicks, transitions, feedback, labels.