Как проектировать 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.