惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Y
Y Combinator Blog
O
OpenAI News
K
Kaspersky official blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News: Ask HN
Hacker News: Ask HN
S
SegmentFault 最新的问题
L
Lohrmann on Cybersecurity
S
Securelist
C
CERT Recently Published Vulnerability Notes
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
V
Vulnerabilities – Threatpost
量子位
爱范儿
爱范儿
I
Intezer
博客园 - 叶小钗
The Hacker News
The Hacker News
N
News and Events Feed by Topic
Project Zero
Project Zero
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy & Cybersecurity Law Blog
Google Online Security Blog
Google Online Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Heimdal Security Blog
NISL@THU
NISL@THU
V
Visual Studio Blog
The Last Watchdog
The Last Watchdog
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
小众软件
小众软件
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Schneier on Security
雷峰网
雷峰网
B
Blog RSS Feed
美团技术团队
T
Threat Research - Cisco Blogs
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
N
Netflix TechBlog - Medium
月光博客
月光博客
S
Security Affairs

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
RAG не только для вопросов и ответов: почему он естественно подходит для рекомендаций
danyakr · 2026-06-22 · via Все публикации подряд на Хабре

Сложный

11 мин

37

Retrieval-Augmented Generation (RAG) чаще всего рассматривается в контексте вопросно-ответных систем и чат-ботов поверх базы знаний. Большинство публикаций и руководств по RAG посвящено схеме «вопрос – ответ с опорой на документы». Однако внутренняя механика RAG – семантический поиск в сочетании с генерацией ответа на основе найденного – хорошо ложится и на другую задачу, которую традиционно решают иными методами: на рекомендации.

Цель настоящей статьи – показать, что RAG представляет собой недоиспользованный, но обоснованный инструмент для рекомендательных систем, и разобрать, на каких именно ограничениях классических рекомендателей он выигрывает и где проходят его границы. В качестве сквозного примера рассматривается рекомендательная система книг по запросу в свободной форме. При этом основным предметом рассмотрения является сам подход, а не конкретная реализация.

Ограничения классических рекомендательных систем

Классическая теория рекомендательных систем выделяет три семейства подходов.

  • Коллаборативная фильтрация (collaborative filtering) формирует рекомендации на основе совпадения оценок и действий пользователей. Различают user-based и item-based схемы; последняя, предложенная в Sarwar et al., 2001, устойчивее к разреженности матрицы оценок. Дальнейшим развитием стали матричные факторизации, например SVD++ из Koren et al., 2009, ставший отраслевым стандартом после Netflix Prize.

  • Контентная фильтрация (content-based) опирается на признаки самих объектов: жанр, автор, ключевые слова, текст аннотации. В простейшем виде сходство измеряется через TF-IDF и косинусное расстояние.

  • Гибридные модели, систематизированные в Burke, 2002, комбинируют оба сигнала, частично смягчая холодный старт.

Все три подхода эффективны в своей постановке, однако обладают общими ограничениями, которые становятся критичными, как только пользователь формулирует запрос в свободной форме.

Во-первых, проблема холодного старта: коллаборативная фильтрация неприменима для нового пользователя без истории и для новой книги без оценок. Во-вторых, отсутствие объяснения: коллаборативный подход в принципе не способен обосновать рекомендацию иначе как «похожие пользователи поставили высокую оценку», тогда как для читателя отсутствие понятного обоснования снижает доверие к системе – это показано в литературе по объяснимости рекомендаций (Tintarev & Masthoff, 2015). В-третьих, и это наиболее существенно, классические модели не интерпретируют запрос на естественном языке.

В качестве иллюстрации можно рассмотреть запрос «медленный детектив в старинной английской усадьбе» или «научная фантастика о моральном выборе в духе Урсулы Ле Гуин». Такой запрос содержит одновременно жанровый, стилистический и атмосферный ориентиры, причём ни один из них не зафиксирован в каталоге в готовом виде. Признаки запроса и признаки объекта существуют в разных представлениях, и классическая модель не способна их сопоставить. Эту ситуацию далее будем называть проблемой холодного запроса: затруднение вызвано не отсутствием истории, а тем, что сам запрос выражен свободным текстом.

Свободный запрос

Холодный старт

Объяснение выбора

Коллаборативная

— (нужна история)

Контентная

частично

+ по объектам

слабо

Гибридная

частично

частично

слабо

RAG

+

+

+

Решение состоит в переходе от лексического сопоставления к семантическому, а формирование объяснения возлагается на языковую модель. Именно из этих двух компонентов и состоит RAG.

Архитектура RAG и её соответствие задаче

Термин Retrieval-Augmented Generation введён в Lewis et al., 2020. В оригинальной работе извлечённые документы подавались в seq2seq-модель с маргинализацией по ним; в современной, наиболее распространённой форме найденные документы помещаются в контекст большой языковой модели – этот вариант систематизирован в обзоре Gao et al., 2023. В обоих случаях схема одна: «поиск → формирование контекста → генерация».

  1. Поиск. По векторной базе извлекаются наиболее релевантные документы (в данном случае – карточки книг).

  2. Контекст. Найденное конкатенируется в текстовый ввод для языковой модели.

  3. Генерация. Модель формирует ответ, опираясь на этот контекст, а не только на параметры своих весов.

Ключевое свойство схемы – снижение галлюцинаций: модель отвечает с опорой на найденный материал, а не порождает его из памяти. Для рекомендаций это принципиально, поскольку языковая модель, отвечая напрямую, способна выдумать несуществующую книгу или приписать ей чужой сюжет. RAG привязывает ответ к реальным записям каталога.

Сопоставление свойств RAG с ограничениями классических рекомендательных систем даёт следующую картину:

  • семантический поиск на плотных эмбеддингах интерпретирует свободный запрос, сопоставляя смысл запроса и смысл описания, а не пересечение слов;

  • контентная природа поиска (по описанию книги, а не по истории) снимает холодный старт по объектам: новая книга индексируется сразу;

  • генеративная ступень формирует объяснение, почему книга соответствует запросу;

  • привязка к источнику сдерживает галлюцинации.

Таким образом, RAG закрывает весь перечень ограничений, ради преодоления которых обычно строятся сложные гибридные модели. При этом в литературе RAG применительно к рекомендациям обсуждается заметно реже, чем RAG для вопросно-ответных задач: большинство работ и обзоров (например, обзор Gao et al., 2023) сосредоточено на знание-интенсивных и QA-сценариях. Рекомендация по свободному запросу с объяснением по своей сути является типичной RAG-задачей, обладающей рядом особенностей, которые в литературе проговариваются нечасто.

Отличия рекомендательного RAG от вопросно-ответного

При переносе вопросно-ответного RAG-пайплайна на каталог проявляются три особенности.

Целевой объект не фрагмент текста, а карточка. В вопросно-ответных задачах извлекаются фрагменты документов. В рекомендации единицей поиска выступает связка «название + автор + жанры + описание», которую необходимо векторизовать так, чтобы вектор оставался плотным, но информативным. В рассматриваемой системе в эмбеддинг-модель подаётся структурированная строка вида Title: … Author: … Genres: … Description: …, что позволяет модели использовать название, автора и жанровый ориентир параллельно с описанием, а не только текст аннотации.

Ответ должен содержать обоснование на каждую позицию. Если в вопросно-ответной задаче достаточно одного ответа, то здесь результат представляет собой ранжированный список из 3–5 книг, и к каждой требуется обоснование «почему подходит», привязанное к запросу. Это предъявляет требования к промпту и формату генерации, а не только к ступени поиска.

Многоязычность запроса и контента. Типичный сценарий: запрос на русском языке при англоязычном каталоге (например, открытый набор Goodreads). Прямое сопоставление работает, но с потерей точности, поскольку распределения векторов разных языков смещены относительно друг друга. Эта особенность, как правило, отсутствует в англоязычных вопросно-ответных сценариях.

Практическая реализация

Архитектура RAG-рекомендателя двухфазна, что характерно для RAG-приложений в целом. Офлайн-фаза однократно строит индекс; онлайн-фаза обслуживает запросы.

Двухфазная архитектура RAG-рекомендателя

Двухфазная архитектура RAG-рекомендателя

На офлайн-фазе каталог загружается, очищается, каждая книга кодируется эмбеддинг-моделью и записывается в векторный индекс. На онлайн-фазе запрос векторизуется той же моделью, индекс возвращает k ближайших соседей по косинусному сходству, после чего языковая модель формирует ответ с объяснением.

Выбор компонентов рассматривается ниже как иллюстрация типовых инженерных развилок, а не как обоснование единственно верного стека.

В качестве модели эмбеддингов выбрана multilingual-e5-base (Wang et al., 2022). Семейство E5 обучено на задаче поиска: пары (query, passage) подаются с разными префиксами, что формирует асимметричные представления для запросов и документов – подход, восходящий к Dense Passage Retrieval (Karpukhin et al., 2020). Размерность 768 представляет собой компромисс между качеством и объёмом памяти, а мультиязычность закрывает русско-английский сценарий.

В качестве индекса использован точный перебор (FAISS IndexFlatIP): на корпусе порядка 16 тысяч книг точный поиск укладывается в десятки миллисекунд, а приближённые индексы (IVF, HNSW) с их настройкой гиперпараметров здесь избыточны. Это существенный инженерный момент: приближённый поиск необходим на сотнях тысяч и миллионах записей, тогда как на корпусе академического масштаба он лишь усложняет систему без выигрыша.

Языковая модель запускается локально (gemma3:4b через Ollama), что снимает зависимость от облака и вопросы конфиденциальности – это часто критично для библиотечных и образовательных сценариев. Взаимодействие с моделью реализовано через OpenAI-совместимый интерфейс, поэтому замена локальной модели на облачную сводится к смене трёх переменных окружения, что обеспечивает технологическую нейтральность к провайдеру.

Пример выдачи

Качество retrieval-ступени удобно показать на конкретных запросах. На запрос «медленный детектив в старинной английской усадьбе» (после перевода – «slow-paced detective novel set in an old English mansion») в верхние позиции попадают классические британские детективы: романы Агаты Кристи, Дороти Сэйерс, Сирила Хэйра. На запрос «научная фантастика о моральном выборе» система возвращает «Левую руку Тьмы» Урсулы Ле Гуин, произведения Лоис Макмастер Буджолд и «Стальные пещеры» Айзека Азимова. На англоязычный запрос «a coming-of-age story about loss and resilience» – «A Tree Grows in Brooklyn», «The Perks of Being a Wallflower», «The Outsiders». Отбор согласуется с интуитивным ожиданием, что подтверждает: мультиязычная модель E5 формирует представления, согласующиеся с человеческим восприятием сходства книг.

Поток онлайн-запроса и устойчивость

Поток обработки запроса с откатом при сбое LLM

Поток обработки запроса с откатом при сбое LLM

Отдельного внимания заслуживает graceful degradation – постепенное снижение функциональности без полного отказа. Языковая модель является наиболее медленным и наименее надёжным компонентом. При сбое генерации (модель недоступна, истёк таймаут) система не возвращает ошибку, а отдаёт найденный список книг без обоснования – с названиями, авторами, жанрами и рейтингом, то есть с полной информацией для самостоятельного выбора. Поиск работает всегда, объяснение – по возможности. Для производственного использования это свойство существенно.

Источники качества в рекомендательном RAG

Наибольшее влияние на итоговое качество оказывает retrieval-ступень: именно от неё зависит, попадут ли в контекст языковой модели корректные книги, и никакая генерация не компенсирует ошибочный поиск. Ниже рассмотрены три рычага, существенно влияющих на качество.

Переписывание запроса: translate и HyDE

Короткий запрос на русском языке и развёрнутое английское описание книги плохо стыкуются в векторном пространстве. Выравнивание выполняется одним из двух способов:

  • translate – буквальный перевод запроса на язык корпуса средствами языковой модели. Простой, быстрый и предсказуемый способ.

  • HyDE (Hypothetical Document Embeddings, Gao et al., 2023) – вместо короткого запроса в индекс подаётся гипотетическое описание книги, сгенерированное языковой моделью по запросу. Эмбеддинг такого псевдоописания ближе к распределению реальных аннотаций, чем эмбеддинг короткой фразы.

Небольшое сравнение на десяти контрольных запросах выявило следующую закономерность. На бытовых запросах (жанровый ориентир и лаконичное описание настроения) разница между режимами невелика. На развёрнутых запросах с несколькими признаками одновременно (жанр, автор, тематика, эпоха) HyDE начинает превосходить translate: гипотетическое описание содержит вспомогательные ключевые слова, повышающие вероятность совпадения с реальным описанием. Платой выступают дополнительный вызов языковой модели и меньшая предсказуемость, поэтому по умолчанию используется режим translate как разумный компромисс. Средняя длина переписанного запроса составляет 8–14 слов для translate и 60–90 слов для HyDE.

Плотный поиск, гибридный поиск и реранкинг

Плотные эмбеддинги хорошо улавливают смысл, но проигрывают на редких именах собственных и узкой терминологии – там, где важно точное совпадение токенов. Классическим решением является гибридный поиск: объединение плотного поиска с лексическим BM25 (Robertson & Zaragoza, 2009) с последующим повторным ранжированием верхних результатов более тяжёлой cross-encoder-моделью, кодирующей пару «запрос – документ» совместно (Nogueira & Cho, 2019).

Плотный поиск против гибридного с реранкингом

Плотный поиск против гибридного с реранкингом

Это та же логика, что и в вопросно-ответном RAG, однако для каталога она особенно уместна: названия книг и имена авторов представляют собой именно тот случай, когда лексическое совпадение незаменимо, а смысловая близость сама по себе недостаточна. В рассматриваемой системе оба механизма – лексический поиск BM25 и cross-encoder-реранкинг – реализованы отдельными модулями и подключаются опционально.

Количественные результаты

Качество извлечения измерено на наборе из 64 эталонных запросов трёх типов: семантические (описание сюжета), точные (по автору или названию) и русскоязычные. Релевантность определялась по совпадению названия или автора найденной книги с ожидаемым – то есть оценивался именно поиск, без участия языковой модели. Сравнивались две конфигурации: плотный поиск (только E5 + FAISS) и полный конвейер ранжирования (плотный поиск + лексический BM25 со слиянием рангов + cross-encoder-реранкинг).

Качество извлечения: плотный поиск против полного конвейера

Качество извлечения: плотный поиск против полного конвейера

Конфигурация

Hit@1

Hit@5

MRR

nDCG@10

Плотный поиск

0,52

0,69

0,589

0,624

Полный конвейер ранжирования

0,58

0,86

0,689

0,735

Добавление лексического поиска и реранкинга поднимает nDCG@10 с 0,624 до 0,735 (+0,111) и Hit@5 с 0,69 до 0,86: релевантная книга заметно чаще попадает в первую пятёрку и располагается выше в выдаче. Это согласуется с известными по литературе оценками – cross-encoder-реранкинг обычно добавляет порядка +4…7 пунктов nDCG@10 (Nogueira & Cho, 2019), а гибридизация с BM25 особенно помогает на точных запросах по автору и названию (Robertson & Zaragoza, 2009). Для систематической оценки уже генеративной ступени применим протокол вроде RAGAS.

Помимо качества извлечения, в прототипе измерялись временные характеристики (процессор Intel Core i5 12-го поколения, локальная модель gemma3:4b на CPU):

Время операций в прототипе

Время операций в прототипе

Сборка индекса для 15 851 книги занимает около 17 минут (разовая офлайн-операция), повторная загрузка готового индекса – порядка секунды. Ответ на запрос через API формируется за 2–4 секунды с использованием языковой модели и за 0,5–1 секунду в режиме без неё. Таким образом, вычислительно затратной является только генерация, тогда как сам семантический поиск практически бесплатен. Из этого следует, что узкое место рекомендательного RAG приходится на ступень языковой модели, и оптимизировать в первую очередь следует именно её.

Подготовка данных

Отдельного внимания заслуживает этап, который в руководствах по RAG обычно опускается, – подготовка данных. В открытом наборе Goodreads описания книг содержали дублирующийся префикс (обрезанная копия описания перед полным текстом – в 84% непустых записей), а поле жанров всегда начиналось с 58 шаблонных рубрик, и лишь затем следовали реальные жанры. Без очистки этот шум попадает в индекс и напрямую ухудшает качество поиска. После предобработки (удаление дубля, отбрасывание шаблонных рубрик, фильтрация слишком коротких описаний) из 20 068 исходных записей осталось 15 851 – отброшено около 21%. В рекомендательном RAG качество векторизации карточки определяет результат не меньше, чем выбор модели.

Границы применимости

RAG не является заменой коллаборативной фильтрации в тех сценариях, где последняя сильна. Границы применимости подхода целесообразно очертить явно.

  • При наличии богатой истории взаимодействий и задаче предсказания следующего действия (например, формирование главной страницы) классическая коллаборативная фильтрация и матричные факторизации дают лучший результат при меньших затратах. Сильная сторона RAG проявляется именно в сценарии «свободный запрос с объяснением».

  • Генерация требует ресурсов. Ступень языковой модели – это секунды и/или оплата по числу токенов на каждый запрос, что существенно для высоконагруженных лент.

  • Масштаб корпуса меняет инженерные решения: точный индекс пригоден на десятках тысяч записей, тогда как на миллионах необходим приближённый поиск (IVF, HNSW) и пересмотр всей экономики системы.

  • RAG не обеспечивает персонализацию по истории сам по себе – для этого его необходимо комбинировать с коллаборативным сигналом.

Наиболее сильным представляется гибридный сценарий: коллаборативный сигнал отвечает за то, что обычно нравится данной категории пользователей, а RAG – за то, что соответствует конкретному запросу и сопровождается объяснением.

Заключение

RAG прочно ассоциируется с вопросно-ответными системами, однако его внутренняя механика – семантический поиск в сочетании с генерацией на основе источника – адресно устраняет слабые места классических рекомендательных систем: неспособность интерпретировать свободный запрос, холодный старт по объектам и отсутствие объяснимости. При этом рекомендательный RAG не сводится к вопросно-ответному: он обладает собственной спецификой в представлении объекта-карточки, в требовании обоснования на каждую позицию и в многоязычности.

На примере рекомендательной системы книг видно, что подход обеспечивает работоспособное и объяснимое решение, а основные рычаги качества – переписывание запроса, гибридный поиск и реранкинг – переносятся из вопросно-ответного RAG напрямую. Данное направление пока недоиспользовано и потому представляет интерес для дальнейшей проработки.