Граф знаний для продуктового исследования: почему RAG недостаточно
“Покажи все боли, для которых нет решения на рынке” — если ваш инструмент использует RAG, он не справится. Потому что это вопрос не про текст, а про структуру: найди узлы типа “боль” без входящих рёбер “решается”. Это задача на граф, а не на семантический поиск.
AI-ассистенты для исследования: почему “поиск по тексту” — это потолок
Представьте: вы провели 15 интервью, собрали 80 фактов о рынке, нашли 12 болей аудитории, описали 4 сегмента и 6 конкурентов. Теперь спрашиваете AI:
«Покажи все боли, для которых нет решения на рынке»
RAG превратит вопрос в вектор, найдёт 5-10 похожих текстовых фрагментов и отправит в LLM. Модель честно попытается ответить. Иногда попадёт. Чаще — нет.
Потому что ваш вопрос — не про текст. Он про связи: найди узлы типа pain, у которых нет входящих рёбер типа solves. Один SQL-запрос с LEFT JOIN. Никакого LLM не нужно.
RAG: мощный молоток, но не каждая задача — гвоздь
RAG отлично работает для “расскажи, что я знаю про X”. Но продуктовое исследование — это не FAQ:
- Какие сегменты испытывают боли, которые конкуренты не закрывают?
- Если конкурент X запустит фичу Y — какие задачи каких сегментов под угрозой?
- Какие боли я нашёл, но не привязал ни к одному сегменту?
- Какие факты противоречат друг другу?
- Где в моём исследовании пробелы?
Каждый вопрос — запрос к связям между сущностями. RAG не знает, что “боль” и “сегмент” — разные типы, связанные отношением “испытывает”. Для RAG это просто текст.
Конкретный пример: orphan pain nodes
Факт из интервью: “Предприниматели тратят 3 дня на анализ конкурентов вручную”. Это боль. Из другого интервью: “Solo-founders сталкиваются с нехваткой времени на исследования”. Это связь: сегмент → испытывает → боль.
Но RAG может никогда не положить их в один контекст. Семантически фрагменты не похожи — один про “3 дня”, другой про “нехватку времени”.
В графе знаний:
Node: pain:manual_competitor_analysis (confidence: 85)
Node: segment:solo_founder (confidence: 90)
Edge: solo_founder → AFFECTS → manual_competitor_analysis
Запрос “боли без решения” = найди pain узлы без входящего ребра SOLVES. Один SQL-запрос.
GraphRAG: шаг в правильном направлении
Microsoft предложил GraphRAG — надстройку над RAG:
- Community detection — кластеризация связанных сущностей
- Cross-document synthesis — LLM суммирует каждый кластер
- Multi-level retrieval — поиск сначала по кластерам, потом по деталям
Значительно лучше для обзорных вопросов. Но граф — generic. Он не знает, что “боль” и “задача” — разные вещи. Что у задачи есть иерархия. Что переключение описывается формулой push/pull/anxiety/habit.
Мой подход: methodology-native Knowledge Graph
Вместо generic графа я построил граф, который знает методологию:
Онтология: 10 типов узлов, 18+ типов связей
- Типы узлов: pain, job, segment, competitor, solution, trend, metric, feature, trigger, channel
- Типы связей: causes, solves, threatens, enables, blocks, measures, affects, hires_for, switches_from и другие
- Constraints:
affectsидёт только отpainкsegment.solves— отsolutionкpain. Бессмысленное ребро не создашь
26 data points из Product DNA
Каждый проект отслеживает 26 точек данных из методологии Product DNA — от болей и триггеров переключения до unit economics и барьеров adoption. Граф знает что собрано, а что нет. Направляет исследование, а не просто ищет.
Bi-temporal модель
Каждый узел: когда факт был валиден (valid_at) и когда записан. “Рынок $1B” в марте → “рынок $500M” в апреле. Оба факта в базе. Старый инвалидирован, не удалён.
Hybrid Search: три источника сигнала
Граф — не замена семантическому поиску, а дополнение:
- Vector search — находит концептуально близкие узлы. “Нехватка времени” = “тратит 3 дня вручную”
- BM25 (keyword) — точное совпадение. Когда ищешь конкретный термин
- Graph traversal (CTE) — обход графа. “Все боли сегмента X и их решения” = 2 шага по рёбрам
Результаты объединяются через Reciprocal Rank Fusion — берёт ранги из каждого источника и комбинирует. Устойчивее взвешивания.
Что это даёт на практике
AI-ассистент перестаёт задавать generic вопросы. Вместо “расскажите подробнее” он видит конкретные пробелы:
“У тебя 5 болей без сегмента. Кто именно сталкивается с ручным анализом конкурентов — solo-founder или команда?”
“3 конкурента, но ни у одного не указано, какие задачи решают. Какую job выполняет пользователь, когда нанимает конкурента X?”
Бот не просто отвечает — он ведёт исследование, опираясь на понимание того, что собрано и чего не хватает.
Competitive intelligence через граф
Конкурент запускает фичу → граф: фича → решает задачу → задачу испытывает сегмент → сегмент — наш целевой. Один обход графа = ответ “насколько это для нас опасно”. В RAG это серия запросов с ручной интерпретацией.
RAG = поиск. Knowledge Graph = понимание
RAG — отличная технология. Но для продуктового исследования одного поиска мало. Когда инструмент знает разницу между болью и задачей, между сегментом и персоной — он перестаёт быть поисковиком и становится исследовательским партнёром.
- RAG отвечает на “что я об этом знаю?”
- Knowledge Graph отвечает на “что я ещё НЕ знаю и почему это важно?”
Второй вопрос определяет качество исследования. Ценность — не в объёме данных, а в полноте связей.
Попробуйте methodology-native Knowledge Graph в действии — AICPO или напишите nevr@aicpo.com